Google's Answer to Siri Thinks Ahead - <AUTHOR> http://www.technologyreview.com/news/429345/googles-answer-to-siri-thinks-ahead/ <comment><USER2> I have been using Google Now for a few months now and it has been amazing.

Example 1: One night I was going to a Roots concert and I went through the venue's website on my Google Chrome on my laptop. Then, right around concert time, Google Now alerted me to what subway I should take to get there.

Example 2: I searched for the Phillies score once on my tablet, and now my phone tells me about the score of each game. Again, I never asked.

Example 3: After 2 days, Google Now guessed where I lived/worked and what time I left for work most days. I don't use any check-in services or anything like that it really just guessed. Then it started telling me what time I'd have to leave home/work to get there on time based on the current subway schedule. Exactly what I wanted, never asked.

<comment><USER3> Really cool, but am I the only one who finds this creepy as hell?

<comment><USER4> I'm not trying to be glib, but: so what? Some people will use it, because it will provide value to them. I may be one of them. Kids born today will, if nothing changes, think this stuff is absolutely normal.

Your reaction is a valid one, and I have my limits too, but I think we're beyond the point of merely acknowledging that it's creepy. Please go further: Where is the line? Why? And what are you willing to do about it?

<comment><USER5> What happens when you perform a one-off search? For example, lets say a friend asks if you know the score to the Yankees game? You really have no interest in baseball, but you do the search anyhow. Should that really influence your Google Now profile?

<comment><USER2> It does, but you can always remove the team fairly easily.

</comment></comment></comment></comment></comment><comment><USER6> When I saw the keynote introducing Google Now, the first thing I thought of was that concept video they used to introduce Glass [1].

For example, in the video, the user looked at a subway station entrance, and the glasses showed a rider alert that the station was closed due to a train problem.

I have to imagine that Google Now will be an important information engine behind the "HUD" displays in Glass. Glass is aiming to also follow that principle of offering you information when it's contextually-relevant, and trying to get out of the way otherwise.

[1] <http://www.youtube.com/watch?v=9c6W4CCU9M4>

</comment><comment><USER7> So far Google Now is pretty impressive. I love that it will post a reminder in my notifications before an event telling me when I have to leave to make it there on time based on current traffic conditions.

<comment><USER8> This can have some amusing results when the input isn't as Google expects. For example, in my office the conference rooms are named after streets, some of which are also cities. So when I have a 2pm meeting in Folsom, I get a notification a couple of hours before telling me I should leave soon so I can make it to Folsom, CA in time.

<comment><USER9> That's cute. Is there a way to tell Google that you mean a different "Folsom"?

Google's Knowledge Graph does have a concept of name ambiguity (as does Wikipedia; it has disambiguation pages). For example, if I do a Google search for "Taj Mahal", the right sidebar shows details about the landmark in India, but below that it also offers to give me more information about the Trump Taj Mahal Casino Resort, or Taj Mahal the musician.

<comment><USER10> If Google new there was a conference room in a persons current building named the location of an event I would bet it would be smart enough to use that instead. Maybe as more places start using Google indoor mapping this particular problem will be fixed. Most of the errors will likely just be a lack of context provided to Google or a lack of information available in a format Google can access.

</comment></comment></comment></comment><comment><USER11> While this is incredibly smart and a very impressive application of machine learning, does anyone actually want this? I'm quite capable of looking at traffic reports or bus times myself when I need to. I actually think I'd find this pretty annoying, if my phone told me sports score before I'd had a chance to watch the game, or if it started second guessing me at every turn. This has the feel of valet parking, while it sounds fine and convenient and luxurious, in reality I find it very undesirable and will avoid places that have it.

There's something very much at the core of life in experiencing it for ourselves without having a computer to hand hold us the whole time and remind us it's time leave for work. I don't find it creepy, just embarrassing to feel like I need to be babied so much by technology.

<comment><USER12> Earlier browsers had one address box, and one search box.

Chrome moved both together - and many people liked it.

I'm sure you like Google Instant and Google Suggest - with the results/search terms showing up even as you type - allowing you to refine your query on the fly even before you complete it!

Google Now is one big leap in the same direction.

I search for a lot of things, and I would like instant access to a lot of things that I've searched for before.

If my phone can figure out what I need access to 'Now' because I've searched for it before or it knows my routing - I say bring it on - make my life easier - and give me more time to do my stuff instead of handling logistics and trivia.

Look at the examples - giving you transit timings when you enter a bus-stop, or giving you traffic conditions to your office or next appointment, or driving directions to the place you searched for. Why not using the super computer in your pocket for that instead of focusing your mind on it and distracting you from your life?

And either you're watching the game NOW, and therefore the score is not relevant to you, or you're not able to watch the game, so the scores are useful. Presumably, the number of people who time-shift a live game is not that high. Those folks can simply delete the card the first time and never see it again.

Google Now is adding a rich information layer to your life via your phone. You can ignore it or you can use it.

<comment><USER13> I actually hate Google Instant. I like to start typing before I'm done looking at what came up and I like to take notes in the search field. I wish I could turn it off, but that setting never seems to persist across sessions.

</comment></comment></comment><comment><USER4> Interesting. I'm thinking that Android vs Apple may be decided on the simple fact that sufficiently-better AI trumps any-amount-better UI. Lawsuits and supposed openness be damned.

<comment><USER14> That actually seems like a really interesting observation. I've never specifically thought of systems in terms of UI v. AI before, but it makes sense if you think of all operations in any computational system as the result of data manipulation by some "intelligence", and user interface as more specifically the interface between that data and user intelligence.

In a computational system, computational intelligence will be used in all instances possible, until such a point as it is either insufficiently advanced or insufficiently informed to continue without making a call to the user intelligence. Thus, the more advanced a computational intelligence and the more information at its disposal, the less interface with user intelligence necessary. By that reasoning, it follows that the ideal or perfect interface would be one which treats the user purely as a data source (more precisely, as the absolute last data source in the pecking order – one to use when absolutely no other data source accessible could possibly provide the same data or make the same decision with reasonable confidence).

In that sense, it's likely that going forward we'll see UIs moving more in the direction of Now / Wolfram Alpha / Siri and using such mechanisms to manipulate and return greater amounts of information.

<comment><USER14> A couple more thoughts:

* This idea of data being acted upon by intelligences is essentially a generalisation of the canonical algorithms and data structures.

* The argument presented would also explain why anyone accustomed to a certain command line interface will swear by it over most graphical interfaces to the same system (the reason being that commands are usually a much more direct interface between the system and the user intelligence).

<comment><USER4> One more detail to throw in: the user as data source will move toward expressing what they want rather than how to get it.

</comment></comment></comment></comment><comment><USER15> I think Android 4.1 is finally something like the "agents" people have been envisioning for over a decade.

The possibilities on this are endless and currently Google is about the only company that is able to do it (from my point of view). Google knows my calendar, Google knows my contacts, Google knows pretty much everything I buy online (because they handle all my emails), Google knows about my travel plans (email again), Google know what I've been looking, where I've been (Latitude) and so on.

There could be also huge opportunities for money making in all this. One good question is should they keep all this just to themselves or would it be better to try to create an ecosystem for applications.

Let's the take travel plans as an example. It would be fairly easy for Google to mine my calendar and emails to figure out my travel plans. This would open up opportunities in offering me flight upgrades and other travel related services. Google could either try to use this information themselves, they could allow advertisers to use it, or they could expose it to 3rd party apps (of course with my consent). Keeping with the agent idea these things would be much more than just highly targeted ads. They could be direct offers, like "Say Yes Please, to upgrade your flight from Helsinki to Barcelona to business class for 150€".

</comment><comment><USER16> So I can steal someone's phone, and just have it remind me of all that user's private info by walking around? Nifty.

Edit: I know the above is glib, and I'm not trying to rain on the parade of unbelievable achievements in data-wrangling that are going on here (I'd love to hear how it's done computationally), but I don't like knowing that all the privacy controls something like this deserves will be rolled out hastily in response to someone's life inevitably being ruined by the careless trust of one's life to a device that can fall out of their pocket. It's easy for the savvier of us on this site to say "serves them for not thinking to take precautions", but when we make it so _easy_ to give a third party the reins, even we get complacent.

