Celerity – High-level C++ for Accelerator Clusters - <AUTHOR> https://celerity.github.io/ <comment><USER2> Weird. A library that wraps SYCL within MPI, yet requires all processes to hold a copy of all the memory ?

One of the main reasons to use MPI is to solve problems that do not fit within the memory available in a single cluster node.

There is a presentation [0] from 2020-02-20 that's not very impressive. Particularly, they compare against MPI+OpenCL, but do not show a comparison against MPI-CUDA.

Doing a distributed MatMul using MPI-CUDA is trivial. I wonder how the cyclomatic complexity and performance compares for that case. Insted, they only compare doing one MatMul per process using MPI-OpenCL... that's... a two liner with CUDA (just call MpiInit followed by a cuBLAS call).

[0] [https://www.uibk.ac.at/fz- hpc/events/resources/2020_02_20_ah...](https://www.uibk.ac.at/fz- hpc/events/resources/2020_02_20_ahpc_celerity.pdf)

<comment><USER3> I'm honestly much more worried about NVIDIA's overwhelming success in buying their way into the _entire_ scientific community.

CUDA is proprietary, not standardised, and tied to a single hardware vendor. Technical issues aside, I applaud _any_ effort to break the dominance of CUDA. CUDA is a pest that needs to either open up or be replaced.

HPC is a very heterogeneous environment (on the whole) and making it easier to use the full potential of the hardware is understandable. Also keep in mind that it's a research project and very early in its development.

<comment><USER4> > CUDA is a pest that needs to either open up or be replaced.

My main problem with cuda is not that it is un-free, it is that the source code is unavailable and consequently you have to deal with a badly packaged, badly supported blob that turn only on a restricted set of compilers.

The consequences of that is that every software depending on cuda is a pain in the butt to distribute. Even major software like Pytorch or tensorflow need to have separated released due to cuda.

It is particularly sad that Nvidia in 2020 did not understand what Mellanox understood 10 years ago: that successful leadership in hardware is compatible OSS with an software stack.

</comment></comment></comment><comment><USER5> Not to be confused with Celerity Computing: [https://en.wikipedia.org/wiki/Celerity_Computing](https://en.wikipedia.org/wiki/Celerity_Computing)

Fun fact: I did a port of Franz Lisp[1] to the Celerity, having the compiler (liszt) generate code for the backend of the C compiler, since they told us: "in no way will you be able to generate assembly code out of your compiler for this architecture." They were an early Sun Microsystems competitor that didn't make it.

[1] Not to be confused with Franz's Common Lisp, this is the MacLisp compatible Lisp from UC Berkeley.

</comment><comment><USER6> Intel's DPC++ seems similar - computation graph, communicating via buffers.

[https://software.intel.com/en-us/oneapi/dpc- compiler](https://software.intel.com/en-us/oneapi/dpc-compiler)

Anyone pick out differences?

<comment><USER7> DPC++ is basically "just" SYCL, so no MPI.</comment></comment>


Ask HN: Planning to work in London - <AUTHOR>

I'm planning to move to London (from Australia) next year and will be looking for work. I have approx. 2 years self-taught experience in iOS development, and some experience in Rails. I've just started my final year thesis in relational database/social graph construction, and will be graduating at the end of the year. What sort of chance do I have of getting a job in London? Is there anything in particular I should be doing to increase those chances?<p>Thanks in advance for helping out. <comment><USER2> My suggestion: create a linkedin profile, as accurate as you can - add your projects and skills, and then add some groups about IOS or Rails (search for "IOS London Developers" and similar...): there are a lot of recruiters waiting for you ;)

(I'm an android coder in London and I constantly receive offers from recruiters...lot of jobs here!)

<comment><AUTHOR> Thanks for the advice! I've read some horror stories from back in 08/09, so it's nice to hear something positive.</comment></comment>


A location service which is actually useful: ask your friends where they are - <AUTHOR> http://tehu.la

<comment><USER2> <http://news.ycombinator.com/item?id=4240236></comment>


What Could Google Do With the Data It's Collected? - <AUTHOR> http://www.theatlantic.com/science/archive/2010/06/what-could-google-do-with-the-data-its-collected/58396/

<comment><USER2> Google's data mining capability is comparable to that of a major government. Just using their search data, they can predict disease outbreaks [0], and can probably predict other macro events like recessions and cultural shifts. Google is just more effective at processing the data that is already collected.

If Google ran the War on Terror, they would dissolve 99.9% of plots before they begin. The falsely accused would have to sit in prison, since they couldn't get anyone on the phone even if they wanted to. That's fine though, because they would get free food and Internet in their Google jail cell, and hear talks by other famous inmates.

[0] <http://www.google.org/flutrends/>

</comment><comment><USER3> Why don't any of these articles put blame on the users, for broadcasting their data without any encryption set up? I guess that's not the exciting news story. They could at least use the opportunity to educate people a bit..

</comment><comment><USER4> Many regular users - and younger members of society especially (like my younger siblings for example) - have absolutely no concern for privacy or the potential for abuse by companies like Google.

What will it take before the general public understands kind of dangers involved? Or are privacy concerns largely theoretical musings by geeks, which simply aren't as important as we imagine them to be?

<comment><USER5> The general public cares too little and the geeks care too much.

<comment><USER6> The general public cares too little. Period.

</comment></comment></comment><comment><USER7> "Google blamed the collection on a rogue bit of code that was never removed after it had been inserted by an engineer during testing"

I've seen this quoted before. If it's accurate it's pretty damn weak, in fact totally unbelievable. There's absolutely no way this data could have been collected unless deliberately.

<comment><USER8> Why? Their goal was to collect MAC adresses of all the WiFi hotspots they encountered. If you want to do that you have to – at least temporarily – save all packets that are coming in. The code to do this already exists, Google probably repurposed something. Deleting all the packets you received is a additional step, it's not guaranteed that whatever they used automatically deletes all received packets as soon as they are no longer needed. Someone has to think of that and fix it.

They are collecting gigabytes of data, so those additional packets wouldn't exactly be obvious. And they probably just copied the HDDs those cars have wholesale, without any prior processing of the data.

<comment><USER7> yes but isn't it the MAC addresses they collected "by accident"? That's my point (or have I totally misunderstood this?)

<comment><USER8> They wanted to collect MAC addresses. There is, of course, also the question whether they can do that without asking, but that was their intention.

</comment></comment></comment></comment><comment><USER9> Among other things, they could easily blackmail any public figure who used Google search (or mail, maps, etc.)

There are various ways they could frame this to retain their image...one would be to announce a campaign to crack down on the use of gmail for lawbreaking. Then sweep email for selective incidents involving politicians (and reporters!) threatening Google with regulation, and report to the authorities.

They already do this with child pron, so this would just be moving the bar back towards things that 99% (as opposed to 99.999...%) of society opposed. Escorts are probably a good place to start if you wanted to take down politicians.

<comment><USER10> Well, maybe politicians should not do naughty things. If they are using gmail for lawbreaking then I am in favour of google outing them.

<comment><USER11> This seems to me like a variant of the 'nothing to hide' argument, which Bruce Schneier ([http://www.schneier.com/blog/archives/2009/12/my_reaction_to...](http://www.schneier.com/blog/archives/2009/12/my_reaction_to.html)), Daniel Solove (<http://papers.ssrn.com/sol3/papers.cfm?abstract_id=998565>), and others have thoroughly rebutted.

It's true that politicians should be subject to more scrutiny than the rest of us, but that doesn't mean that they should have _no_ privacy. Do you trust Google to make that decision about politicians? Once politicians are afraid of the power that Google wields, do you trust them to protect _you_ from Google?

</comment></comment></comment><comment><USER12> No trolling, just a supposition: I'd like to answer this with a movie quote (I just can't recall the movie for some reason) - "...and like it or not, they're going to build you a new civilization, under a new world order."

What _can't_ be done when a single company in the world has, with a multitude of "free" services, crawled into every crevice of your private life? They know who you e-mail and what you mail about. They know your calendar and schedules. They know your economy. They know your medical history. They know who your friends are and what you do on your vacation. They know your hobbies and interests. Traverse the list of Google products and you'll quickly see that every single aspect of your life can now have a Google tag on it.

<comment><USER4> So what's the answer? Revolution?

I'm honestly at a loss, when I try to think of solutions. The most sensible reaction might be to break Google up into smaller companies - which would mean that the benefit it gains from being interconnected would be reduced - but I don't think this would currently be possible.

<comment><USER13> "So what's the answer? Revolution?"

Haha, no, not in this day and age. People in power these days know you have to keep the public sated to prevent revolution. People with family and jobs who live in relative safety and have a reasonable amount of income aren't going to revolt. And the public shouldn't initiate a revolution anyways because the cost becomes too great with a society this size.

The answer is deceptively simple. Develop a theory of change (work backwards from your end goal to discover the steps that need to be taken) and devise a strategy that takes into account the dynamics of power. The problem is that this is very difficult. You have to be very disciplined, you have to abandon your personal life goals, you have to find people to help you, and you will almost certainly have to do something out of line with your ideals (such as manipulating people or temporarily acting like the people you are trying to be rid of).

<comment><USER4> Well, they say that every society is only three meals away from revolution. Maybe it's true. Even if not, I think there are certain cataclysmic events that could provoke a reaction (Greece recently showed that).

I think developing a theory of change is useful, but then again - wouldn't it involve creating an instrument of power to control the masses? Rather than moderating the power networks we have, the public would be pushed from pillar to post.

I think it would be more useful to society in general, if we were able to define limits to the amount of power a single entry has.</comment></comment></comment></comment>


Is it time to move beyond 960 pixels? - <AUTHOR> http://cameronmoll.com/archives/2009/04/is_it_time_to_move_beyond_960/ <comment><USER2> I had a rant all prepared but decided against it.

A fixed width page that has been well designed for 1024x768 (such as this article) is frustrating to read on my 1600x1200 LCD, and would be even worse on a 1900x1200 LCD.

Maybe an extension to CSS that permits specifying "Widescreen" or "Netbook" as alternatives to "screen" and "print" or whatever would be helpful. I'd sure like an option that says "I'm not blind and I'd like to use the pixels I've paid for."

Maybe since Javascript is ok again designers could design two or three widths and have browser page detection select the smartest layout. Having a 1024x{600,768} design for netbooks and grandma would and a 1400+ column design for people using large screens and professional grade notebooks.

</comment><comment><USER3> Despite my laptop's display having 1440 horizontal pixels, I usually keep my web browser window around 900 pixels wide. I'd like it to be even narrower than that, but too many designers seem to assume it's a full 1024 and make their sites around 960 pixels wide. :)

I do this for two reasons. One is that the remaining space on my screen is for other stuff. The other is that a lot of websites ignore the traditional typographic rules for line length, and even when those rules are followed, the principle of constraining the horizontal size (including things like navigation and sidebars) in order to reduce the necessary eye movement still applies.

<comment><USER4> I use Firefox with the Web Developer extension. In the latter, I have a few different Window sizes pre-defined. Changing to the desired Window size in only a drop and click away.

</comment></comment><comment><USER5> What is the point of limiting website width to specific pixels, especially why go over so much thought for something from 960 -> 1020 or something small like that? You'd think with the netbook and mobile browser shrinking that the designers would stick to their guns.

<comment><USER6> 960->1020 isn't necessarily that small depending on what the space is used for.

If it's just making a content column wider then it's not really that useful in most cases, but if it's adding another column with useful information for the user, then it is a big deal - it makes the website that much easier to use.

<comment><USER5> Here is something 80 px wide [http://www.novavision.com/clinic_images/Neurol%20Inst%20Colu...](http://www.novavision.com/clinic_images/Neurol%20Inst%20Columbia%20web%20logo%2080px%20wide.gif)

to give you an idea of what kind of value can be added

Sure adding another column could be useful but as you can see by the authors tone he is talking about flow and divisions of columns and how those go well together and in all reality it sure doesn't make a hell of a difference even if you shrink something to add an extra column. After a while you get cluttered and usability/simplicity goes out the window.

</comment></comment></comment><comment><USER7> Ugh, no. This penalizes people with larger screens.

1920x1200 = two windows of 960px

2560x1600 = three windows of ~850px

<comment><USER8> everything sounded good about moving past 960 until i saw your comment and synthesized it with the knowledge that i do this very frequently.

the other problem with this and fluid designs on wide screens is that it becomes difficult to read text when it is that wide.

the best idea that i have seen is a site (or maybe it was sites, i know I've seen at least one), where the content is 960px but then if your browser window is wider, javascript adds additional content to the right of the content, columns that come down with additional links and further navigation options.

</comment></comment><comment><USER9> I remember being amused in 1996, that some newbie web developers were writing their html to work best with a specific number of pixels of width... I don't find it so funny these days.

<comment><USER10> The basic problem is that traditional designers are still trained to think in terms of canvases or formats, which have a fixed width and height. Moving beyond a fixed height is a cognitive hurdle. Moving beyond a fixed width is only more so, especially when bitmaps are involved.

</comment></comment><comment><USER11> Is it time to design for 42" lcd tvs and desktop monitors and netbook screens and mobile phones?

I guess we have to keep waiting for <http://www.w3.org/TR/css3-mediaqueries/#media1> support.

</comment><comment><USER12> What we really need is a way for users to apply their own width limits and have all designs be fluid.

In fact, I wonder why this isn't a common option in browsers.

What if your text editor didn't let you resize the window because it thought 80 characters was wide enough for anyone (80 characters at 10pt Courier, of course)? I would be pretty mad. Users should be in control of these sort of things.

</comment><comment><USER13> Let's just let the web designers continue to use 960 and implement browsers with full page zoom that considers 1024 pixels as a relative page width for the whole window, no matter its true width. I think that's what iPhone Safari already does.

To accomodate people with bigger windows, link to bigger images so that they scale as beautifully as text.

</comment><comment><USER14> I have a crazy 15" Omnibook laptop with 1400x1050 (!) resolution on it. I still design my Windows app dialogs to be no more than 600x400.</comment>


Ask HN: does bitcoin mining pay off? - <AUTHOR>

I'm curious whether there are people who do (semi-)professional bitcoin mining, for example with hardware like https://en.bitcoin.it/wiki/Mining_hardware_comparison, and whether this really pays off?
In the worst case, the costs for powering these devices is higher than the value of bitcoins mined, plus there is the risk of dropping exchange rates.
If it is somewhat profitable though, then I'm wondering why not more people are doing it, as it seems easy enough? If more people did it, would there be a risk of cannibalizing each others efforts? It might sound like naive questions as I don't know much about the mechanisms of bitcoins. <comment><USER2> The reason more people don't do it is because:

A) it's difficult. Since the vast majority of miners didn't get in early, they weren't able to get in on the "gold rush" that enabled them to ramp up hardware in accordance with their output. When mining first started, you could find blocks with a decent CPU. Since then, dedicated rigs have become almost a necessity if you plan to make any kind of money at all.

B) Electrical efficiency. Since the recent decrease (reduction from 50 bitcoin per block down to 25 per block) and the rise in popularity of bitcoin (thus rise in difficulty of finding a block.. it scales naturally), the "cost" of finding blocks has gone up. By that I mean it requires more raw computational power to mine, raising the bar on both the hardware needed to be relevant AND the amount of electricity consumed during the process.

There are a lot of calculators out there. They will give you some insight into how much you could make (or very likely lose) depending on your local electricity pricing.

<comment><USER3> Could you use something like AWS or EC2 to reduce the overhead?

<comment><USER4> No. CPUs are useless for mining, and the only GPU instance AWS offers uses Nvidia GPUs, which are about 5x worse than the equivalent AMD/ATI GPUs. Even if AWS had AMD/ATI GPU instances, the costs would probably be too high.

</comment></comment></comment><comment><USER5> It will pay off, but it's more a long term investment and you should an opportunity cost analysis on the cost of hardware and expected returns.

Use this to calculate your profit. <http://www.bitcoinx.com/profit/>

Disclaimer: I mined bitcoins at the start and cashed out during the last bubble at ~$30USD per coin. I sold the hardware I had (ATI 58xx series graphics card mining rigs). The new ASIC hardware looks too great if you could gt your hands on it.

Remember though that you are at a disadvantage to more established miners who can afford these $X0,000 mining rigs that increase the total pool speed which brings down your contributions and your profit.

</comment><comment><USER6> If you can run your mining rig somewhere where you don't pay for electricity (like under your employer's desk :) ) - then you'll get some benefits. Otherwise electric bill will eat your profits.

I think it's a bullshit business where opportunity is guaranteed to decline.

Let others mine and I'll develop products and sell them for bitcoins (and dollars).

</comment><comment><USER7> I have been looking into it. From what I can tell the only way it would be profitable is with a custom ASIC. Something like <http://www.butterflylabs.com/products/>

<comment><USER2> As of right now, I'm still considering BFL vaporware. They've moved that goalpost far too many times for them to be taken seriously.

</comment></comment><comment><USER8> I've been mining since July 2011 with a small operation of 17 ATI 5830s.

With the amount of ASIC preorders currently speculated, I don't think its worth my time to upgrade. I'll be selling my mining hardware off this year.

</comment><comment><USER9> Don't forget that according to the (non existant) spec there's a finite number of btc. So even if it was profitable (which i doubt), it's guaranteed to stop being viable when every block has been mined.

<comment><USER10> Except that this will take a while, and then fees will be collected by the miners, and as Bitcoin price rises, fees don't need to be in the integer amounts to be profitable.</comment></comment>


Ask HN: Dynamically creating corporations - <AUTHOR> One of the plot points of Accelerando by Charles Stross is that corporations could be created and shutdown dynamically like one might spin up more EC2 instances. Like today corporations could own each other and hire people.
I can't help but feel this is inevitable (particularly if we are transitioning to a "gig economy") and that the first country that successfully builds the framework will more than move the needle on their economy. (I could see Estonia being the first as an extension of their e-residency program.)
The two biggest obstacles would probably be taxation and liability. A blockchain might help in establishing the ownership chain to ensure that the proper parties are taxed the proper amounts. But how do you hold a company liable when their existence was mere microseconds? Do you pierce the limited liability shield and pass the lawsuit up the blockchain until it reaches an active corporation or human?
Curious as to any answers to those questions or thoughts on the concept in general. <comment><USER2> Two thoughts:

1\. Right now, you can't evade liability by shutting down a corporation.

2\. Law firms will have the technology to act just as quickly as other corporations. If a secretary of state's office can accept a complete corporate formation via API call, then court systems will probably be able to accept case filings similarly.

<comment><AUTHOR> Thoughts in response:

1\. I shut down a LLC about four or five years ago. I definitely didn't think about it at the time but it seems a bit wrong that it can be willed back into existence by a lawsuit. It can't defend itself without any assets to pay lawyers or members so to defend against the lawsuit would require piercing the shield and going after the former members assuming they are still alive (which in this case they all still are).

2\. I think you are exactly right with that thought.

That example can even be extended that the tax office can be notified of each transaction the corporation enters and have a ledger of revenue, expenses, and deductions that need to settled before the corporation can be spun down.

One thing that I hadn't thought through is that the only reason to keep a corporation going is the hope of future earnings (or for tax/liability reasons but it all comes back to money). Without that potential it is shut down. Maybe it is a moot point. Why use your own resources to sue a company that has nothing to give you?

<comment><USER2> Good thoughts. I also shut down a corp (S-Corp) in the last few years and had similar misgivings. But theoretically, if the veil is pierced, whatever assets the corp returned to shareholders should be available for legal defense. Or if the corp still existed and in the red, shareholders would be lending money anyway to defend it and stave off personal liability. If neither corp nor shareholders have enough assets to defend themselves, that is its own sort of protection (the play dead, or actually dead, strategy.)

I'm not disagreeing with you; just adding to it.</comment></comment></comment>


FreeBSD Kernel Critical Update: arc4random predictable sequence vulnerability - <AUTHOR> http://www.cyberciti.biz/tips/cve-2008-5162-freebsd-arc4random.html <comment><USER2> I don't know all the details of this vulnerability, and won't bother digging them up because Colin can just explain it real quick, but I will point out that this --- the "cold start entropy" problem --- is a hugely common flaw in cryptosystems. If you don't have secure random numbers, you don't have crypto keys.

If you think FreeBSD is fun, think about the problem of embedded devices and solid-state network boxes, some of which have very few sources of real entropy, some of which have no simple ability to re-seed nondeterministically after a cold start. This was Gutterman's Black Hat talk 2 years ago, one of the best of the show.</comment>


An alternate medium style guide - <AUTHOR> https://medium.com/@enkiv2/an-alternate-medium-style-guide-263e067f6481?source=user_profile<comment>---7- </comment><comment><USER2> "Avoid embedding images or other content, unless absolutely required for understanding. "

 _This._ I don't know where the theme of sticking inane moving GIFs separating every paragraph began, but it downgrades Medium content in many eyes.</comment>


Techcrunch SSL Cert Expired - <AUTHOR> https://techcrunch.com/ <comment><USER2> Is this a good opportunity to plug an open source project I've been working on for 5 years that basically solves this problem? [https://caddyserver.com](https://caddyserver.com) will keep your certs renewed for free, automatically, without extra tooling, dependencies, or moving parts. I really hope more sites will use it because this stuff happens.

If you've heard of Caddy but haven't used Caddy 2 yet, we've made some huge improvements with it, and it's capable of managing tens of thousands of certificates at a time. As of next week's beta it can handle certificates with lifetimes as short as a few minutes. It works as a load balancer, in a cluster behind load balancers, and with Docker with its new dynamic config API. There's no technical reasons I know of why sites like TechCrunch can't use it.

<comment><USER3> What does it do that certbot doesn't? Personally, I don't see the benefit of bundling certificate renewals with the HTTPS server.

<comment><USER2> A quick perusal of the Let's Encrypt forums will reveal a few issues. For one, it's easy to misconfigure. There's a lot of surface area it has to cover in the web server and there's a lot that can go wrong. It can also be tricky to install since it is separate from your web server and has a number of complex depeneldency requirements (like many large Python programs). And because it's an external dependency, there's no way the server can react to errors in CertBot, only CertBot can control the server, so you don't get the benefit of duplexed interactions.

Caddy is written in Go, a memory safe language. I cannot overstate how significant it is that most servers like ngixn, Apache, and HAProxy are written in C and cannot offer the same security guarantees.

Caddy will also staple OCSP, in the most robust way compared to other servers. It has weathered outages that took Apache and NGINX sites down (in Firefox).

We've also seen CertBot consume high amounts of resources at scale, whereas Caddy can handle thousands of certs no problem. That's why some companies have talked to me about why they switched.

Caddy can coordinate cert management in a cluster. This happens automatically when configured with the same storage backend. CertBot doesn't do that. Caddy works great behind reverse proxies, or as the reverse proxy.

Perhaps most importantly, Caddy is the only server to use HTTPS by default without needing any explicit configuration. You simplify your deployment workflows and have less room for things to go wrong.

There's also a values statement here... If you think privacy and security are important, you choose software that enables privacy by default because it aligns with your values.

Sure, any number of solutions can get you TLS and a few even get you TLS via ACME, but Caddy (2) is highly optimized to handle the edge cases and scaling requirements a lot of sites have these days.

<comment><USER3> I don't meant to pooh-pooh your project, but Go's memory safety isn't some kind of automatic security guarantee... especially when it comes with a giant downside of having to run as root. Every other production-grade server drops privileges as soon as possible, for a very good reason.

<comment><USER2> Go does bounds checking and doesn't have dangling pointers, so it's inherently safe from buffer overflows.

You don't have to run Caddy as root in production, even to bind to low ports. (None of my sites do.) [https://memorysafety.fail](https://memorysafety.fail) for more info on memory unsafety.

<comment><USER3> Thank you for your condescending reply. I understand Go's memory model quite well (and have used Go quite a bit). News flash: you can have bugs of other kinds besides buffer overflows.

<comment><USER2> Er, sorry, I wasn't being condescending. I intended to clarify some relevant facts, please don't take it personally.

You had said:

> Go's memory safety isn't some kind of automatic security guarantee...

But in some cases, it is. I'm not claiming more than that, nor am I saying that you can't have "bugs of other kinds" \-- on which point I agree with you.

<comment><USER3> > Er, sorry, I wasn't being condescending. I intended to clarify some relevant > facts, please don't take it personally.

Fair enough, it's easy to misunderstand the intended tone in online comments.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I must say, seeing this makes me feel a little less embarrassed from my own expired SSL facepalms

</comment><comment><USER5> Ways to monitor for cert expiry in no particular order:

1) Prometheus + blackbox_exporter [https://www.robustperception.io/get- alerted-before-your-ssl-...](https://www.robustperception.io/get-alerted- before-your-ssl-certificates-expire)

2) Sensu/Nagios [https://github.com/sensu-plugins/sensu-plugins- http/blob/mas...](https://github.com/sensu-plugins/sensu-plugins- http/blob/master/bin/check-https-cert.rb)

3) Openssl in a crontab:

        echo | openssl s_client -connect ${DOMAIN}:443 -servername ${DOMAIN} -verify_hostname ${DOMAIN} 2>/dev/null | openssl x590 -noout -startdate -enddate

</comment><comment><USER6> They seem to have now updated and fixed the expired cert and all links work again with SSL on.

      techcrunch.com
      Issued by: DigiCert SHA2 Secure Server CA
      Expires: Wednesday, 2 March 2022 at 12:00:00 GMT

</comment><comment><USER7> Techcrunch is a hot mess lately.

Most TC links get uBlocked completely now with adtech run amok.

<comment><USER8> yup. It routinely winds up in my pihole lists as well.

</comment></comment><comment><USER9> jrockway's law of monitoring: All companies will eventually gain an alert for TLS cert expiration.

</comment><comment><USER10> Perhaps they will now switch over to automatically provisioned certificates :)