<comment><USER17> That isn't a problem with Google Now, that's a problem with smartphones generally. Even without Google Now, you can log onto someone's Facebook account, read their emails, read their texts, view their calendar, etc.

</comment></comment><comment><USER18> With a little imagination, it's not hard to see why some are nervous about a search engine that stores every interaction in an attempt to profile its users and guess their intentions. Don your finest tin foil hat as we channel surf some internet TV stations from the future:

LIGHTS DIM; THE GLOW OF A COMPUTER SCREEN FILLS THE ROOM

"In what is thought to be a world-first, a man's life was saved late Friday following automated intervention by a search engine.

"Close friends of Mr Exampleson, who BBC News can now reveal were the only members of his "Best Friends" circle on Boogle Plus, said they were able to get to the Beachy Head cliffs in Southern England five minutes before his arrival thanks only to an email from a 'Concerned Partner'.

"The email said that their friend was displaying worrying behaviour, that he had personally disclosed his intention to take his own life, that he had planned a route to Beachy Head with an estimated arrival time of 19:27, and that he was currently on the A267 heading South at a speed of 57MPH.

"A spokesperson from Boogle Ireland this morning said that they have long been publishing helpline numbers on their website when a user enters certain search terms, and that this was simply an extension of that service.

"Privacy advocate Mr Foilhatison joins us now to discuss what this means for..."

SWITCH CHANNEL

"...surrounded the building and ordered the suspect to come out with his hands up. When questioned, it emerged that the man was famous writer Real Steveyson, who is staying in the area to write his hotly anticipated thriller, _Cryptonomnomnom_. Mr Steveyson has since been released with a public apology. Police are now said to be following a variety of other leads they hope will 'prove to be less of a hopeless time suck'.

"Asked why he felt detectives had singled him out and surrounded him in his remote location, Mr Steveyson said that he had been searching Boogle over a period of two months for various methods to reduce DNA evidence at crime scenes for his upcoming book. He had also been Boogling for local peat bogs, completely unaware of the recent bodies that police have pulled from them. Mr Steveyson suspects that Boogle may now be sharing live search information with local law enforcement agencies in a bid to both pre-empt crime and increase conviction rates. The idea sounds so far-fetched that he plans to make it the subject of his next novel, which he hopes to publish for the first time via telepathic transfer using the new...

SWITCH CHANNEL

"We're here in the diamond district where Miss Caratson is closing her shop for the last time. Tell us, Miss Caratson, is it the same story for you as it has been for the others?"

"Sure is! I haven't sold a single engagement ring since Boogle Hive got popular."

"Can you explain why?"

"Boogle talks my customers out of the purchase! Somehow it detects that they're in a jewellers. And that's when it gets really weird. It always starts the same way: they get that dreaded audio alert. That's when I know I've lost the sale.

"One time, it told a young man that, based on a language analysis of all correspondence with his partner, there was a 76% chance that his fiancé-to-be was only interested in him for his large Boogle Wallet balance, so he might want to hold off on his big plans.

"Another time, Boogle tells my customer that, based on something called their "Boogle Lifestyle Score", they probably weren't the marrying kind. Then it reels off a list of 12 ways they'd have much more fun with the same amount of money, and it lets them know that six of the 12 things are within a five- minute walk.

"And don't get me started on the glasses! Guys using those Boogle Glasses always get told that Boogle has found the same ring they're looking at 500 bucks cheaper three shops down. It's a race to the bottom. I just can't win.

"Some of us tried to circumvent it by installing Faraday shielding and blocking the damn system altogether, but Boogle just warns people to avoid us before they even get in the door. It's over. I'm done!"

"What will you do now, Miss Caratson?"

"Isn't it obvious? I'm going to do what everyone else is doing. I'm going to start a..."

SCREEN DIMS, AMBIENT LIGHTS FLICKER ON

Yes, some of this may be a little far-fetched, but the idea of a computer network attempting to infer intentions based on a lifetime of intimate accumulated knowledge _is_ troubling for many. Even if such a system has the potential to be incredibly useful, I suspect that the amount of blind trust it demands would make it a challenge to adopt for more than a few of us.

<comment><USER19> Wow, that's a pretty good one. Why don't you expand it a little and make it into a short story :)

</comment></comment><comment><USER20> Recently, my parents went on a trip to London. Before they returned, I received a Google Now card with their flight information and estimated time of arrival. I am not sure if they gathered this info from email or sms. It was somewhat creepy, but certainly helpful and convenient (I needed to call them before they left).

I have been quite pleased with Google Now and use it much more than I ever used any of the other Siri clones. When I am busy, I forget things easily and it is nice when Google just gives me helpful information to keep me on track.

</comment><comment><USER21> Interesting, would appear the AI is based upon your email and general google collected info upon you. With that in mind I better make sure I'm catching all the spam comming in as one walk near Soho in London and things could get interesting.

From what I have played with google now and its card alerts it has so far impressed me with bus options to get home, though mostly when I'm upon a bus already and it offers alternatives. If the bus breaks down then I'm covered is how I see it in a thru positive blinkers.

</comment><comment><USER22> The trick will be for them to be helpful without being creepy.

<comment><USER23> There is a certain threshold where helpfulness and creepiness cross, specifically when it will be so helpful that creepiness will need to be ignored. At that point it becomes dangerous to rely on it (see: drones and their exploding popularity in civilian applications).

</comment></comment><comment><USER12> Google Now is awesome.

Search for a place on Google - card shows up with driving directions on phone.

Morning and evening, shows up driving time/directions for work/home.

<comment><USER24> Why are you people thinking this is better than Microsoft Words annoying Clippy? "It seems like you are writing a letter..."

I already know how to get to work every day.

<comment><USER12> It's out of the way - at best there's an extra notification, or it's one card in Google Now - when/if you go there.

Extra information when presented unobtrusively is not annoying.

a. Do you know how long it's going to take today? If there're any specific traffic issues that are causing delays on your usual route?

b. What if you have an appointment today to a different place than work - wouldn't you like to know the route there?

c. If you take transit, wouldn't you like to see bus routes when you reach the bus stop, instead of manually searching for it?

Think of it as your Personal Assistant... Not sure why you wouldn't want one that's always with you and can be flicked away if it's not what you want [permanently or only this time].

</comment></comment></comment><comment><USER25> So the voice search is called Google Now? During the keynote it was confusing because they kept calling the voice stuff "Voice Search" and "Google Now" was only used when talking about the cards (which are confusingly in the same app).

<comment><USER26> Voice Search is Voice Search. Google Now is just the predictive notifications and the cards (the notifications being the more signifiant part). The two are separate.

Voice Search has been available since Froyo, IIRC -- although in the past it would simply show search results rather than respond with a voice for anything other than a small set of phrases. Voice responses for more general Knowledge Graph queries is new in Jellybean. (Long-press the search button on an older phone, like a Nexus One, to trigger it.)

</comment></comment><comment><USER27> Not looking forward to the ads. I'd rather pay for it.

<comment><USER28> I would pay for any service if I had guarantees that my data would not be sold or used for third party profit in any way.

</comment></comment><comment><USER29> ;-</comment>


Explain crypto to me like I'm a 5 year old - <AUTHOR> https://higher.team/ <comment><USER2> This is about cryptocurrency, rather than crypto in general.

<comment><AUTHOR> yeah I'm using this [https://twitter.com/semil/status/892163113159544832](https://twitter.com/semil/status/892163113159544832) as the basis for the term crypto now meaning cryptocurrency</comment></comment>


Remember Backing Up to Diskettes? I'm Sorry. I Do, Too - <AUTHOR> http://www.druva.com/blog/diskette-nostalgia/ <comment><USER2> Floppies, how advanced, I still have a box of C15 cassette tapes with my data from the 1980s on them!

<comment><AUTHOR> Yeah -- but how would you get the data _off_ those tapes?

I have one computer system that's 10 years old (running OS/2) which is wholly unconnected from the computing universe, much less my network. It has floppy drives, a CD player (and no software to burn anything to CD), a SCSI and serial ports. And I've a bunch of data on that system that I'd like to pry off of it, though it'd take a rube goldberg setup to do so... which means I never do get around to doing it.