<comment><USER11> At least historically, they did. Wonder what went wrong

<comment><USER12> Verizon maybe?

</comment></comment></comment><comment><USER13> I've never seen a publicly-trusted certificate with a 12-hour validity period before.

<comment><USER14> I'd expect this to be some kind of self-damaging public statement regarding the news that Safari will start blocking sites with certs valid for >1 year.

</comment></comment><comment><USER15> Hmm, what about a browser warning that a cert is _about_ to expire? You'd think a major website would have employees looking at it on occasion, they'd catch it.

<comment><USER16> You don't want this kind of warning to end-users.

Just use monitoring with alerts.

<comment><USER15> What if it's like two days in advance? Probably better than the thing going down. Your monitoring should have caught it by then.

</comment></comment></comment><comment><USER17> Some sysadmin is getting chewed out on the phone right now...

<comment><USER18> Or they're being praised for "fixing the website"

<comment><USER5> You're funny.

</comment></comment></comment><comment><USER19> Yeah, even with all the reporting in the world at my employer sometimes we sometimes miss one, or a setting. It's hard to be good at certs.

<comment><USER20> Uptime robot ([https://uptimerobot.com/](https://uptimerobot.com/)) can be set up to alert you about any upcoming cert expiries. It has saved our necks a few times.

<comment><USER4> Is the free tier for this something that's valuable or do you realistically need the pro version?

<comment><USER21> The free tier doesn't include SSL monitoring, but has many other useful free features.

</comment></comment></comment></comment><comment><USER22> [https://crt.sh/?id=2500908236](https://crt.sh/?id=2500908236)

12h long certificate was used

<comment><USER23> That's just the precertificate

</comment></comment><comment><USER24> For posterity and as a general public service announcement I posted a screenshot here:

[https://www.webase.com/blog/pro-tip-makesure-your-ssl- cert-d...](https://www.webase.com/blog/pro-tip-makesure-your-ssl-cert-does- not-expire)

This is bad, but at least the domain name didn't expire!

</comment><comment><USER25> This is why I do not like the "every 90 days" on Let's Encrypt

Even if automated, actually especially if automated, that's four times a year you can have complete site failure if something goes wrong.

ps. would be nice if firefox could easily override expired certs for advanced users like self-signed certs

<comment><USER26> TechCrunch's new cert expires in two years. Who at TechCrunch will remember to renew _that_ cert in February 2022? If they had to renew certs every 90 days, they most likely would not have forgotten. Cert renewal would be automated or part of regular quarterly planning.

<comment><USER27> Now Safari will no longer trust certs valid for more than 13 months. Recent discussion thread about it [https://news.ycombinator.com/item?id=22398063](https://news.ycombinator.com/item?id=22398063)

</comment></comment></comment><comment><USER28> Also the expiry date of a cert I think is based on local time of the browser, not utc. So the website might work for the owner of the site while being unaccessible to someone from a different time zone.

</comment><comment><USER29> What's happened to TC recently..

</comment><comment><USER30> yeah, digicert is quite expensive.

</comment><comment><USER31> I still can not click on techcrunch links because of their massive cookie wall that has no straight-forward way to disable all cookies.

<comment><USER32> It's a lovely dark pattern lately. I'm also fairly annoyed by another pattern which involves giving the user a "carry on" vs "configure" decision, which when opened shows that only essential cookies are enabled. While this is probably closer to the correct implementation, I'm fairly sure that it's meant to subtly steer people away from the configure option [1], via "see, there's nothing to configure, you should have just picked the other option". You can be sure though, that the other option had everything and the kitchen sink enabled.

[1] EDIT: In the long-term, that is, not that individual site's interaction.

<comment><USER33> Even better, when those "essential" cookies are actually not essential at all and are just tracking cookies. Personally I hope such people get sued until they manage to adhere to the law in a sensible way, so that it really hurts their business, which is built on unethical treatment of their visitors/users. Wishful thinking probably.</comment></comment></comment>


Google's Android platform: not so open after all - <AUTHOR> http://arstechnica.com/news.ars/post/20080715-googles-android-platform-not-so-open-after-all.html <comment><USER2> 'Openness' has always seemed like a fragile foundation for a mobile platform. Mobile operators are the least 'open' companies out there, and they hold all the keys in this market.

If Android apps really are going to be unrestricted, then the first applications everyone will download are VOIP and SMS gateways. Are mobile operators really going to tolerate a platform that circumvents long-distance and SMS surcharges?

If they don't allow applications like this, Android doesn't really have much going for it relative to the iPhone.

<comment><USER3> _Are mobile operators really going to tolerate a platform that circumvents long-distance and SMS surcharges?_

You can use Skype on AT&T Tilt (or any Windows) mobile phones. It works with WiFi and 3G data network. People are downloading and using VOIP application on their mobile phones.

</comment></comment><comment><USER3> I don't know if Google is trying to test the new SDK on few developers before releasing it, but their development platform is not as open as they stated to be. Example: once I started developing and getting into details, I noticed applications are prevented from getting the current outgoing and incoming call data ([http://groups.google.com/group/android- developers/browse_thr...](http://groups.google.com/group/android- developers/browse_thread/thread/932df5d2c689920d/c2cb6bcda795e825)) This data is already available on other platforms.

</comment><comment><USER4> I hate when Google acts democratic about web and its technologies when it clearly shows they are getting ready to be autocratic.

All Warfare is based on Deception - Sun Tzu, Art of War

<comment><USER5> Google = Microsoft 2.0

(same tactics)

I wonder in how many of those 50 finalists is google investing on, therefore giving them a huge leg up while the rest is left with outdated SDKs.

<comment><USER6> Google obviously values the market more than the ethics. As any self respecting company should. Playing in the mobile arena is better for Google than not playing at all. We chose to allow service providers to arbitrate the network and it's not as if our loyalty has anything to do with Google's success?

Consumers are swines. The pile of crap that this world is today is testament enough.

<comment><USER4> We thought of Google as good guys in a mean world, We felt good with Google's success in the early years. I have personally recommended Google to at least all the people i know of(ball park figure might be around 100). Our loyalty was very important for Google's success, which they might be glad to deny now. For the first time, Microsoft looks like a better company than Google when it comes privacy issues(they don't go around selling personal details of users),openness and being truthful to users(they accepted they made a huge mistake with Vista).

Success is a lousy teacher. It seduces smart people(Google) into thinking they can't lose.

</comment></comment></comment></comment><comment><USER7> Why would you even want to develop on someone's corporate platform to begin with? Apple or Adobe or Microsoft or Google or whoever... In the end, you _always_ get fucked, either by your "patron" or by market forces, when your "platform" loses out.

This ain't 90s anymore.

<comment><USER8> Other than openmoko, that platform is???

<comment><USER9> Whatever happened to openmoko? They appear to have released actual hardware while I wasn't looking! Does anybody have one, and how do they like it?

<comment><USER10> I ran across this review the other day

[http://blog.wolfman.com/articles/2008/07/11/openmoko- freerun...](http://blog.wolfman.com/articles/2008/07/11/openmoko-freerunner- first-impressions)

Sounds like it's got a lot of promise, but a long way to go before it's ready for mainstream use

<comment><USER11> Hadn't seen that one, thanks. The most thorough review I've found so far is the Ars Technica one, which is older but comes to similar conclusions:

<http://arstechnica.com/reviews/os/open-moko-software.ars></comment></comment></comment></comment></comment>


Researchers can identify you by your brain waves with 100 percent accuracy - <AUTHOR> http://techxplore.com/news/2016-04-brain-percent-accuracy.html <comment><USER2> I'd love to see this study repeated again, but this time have the participants have a few drinks beforehand, or use a recreational drug, or come down with a cold. Or be under duress, or be in some amount of pain.</comment>


Flutter and Chrome OS - <AUTHOR> https://developers.googleblog.com/2019/05/flutter-and-chrome-os-better-together.html <comment><USER2> This push to extend Flutter to be a UI solution for all kinds of platforms is really exciting. It looks like a huge piece of the puzzle is FFI support in the Dart VM, and it looks like they're working on it [0]. I think that basic support is going to be really important to give Flutter better support for rich multimedia like audio rendering.

[0]: [https://github.com/dart- lang/sdk/issues/34452#issuecomment-4...](https://github.com/dart- lang/sdk/issues/34452#issuecomment-482136759)

<comment><USER3> > This push to extend Flutter to be a UI solution for all kinds of platforms > is really exciting.

If they want it to be everywhere, they have to stop basing it on Dart.

<comment><USER4> What's an alternative AOT compiled language that's as accessible as Dart that also compiles to JavaScript? I don't think there's another more obvious choice.

<comment><USER3> It only needs to be compiled to Wasm these days and not pure JS.

That means pretty much any existing language with a natural following and a LLVM-based compiler can be a reasonable candidate.

Dart literally has no natural/non-artificial following or use-cases outside Google. Trying to sell Dart via Flutter will only harm Flutter and nothing else.

People not interested in Dart won't change their mind over yet another UI framework.

<comment><USER4> WASM isn't yet a viable candidate for a complete application. There's a lot of proposals out there to bring it in line with what you can do via JavaScript, but there's still a lot of things that JavaScript can do more performantly than WASM. Using a WASM language also means that interop with existing JavaScript is a bit of a hurdle, so I still feel that Dart is a good choice. That being said, there's nothing particularly interesting about the language itself; I'd feel the exact same way about any other language if they also compiled to pure JavaScript.

</comment></comment></comment></comment></comment><comment><USER5> As someone who worked extensively with Dart in a previous role, I'm not sold on Flutter.

For the vast majority of use cases, JavaScript (or TypeScript) is going to be a better solution than Dart.

Like it or not, JavaScript is the #1 player on the web and if you're trying to scale and share resources or code at all, you want your engineers to be proficient in JS. Yes, Dart is similar, but it's not JS. And it's not _just_ the language: it's the ecosystem. Linting, formatting, package managers, debugging issues, Googling problems, Stack Overflow answers, etc.

Also - Guess how much of that Dart specific knowledge was useful in my current role? None. It's gonna be hard to hire devs who want to work on Dart IMO.

My opinion: You can have Android, iOS, Web & Desktop with 95%+ code sharing between them using React Native + React Native Web -> [https://github.com/devhubapp/devhub](https://github.com/devhubapp/devhub)

<comment><USER6> I thought it was a truism in tech that monocultures are a bad thing?

JS might be the #1 player, but there's no reason to be against attempts to challenge the status quo.

<comment><USER7> IMO the problem is that Dart is pretty much JS and really not challenging the status quo - My light experience with Dart is JS < Dart < TS. So if there's an opportunity to simply use TS, I don't see the benefits of Dart.

<comment><USER8> AOT and JIT compilation and the fast hot reload and performance in general of dart/flutter seem to absolutely trump JS/react native.

</comment></comment></comment></comment><comment><USER9> That "seamless resize" GIF looks like a joke. I had to reread the paragraph a few times to make sure it doesn't show an earlier stack being now replaced with Flutter.

<comment><USER10> iOS and Android apps didn't support resize until recently. Adding resize support requires additional, though usually small, work (listening to resize events). Presumably, this means that Flutter for Android does this automatically.

<comment><USER11> > Adding resize support requires additional, though usually small, work

Adding _good_ resize support may require a serious rearchitecture of your display engine.

</comment></comment></comment><comment><USER12> Will Google ever provide a Chrome OS "distro" to install on non-Chromebook machines?

I'm aware of things like CloudReady by Neverware[1] which seem to have some investment from Google, but last I checked, it did not have support for Android or Linux. Using community built images of Chromium OS and scripts that "hack" it into a Chrome OS installation has been a huge pain.

I'd love to test a full-featured Chrome OS on my machines, but I'm not dropping money for a Chromebook despite how cheap they may be because I have plenty of machines that it could run (with good performance) on.

[1]: [https://www.neverware.com](https://www.neverware.com)

<comment><USER13> [https://github.com/imperador/chromefy](https://github.com/imperador/chromefy) does a good job at that.

After trying it out and looking into it more, as well as trying out a normal Chromebook, Chrome OS just doesn't seem very interesting to me. You can't even disable mouse acceleration or set a hostname, and the devices are stuck on the same kernel forever. Bit of a let down, although the A/B root is nice.

<comment><USER12> > Using community built images of Chromium OS and scripts that "hack" it into > a Chrome OS installation has been a huge pain.

That's actually the exact project I was referring to with the quoted bit above. I was on mobile and didn't have the chance to look up the exact project. However, I had a bunch of issues when I tried it months ago. I don't necessarily blame the script because I'm not sure if the trouble was caused by the script, my hardware, or user error on my end. I didn't really have the patience for it since I could get all the same functionality from any run-of- the-mill Linux distro (Fedora in my case) + Chromium + Anbox.

</comment></comment></comment><comment><USER14> It wasn't quite clear to me from the article: are the resulting Flutter apps running under the Android emulation layer or are they proper Chrome OS apps?

It's great that Chrome OS can run legacy Android stuff, but it'd be a shame if the ugly design of Android started to leak into Chrome OS proper in a way that makes it hard/impossible to deprecate.

<comment><USER15> From the article:

> Because Chrome OS runs Android apps, targeting Android is the way to build > Chrome OS apps.

The screenshot of "The Flutter ChromeOS lint rules in action" also appears to show an Android app manifest.

Which, honestly, seems like kind of a strange design to me. The whole point of Flutter is to be a cross-platform app framework; why not just add a ChromeOS backend to it instead of running the Android version inside an Android emulation layer?

<comment><USER16> Because this is Flutter/Dart team pushing their agenda, not the ChromeOS team embracing Flutter.

Just like the Android team, usually answers with a political correct "It is nice to have options" when asked about Flutter and Android. They were pretty clear at this year's IO that Android's future is now Kotlin, with Java takind a 2nd place and C++ a 3rd one.

<comment><USER17> It looks like you could be right. If this is true then publishing the following on the Google developer blog is downright deceptive:

 _" Because Chrome OS runs Android apps, targeting Android is the way to build Chrome OS apps."_

Note that they're not saying it's a good way to build Chrome OS apps, they're saying it's "_the_ way to build Chrome OS apps".

<comment><USER18> They do say "Flutter is a great way to build Chrome OS apps" and they say "Because Chrome OS runs Android apps, targeting Android is the way to build Chrome OS apps."

The article is about chromeos and flutter, to make it clearer, they could have said, "targeting Android is the way to build, Flutter, Chrome OS apps."

Targeting Android to create Flutter chromeos apps currently seems to be the go, this may change once flutter for the web and or the linux desktop support is fully baked.

<comment><USER17> Perhaps that is what they meant. Or maybe it isn't.

Right now, Google seems like a rudderless ship floating in a sea of possibilities created by a bunch of very talented kids suffering from ADHD.

I think someone at Google should grab the helm and actually do some steering.

<comment><USER19> I've always wondered how viable this was as a corporate strategy: why risk the entire company on one business when you could own several that may or may not succeed, each running (relatively) autonomously, etc...

Your comment highlights one potential downside, ie. people not trusting the company because it looks confused on the outside.

<comment><USER17> Looking confused is not the reason for the lack of trust. The reason is the threat of platforms or APIs getting shut down after you have invested a lot of time in them or built your own product on top of them.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> If I understand correctly, Flutter embedders use a low level rendering API that renders the UI similar to how a game is rendered - skipping native widgets altogether. This makes me wonder what's the battery consumption? Is it similar to electron?

<comment><USER21> Jumping onto this: what about accessibility? On iOS at least, if you use the native controls you get a ton of accessibility support either for free or with relatively little effort. VoiceOver has some really deep hooks into the system.

How, if at all, does this work with Flutter? Seems like it would be like trying to get a screen reader to describe a game.

<comment><USER22> Flutter apps, from the basic one I've built and tried, are completely inaccessible to Talkback on Android.

I don't think this is supposed to be the case, from reading the documentation. But I can't get any labels inside my application to be read aloud.

<comment><USER23> I've just tried this on my apps which I've done no accessibility work yet. It's not perfectly accessible (would need to add some annotations to some text) but they are mostly accessible

</comment></comment></comment></comment><comment><USER24> Funny to see how iOS / Apple is currently working on their own cross-platform tech (marzipan), which means running iOS app on macOS with minimal changes (time will tell what this thing ends up looking like). On the other side, google is releasing a cross-platform tech that's _actually_ cross-platform.

As a currently mostly iOS native dev, i must say this makes me a bit nervous.

<comment><USER17> The question is whether there is room for anything between _actually_ cross- platform web technologies and _actually_ native toolkits.

So far, the success of technologies in between those two has been rather modest.

</comment></comment><comment><USER25> "Because Chrome OS runs Android apps, targeting Android is the way to build Chrome OS apps."

So, does that mean that Flutter apps for Chrome OS are limited by the Desktop capabilities of Android?

<comment><USER23> Yes, since Android apps on Chrome OS actually have the most access to the system, more than websites.

</comment></comment><comment><USER26> oof, the resize GIF is not selling it, actually it has the opposite effect to me.

</comment><comment><USER27> Is it just me or is Google doing everything it can to 'use' Linux but not truly make things based on Linux.....why not just make a proper distro

<comment><USER28> How would they lock-in their users then?

</comment></comment><comment><USER8> Is there also planned support for Flutter on a plain old linux desktop, and if so is there a timeline for it?

<comment><USER29> I believe so: [https://github.com/flutter/flutter/wiki/Desktop- shells#linux](https://github.com/flutter/flutter/wiki/Desktop-shells#linux)

</comment></comment><comment><USER30> Reminds me of Google Web Toolkit (GWT) back in the early 2000s. All of a sudden Google lost interest and kind of pulled the plug. This technology seems too risky for me to use in production right now.

<comment><USER31> Which UI browser framework has lifespan longer than GWT?

<comment><USER32> VanillaJS for one: [http://vanilla-js.com/](http://vanilla-js.com/)

<comment><USER31> It doesn't look like UI framework (templates + some MVC + components library) but more like set of small helper libs for JS.

<comment><USER23> This is satire, VanillaJS is literally JavaScript. The import file is empty.

</comment></comment></comment></comment></comment><comment><USER33> I wish Google would develop protocols instead of frameworks, and only then put Dart (and others) on top. This way people would be able to choose their language on top, e.g. I'd love to use Elm, for one. No runtime errors, no mutability, opinionated built-in FRPish architecture. Dart has none of that.

<comment><USER34> That's quite a tall order since any general-purpose UI framework is going to have a huge API surface area.

But Elm runs in a browser, so it should work fine on Chromebooks.

I guess you could use the Linux container for Elm development, but I don't know what the rough edges are for doing web development that way.

<comment><USER33> Well, HTML is one example of general-purpose UI framework that's separate from JavaScript in a way that lets you replace JS with something else. Why can't something similar be done for Flutter components?

There's an example of elm-bootstrap library, where bootstrap components were reused, but Elm logic was added on top instead of JS one. Why wouldn't refactoring Flutter into Flutter-core similarly work?

Also, I didn't understand your comment about the container and how it's related to this.

<comment><USER34> The HTML DOM API is in no way separate from JavaScript. It's a mutable API that's tied into the JavaScript garbage collector, uses inheritance (unlike some languages) and uses JavaScript values in method parameters and return values. The only way to access it (once a web page is loaded) is through JavaScript.

To interact with it from another language, you need at least an adapter layer that does foreign function calls to JavaScript, or you need to compile the entire language to JavaScript like Elm does. Elm works because Elm is specifically designed to compile to JavaScript and they put a lot of effort into making it smooth. (And bootstrap is part of the same JavaScript ecosystem.)

In theory you could do the same thing for Flutter by compiling some other language to Dart. It seems unlikely anyone would make the effort any time soon, though.

Regarding the Linux container, it's not directly related; I was just pointing out how someone might do Elm development on a Chromebook.

</comment></comment></comment></comment><comment><USER35> What is the advantage of writing a Flutter app over a PWA or something like react-native?

<comment><USER36> Why don't you take literally 5 seconds to google that basic question? That question is answered on every flutter article, including OP.

<comment><USER35> I did read the article and reviewing it again and searching for "react," "progressive," and "pwa" returns zero results.

I think the article opens by stating a pretty strong disadvantage:

Flutter apps run as Android apps and so are less "native" than something like a PWA or react app, which would just run in the browser.

The article doesn't address my concern at all and I was hoping to have some constructive feedback about that concern, which did not happen.

<comment><USER18> I'm interested to try flutter out on chromeos, I might get a chromebox, the acer and hp i5 U series are the recommended ones for Android development. Developing flutter without the need for a simulator or a phone connected via usb, is cool. Maybe the next step is develope android flutter apps on android.

With regards PWAs, maybe more so on mobile, flutter apps are AOT, Ahead Of Time, compiled for release so they should have better start up times than apps that run on a vm.

The flutter wiki has stuff on the diffent modes. [https://github.com/flutter/flutter/wiki/Flutter%27s-modes](https://github.com/flutter/flutter/wiki/Flutter%27s-modes)

Debug mode "Optimizes for fast develop/run cycles." runs on the Dart VM and allows for statefull hot reload.</comment></comment></comment></comment>


I want to pay for a social network - <AUTHOR> http://sefsar.com/post/19716868388/the-last-word

<comment><USER2> I would also consider paying and for the reasons you mention. However, how much would you pay? i would want the service to be as good as the free alternatives. In order to drive genuine innovation and great features, the site/business would need the resources to attract the top talent. Therefore, would you be prepared to pay _enough_ considering the competition is bankrolled by big advertisers?

<comment><AUTHOR> For instance, at present Facebook makes just shy of $5 per user per year.

I think $1 per month could be reasonable, Spotify charges 5 - 10 times that. The idea is that you're changing the priority from building an amazing ad network to building an amazing social network.

The things that are good for users are nearly always bad for advertisers. Such as total privacy.</comment></comment>


Schedule listings for thousands of public radio stations and programs, worldwide - <AUTHOR> http://www.publicradiofan.com/ <comment><USER2> I need depositories like this for many things.

<comment><USER3> like?</comment></comment>


Saying Goodbye To Windows 8 - <AUTHOR> http://techcrunch.com/2014/08/10/saying-goodbye-to-windows-8/ <comment><USER2> EDIT: Guys, just because typing "Visual Studio" works for you doesn't mean I'm lying - I just made the mistake of saying "Visual Studio" instead of "Visual Studio Express", I really do need to type "VS" to find it. Typing "Visual Studio" nets me one shortcut: "Try Other Visual Studio 2012 products". I can share a screenshot as proof if you want.

My biggest (actually, only real) issue with my Windows 8.1 installation is with the type-to-search feature not being good enough.

Let's say I want to start visual studio. You'd expect Windows Key + "Vis" \+ autocomplete to work. Nope. Visual Studio uses "VS 2012" as the shortcut name. Visual Studio is the name of the start menu _folder_ , but the _shortcuts_ themselves have names that are very unclear and unsearchable on their own.

This is not limited to Visual Studio, lots of software (old and new) does this.

Similarly, a lot of older software seems to simply have "uninstall" as a shortcut, without the name of the program. So typing "uninstall" will give me dozens of icons without any context about what program it belongs to. If I want to uninstall a program (without going through "Add or Remove Programs") I have to manually look up the start menu folder and click on the uninstall icon.

The fix is easy enough: include start menu _folders_ in the searching. First as labels giving context to search results. Second as search queries that can be done directly, or (ideally but more difficult to implement) as contextual information aiding the search. So something like "[program name] uninstall" resulting in the program name folder, the contents of which are then filtered to the shortcut with "uninstall" in the name.

<comment><USER3> I never noticed this. When I type "vis", I always get VS 2013, 2012, etc ... shortcuts.

In win 8 you have to explicitly search for files vs control panel items, and in 8.1 they removed that annoying feature, so you can just use win key + s for everything. It just works.

<comment><USER4> Yeah, this is a pain in Linux too. The menu item "Document Viewer" was actually "evince." Say what? You could hunt the menu to see the command to be able to call it. Until Ubuntu did away with the menu.

<comment><USER5> This.

I'm liking MacOS X. It's had "preview" in it since day one and it just works. It also displays PDF ToC nicely as well and allows annotations.

Ubuntu always confuses the crap out of me from a desktop perspective. Fortunately I only have two machines deployed with it on now and they are headless servers.

</comment></comment></comment></comment><comment><USER6> I would have preferred them to work on these new ideas to make them work better.

The idea of modern UI was good. The traditional freely movable windows are usually not using the desktop space very efficiently unless you spend a lot of time positioning them or use some third party utilities and configure them properly. I have a feeling that especially "normal users" very seldom use for example two windows side-by-side - even though this might be good for productivity.

The modern UI style was more like a tiling window manager. 8.1 made it possible to split the screen vertically among n applications. It would have been nice to see them explore this further to allow other kind of configurations as well.

The main problem with modern UI from my perspective was the lack of application. There was only few modern UI apps available and most of them pretty useless, tiny utilities. Now Office (even Outlook), no Visual Studio etc. A "simple" fix would have been to allow users to run the old applications the same way as modern UI apps.

<comment><USER7> As a tiling window manager it could have been very good. You could have had slots that matched the Windows Phone aspect ratios instead of dividing the screen vertically. The slots could feel like a mobile app whilst the rest of the screen would feel like a normal windows desktop.

</comment></comment><comment><USER8> I don't know why you say goodbye, did I say hello?

Here's hoping that Windows 9 will be good enough for me to move away from 7. I just want to dual-boot it for gaming, I have zero patience to deal with their new UI paradigms.

<comment><USER9> So Microsoft will get you to pay for something that's essentially Windows 7 SP3, and it's biggest feature is that "it looks like Windows 7 _again_ "? Even if I liked Windows 9, I wouldn't buy it in principle.

<comment><USER10> OSX got people to pay for the same OS, slightly updated, for a decade and a half. Only recently did they make updates free. Windows is quite exclusive in making major changes between OS releases (and now quite exclusive in charging for them).

</comment></comment></comment><comment><USER11> The article currently mentions this in the "Update":

> Update: Your author is a moron. Microsoft did in fact promise this [running > Metro apps in windowed-fashion] in the future. I had my wires crossed.

<comment><USER12> It is still there. I wonder if it's a joke from an editor?

</comment></comment><comment><USER13> Best productivity shortcuts (even when on 2 screens)

{Windows Key} + {Arrow Left}

{Windows Key} + {Arrow Right} (hit multiple times, to transfer a screen from left to right)

{Windows Key} + {Arrow Down}

{Windows Key} + {Arrow Up}

I seriously don't care about any of the other windows tools as i don't use it.

<comment><USER14> Like the others have mentioned, use <Shift> to add extra awesome.

Also, I would love it if Microsoft implemented a way of having multiple desktops, so I could switch between them with a shortcut like those.

I am sure there is a possible 3rd party solution though?

<comment><USER15> There are already strong rumors that multiple desktops will be a feature in the new windows9. In an interview on the /build/ 2014 some MS devs said that now that they have made a dumb-ui for the common consumer they can finally improve the desktop to the needs of power-users

</comment></comment></comment><comment><USER16> Sold my beloved SurfacePro on eBay last week. It is a great piece of hardware, but .. in one word: Windoze8, alas

As a grown up PC fanboy, I found myself work/dev more efficient with less frustration on mac nowadays. Operating system is a productivity tool, and Windows has turn into this emo teen girl I can not recognize or share an easy conversation with anymore.

Picked up a refurbished MBA to keep me coding on the move.

<comment><USER17> What were you productivity issues? What made coding so difficult? I use a Surface Pro 2 daily. Its like a Netbook replacement for me as it is very mobile and still capable and with the docking station at home i have a full keyboard and big screen.

<comment><USER5> Just a note from me, as I tried one for a week.

Not enough RAM!

My 2011 MBP has 16Gb of RAM and my 2014 HP Z420 has 32Gb of RAM.

I can barely spin up our product on a machine with 8Gb of RAM without killing everything else I'm doing on first. Then SQL Server doesn't give the RAM back inevitably leading to the service being restarted to release it. Granted this is a big product but in this day and age, 8Gb shouldn't be the cap for anything.

Also both the keyboards were shitty and the thing crashed occasionally (blue screen) when I tried plugging it into my desktop monitor - an old 22" Dell TFT.

The big thing for me, is that I actually had a better experience using my Android tablet with a keyboard/mouse plugged in and remote desktop to my workstation in the office. That kills the massively powerful portable computer use case dead for me. Was perfectly usable over a 3G connection as well.

<comment><USER18> I wonder what the heck are you developing :) .

Maybe a solution would be to have SQL Server on a virtual machine, or use an Azure SQL instance (in my very limited trial latency was a bit annoying though).

<comment><USER5> 15 years of legacy crap :)

I need a full data volume available as a lot of the stuff requires heavy performance testing.

</comment></comment></comment></comment></comment><comment><USER19> Real or not, that screenshot looks awfully nice. I wouldn't mind having live tiles on the Start Menu.

<comment><USER20> I love the start menu too. Though I don't understand how it fits in if they're keeping the start screen too...

<comment><USER21> Perhaps they'll allow the use of both through some settings option.

</comment></comment></comment><comment><USER22> Ugh, yet another version of windows I need to help my dad transition to. He was happily using Windows XP until a month ago, when his computer stopped working and I finally convinced him to switch to the new Windows 8 laptop I got him for Christmas last year.

He's a very smart guy, and yet switching from Windows XP to Windows 8 was incredibly unintuitive for him. Now just when he's getting used to it, he needs to switch to another version?

Microsoft is doing a great job of alienating its users by forcing them into new releases with constantly changing, unintuitive "features." Most people I've talked to who use windows were perfectly happy with Windows XP, and the subsequent releases have been definite downgrades in terms of usability.

How long before non-Enterprise/government Windows users just start switching to Mac? If Apple released a $500 laptop, I imagine they would capture a massive percentage of the non-Enterprise Windows market. It's only a matter of time before Apple opens its doors to budget consumers. Personally, I can't wait.

</comment><comment><USER23> So is the "every other Windows is good" rule remaining true? [https://news.ycombinator.com/item?id=4415403](https://news.ycombinator.com/item?id=4415403) / [http://i.imgur.com/hVhvEhr.jpg](http://i.imgur.com/hVhvEhr.jpg)

I've held back on win8 initially. I was going to try 8.1 once I found free time but now I feel like waiting for the beta of 9

<comment><USER24> Considering you didn't list Windows 98 SE (which was a stand-alone release) and called Windows 95 "shit" (which is laughable if you were around in 1995 when relatively speaking it was far from "shit," pretty groundbreaking frankly), no.

There is no pattern, people just alter history because they want there to be a pattern. We also have to ignore NT4, 2000, and the servers also.

<comment><USER23> Not my graphic, however I agree with it as I used to be on the student helpdesk at college when we had to support 3.1, 95, and 98. Naturally our individual call center team's experience is an insignificant sample size.

I don't think anyone believes it is actually every other exact release (hence the original quotes), but the feeling/humor is shared. Sorry you disagree.

</comment></comment></comment><comment><USER25> Obligatory question: can you maximize console window in Win9? It will be 20 years soon and I am still waiting for bug fix.

<comment><USER26> You're not waiting for a bug fix but for a feature to be implemented. A feature that might have compatibility constraints, some cost attached to it and might lead to another feature being cut because there's only finite time.

How many average users see and use a console window regularly?

</comment></comment><comment><USER27> Wow, talk about low expectations. "We're pretty sure the _next_ version will remove the misfeatures the current version added!"

</comment><comment><USER28> I said goodbye to Windows XP, clearly I was ahead of the game ;)

</comment><comment><USER29> Hmm, for me it is ok if windows 8 will say good bye, because windows 7 for me is best stable OS and User friendly than other OS

</comment><comment><USER9> I think the 8 in the title is unnecessary.</comment>


Ask HN: Getting into masters at Stanford/MIT - <AUTHOR>

One of the things that I really want to do is to go to a university of the likes of Stanford and MIT. I don't want to go to them to say I have been there, but to see what the atmosphere is like. I am bad at explaining, but PG has a kind of relevant essay[1]. My problem is that I have already done my bachelors (in EE, finished last year). It was done in a not very highly ranked uni in Australia and my GPA wasn't amazing - its about equivalent to 3.5/4.<p>I know HN is full of people who have been to these universities so I thought I would ask here for advice. My current plan is to try out some ambitious side project with high altitude UAVs (which I wanted to do regardless) and somehow use that in my application. But really I have no idea.<p>[1] http://www.paulgraham.com/cities.html <comment><USER2> Went to undergrad at Stanford, and spent a few years editing admissions essays to grad programs at the top tier schools as a side gig.

Admissions are extremely (mindblowingly) competitive, and without a stellar GPA I would suggest you're on the right track in focusing on high quality real world experience. Obviously if you don't end up in grad school, the experience will benefit you either way.

As to the atmosphere, I think you'll find Stanford and MIT, and the others, are very different from one another.</comment>


Why don't I like objects? - <AUTHOR>

I have been writing programs for 17 years, a 'professional developer' for 13 years, an academic computer scientist, a hacker, and a systems guy. I have never admitted it, but despite years of professional OO development, I have never really "gotten" the object model, nor do I ever expect to. Am I missing something HN? Is there something wrong with me? Or am I just a wannabe lisper who needs to see the light? <comment><USER2> Maybe one part of the reason you hate them is that they have been associated with so much marketing bullshit and pseudo-religion. It helps to realize that actually there is not one unitary concept of what 'OO' means. You can defeat your object allergy if you stop engaging with people's rhetoric and ideology about objects, and just evaluate particular language features individually.

If the same task can be done with a function/sub or with an object, objects typically add two problems:

1\. Added boilerplate: before I do work I typically instantiate an object, etc. In many cases it is really obvious that this is just adding pointless lines of code and pointless plumbing. It doesn't help that the big OO languages have accreted so many bad, verbose coders and cargo-cult methodologies, enhancing the extra-boilerplate effect.

2\. Unlike locals inside a function, objects' mutable state is accessible in multiple places at multiple times (and merely using getters and setters does not fundamentally change this - and add even more ridiculous boilerplate of the sort which causes people to have gigantic IDEs writing highly repetitive code for them)

Here's what you are missing: objects are just a kind of mini-program, with a more flexible interface and execution model than subprocesses. It's a generalization of the subroutine and largely equivalent to a coroutine.

Even if that doesn't work for you, they are still handy as 'bundles': e.g. a point in 3-space with x, y, z components AND an attached set of methods for doing normal things like dot products, all passed around together. This isn't necessary, but it can make things neater just like bundling certain wires together into a cable.

Evaluate them like 'here is this thing, what can it be used for?' You might decide you like objects, or perhaps just that they have their place.

<comment><AUTHOR> I suppose my allergy is to the verbosity and code vomit that comes out in most production java/C++ and even OO Python code I've seen.

In C I would use structs and pass around pointers, then have functions that take those as arguments. This obviously sucks in the asynchronous case, but that paradigm has always felt more natural to me.

Put it another way: two examples. A) class Point with locals x,y,z and method 'distance' which takes a parameter that is another point. B) struct Point with components x,y,z. Then we have a function 'distance' which takes pointers to two Points.

Case B's - int d = distance(p1,p2); feels way more natural to me than Case A's - int d = p1.distance(p2);

Totally agree with the toolbox mentality, I've just rarely felt like the object hammer has felt like the right tool.

</comment></comment><comment><USER3> There is nothing wrong in not liking OO. But OO is an ambiguously defined paradigm and unlike functional programming doesn't really have a definitive calculus. However, Peter Landin did show that untyped OO could be reduced to lambda calculus.

I think there is a difference between OO as it is practiced and interpreted by mainstream languages such as Java, C++ and how it was originally intended to work (a la Smalltalk, Self). Interestingly as someone who got started with Scheme, I found that Javascript actually helped me understand OO and FP in a more integrated way: Functions/closures as these hybrid Objects or vice versa Objects as Functions/closures. Objects were intended to just abstract away the structure of data and state (but I see lots of OO that treats objects like data structures with lots of mutable state) whereas with functions they are coupled to the representation of the data structure, which is fine if there is either a small set of data structures (lists/trees for Lisp/Scheme) or the domain you're modeling has an optimal stable data representation.

Also after looking at Self, I think class based OO is a more difficult starting point into OO. Inheritance is one modeling method of OO but is way over used. And cause me all sorts of frustration when I started OO.

So if you think you don't like OO, you have to really define for yourself what OO to you means. It means a lot of things to different people. For java programmers it means making everything into classes and interfaces, lots of types and hierarchies, no lambdas(yet?). Some assume the difference between FP and OO is mutable state or first-class-functions. But I don't believe so.

It is really an approach to abstraction: does the structure of the data change more than the operations on that data, then OO is better suited there.

</comment><comment><USER4> Some examples of what you mean would help.

Anything can be overused; I've seen "object models" that almost make me cry from their unnecessary complexity. Maybe you've just seen too many examples that took OO to an extreme, and those soured your taste for the whole style of programming.

Objects _can_ be used judiciously and combined with other programming styles to do very powerful things. Even in 2011 it's not shameful to fall back on a plain C function or data structure in cases where objects don't really add anything of value (not that many programmers seem to, but I digress).

It also depends on the language and what the code does. In C++ for instance, if you happen to be working in code that relies on the C++ exceptions model (ignoring for the moment that some argue quite correctly to avoid C++ exceptions), you _must_ use objects in order for cleanup code to be executed in every possible case. So although object-oriented programming is often just a matter of convenience or clean design or whatever, it can also be a requirement for correct behavior.

</comment><comment><USER5> Is it objects themselves or their use that you don't like?

90% of objects I come across at work are superfluous cargo-cult bullshit which, in being presented in the name of best practice, pose a very real threat to the space-irony continuum. IMHO, of course.

Oblig: <http://xkcd.com/974/>

</comment><comment><USER6> One way of seeing is that OO design and programming is an outgrowth of structured design and programming. So if you've never done it, try and design a large system using only structured techniques.

Another way of seeing is that while OO design solves some problems, it introduces a whole bunch of new ones, e.g.:

Subtyping, Subclassing, and Trouble with OOP <http://okmij.org/ftp/Computation/Subtyping/>

<http://harmful.cat-v.org/software/OO_programming/>

So yeah, you might turn out to be a Lisper (or an MLer or Haskeller) and you just don't know it yet.

</comment><comment><USER7> While I'm not a big fan of the OO paradigm, I program functionally when I can, I think it makes a lot of sense. In my mind, the difference between OO and regular old imperative programming is where "functions" go. In imperative programs, functions generally operate "on" data, whereas in object oriented programs, functions/methods "are" data.

I think that makes things convenient sometimes, because objects by default tend to know what to do with themselves. I guess OO gives you ad hoc polymorphism for free.

Additionally, making everything an object does have the benefit of giving everything a uniform interface vis a vis message passing.

<comment><AUTHOR> The consistent interface point is well taken, and I think that's the main reason for OO's commercial success. If you force everyone to be verbose in their interface definitions, code is far less likely to break across distributed teams of devs.

I take issue with your "functions/methods are data." remark. They are not. If they were, they'd be mutable, and I could process them, make copies of them, and change them the way I do other data. This is the wannabe lisper in me getting out, but there's a world of difference between treating your methods as data that you can pass around, and having them be data items that you can actually transform.

In C I can pass function pointers around, and do with some regularity, without making everything in my programs objects.

I realize that some OO languages have this ability, but the mainstream ones (java, C++, python, ruby) generally do not.

<comment><USER7> I worded that wrong. I'm a lisper as well. I should have said "The interface for functions/data is uniform across both." That's much more verbose. It's why I quoted the "are" I used in my initial post.

My original post was also incomplete. When I said "everything is an object," I meant in a scope larger than the language itself. If you've ever played around in a smalltalk environment, you quickly realize how powerful the OOP idea is, when the programming language becomes a uniform interface for EVERYTHING. You can literally send messages to the objects that make up the environment. I can create and modify a GUI program live simply by sending messages to the Window class. OOP is very powerful when it's turtles all the way down.

To be fair, I didn't "get" OOP until I did Smalltalk. Honestly, everything else SUCKS compared to it. All the same, learning Smalltalk gave me an appreciation for the paradigm and I grokked it in a way I hadn't before.

Also, since you're a Lisper, the third chapter of Structure and Interpretation of Computer Programs is implicitly about Object Oriented Programming. It's surprisingly helpful. It focuses on "message passing" and how it affects program design. It also addresses how OOP creates an informal type system and the problems associated with that. It manages to do all of this without ever talking about OOP by name, or bringing up anything stupid like inheritance.

I can't really comment on your C comment. While I "know" C, I've never done any extensive programming in the language (sadly,) so I'm not really qualified to comment.

<comment><AUTHOR> Thanks for the info - I'll give Smalltalk a look.

</comment></comment></comment></comment><comment><USER8> I'm with you. I have twenty one years earning my living as a programmer and I still don't particularly like objects.

There are times where they work really well, especially for representing domain concepts, but procedural code makes more sense to me in many places where the actual computing takes place.

Time for Objects Anonymous perhaps? "Hello, my name is Simon and I don't like objects."

(I suppose I should reassure folks that I understand objects ... I'm addressing whether I like them and see them as the sliced-bread of programming.)

</comment><comment><USER9> OO is just one of the programming paradigms, somehow it has managed to dominate all others in the mainstream languages. I'm trying to avoid using OO myself, but very often it's just impossible.

</comment><comment><USER10> what don't you "get" about it? or do you get it but not find it beneficial?

<comment><AUTHOR> Maybe a little hard to describe, but why should everything be an object? Why should everything I want to operate on have to have methods? Etc.

I actually really see the benefit of inheritance in many OO settings, in that it encourages abstraction. But, what's always baffled me is the insistence on the Nouns as a central point of focus in our programs.

To throw more heresy on the fire, I think the MVC paradigm is absolute crap, and don't want to see it ever again if I can avoid it.

<comment><USER11> You can just think of objects as containers, if you have a bunch of functions that are related, but don't need to hold a specific "state" around them, then the class is essentially just a grouping (i.e. classes that just hold static methods), if nothing else, having them in a static class makes code more readable and organized, IMO. Its always been my belief that OO makes code easier to understand in a large codebase but I would agree that not everything necessarily fits cleanly into an object, however I can't envision any other way of making a large project work for a higher level business application, I can see why they may not be as needed in lower level programming.

You mention that you're a systems guy, so maybe the type of programming you do isn't necessarily best suited for OO, but for some domains, like business- specific web apps I don't think there would be another logical way of organization, it is a form of fairly "high abstraction" from the 1's and 0's so it only lends itself to certain uses

<comment><USER2> If you write some gnarly asynchronous GUI code, it is a lot easier to point to why it is nice to have objects.

(And MVC, for that matter).

I think this is part of why objects blew up in the 80s

</comment></comment></comment></comment><comment> saiko-chriskun not very huge on the OO way of things myself, so you're not alone ;)</comment>


Netflix is considering additional original content - <AUTHOR> http://www.fastcompany.com/1749773/netflix-to-expand-into-more-original-content-beyond-house-of-cards

<comment><USER2> Netflix streaming has certainly replaced my "lets see whats on to kill an hour" on TV moments. So in that regard I think they completely win there.

Now whether or not they will generate the kind of cash a production company expects for original content (initial episode price, franchising price, dvd revenues, streaming (or broadcasting) revenues. Remains to be seen.

</comment><comment><USER3> Not really an article. It is a few known facts from the Monday Netflix announcement padded with a large stock image of a house of cards eating nearly 1/2 of the article's length.</comment>