<comment><USER2> I have a plan, as it happens. I'm going to leverage HTML5 audio processing soon, as a bit of an exercise really, and work on Javascript processing of my 300 baud tape collection, that's why it was in my mind to make the comment.

I have my 8 bit computers - ZX81 and BBC Micro still working, for years I have wanted to use my PC audio for data transfer and now I have some time to play at it for a bit. I even have the idea that I might try and connect my ZX81 to the internet in this way, writing a REPL in ZX basic and using the ZX81 as a dumb terminal.</comment></comment></comment>


Rifle-Oriented Programming with Clojure - <AUTHOR> http://blog.thinkrelevance.com/2009/8/12/rifle-oriented-programming-with-clojure-2 <comment><USER2> Hallelujah and Amen to Clojure. It is going to rock the world!</comment>


Good intentions don't justify lying about risk - <AUTHOR> http://www.decisionsciencenews.com/2013/08/12/do-not-lie-about-risk/

<comment><USER3> Absolutely agree - lying will only come back to bite you in the long run - <USER2> matter how good your intentions are.</comment>


Why doesn't Silicon Valley just give Saudi Arabia its money back? - <AUTHOR> https://www.sfchronicle.com/business/article/Why-doesn-t-Silicon-Valley-just-give-Saudi-13312898.php <comment><USER2> I think they already spent it on overpriced so-cal bubble real estate, teslas, and pet psychoanalysis. /s

Most people don't give a damn where the money that feeds them comes from as long as they feel personally safe from the repercussions.

</comment><comment><USER3> Because the world is not black and white. Money sent back Will assuredly get spent it's just a question of where and whether that's better</comment>


How to Build a USSD App Using Python and Django - <AUTHOR> https://github.com/iyanuashiri/africastalking_USSD_demo#how-to-build-a-ussd-app-using-python-and-django <comment><USER2> Why Django 1.1? Super old school right? I'm actually suprised that Django supported Python3 fully back then... then again I've been super slow to switch to Python3 but I think my earliest Django app (an eCommerce website) was at least 1.3 possibly...

I'm just wondering if other then just habit and 1.1 being what you're familiar with you chose to pick such an old version.

<comment><USER3> Dunno if it was updated since you posted this comment, but I see 1.11, not 1.1. 1.11 is the latest LTS version, and thus an excellent choice for 2018.

<comment><USER2> Ah- I was not aware they had an LTS with different versioning. (And I did attend DjangoCon many years ago)- I clicked on this article initially because I was curious with what USSD was in the first place-

Thanks for clearing that up for me :)

<comment><USER3> LTS doesn't use different versioning. It's standard semver, and every third release is LTS.

The sequence of releases is 1.8, 1.9, 1.10, 1.11. After that they went to 2.0 (first version to drop Python 2 support). IIRC, the next LTS will be 2.2.</comment></comment></comment></comment>


Ask HN: Why no diagnostic tools for MACs? - <AUTHOR>

There are a lot of hardware diagnostic tools and suites available for PCs: memtest86, PC-Doctor, UltraX, Burn-in test tools and a few unix utilities. Even saw a new tool for Android devices.<p>But, I haven't seen any for Apple products besides the S.M.A.R.T. monitoring tool that is pre-packaged with the OS. Anybody have any thoughts on why and whether there is an opportunity there? Is it just because most people believe MACs to be unbreakable? Most diagnostic tools are very relatively simple to build and there is no reason to believe that it wouldn't be possible for Mac OS X. <comment><USER2> We do a lot of computer troubleshooting and diagnostics for clients. Macs (not MACs BTW) probably account for around 1% of our workload. I think there are a few reasons for this: they are a slightly smaller market to begin with; users get sucked in to Apple's product life cycle, so systems tend to get replaced before they're old enough to have common failures; Apple (maybe) has better manufacturing controls, so there is a lower percentage of early failures; and, probably most importantly, Apple has its own stores everywhere, with a strong brand, so Apple owners will tend to just take a misbehaving system in to the nearest Apple store.

In our case, we have separate hardware for testing drives and memory. That pretty much leaves the logic board and/or video board, which are integrated on a lot of Macs, and experience gives us enough hints on the rest.

So, I don't mean to discourage anybody that wants to build a really cool tool for MacOS diagnostics -- I'd love to see some of the old-school hacker mentality come back to the Apple market (e.g. MacsBug) -- but there probably isn't a lot of demand for it.

<comment><AUTHOR> Yes, that is what it seems like. Anybody who is familiar enough can find ways of testing with other x86 based tools, and everybody else just takes it to a Apple repair shop or replaces it.

I was unable to find a mainstream native app in the Mac App Store, so nobody seems to have attempted it either.

</comment></comment><comment><USER3> It might help to be more specific. Memtest86 has run on every Intel Mac I've had. Ive got no clue what PC Doctor or UltraX are, but I see no lack of diagnostic tools for the Mac.

Perhaps it would be more accurate to ask "What are some diagnostic tools for the Mac?" as you clearly haven't done much research yet.

<comment><AUTHOR> I guess I was a little unclear in my post. What I meant is that a lot of the diagnostic functionality available for PCs(memtest86 and Linux utils) can easily run on Intel Macs as well but given how relatively easy it would be, I don't see a native app that specifically advertises itself as a Mac hardware diagnostic tool unless I am missing something obvious.

So, it seems like there must be no demand for a native app, but I am just surprised that nobody has attempted it. I haven't spent a huge amount of looking but then again I was trying to find a mainstream app not something obscure.

</comment></comment><comment><USER4> Dtrace.

<comment><AUTHOR> Seems more like a software/OS diagnostic tool but I had never heard of it before, so thanks. Will read up on it.</comment></comment>


Show HN: Matchimals.fun– a puzzle/matching card game for kids - <AUTHOR> https://www.matchimals.fun/ <comment><AUTHOR> This is a simple puzzle card game I built over the winter holidays for my nieces. I wanted to explore Google's boardgame.io state management library. It works best in landscape on tablet + desktop.

All the code is open source for anyone who wants to check it out, more info at: [https://github.com/chrisheninger/matchimals.fun](https://github.com/chrisheninger/matchimals.fun)

I think the game is best for kids ages ~4-8– I'd love feedback if you have children and can playtest it with them. :)</comment>


Quick-to-scale architecture for task-based processing - <AUTHOR> http://www.bnikolic.co.uk/blog/quick-scaling-aws.html <comment><USER2> I wonder how would this stack against MPI, PVM or another HPC setup.</comment>


The Cocotron - <AUTHOR> http://www.cocotron.org/ <comment><USER2> Obligatory plug for Cappuccino [http://www.cappuccino- project.org](http://www.cappuccino-project.org) the original Cocoa for Web.

</comment><comment><USER3> Judging from GitHub, it looks kinda dead [1]. GNUstep for Windows [2] might be a better choice (and more likely to be up to date and complete since it is still in active development) to port something from macOS. Although you may need to have some GNUstep libraries on the system to run the application (or install them alongside your application). In traditional GNUstep fashion, it is unclear from their site what exactly is needed and why and gives the impression that you need to install the entire GNUstep just to run a simple application.

[1] [https://github.com/cjwl/cocotron](https://github.com/cjwl/cocotron) [2] [http://www.gnustep.org/windows/installer.html](http://www.gnustep.org/windows/installer.html)

<comment><USER4> There's also the WinObjC project from Microsoft: [https://github.com/Microsoft/WinObjC](https://github.com/Microsoft/WinObjC)

<comment><USER5> This is the one to use. Worth noting that Microsoft took a fair bit of the original source for this project from The Cocotron.

<comment><USER6> Not really. The focus of the project died with WP.

</comment></comment></comment></comment><comment><USER7> Is there something new going on with Cocotron? Seems like it was all but abandoned years ago.

<comment><USER8> The Cocotron (2006) ...might be a better title.

<comment><USER9> Maybe the posters hoping someone will revive it.

<comment><USER10> I wonder if it works still. Being able to compile for Linux and Windows from the same Xcode project would be really nice.

<comment><USER11> Last time I tried, it did, but it was a lot of work to get running with the version of Xcode at that time. The mailing list had a lot of details on what needs to be done to get the toolchain up and running. It was a tough slog but I did get it working.

It's worth noting that Microsoft used a lot of Cocotron for their WinObjC porting project. Depending on your needs it might be worth a look. I was porting a desktop Mac app, so it was less useful.

</comment></comment></comment></comment></comment><comment><USER12> The project is very much moribund but I've used it to see how some things might be implemented.

</comment><comment><USER13> What is the formula that HN uses that this reaches the front page?

<comment><USER14> From the FAQ: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

> _" How are stories ranked?"_

> _" The basic algorithm divides points by a power of the time since a story > was submitted. Comments in comment threads are ranked the same way."_

> _" Other factors affecting rank include user flags, anti-abuse software, > software which downweights overheated discussions, and moderator > intervention."_</comment></comment>


Einstein was wrong: First conclusive proof 'spooky' quantum entanglement is real - <AUTHOR> http://www.abc.net.au/news/2015-10-22/einstein-was-wrong3a-spooky-entanglement-is-real/6876262 <comment><AUTHOR> non-free citation: _" Loophole-free Bell inequality violation using electron spins separated by 1.3 kilometres"_ ~ [http://www.nature.com/nature/journal/vaop/ncurrent/full/natu...](http://www.nature.com/nature/journal/vaop/ncurrent/full/nature15759.html)</comment>


Uber sued again over tip-skimming, case could go national - <AUTHOR> http://www.boston.com/news/2013/08/28/boston-ems-radio-traffic-offers-inside-look-response-boston-marathon-bombings/h9olxifYE0FCKFYL2mvdnJ/story.html

<comment><USER2> This is a bad link. It takes you to "Boston EMS radio traffic offers inside look at response to Boston Marathon bombings"

The correct link appears to be [http://www.xconomy.com/boston/2013/08/28/uber- sued-again-ove...](http://www.xconomy.com/boston/2013/08/28/uber-sued-again- over-tip-skimming-claims-case-could-go-national/)</comment>


Download WireGuard for Windows pre-alpha for testing - <AUTHOR> https://lists.zx2c4.com/pipermail/wireguard/2019-May/004126.html <comment><USER3> Work is progressing steadily by the day on WireGuard for Windows and Wintun, the TUN driver we're writing that this uses. Hopefully this won't be "pre- alpha" for much longer.

You can get the former at [https://www.wireguard.com/install/](https://www.wireguard.com/install/) and learn about the latter at [https://www.wintun.net/](https://www.wintun.net/)

<comment><USER4> In the previous discussion thread linked below, somebody claims WireGuard is subject to DPI. An examination of the White Paper and of real packet captures does not reveal any obvious opportunity to "inspect" WireGuard if you aren't in possession of the keys.

Most likely that poster uses DPI sloppily to include simple blocking strategies, like hey, if we see two packets in a row between two (ip,port) pairs starting 01 00 00 00 going on way and then 02 00 00 00 going the other way, that could be WireGuard, let's block the rest of the data on that (ip,port) pair for a while.

However, am I missing something and actually there is something meaningful to inspect without having the keys?

If I'm not, what's your preferred way for people to sidestep that sort of blocking? Tweaking WireGuard to use different values would obviously work but it destroys the point of having a single specification.

<comment><USER5> DPI doesn't imply any ability to decrypt the traffic. It refers to networking equipment fingerprinting the traffic to detect application/protocol information (basically anything in the OSI model lower than layer3/4)

That aligns with the DPI-related comments in the linked prior comment thread, which reference use of DPI for internet firewalling by various governments.

Also, as noted in that same comment thread, bypassing DPI is an un-goal of Wireguard.

<comment><USER4> > It refers to networking equipment fingerprinting the traffic to detect > application/protocol information (basically anything in the OSI model lower > than layer3/4)

Right, so then is your claim that there _is_ such information revealed in WireGuard? Because I don't see any.

If you do DPI for - say - TLS you get a strong fingerprint (JA3 is a popular thing for this) that lets you distinguish Google from Twitter, Firefox from Safari, or curl from Python's Requests, again without decrypting the traffic.

But where is the fingerprint in WireGuard? If I give you a tcpdump for 5 minutes of UDP traffic the most you can say is that some of it looks like WireGuard traffic. You might remember when we used to get this sort of useless diagnostic, "Over 4000 of these packets use port 80! This is web traffic". We did not call that "Deep Packet Inspection" because it wasn't deep and didn't in fact inspect the packets, just some metadata.

<comment><USER5> I'm not sure what case you're trying to make. Yes, network equipment can do pattern-matching on Wireguard traffic and have reasonable confidence based on the packet contents and flow patterns that the traffic is a Wireguard VPN.

For example: [https://ipoque.com/news-media/press-releases/2019/rohde- schw...](https://ipoque.com/news-media/press-releases/2019/rohde-schwarz-adds- emerging-wireguard-vpn-protocol-its-deep-packet)

Edit: also, to clarify the note you had about port 80, that's why I pointed out that DPI refers to layers beyond 3/4\. "Hey these are TCP packets to port 80" is not DPI. "Hey, the contents of these packets match my signature for Wireguard traffic" is DPI.

</comment></comment></comment></comment></comment><comment><USER6> Previous discussion: [https://news.ycombinator.com/item?id=20208169](https://news.ycombinator.com/item?id=20208169)

</comment><comment><USER7> Doesn't add much to the discussion, I know, but let me just chime in to thank the people of WireGuard for releasing this wonderful piece of software for free.

</comment><comment><USER8> We've needed a solution like this for almost a decade. Thank you, thank you. Love the minimalist vibe to it, gets the job done, transparent + reduction in complexity for user = safety.

Would you ever consider creating a mesh network manager (to replace horrors like Hamachi)? It could allow people to generate the keys conveniently/safely and connect servers/clients in a distributed, non-centralized manner easily.

</comment><comment><USER9> Pre alpha my arse it works great! Been running it for over a week or so and no issues. Saved me at least twice now whilst in incredibly remote locations.

Awesome work by the wireguard team

</comment><comment><USER10> What I'd really like to see, and didn't as of a few months ago, is a userspace docker/linux wireguard that doesn't require any special kernel privs or capabilities.

<comment><USER11> There's a Go WireGuard. It's the basis for macOS WireGuard.

<comment><USER10> Yes, and it's pretty adamant that it's not to be run on linux. (like, you have to edit some source to add something like "yes I really mean to do this")

Once you blow past the warnings about compiling it on linux, it still failed to actually work in my testing. Fair enough.

It doesn't seem like it should be an insurmountable problem, but I'm a level or two from being able to make it work by sheer force of code.

<comment><USER11> I'm pretty sure he's just trying to get you to run the more performant kernel version on Linux, especially since the goal is to mainline it into the Linux kernel. I can't see a substantive reason for it to be a bad idea there.

</comment></comment></comment></comment><comment><USER12> I know Wireguard is faster but I found OpenVPN much easier to set up.

<comment><USER11> You are the first person I have ever seen say that. WireGuard setup is approximately the same as SSH; the only thing it adds over SSH is IP addresses. I've set up OpenVPN multiple times and I'd reserve a couple hours of my time if a client demanded it, because that's how long it'd take me. WireGuard would take me a couple minutes and I'd be doing it from memory.

<comment><USER4> As a sibling suggests, it's very easy to set up OpenVPN _badly_.

I have a config right now on my other PC labelled "Old staging KEEP" which is this type of setup for OpenVPN, it's relying on a crappy out-of-box private CA setup, no passwords, shared private keys, it's likely vulnerable to key compromise attacks and a dozen other problems as configured.

Edited to add: Also, the reason I kept it, this config relies on hijacking public addresses. Some... person... took an OpenVPN config example with 172.16.0.0/16 addresses and it conflicted with the stupid WiFi NAT in their office, so they just changed the IP addresses to a public range nearby, apparently not realising (certainly not caring) that this means it's now randomly breaking other things too.

But for the typical end user this looks like it worked. Random drive-bys can't get in, spinning it up for the new frontend dev is easy, what's not to like? If it takes them five minutes to install & configure OpenVPN wrong, and an hour to install & configure WireGuard right, they will conclude WireGuard is harder, even if it might have taken them a week to get OpenVPN done right.

</comment></comment></comment><comment><USER13> Finally! Have TunSafe on some 20+ windows machines. Time to see how this compares :)

Overall TunSafe has been awesome apart from some minor annoyances - <USER2> laptops not auto-reconnecting sometimes after hibernating.

</comment><comment><USER14> Question. Why the cute-bunnies-reminiscent-of-80s-cartoon "mascots" for WinTun?</comment>


A Lightweight Kubernetes Distro Built for the Edge - <AUTHOR> https://www.cncf.io/event/webinar-kubernetes-distribution-edge/ <comment><USER2> [https://github.com/rancher/k3s](https://github.com/rancher/k3s)</comment>


Tabs vs Spaces: It Doesn't Matter - <AUTHOR> http://blog.marketmesuite.com/tabs-vs-spaces-it-doesnt-matter/?src=hackernews

<comment><USER2> Exactly this. They're both fine, just not at the same time. Don't mix them.</comment>


Crypto Coin Graveyard Fills Up Fast as ICOs Meet Their Demise - <AUTHOR> https://www.bloomberg.com/news/articles/2018-06-28/crypto-coin-graveyard-fills-up-fast-as-icos-meet-their-demise?srnd=cryptocurriences <comment><USER2> This is disappointing level of journalism by Bloomberg. When did it become journalistic "research" to just quote a bunch of Medium blog posts on the web?

For one, the "research" quoted by this article is conflating market cap with actual realized losses. A coin's market cap tells you absolutely nothing about how much was actually raised in an ICO. If I issue 1 trillion tokens and sell one for $1, all of a sudden I'm a $1 trillion market cap.

Article's primary source found here: [https://medium.com/satis-group/ico- quality-development-tradi...](https://medium.com/satis-group/ico-quality- development-trading-e4fef28df04f) It claims 81% of coins with $50M+ market cap were scams...but the only data it shows is a bar chart, with no links to actual data tables driving the chart.

<comment><USER3> I agree. I think it's the end of the beginning and putting aside all the scammy hype stuff Bloomberg and others have been happy to promote, we are now entering a period where credible crypto business logic will start having an impact in mainstream financial markets, exchanges and MTF's as the space matures...

<comment><USER4> > where credible crypto business logic will start having an impact in > mainstream financial markets, exchanges and MTF's as the space matures

Yeah, the only missing part is the "credible crypto business logic". Everyone is waiting for it...

<comment><USER5> Agreed. Can grandparent give a couple examples?

</comment></comment></comment></comment><comment><USER6> From the article:

Crypto coins with market cap > $50M

\- Scams: 81%

\- Failed: 6%

\- Gone dead: 5%

\- Dwindling: 2.8%

\- Promising: 1.8%

\- Successful: 3.8%

There's a tracking site for dead coins: [https://deadcoins.com](https://deadcoins.com)

<comment><USER7> whats the rate of failing for startups with >$50m valuation? Is there a tracker for that as well?

<comment><USER6> Yes. About 75% of venture-backed companies fail to return cash to investors.[1] Many of those failures are zombies - the company continues to operate, can cover its running expenses, but can't pay back its startup costs. In the ICO world, that would be considered a success.

[1] [https://www.fastcompany.com/3003827/why-most-venture- backed-...](https://www.fastcompany.com/3003827/why-most-venture-backed- companies-fail)

<comment><USER8> So many of them are paying people living wages, or at least had been during their lifetime. Compare that to failed or scam ICOs, which do literally 0 people any good except maybe the "founder."

<comment> munk-a Well let's not forget about all the productive hosting business this is drumming up, some poor megacorporation is barely holding on by offering their cloud hosting services to all these ICOs.

(there isn't a window fallacy we can't broken here :D)

</comment></comment></comment></comment></comment><comment><USER9> This shouldn't be surprising to anyone since most of them were pump and dump schemes or Ponzi schemes.

<comment><USER10> True. And the others mostly couldn't deliver.

Also not surprising is that one of the few news on HN about ICOs compares them disfavorably to VC founding. A bit predictable, that's all.

</comment></comment><comment><USER11> A token is a receipt for your donation. :)

<comment><USER12> Which a lot of donors are actually completely ok with. The insistance on seeing this new technology and the opportunities it offers through the lens of traditional equity/securities is strange.

<comment><USER13> It's not strange at all, since unfortunately the average person who bought into these ICO's _thought_ they were similar to IPOs (and that was the dubious intention behind calling them "ICO's").

You can look through thousands of reddit posts of people thinking they were "getting in early" on some hot new tech company. You're living in a fantasy world if you think even a sizable minority gave money to ICOs knowing it was basically a donation.

<comment><USER14> Agreed about the name "ICO" being of dubious intent. That's why we tried to clear the air with our I<corn>O, [https://initialcornoffering.com](https://initialcornoffering.com).

</comment></comment></comment></comment><comment><USER15> There is too many shitcoins. Which means too much speculation. One day it will all hit a brick wall. coingecko.com has a good list with a little amount of shitcoins. But when the shit storm starts and people move their money to cryptocurrencies they will probably go to VDA which I'm guessing institutional investors use which is on cryptonaire.com

When it happens, it will be good and bad for the market. Real value in good places but a bad time in history. Due diligence everyone, due diligence.

</comment><comment><USER16> not much different than SV startups with 90% fail rates

<comment><USER8> Oh, do ICOs give people jobs and living wages?

I'm sure you're going to come up with some esoteric edgecase, but no: it's not comparable.

<comment><USER17> I mean, they put people to work. Considering many startups, "living wages" can be quite a stretch.

<comment><USER8> Poor startup employees making $150k+, they can barely afford to eat at Marlowe 3 times a week and take 3 Napa vacations a year :*(

<comment><USER17> Early startups aren't paying that well, and they're usually in very high cost of living areas.

</comment></comment></comment></comment></comment><comment><USER18> A quick alternate analysis of ICO liveness is found by simply checking the number of tokens currently being traded with volume on idex.market: total of 291 as of todays figures, with 195 over 1 Ether/day, 80 over 10 Ether/day and 22 over 100 Ether/day. This amounts to 35%, 23%, 9.75% and 2.6% rexpectively of the 821 reported by deadcoins.com. Further to this deadcoins.com only labels 121 of these as scam coins with the majority (633) being labelled deceased. Also, a large number of the listed coins have no references to back up the given assessment.

Seems Bloomberg's reporter neglected solid research in her haste to play the funeral drum.

</comment><comment><USER19> This article is a PR piece about an activist investment firm that buys up and revives dead coins with a new dev team and rebranding. It is masquarading as the "I told you so" article that you already wanted to read. But thats not what it is at all

As someone that has led zombie coin revivals multiple times over the last several years (after spending months buying up a coin from bagholders), hit me up

just respond to this message and put your email in your hackernews profile

This new firm has got one thing right: Bull market or bear market it doesn't matter, you can get hockey stick growth.

<comment><USER20> Could you bring back flurbo? [http://flurbo.cc](http://flurbo.cc)

<comment><USER21> If this project is accepted can I be on the mailing list as well?</comment></comment></comment>


Devs Introduce Licensing Backdoor For Twitter for Mac. Trouble Ahead? - <AUTHOR> http://www.macheist.com/forums/viewtopic.php?id=18932 <comment><USER2> I wonder if they got approval for this or if Apple doesn't know about the back door features.</comment>


V8: A Year with Spectre - <AUTHOR> https://v8.dev/blog/spectre <comment><USER3> _Like many with a background in programming languages and their implementations, the idea that safe languages enforce a proper abstraction boundary, not allowing well-typed programs to read arbitrary memory, has been a guarantee upon which our mental models have been built. It is a depressing conclusion that our models were wrong — this guarantee is not true on today's hardware. Of course, we still believe that safe languages have great engineering benefits and will continue to be the basis for the future, but… on today's hardware they leak a little._

We should all be more angry at chip makers for this. Intel isn't willing to admit that they broke things because then they'd have to fix it, but we shouldn't accept that kind of approach.

<comment><USER4> Everybody who studied even a little bit about processor hardware new about speculative execution. And it was never just intel that was using it, (they all were). Until Spectre that technology was not considered controversial.

the crazy thing is that nobody saw this until recently.

<comment><USER3> "Until event X, doing <thing that X demonstrated was bad> was not considered controversial" is an explanation of behavior, but not really a defense.

<comment><USER5> Here, chip makers never promised to prevent X. Maybe preventing X is desirable now that people do Y, but you can hardly blame them for not preventing something they didn't promise to prevent.

<comment><USER6> They promised to develop general purpose chips which can meet as many desktop computing needs as possible, which now implicitly includes need Y (but they didn't anticipate that at the time).

They could of course just reject the necessity of need Y, but if the majority of their clients actually do have need Y, can it really be said that the chip is successful at being general purpose?

<comment><USER7> Yeah you can. Because the chip provides capabilities so you can do such protections in software if you want, or get more speed if you don't want.

</comment></comment></comment></comment></comment></comment><comment><USER8> When Spectre first came out, my prediction was basically that the only effective mitigation would be to move the untrusted code into another address space. This post reinforces that they have exhausted all other options:

> Our research reached the conclusion that, in principle, untrusted code can > read a process's entire address space using Spectre and side channels. > Software mitigations reduce the effectiveness of many potential gadgets, but > are not efficient or comprehensive. The only effective mitigation is to move > sensitive data out of the process's address space.

Probably the most effective hardware mitigation would be to shift the isolation to a page-level granularity, so that you could say that speculation is disabled for memory in specific pages.

<comment><USER9> > Probably the most effective hardware mitigation would be to shift the > isolation to a page-level granularity, so that you could say that > speculation is disabled for memory in specific pages.

What's wrong with the hardware mitigation of just using multiple processes? It already exists, it already works, and it already has decades of tooling & infrastructure built around it.

<comment><USER10> It's very expensive. Site isolation in Chrome explodes memory pressure on the system. Language enforced confidentiality is a lot less resource intensive.

<comment><USER9> > It's very expensive.

Processes? They don't need to be expensive, as proven by Linux. Trivially cheap enough to do one per site origin in a browser, anyway.

> Site isolation in Chrome explodes memory pressure on the system.

How do you figure? Code pages are shared, after all. Only duplicate heap would be an issue, but shared memory exists and can mitigate that if there's read- only data to be shared.

So what memory pressure is "exploded"?

> Language enforced confidentiality is a lot less resource intensive.

Not at all clear-cut or self-supporting. What resource(s) is it less intensive on, and what are you using to support such a claim?

CPU time is a resource, too, after all. All this software-injected mitigations and maskings aren't free.

<comment><USER11> The experience of literally every browser vendor does not support your claim that it is 'trivially cheap'.

Problems worth thinking about:

Sharing jitted code across processes (including runtime-shared things like standard library APIs) - lots of effort has gone into optimizing this for V8.

Startup time due to unsharable data. Again lots of effort goes into optimizing this.

Cost of page tables per process. (This is bad on every OS I know of even if it's cheaper on some OSes).

Cost of setting up process state like page tables (perhaps small, but still not free)

Cost of context switches. For browsers with aggressive process isolation this can be _a lot_.

Cost of fetching content from disk cache into per-process in-memory cache. This used to be very significant in Chrome, they did something recent to optimize it. We're talking 10-40 ms per request from context switches and RPC.

Most importantly the risk of having processes OOM killed is significant and goes up the more processes you have. This is especially bad on Android and iOS but can be an issue on Linux too.

ASLR and other security mitigations also mean you're touching some pages to do relocation at startup, aren't you? You're paying that for dozens of processes now.

<comment><USER9> Those are all costs of doing multi-process at all. Once you've committed to that (which every browser vendor did long before spectre was a thing), doing it per site-origin doesn't significantly change things.

As for the actual problems, many of those are very solvable. Startup time, for example, can be nearly entirely eliminated on OS's with fork() (and those that don't have a fork need to hurry up and get one) - a trick Android leverages heavily.

And a round-trip IPC is not 10-40ms, it's more like 20-50us ( [https://chromium.googlesource.com/chromium/src/+/master/mojo...](https://chromium.googlesource.com/chromium/src/+/master/mojo/README.md#What- are-the-performance-characteristics-of-Mojo) )

> Most importantly the risk of having processes OOM killed is significant and > goes up the more processes you have. This is especially bad on Android

There's no significant risk here on Android. Bound services will have the same OOM adj as the binding process.

<comment><USER11> Cache round-trips in chrome were historically 10-40 ms, you could see it in devtools. I have old profiles. You're thinking the optimal cost of a round- trip, not the actual cost of routing 1mb assets over an IPC pipe

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> The linked paper contains a quote and a reference to Microsoft Singularity that really is an interesting thought experiment. Imagine we were all running next-gen systems designed like Singularity by now, which relies on type safety and managed code instead of memory protection to provide application level security. Spectre would have been a lot more devastating then, if we couldn't have hardware-assisted virtual memory protection separating processes from each other?

[https://en.wikipedia.org/wiki/Singularity_(operating_system)](https://en.wikipedia.org/wiki/Singularity_\(operating_system\))

<comment><USER13> Singularity heavily relies on capabilities. What if accessing the current wall clock time was a zealously guarded capability? I wonder what percentage of apps could function with no access to (real time) timers at all, or an extremely granular one?

I can't find a link at the moment, but I recall a paper showing even a very granular clock will suffice for Spectre exploits, albeit with lower bandwidth. Also, something else would need to be done about multithreading, as an application could always just spin up another thread counting as fast as it can to make a poor man's timer.

<comment><USER14> I may be wrong, but isn't there an almost unlimited amount of ways that you could determine wallclock time?

Any kind of networking access can get it (with enough samples, you can get some crazy precision over even the most inconsistent networks), and really any kind of I/O could be abused when combined with another exploits.

And if your permissions system doesn't allow I/O, is there really a lot that your program can do?

<comment><USER15> You don't even need networking. If you can create a temp file, you can probably get the creation or modified time on the file.

<comment><USER16> Hell, you can make a passable timer for these purposes as long as you have two threads. No need to leave your process.

</comment></comment></comment></comment></comment><comment><USER17> One thing that would reduce the attack surface massively is if we stopped pretending it is OK for every website under the sun to run any code they want for as long as they want just because I am reading their webpage.

Yep, you could say I'm talking about "crippling" web pages, but I'd rather phrase it as "pruning" or "removing the worst abuses".

Those who read carefully might have noticed I didn't say "kill Javascript with fire" or anything like that, and I think we could get far just by having the browsers limiting (by default) Javascript run time to 3 seconds: start at 20 seconds this summer and aim for 3 seconds next summer, because who seriously thinks web pages should need to run scripts for minutes after they have loaded?

I realize there are a couple of problems with the simplified approach above, so let me try to defuse the ones I see right away:

\- This will break a number of sites: Yep. But if we really wanted and we got all browser vendors behind it we it wouldn't take long before all mainstream sites would be optimizing their js like crazy to make sure it loaded withing 20, then 19 seconds etc. That said: Good luck getting all browser vendors on board with this. (And, in my defense: I didn't say it would be easy, or even possible, only that I think it would be a good idea to do.)

\- Some pages need Javascript because they load content using JS: We can reset the counter to something reasonable for certain types of user input.

\- Some web pages needs Javascript for <reasons>: let them have a popup like the ones they get for location sharing etc.

<comment><USER18> Do you want to go back to doing everything on the server again like the early 2000s?

Because that's what you'll end up with.

<comment><USER19> You'll also end up with (something like) Flash making a comeback.

Nobody's going to accept a non-interactive web, or even one with crippled interactivity[1]. They only tolerated it in the 90s due to hardware and bandwidth limitations, not to mention that the web was new technology back then. That ship has long since sailed.

Even back then, technologies such as Flash arose because people - <USER2> website owners/creators and then, of course, users - wanted more interactivity than HTML 3.2 and 4.x, and slow/limited JavaScript, could deliver.

 _[1] With very few exceptions, the GP being one._

<comment><USER20> > You'll also end up with (something like) Flash making a comeback

Something like Flash did make a comeback and it's just called JavaScript now. Pretty much exactly the same attack surface, but at least now its a hopelessly complicated "standard"!

<comment><USER19> > Pretty much exactly the same attack surface, but at least now its a > hopelessly complicated "standard"!

I know, right? I almost miss Flash: it was certainly a lot simpler to work with. I'm not even sure about the "almost" in that sentence.

</comment></comment></comment></comment></comment><comment><USER21> The original paper is extraordinary: [https://arxiv.org/pdf/1902.05178.pdf](https://arxiv.org/pdf/1902.05178.pdf)

<comment><USER22> From their abstract:

 _As a result of our work, we now believe that speculative vulnerabilities on today's hardware defeat all language-enforced confidentiality with no known comprehensive software mitigations, as we have discovered that untrusted code can construct a universal read gadget to read all memory in the same address space through side-channels. In the face of this reality, we have shifted the security model of the Chrome web browser and V8 to process isolation._

Processes are pretty heavyweight as a way to perform this sort of isolation. I can't help thinking that something like sthreads and tagged memory from Andrea Bittau's wedge system would be great OS primitives to have right now.

[http://www0.cs.ucl.ac.uk/staff/M.Handley/papers/wedge.pdf](http://www0.cs.ucl.ac.uk/staff/M.Handley/papers/wedge.pdf)

RIP Andrea.

<comment> Ono-Sendai Isn't one possible solution to this problem just not to allow untrusted programs access to clocks and timer features?

<comment><USER23> You can do these things as a mitigation but it doesn't fully solve the problem because untrusted programs can try to get timing info from other sources. For example, incrementing a counter inside an infinite while loop can give you a good estimate of time, measured in cpu clock cycles .

<comment><USER24> That might not be possible in a single threaded environment like JavaScript.

<comment><USER25> It was until they added background workers.

There is a known simple mitigation. Don't JIT random JavaScript, back to interpretation. Of course that means there is no use for V8, which is why it's not in this paper.

<comment><USER14> V8 has a JIT-free mode now, and it's still pretty damn fast in real world situations. It looks like in synthetic benchmarks they saw up to 80% decrease in performance, but in real-world applications they saw as little as a 6% decrease.

[https://v8.dev/blog/jitless](https://v8.dev/blog/jitless)

But even an interpreted language can still be vulnerable to Spectre attacks.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> > Thus Chrome's security model no longer assumes language-enforced > confidentiality within a renderer process.

So V8 never was and never will be a silver bullet for running JS/WASM without isolation. I wonder what Edge CDN such as Cloudflare[0] and Flastly[1] are doing to isolate their functions.

[0][https://blog.cloudflare.com/cloud-computing-without- containe...](https://blog.cloudflare.com/cloud-computing-without-containers/)

[1][https://www.fastly.com/blog/announcing-lucet-fastly- native-w...](https://www.fastly.com/blog/announcing-lucet-fastly-native- webassembly-compiler-runtime)

<comment><USER27> Running them on in-order, speculation-free hardware would be quite sufficient, and come with additional benefits in power efficiency. The thing about Spectre or Meltdown is that there's really no case for the sorts of out-of-order cpus that raise these issues, unless you're _truly_ bound by compute or memory bandwidth on some single-threaded task - which will never be the case for typical JS/WASM workloads on the "edge".

<comment><USER28> > Running them on in-order, speculation-free hardware would be quite > sufficient.

In-order isn't a magic bullet against Spectre, they still do spectulative execution after predicting branches and they can still be vunerable. ARM have listed at least one of their in-order cores as vunerable.

To be free of all speculation you have to go back to the 486, which didn't even have branch prediction.

Besides, if you are making custom CPUs there are other options to avoid Spectre that don't require eliminating all spectulative execution.

</comment></comment></comment><comment><USER29> > Like many with a background in programming languages and their > implementations, the idea that safe languages enforce a proper abstraction > boundary, not allowing well-typed programs to read arbitrary memory, has > been a guarantee upon which our mental models have been built.

As an aside, the notion that it's very risky to rely only on the type system to enforce security boundaries is not new. In 2003, Govindavajhala and Appel [1] showed that you can break the security of the JVM through memory errors. Basically, an untrusted attacker fills memory with a specially formatted data structure such that in case of a random bit flip, with high probability, you get an integer field and a pointer field aliasing each other, allowing you to do pointer arithmetic. By contrast, it's extremely unlikely that a random bit flip allows (say) an unprivileged Unix process to get root access.

[1] [https://www.cs.princeton.edu/~appel/papers/memerr.pdf](https://www.cs.princeton.edu/~appel/papers/memerr.pdf)

</comment><comment><USER30> If they are going with isolation instead, can we have the high-res timers and shared buffers back?

<comment><USER31> aren't they already back?

<comment><USER32> Using Chrome 73 I was getting pretty wildly variable results back from performance.now() a week ago. Was near useless when trying to profile some game code. Apparently the timing results you get back in devtool perf tools are reliable, but that's not useful for in-game performance dashes or real- time profiling.

</comment></comment></comment><comment><USER33> Spectre is a great example of what effect public perception has on software development. After it's disclosure the industry absolutely scrambled to patch it because mainstream news outlets declared the sky was falling. A year in, and we have hundreds of thousands of slightly older computers with a 20% performance drop and even modern machines with a 5-10% performance drop to address a purely hypothetical threat.

Compare this to the various Intel Management Engine exploits from the past couple years which received no media attention and thus no industry attention.

</comment><comment><USER34> The article states:

>Extract the hidden state to recover the inaccessible data. For this, the attacker needs a clock of sufficient precision. (Surprisingly low-resolution clocks can be sufficient, especially with techniques such as edge thresholding.)

Might anyone have some good resources or links they could share on this "edge thresholding" technique?

</comment><comment><USER35> Small question: how can they know that it's a mispredicted branch that is being executed (so that they can set the poison appropriately)? If they have this knowledge, couldn't they simply drop the execution since it's a misprediction?

</comment><comment><USER36> > we productionized and deployed site isolation for as many platforms as > possible by May 2018.

Is there a way to determine whether site isolation is available/enabled on my chrome platform?

</comment><comment><USER37> couldn't Intel add a per thread option to enable/disable speculative execution? This option could be disabled once a thread is about to execute just in time compiled code, Javascript would then run slower - but without the specter of Spectre..

</comment><comment><USER38> Does anyone know if SELinux can mitigate some of these vulnerabilities?

<comment><USER16> It does not.

</comment></comment><comment><USER39> offtopic: Kudos to the author for having simple and fast loading page without any js or complicated CSS. Loads blazing fast. No tracking too.

<comment><USER40> Thanks :) Glad to see people appreciate simplicity (and the performance that comes with it).

</comment></comment><comment><USER41> It is sad that the solution is to cripple the software. I hope that these workarounds will be relegated to compatibility issues in the future as the underlying hardware is eventually fixed.

<comment><USER41> Not sure why i got downvoted for this. Anyone care to enlighten me?

<comment><USER42> Any solution requires "crippling the software" \- process isolation increases overhead through kernel context switches

<comment><USER41> I suppose this is where I realise I don't actually understand the underlying issue. If it is a software issue, why is there so much blame directed to the hardware vendors?

<comment><USER42> It's a hardware issue - ie. it is caused by compromises hardware made to speed up execution times.

Because we're stuck with the hardware we have, we can make software fixes - however they are going to require either slowing down or removing certain features until we get a hardware fix for the issue.

<comment><USER41> thank you. I read in another comment that this isn't an issue with process isolation of memory (which I originally thought), its an issue with the isolation of memory within the process - would you say that is a good summarisation? i.e. the hardware is working as designed, but the software is expecting guarantees that the hardware never promised?

<comment><USER43> Spectre only allows access to the process' own address space, yes. But Meltdown works across processes, so hardware manufacturers (and specifically Intel) have definitely dropped the ball there, as well.

<comment><USER44> But meltdown is known to be fixable without significant performance costs (proof being the existing high performance CPUs that are immune to it).

Spectre not so much.

<comment><USER42> The problem is the same. The fact that we can hide most of the kernel memory is handy, but it shouldn't be up to the software to do that - user processes shouldn't be able to access memory that pagefaults. Definitely a dropped ball by the manufacturer

<comment><USER44> Not the same. As you say, a process should not be able to access pages that are protected by hardware permission bits. That's exactly the issue with meltdown.

Spectre is different, it allows reading pages that a process would already have hardware permission to read[1] but actual permission is enforced at the software level (i.e. software as opposed to hardware bound checking).

[1] It is possible to construct spectre v1 attacks against other processes in some cases, but are much harder, low bandwidth and I do not think are yet shown to be practical.

<comment><USER42> > Not the same. As you say, a process should not be able to access pages that > are protected by hardware permission bits. That's exactly the issue with > meltdown.

Okay, but the hardware issue is pretty much exactly the same... the bug in hardware that enabled spectre is also what enabled meltdown.

The only reason we managed to fix this is by moving most of the kernel task memory out of the user page table - a software fix for something that the hardware should have been doing.

<comment><USER44> No, it is really a different bug. One is speculation around branches, the other one is speculation around hardware protection check (which is not implemented internally as a branch). In fact, while all OoO CPUs are vulnerable to spectre, not all of them are vulnerable to meltdown because, for whatever reason, their designers decided not to speculate around hardware checks (possibly because the check could be implemented efficiently in the critical path given their L1 cache design).

I'm not an hardware designer, but likely both instances of speculation use the same snapshot and rollback logic, but that's about it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER45> People sometimes talk about waiting for a Spectre "fix" at a hardware or software level, but it seems that the only fix is to lose Speculative execution entirely (and with it, its performance gains). On my Haswell CPU, the performance hit was about 5% in various benchmarks, although newer architectures suffer less. Given that Spectre attacks still appear to be very difficult to perform in practice, I wonder if we will start to see Speculative execution at the hardware level brought back as an option for high performance and closed environment settings.

<comment><USER46> I think you can do it by tracking caches pulled in during speculation and dumping them if speculation failed. Perhaps on a new barrier instruction that's lighter weight than lfence (as you're just enabling a recording mode for cache snooping).

Ultimately I don't think many speculative instructions actually pull in cache lines, so we can either clean up when they do, or stop speculating when a line would need to be loaded.

<comment><USER47> I don't see how this would really work. As soon as one core pulls in a cache line, all the other cores know about it, so somehow you would have to roll back all the coherency messaging as well.

<comment><USER44> You can in a many-world interpretation of quantum mechanics. On a branch speculation, split the universe. Follow one branch in one universe, the other in another universe. If the CPU realizes that the speculation is wrong, destroy the universe (this is left as an exercise for the reader). As a bonus the CPU will have 100% speculation success. Unfortunately I think quantum mechanics itself might allow for side channels between universes.

</comment></comment></comment></comment><comment><USER48> And still to this date not single spectre attack shown to work under real world conditions.

This had been the most overt blown security topic I've ever seen. All the POCs required higher help from the code being attacked: eg, known memory locations, nothing else running on the system.

There still has not been a single real world exploit developed for Spectre: eg somebody attack a running server. But yet all this time and effort has gone into a theoretical toy. It is so incredibly difficult to pull this off, that is should be one of the lowest priorities. I guess it gets ink because it pushes the security issues past all the software foul ups and lets people hate on Intel.

Developers gotta develop I guess.

Edit: down to -3 already for expressing an opinion, and nobody really responded except for a variation of the precautionary principle.

I wish more people understood that spectre isn't the bogeyman that we need to give up 5 to 15% of our CPU for (and meltdown was more of a bug and when easily patched is no worse than Spectre).

Maybe I should put an encryption key in a sandboxed system and play $1000 if anybody can use Spectre to recover it? Even then it probably would shut everybody up.

<comment><USER49> > And still to this date not single spectre attack shown to work under real > world conditions.

I find statements like yours difficult. Can we know that something did not happen just because nobody talked about it?

A vulnerability as deep and far reaching as Spectre is extremely interesting to nation-state level hacking groups as a means of warfare, we should not assume that we know about everything these actors are up to.

<comment><USER50> But if you treat well funded actors as essentially omnipotent entities, you might just as well lie down and give up. The reality is that although we don't know everything, there cannot be all that much activity, either, or we would see many more installations of well crafted exploits and rootkits than what currently gets reported. And I would expect blackhats to go for some reliable 0 day hack with small code size rather than relying on a complex attack that first needs to read memory locations in a roundabout way to get anywhere.

<comment><USER49> I'm not saying omnipotent, just much less transparent than the above comment suggests. I'm not sure how many exploits leak out of military cyber offense teams in China, Israel or the US.</comment></comment></comment></comment>


Show HN: Javascript face recognition game using TensorFlow - <AUTHOR> https://github.com/icoxfog417/kemono_puyo <comment><USER2> Can't seem to figure out what this is

<comment><AUTHOR> This is a toy application that made at the hackathon. It is inspired by two concepts, one is Kemono Friends and the other is Puyo Puyo. The Kemono Friends is the Japanese animation that the story is like innocent animal character's adventure. [https://en.wikipedia.org/wiki/Kemono_Friends](https://en.wikipedia.org/wiki/Kemono_Friends)

And the Puyo Puyo is a puzzle game. [https://en.wikipedia.org/wiki/Puyo_Puyo](https://en.wikipedia.org/wiki/Puyo_Puyo)

(It needs 4 Puyos to remove these originally, but I use 3 for simplify).

First I tried to implement the feature to control the falling objects but to see the animal faces is so fun and cute. Because of this, I dropped its implementation.

<comment><AUTHOR> The word "tanoshii" means so fun. You can here "tanoshii" from here. [https://www.youtube.com/watch?v=Sb5MTSSW- lI](https://www.youtube.com/watch?v=Sb5MTSSW-lI)

</comment></comment></comment><comment><USER3> Matter.js is not that good

[https://news.ycombinator.com/item?id=14888218](https://news.ycombinator.com/item?id=14888218)

<comment><AUTHOR> Thank you for telling me! I'll check it.</comment></comment>


Show HN: Gistify - Mac App to quickly and easily make gists - <AUTHOR> http://gistifyapp.com/

<comment><USER2> i would love a promocode for the app</comment>


Spotify is phasing out third-party apps and third-party app development - <AUTHOR> https://developer.spotify.com/technologies/apps/

<comment><AUTHOR> I hope they will have a "spotify web api user" tab like the "App Finder" of today, because without that nobody will ever discover the apps. And I also hope they ease the transition and give the url of the apps you used to have. It is better for the website because it will send the user to them, and they will be able to show ads, but a little annoying for the user because it was so easy to add an app and it won't be as integrated, I expect more features but less users.

I use the beta spotify desktop app, and I really like it for the sonos-like experience, but I tough the apps were only missing for the beta period. I suppose they wanted to slim down their app, and unify the mobile and desktop experience.

<comment><USER2> I hope they have something because Spotify's existing 'music discovery' is awful, I get by using the 3rd party apps (especially Last.FM's recommendations). And I don't see how removing the most useful functions of the existing desktop client (especially for paying customers) is a positive.

</comment></comment><comment><USER3> No more integrated lastfm suggestions ? This sucks :(</comment>


The difference between iPhone users and Android users - <AUTHOR> http://bgr.com/2016/10/25/iphone-vs-android-survey-takeaways/?ICID=ref_fark <comment><AUTHOR> I fall on the Android side, but that's mostly because of the developer requirements (one time fee vs 99+ a year) and the slightly less simplistic interface.</comment>


IOS/iPhone Developers (side project?) - <AUTHOR>

Looking for an iOS developer with a few years of experience and some apps that have made it to the store with some success.
I am looking for someone to build my project... I have very little money to put down, but I am interested in a set fee + profit % after the fact.
If you're interested, respond here with any info or email firstname.lastname@example.com
This is a huge idea (I know everyone says this) but I can't give up a huge % to a VC or angel investor, I'd rather help a developer out that is interested.
California only please.
Post any questions here also. <comment><USER2> If you have no money to put down, why won't you take a beginner, instead of something you apparently can't afford ("an iOS developer with a few years of experience and some apps that have made it to the store with some success")?

just asking..

</comment><comment><USER3> """This is a huge idea (I know everyone says this)"""

 _alarm bells ringing_

</comment><comment><AUTHOR> I have a _real_ business idea and product. I have a huge network to market this to. I have 4 accounts on Twitter with over 1million people reach with a high level of influence. This is a catchy product so I can have a massive amount of people download it initially to start a huge trickle effect.

If everyone tells someone, its easier to sell a boat load of copies if you start out telling a million people instead of doing your own blogging/promo or having a decent size site post a press release about it.

</comment><comment><USER4> How are you doing on customer development?</comment>