Is It Finally Game Over for Ethanol? - <AUTHOR> http://motherboard.vice.com/read/is-it-finally-game-over-for-ethanol

<comment><USER2> There are billboards up across Michigan advertising "Save $1/gal, look for the yellow hose". Doesn't say a thing about the yellow hose being ethanol. My grandparents decided to take this opportunity to save $1/gal and had to have their fuel lines flushed because their car doesn't run on ethanol. It's like saying "get better mileage, switch [your gasoline engine] to diesel!"

Ethanol can't go away fast enough. It's like 3D TVs. All the companies are pushing it but it's not something the consumer ever wanted.

<comment><USER3> Apparently Isobutanol is supposed to be a better biofuel:

[http://en.wikipedia.org/wiki/Isobutanol](http://en.wikipedia.org/wiki/Isobutanol)

This is independent of the issue of weather we should use biofuels in the first place.

</comment></comment><comment><USER4> Ethanol cannot go away fast enough for my liking. Economic issues aside, it is hell on motorcycles. Many modern bikes use lightweight polymer fuel tanks which turn out to deform and leak after long term exposure to high ethanol gas, especially when many station owners tend to cut gas with slightly more ethanol than is allowed or labeled. Not to mention the engines don't run as well; most bikes are made in Japan or Europe and aren't engineered around our peculiar corn fetish.

I've had two gas tanks warp and need replacement and I am going to be sending my new motorcycle's tank off to be treated and coated on the interior before I take delivery and it sees a single drop of ethanol mixed fuel.

<comment><USER5> Its even more hell on small lawn equipment that continue to use priming bulbs, and flexible fuel hoses. Pretty much the only solution is to run the $10 no ethanol gas for small engines, or drain them after every use.

<comment><USER6> Some of the gas I once bought in San Diego melted the fuel line in my chainsaw immediately. It didn't even manage to start before the little hose collapsed and melted.

FWIW, you can still buy ethanol free gas at certain pumps at marinas/boat yards. Ethanol is hydroscopic, so adding it in high concentrations will usually absorb too much water out of boat gas tanks, since boat gas tanks virtually all have some water in them.

</comment></comment></comment><comment><USER7> I'm not a big fan of the subsidies given out to promote ethanol production, but to be fair, this article does nothing to mention the tens of billions of dollars given out to promote oil and gas exploration. Oil and gas have had a 100 year head start in developing production technology thanks to federal subsidies. To really get an understanding of how these two energy sources compare, all subsidies for all energy sources need to be accounted for.

<comment><USER8> At least oil and gas has a massively better return on the energy invested. A gallon of ethanol barely contains more energy than it takes to produce it. Oil is so much better that, for example, tar sands production is criticized because it _only_ returns something like 4x the energy required for production. Questions of finances and subsidies are secondary to this.

I'm no fan of oil either, but ethanol is clearly not the answer.

<comment><USER7> Absolutely true, for corn ethanol in the Midwest, today. Sugar cane ethanol coming out of Brazil has something to the effect of a 10x return on energy spent to produce it (better than oil). I'm from the Midwest, have an ag background, and have been very skeptical of the idea of corn ethanol as an alternative fuel source ever since it became big in 2006/2007 (for the reason you mention, ROE).

What I hadn't thought about before though, is the fact that 100 years of compounding subsidies in oil and gas have allowed for massive technology investment which has improved the ROE for petroleum based energy sources over that timeframe. The question then becomes, if we could subsidize ethanol production for the next 100 years to spur R&D in the area, what kind of ROE would we be getting 100 years from now? Or, alternatively, what kind of ROE did gas get when it was first discovered as a new energy source?

<comment><USER8> You're right that it's not ethanol in general, just corn ethanol, and by extension American-produced ethanol. Which is the topic here, but it's certainly true that it's not a condemnation of ethanol in general.

Ultimately, as far as picking technologies goes, the history of oil doesn't matter. It's interesting for sure, but they're a sunk cost that we get whether we want them or not. If oil is better than ethanol _right now_ , either with no subsidies or with equivalent subsidies, then we should stick with oil. The fact that oil got subsidies in the past doesn't change that.

Of course, sticking with oil is a bad idea in the long run, but the same basic idea applies to comparing ethanol with other sorts of renewable energy, and electric cars and such. Would we be better off putting those subsidies into nuclear, wind, solar, electric cars, etc., rather than ethanol? I think so.

</comment></comment></comment></comment><comment><USER9> With 80%+ of corn grown in the US being from Monsanto seeds, you can bet that there is going to be a lot of push back against this. Why are taxpayers subsidizing an already profitable industry? How many millions does Monsanto spend on lobbying every year?

[http://ourworld.unu.edu/en/can-we-feed-our-world-without- mon...](http://ourworld.unu.edu/en/can-we-feed-our-world-without-monsanto)

<comment><USER10> This Monsanto is evil stuff is our generations "contrails" conspiracy theories.

The audacity of designing a better corn seed knows no bounds!

<comment><USER11> Designing better corn isn't the reason people have issues with Monsanto.

<comment><USER12> In the tech world and scientific communities, no. We care about IP abuses, if anything--many, many studies have shown that the products are safe to eat, but Montanto's behavior is occasionally despicable.

The rest of the country, though? The hippie, New Age folks that make up a frighteningly large segment of the population? GMOs are "unnatural Frankenfoods" destroying our DNA and whatnot.

My friend group is definitely skewed toward the hippie spectrum, so I may me over-estimating their numbers, but only 37% of Americans say GMOs are safe to eat[1]. I don't know what percent of those know who Monsanto is, or what percent say Monsanto's business practices are unethical, but I certainly lean toward "designing better corn" being the most common qualm.

[1] [http://www.pewinternet.org/2015/01/29/chapter-3-attitudes- an...](http://www.pewinternet.org/2015/01/29/chapter-3-attitudes-and-beliefs- on-science-and-technology-topics/)

<comment><USER11> The problem with GMO's is that most people aren't equipped to have a nuanced discussion about them so the conversation devolves to massive generalities and extremes that aren't useful because both polar extremes turn out to be illogical positions to take, but they are the only two positions that are discussed.

</comment></comment></comment></comment></comment><comment><USER13> Unfortunately corn is far from best crop for ethanol production. Hemp is twice as good, and if it wasn't for this stupid war on drugs, ethanol may have done us a lot of good. Of course, they promised us switchgrass ethanol with is something like 10x more efficient, but never delivered -- probably b/c from the get go it was all about getting subsidies and only pretending to actually do something about our addiction to oil.

<comment><USER14> Depends on which efficiencies are important. Aren't you taking about sun etc. -> biomass? Whereas biomass -> ethanol appears to be a lot more important, and starting from simpler sugars and starch is a _lot_ easier than cellulose, wherever the latter comes from. That also has a lot to do with the upfront capital costs you decry.

<comment><USER15> manHours*land -> biomass is a good one. So it has to be grow densely, grow everywhere, grow without supervision and be easy to harvest, preferably as many times per year as possible.

</comment></comment></comment><comment><USER16> I expect it is (game over), but not because anyone in authority is going to say it, rather because farmers are going to be able to make more money raising food crops now that California is out of water. If you plant a corn field with nut trees you will won't want to plow those under again until you get your money back.

</comment><comment><USER17> Subsidies should go to electric cars and new nuclear power plants instead.

<comment><USER18> Farming subsidies have a long pass. The concern is that we lose to many farmers we lose the ability to feed ouraselves. Willie Nelson started "Farm Aid" to address his own conern and it was apart of a national movement. So US Farmers are supported by the governemnt and they get the subsidies. It isn't the seed manufators that them.

Personally I hate ethnol and well there is hope that we will get off of fosil fuels for electricity sooner rather thamn later AKA After I Die.

<comment><USER19> Ah, but farmers don't take these subsidies and stuff them in their homespun mattresses. They pretty much hand them over to seed, fertilizer and equipment manufacturers.

George Archer was once asked why he didn't just employ farmers directly, instead of buying contracts for their output. He allegedly replied along the lines that he'd never be able to get away with treating employees so poorly.

<comment><USER18> Canada does not give their farmers subsidies for grain farms. I had friends that ran a fairly large farm. It was always fest or famine. On good years they would make hundreds of thousands of dollars and on bad years they would lose tens and hundreds of thousands of dollars. The issue was if you had a string of bad years for to long. My friend is still farming 20+ years now and he made money in all but 5 of them.

He also says that the work load is basically the same for a profit or loss year. It is based on the prices of the crops and that the yields stay the same. He predicts this year will be a BIG loss year.

This is the forecast for farmers this year in US. [http://www.ers.usda.gov/topics/farm-economy/farm-sector- inco...](http://www.ers.usda.gov/topics/farm-economy/farm-sector-income- finances/2015-farm-sector-income-forecast.aspx)

Farming was something I did for 2 weeks a year for fun. It was so different than my desk jobs that I really enjoyed it and the economy of the business is really hard to get your head around but was fascinating to me.

</comment></comment></comment></comment><comment><USER20> Even if the bill/subsidies are returned , i don't see how corn-based sugars could compete with proterro which claims to make(using biotech) sucrose at 1/3 of the cost of sugar made from sugar cane.

Maybe if celluse based ethanol was viable there was a way ,but it isn't as far as i know.

</comment><comment><USER21> My (very trusted) mechanic just told me to switch to 100% gas instead of the 10% ethanol that is so common. My car is a 2007 model but he said that it will be better for the engine in the long run and I'll get more efficiency.

<comment><USER22> Where would you even find 100% gasoline?

<comment><USER23> It's around. They even sell testing kits to make sure.

If you can find it, run the 100% pure stuff in your lawn equipment unless it specifically says it can run on E10. The E10 absolutely destroys the old rubber lines and clogs up carburetors.

<comment><USER24> For smaller 2 cycle engines (chain saws, string trimmers, etc.) you can also buy small volumes of pre-blended gasoline and oil at various mixture ratios that are ethanol free. You can find these near the mower section in most of the big box hardware stores. It's not cheap compared to blending your own, but it keeps my tools very happy.

Though I generally have tried to move away from 2 cycle tools to LiPo electric ones where feasible. My electric push power works really well, and I maintain a little under 2 acres of grass.

</comment></comment></comment></comment><comment><USER25> I recently moved ~60 miles and I don't remember any gas stations in my old town advertising E85 fuel but here it seems like most of them have it. I'm still in the same state and it seems weird that it would be so common in this town. I don't think there are any car plants here so I'm not sure why this town bought into E85 so much. (In the town I grew up in there is also a compressed natural gas station but there is a car plant that manufactures them there so that makes sense.)

<comment><USER26> E85 is usually cheaper because of the subsidies.

I've found the more rural gas stations stock 100% gasoline. I assume it's because the older engines in farm and sporting equipment don't take kindly to E85 (different valve timing needed, it's rough on old seals, etc).

</comment></comment><comment><USER27> Politics aside, its a worthwhile endeavor to hedge our bets on fuel. We're addicted to it; when our supply is threatened it costs us many times the entire cost of the ethanol subsidy program.

In fact, the annual corn subsidies in their entirety would operate Welfare for 36 hours per year. Its a drop in the investment-bucket.

</comment><comment><USER28> and i would have gotten away with it if it wasn't for you meddling rain forests and 3rd world hungry people.</comment>


(Korean)AirBnb: host wasn't intentional (though be attempted to rape his guests) - <AUTHOR> http://www.insight.co.kr/newsRead.php?ArtNo=114861 <comment><AUTHOR> tldr: 1\. Some months ago, a Korean woman was drug-raped by an airbnb host.

2\. Airbnb did not block the host nor did it tell anyone about the host

3\. The host tried to drug-rape his guests again

4\. Japanese police found about 'white powder remains in the cup given by the host'

5\. Airbnb's 1st reaction: he didn't intend to do it.

6\. Airbnb's 2nd reaction: Japanese police said he's ok

7\. Airbnb's 3rd reaction: We'll educate the host on the matters

8\. Airbnb's 4th reaction: We'll do something about it (...but what?)

I chose HN because I saw some Airbnb founders/employees hanging around, and I'd expect them to solve these kind of issues. Maybe the Korean / Japanese Airbnb customer service is not doing their job/etc...?

<comment><USER2> This is terrible for the users but hardly surprising.

I know it's not a popular opinion but some of the laws setup around service industries like hotels, taxis, etc, are for the protection of the user from potentially dangerous providers.

"Ripe for disruption" is just "lots of laws we can ignore"

<comment><USER3> > _" Ripe for disruption" is just "lots of laws we can ignore"_

On the whole, I think society probably benefits from this kind of edge testing. I certainly don't encourage it. And taking on federal or state laws is a different game (legal and moral liability-wise) from challenging municipal codes, particularly when people get hurt.

But Uber challenging the taxi industry forced everyone to take out the rulebook and reconsider what is and isn't truly necessary. Something similar is happening with hotels. One could argue, with Bitcoin _et al_ , too.

<comment><USER2> Uber spent more money campaigning to prevent a law requiring background checks on drivers in one city than it would have cost to do background checks for all their drivers in the entire country.

These companies can try to claim it's about making things better all they want. It's clearly just about money to them. I learnt that the hard way trying to deal with AirBnB.

Tip: companies "doing the right thing" don't charge your credit card _then_ require you to login with Facebook (which I don't have) or upload a video explaining why I want to rent a house.

<comment><USER4> I think that's a slight oversimplification. Uber wasn't fighting doing background checks in Austin, they were fighting doing background checks the way the city of Austin wanted them to. But at a more meta-level, what they were really fighting was a precedent that would create a patchwork of local regulation on Uber that would make it harder for them to scale.

But yeah, it is ultimately about the money.

<comment><USER2> A self-imposed background check is essentially no background check.

The differences between Uber's and e.g. Taxi's is laughable, when you read accounts from actual Uber drivers like [http://valleywag.gawker.com/uber- driver-heres-how-we-get-aro...](http://valleywag.gawker.com/uber-driver-heres- how-we-get-around-background-checks-1596982249)

</comment></comment></comment></comment></comment></comment><comment><USER5> Is there some cultural component in the (non-) reaction of the Asian Airbnb "branches" (maybe a rape=dishonor=never admit it) or is it just a plain PR- disaster avoidance scheme?

</comment><comment><USER6> Does this site disable right-click? Can't translate normally.

<comment><USER7> yeah it's blocked. try full site translate [https://translate.google.com/translate?sl=auto&tl=en&js=y&pr...](https://translate.google.com/translate?sl=auto&tl=en&js=y&prev=_t&hl=ko&ie=UTF-8&u=http%3A%2F%2Fwww.insight.co.kr%2FnewsRead.php%3FArtNo%3D114861&edit- text=&act=url)

</comment></comment><comment><USER8> Brian Chesky is a horrible person for foisting this on the world. Disruptive, indeed.

<comment><USER9> We all have the right to our own opinion. I have never used Airbnb but certainly have lots of friends who have. Some love it and others not so much. I know people who would lose their home if it were not using Airbnb to rent out their guest room(s). One man's disaster is another's savior, I guess.

<comment><USER10> > I know people who would lose their home if it were not using Airbnb to rent > out their guest room(s).

I know people who are feeling increased pressure to participate in the Airbnb game, so as to not get priced-out by people who are doing so!

It's a race to the bottom.

<comment><USER11> It's only a race to the bottom because of artificially constrained housing _supply_. Housing in cities would be substantially cheaper for everyone if it weren't for NIMBYism and zoning laws. It's not AirBnB's fault for giving people the ability to rent their homes.</comment></comment></comment></comment>


Show HN: I design & develop, my first solo project - a social network for gamers - <AUTHOR> http://dpadd.com

<comment><AUTHOR> Any thoughts or feedback welcome. I'm accepting people into the beta right away for now.

Here's a few screenshots of what's on the inside: <http://bit.ly/ZA91zW> <http://bit.ly/Y4GC4y> <http://bit.ly/XD5kcE> <http://bit.ly/10Dbaxj>

<comment><USER2> I thought it was weird how you say that the invites are not easy to come by, but everyone starts with 10,000 invites, and everyone gets invited within a day of giving you their email.

<comment><AUTHOR> Haha, only the people working on the site have 10000 invites (I'm assuming you're going off the screenshots?). And we're only "open-ish" for the first few days.</comment></comment></comment>


JupyterHub 1.0 - <AUTHOR> https://blog.jupyter.org/announcing-jupyterhub-1-0-8fff78acad7f <comment><USER2> I love JupyterHub, but we've hit some real headaches in having it scale. At Virginia Tech, we have an introductory course for non-computing majors where students are using Jupyter through JH. At around the 70-student mark, we have performance issues. Considering that the course is eventually meant to scale much farther (hundreds of students), we're not really sure how we can make further progress with our current resources. I hope this new version has some performance enhancements (though I don't see any in the changelog). Last I talked with anyone about this was in the NBGrader project[1], where other schools were hitting walls with scaling.

[1] [https://github.com/jupyter/nbgrader/issues/530#issuecomment-...](https://github.com/jupyter/nbgrader/issues/530#issuecomment-375693819)

<comment><USER3> Give us some details about your setup. Are you running JH on the cloud somewhere? Or is this running on a single box at VT? We've got JH running on a Kube cluster with persistent storage on the NSF Jetstream cloud [1] (which you could qualify for free resources being from VT) . This set up should theoretically address the scalability concerns you are having. See the work Andrea Zonca and I have been doing [2, 3, 4, 5]. Contact me for additional details.

[1] [https://jetstream-cloud.org/](https://jetstream-cloud.org/)

[2] [https://zonca.github.io/2018/09/kubernetes-jetstream- kubespr...](https://zonca.github.io/2018/09/kubernetes-jetstream- kubespray.html)

[3] [https://zonca.github.io/2018/09/kubernetes-jetstream- kubespr...](https://zonca.github.io/2018/09/kubernetes-jetstream-kubespray- explore.html)

[4] [https://zonca.github.io/2018/09/kubernetes-jetstream- kubespr...](https://zonca.github.io/2018/09/kubernetes-jetstream-kubespray- jupyterhub.html)

[5] [https://github.com/Unidata/xsede- jetstream/blob/master/vms/j...](https://github.com/Unidata/xsede- jetstream/blob/master/vms/jupyter/readme.md)

<comment><USER2> I'm not as up on the details as you'd probably want, but my understanding is that we're running it on a virtual server with a nice chunk of RAM and CPU locally at VT. I don't think we want to be at all reliant on external servers - this is FERPA protected data. Plus, the long term goal was to find a solution that other schools could adopt without being an R1.

</comment></comment></comment><comment><USER4> When would someone use jupyterhub? I've been running my own notebook server for years, but it's single-user, single machine. Is hub for like providing separate jupyterlab instances for a bunch of different users/different machines?

<comment><USER5> Yes exactly. At my work when a new scientist joins us we just create an account and she can get started on her research within minutes. Each user gets a contained environment in which we mount a disk of shared data.

<comment><USER6> I just did this in my University lab as well. Most people aren't savvy with Linux, so having normal accounts with Jupyter port forwarding is out of the question. JupyterHub is just about the lowest friction I can possibly make it for introducing the Python data science stack to non data scientists.

<comment><USER7> IMO, Jupyter Notebook is the closest equivalent to Python as what Rstudio is for R. While Pycharm and VSCode are also preferred by some Py-based Data scientists, Jupyterhub offers almost everything that a typical IDE would do along with the traditional Notebook environment which a lot of beginners these days start with. Thus much less friction while getting started.

<comment><USER8> I would be really hesitant to comapre Jupyter Notebook to an IDE.....an example is a debugger...the only visual debugger that i have come across for jupyter is pixie debugger, which is miles behind the debugger of an IDE like Pycharm.... there is a huge list of features that jupyter needs before you can compare it to an IDE

<comment><USER9> It is an interactive environment (not much use for a debugger).

<comment><USER6> FWIW I use the %debug magic command in Jupyter and it has been a great experience. I'm pretty ignorant of the enterprise debugging tools so take that with a grain of salt.

<comment><USER10> Debuggers are only really useful if you're trying to figure out why some object in your server doesn't do what you want it to.

I'd wager that almost no data scientists write object oriented code.. it's probably mostly done one calculation at a time. executed in the notebooks repl. So the value you get from ide debuggers is tiny, as you're already doing everything one step at a time.

<comment><USER11> You still write functions and may want to inspect variable state in the middle of function execution.

<comment><USER12> Correct. RStudio has this feature, where variable values can be inspected in a sidebar. This would be a really useful feature for Jupyter, especially when running a Python kernel.

<comment><USER13> There is a JupyterLab extension for that: [https://github.com/lckr/jupyterlab- variableInspector](https://github.com/lckr/jupyterlab-variableInspector)

<comment><USER11> Does it work with variables that are local to a function? I don't mean inspecting global variables _after_ having executed a cell, but local variables in the middle of a function execution.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> This is really cool and I'm impressed by the jupyter team. My favorite part is that it's such a good product that beats the commercial products because it's hard to figure out, I think, commercial models that support this wide range of collaborators (people who view once a month to people who author every day).

I was trying to read about whether jupyterhub is included in RStudio Connect, or if they are competing products.

<comment><USER15> You can use RStudio Connect to publish Jupyter notebooks, see [https://blog.rstudio.com/2019/01/17/announcing-rstudio- conne...](https://blog.rstudio.com/2019/01/17/announcing-rstudio- connect-1-7-0/)

<comment><USER14> Thanks. That's why I'm trying to figure out if it's actually jupyterhub under the covers so they'll get these new features. Or if they are competing and RStudio will have something similar or I have to check their dev schedule.

</comment></comment></comment><comment><USER5> Congratulations! JupyterHub is a great project with high quality code and docs. Looking forward to try the named servers feature as I run a JupyterHub instance that spawns servers inside containers based on a single image which inevitably tends to grow as I add libraries. Being able to manage multiple servers should allow me to split the image into smaller specialized images.

</comment><comment><USER16> Any recommendation on how to setup an environment with Jupyter and nvidia/cuda? Is it worth to use a docker container? or installed system wide?

<comment><USER17> At work we use conda which works great, though nvidia libraries are usually installed by admins system wide. But for anything python related, conda is perfect.

<comment><USER16> Thanks for the answer :) what is the advantages of using conda vs installing the packages by hand? Tried to document my self a bit before but I still dont know the real advantages in a modern Linux system

<comment><USER18> Conda is "just" a distribution and package management tool. As a beginner it is a good idea to just go with it, but installing all packages using pip is just as good, in the end. For reference: [https://www.xkcd.com/1987/](https://www.xkcd.com/1987/)

<comment><USER19> In bioinformatics there is a trend for systems like qiime2 to be basically impossible to install via pip and to have conda and docker be the only options. In part this is because rarely do bioinformatics pipelines rely only on python but on a multitude of existing programs that need to be installed.

</comment></comment></comment></comment></comment><comment><USER20> When will jupyter have highlight to execute?

<comment><USER5> The Script of Scripts project adds this feature : [https://vatlab.github.io/sos- docs/doc/user_guide/multi_kerne...](https://vatlab.github.io/sos- docs/doc/user_guide/multi_kernel_notebook.html#User-Interfaces-)

</comment></comment><comment><USER21> Great news! Question for the fellow Jupyter Hub users: how do I expose users' Conda environments to them?

<comment><USER22> Install ipykernel or irkernel packages in the environments you want juoyterlab to know about

<comment><USER5> You'll also need to register it against Jupyter.

For Python :

        $ ipykernel install --user --name myenv --display-name "My environment"

For R :

        > IRkernel::installspec()

As mentioned previously, nb_conda_kernels allows to automate this step.

</comment></comment></comment><comment><USER23> Congrats to the team! This is a major productivity milestone for teams using Jupyter.

<comment><USER18> Jupyter Notebooks / JupyterHub and BinderHub are, in my humble opinion, most relevant for the future of education, as a tool for teaching, for science, as a format for replication, and for everything in between, see the data sciences. And even more!

</comment></comment><comment><USER24> How would JupyterHub compare with something like AWS SageMaker or EMR notebooks?

<comment><USER25> First of all, AWS SageMaker is really a ML system that happens to include Jupyter notebooks as a component. But if you are talking about just the Jupyter notebook part, then I would say - you could use JupyterHub to build your own implementation of SageMaker (you would want to use kubespawner and some deployment of kubernetes if you wanted to scale to multiple nodes). For example, I run [https://www.saturncloud.io/](https://www.saturncloud.io/), and we orchestrate JupyterHub to do just that.

JupyterHub is more flexible - for example, you could deploy JupyterHub to one beefy server and have Jupyter deployed for many users, which could all read data from a shared filesystem. that kind of thing is not easy to do with SageMaker since everything runs on a separate ec2 instance.

I can't comment on EMR notebooks.

</comment></comment><comment><USER26> Congrats on a great product!</comment>


Amazon Web Services in Plain English - <AUTHOR> https://www.expeditedssl.com/aws-in-plain-english <comment><USER3> Azure service names by comparison: Virtual Machines, Storage, Functions, Pipelines, Archive Storage, Active Directory, Repos [1]. Personally, I am not irked by less-descriptive names as much as with the hoard of acronyms—S3, EC2, SQS, SES, SNS.

[1]: [https://azure.microsoft.com/en- in/services/](https://azure.microsoft.com/en-in/services/)

<comment><USER4> They did Azure: [https://www.expeditedssl.com/azure-in-plain- english](https://www.expeditedssl.com/azure-in-plain-english)

</comment></comment><comment><USER5> Sure, a lot of AWS services could have been named better. But a lot of these are terrible, downright misleading names.

Some examples:

S3 as "Amazon Unlimited FTP Server": S3 has nothing to do with the FTP protocol.

VPC as "Amazon Virtual Collocated Rack": VPCs don't have anything to do with either collocation (they can span AZs), much less physical racks.

Lambda as "AWS App Scripts": _really_ disagree with this one. Their intent is to be microservices or event handling functions, not scripts. "Scripts" isn't really descriptive but usually implies a manually invoked automation that modifies some kind of stateful resource (such as files). Lambda is basically the exact opposite.

There are lots more that are problematic or overly simplified as well.

I don't say this to crap on the effort, just... be careful if you're relying on this for your understanding of what AWS does.

<comment><USER6> You are missing the whole point. As a designer that dabbles a bit in code and servers, I literally have NO idea what most of the words you just used mean.

I know that S3 has nothing to do with FTP, but it's a nice analogy that I can relate to. Get off your high horse.

<comment><USER5> Here are some better names for S3 that aren't misleading:

\- Binary Storage

\- Blob Storge

\- File Storage

\- Reliable Storage

FTP is a specific protocol. Hard drives (as a sibling comment mentions) are a specific technology. Our discipline is confusing enough that names should be precise, not analogical.

<comment><USER7> "File Storage" is a bad idea for the same reasons comparing to FTP is. It might work for a near layman, but it can actually communicate misinformation to someone who knows slightly more about storage. Specifically, S3 is Object Storage, as opposed to File or Block Storage.

This is why "simple descriptions" are hard. Leaving nuance behind makes a lot of room for confusion.

<comment><USER8> Since S3 was more or less the first service to have the concept of Object storage, I think we would have been able to deal with 'File' storage.

Also, I think the difference is more between filesystem and object storage. You are still uploading files to both.

</comment></comment></comment></comment></comment><comment><USER9> (disclaimer: I worked at AWS from 2008 to 2014 as Technology Evangelist)

I always disliked most of the acronyms. The worst for me was Elastic Beanstalk, a name allegedly picked by Bezos himself. I thought that choice was really poor, considering that most of the world doesn't know what Beanstalk refers to.

This is what happens when you grow up in an English culture and think that the world functions like yours. I had the luck of being from a different culture (Italy), and therefore an easier way to discern certain things.

It doesn't mean that this "type" of fairy-tale is unknown, in fact its origins might trace back to 5,000 years.

In addition, "Jack and the Beanstalk" is an Aarne-Thompson tale-type 328, The Treasures of the Giant, which includes the Italian "Thirteenth" and the French "How the Dragon was Tricked" tales." [0]

[0]: [https://en.wikipedia.org/wiki/Jack_and_the_Beanstalk](https://en.wikipedia.org/wiki/Jack_and_the_Beanstalk)

<comment><USER10> I don't think this is so much a facet of growing up in an English culture, because their names make no sense to me either; I was born and raised in America, and work in web technologies. This isn't an American/English speaking cultural thing, it's something else.

<comment><USER11> Jack and the Beanstalk is known to almost everyone in the United Kingdom, a version with moral overtones is usually taught to school children, and it's a popular choice for pantomimes (in fact, it's on right now near me: [https://www.atgtickets.com/shows/jack-and-the- beanstalk/live...](https://www.atgtickets.com/shows/jack-and-the- beanstalk/liverpool-empire/))

</comment></comment></comment><comment><USER12> Author here - I haven't updated this in a while, but am always grateful for the appreciative comments and emails I get when it gets rediscovered.

There's also usually two other comments:

1\. Why isn't it funnier / meaner? (an early version had a couple more pointed descriptions).

2\. Why aren't these names more accurate?

The answer to both is that I was trying to be help people form a rough mental model of what / how and in what context they would use the services - <USER2> they could then take as a jumping off point for doing their own research into.

Nobody is relying on my jokey 2 sentence description of these services to make deep architectural choices about their apps. What I have heard many many times though is: "Oh! I didn't realize that's what AWS Service X did."

<comment><USER13> > I was trying to be help people form a rough mental model of what / how and > in what context they would use the services - that they could then take as a > jumping off point for doing their own research into.

This is exactly what I'm trying to do with Hackterms [1] - would love it if you could check it out and maybe contribute AWS definitions. We're up to 1200+ from hundreds of contributors like you.

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

<comment><USER14> Reminds of this book I found at a thriftshop, "The New Hacker's Dictionary" : [https://www.betterworldbooks.com/product/detail/the-new- hack...](https://www.betterworldbooks.com/product/detail/the-new-hacker-s- dictionary-0262680696)

(though probably with a lot less snark)

<comment><USER15> The Jargon File was the old ultimate reference: [https://en.m.wikipedia.org/wiki/Jargon_File](https://en.m.wikipedia.org/wiki/Jargon_File)

A lot of old hacker culture can be learned from it. Might be actually a good thing that it's not updated anymore.

</comment></comment></comment></comment><comment><USER16> In 2011, a polish bitcoin wallet company, "Bitomat", lost 17000 bitcoins ($231k at the time...) because they were running their operation off Amazon EC2 and wanted to upgrade their servers.

EC2 servers are "ephemeral". It's believed the operators glossed over the significance of the word when architecting their system and restarting their servers.

[https://siliconangle.com/2011/08/01/third-largest-bitcoin- ex...](https://siliconangle.com/2011/08/01/third-largest-bitcoin-exchange- bitomat-lost-their-wallet-over-17000-bitcoins-missing/)

Sidenote: MtGox acquired them and made the users whole. Everyone wondered how they could do that. Maybe they never really did.

[https://old.reddit.com/r/Bitcoin/comments/jfkfw/mtgox_to_acq...](https://old.reddit.com/r/Bitcoin/comments/jfkfw/mtgox_to_acquire_bitomatpl_compensate_loss_of/)

<comment><USER17> The storage for EC2 can either be instance store - storage on the same server as the instance and is ephemeral or EBS backed - networked storage that survives restarts and instance upgrades. This is made super clear when you terminate instances and/or resize them.

<comment><USER18> It wasn't always that way, but I'm pretty sure the option was there by 2011, as I believe it was released around 2010.

</comment></comment></comment><comment><USER19> I know this is a joke, but I'm glad this person wasn't in charge of naming these services. Amazon's concise and consistent names often translate directly to API calls, making it possible to guess CLI methods.

<comment><USER20> Solid point, but I'd like to offer that aws-cli has built in autocomplete, should help out with some of the 'guessing'

[https://docs.aws.amazon.com/cli/latest/userguide/cli- command...](https://docs.aws.amazon.com/cli/latest/userguide/cli-command- completion.html)

<comment><USER19> good point. That's great if the SDK for the language you are using has a utility for autocomplete and the terminal or IDE you are using has that utility installed, which may not always be the case.

</comment></comment></comment><comment><USER21> I got a kick out of this site and agree with all of these suggestions. As a video guy of sorts, this one was my favorite:

Elastic Transcoder

\- Should have been called Amazon Beginning Cut Pro

\- Use this to deal with video weirdness (change formats, compress, etc.).

<comment><USER17> I don't agree with EC2. When people think about EC2 they only think about VMs. Amazon considers the EC2 service a service that encompasses, VMs, load balancers, and a lot of other stuff.

"Amazon SQL" makes it sound like Amazon's bespoke sql database. RDS is hosted Oracle, SQL Server, MySQL, MarisDB, and Postgres. They all behave so much differently it really doesn't make any sense to combine them into one service.

</comment></comment><comment><USER22> My favorite is the original page from 2015:

[https://web.archive.org/web/20150910211935/https://www.exped...](https://web.archive.org/web/20150910211935/https://www.expeditedssl.com/aws- in-plain-english)

Don't forget to see the DirectConnect description.

</comment><comment><USER23> This page is hilarious, and reminds me of the early days of both open source and cloud services when everyone thought you needed some complicated sounding new phrase & acronym to be taken seriously. Just because that's the way IBM, Oracle, etc did it so we had to emulate that.

</comment><comment><USER24> Call this 'the language they speak'.

Let me explain why I believe (in part) they are doing this (and Jeff Barr can chime in).

AWS does this so that people learning from the start in cloud computing 'children' get used to the Amazon term (trademarked) and then it's harder for them to leave.

Because all of the other things they would need to do elsewhere have unfamiliar terms. And now the Amazon term is what resonates in their head 'the language they speak'.

So the brand name is the moat.

Meanwhile if you are Linode or Rackspace and you call it a VPS then it's easy to find an alternate provider of a VPS somewhere else.

Business wise it's on purpose and honestly it (in this case wouldn't work for everyone I might add) it's really smart.

<comment><USER25> I remember the days when getting a new VPS instance meant placing an order and waiting for hours if not days for the server to be provisioned manually.

So when I hear the term VPS I don't think cloud, I think 'inflexibility' and 'manual setup'.

</comment></comment><comment><USER26> I mean... shortened obscure names for things in the tech world isn't exactly unique. Here's one for basic UNIX commands:

       ls    list_files   Lists files in a directory
       cd    change_dir   Changes the current working directory
       cat   cat_barf     Takes stuff in and immediately hacks it up onto stdout

Etc.

<comment><USER27> Is there truth to that last one? I always assumed cat was short for concatenate and my brief googling appears to confirm that. Would love to read more on this if someone has a reference to cat_barf

<comment><USER28> Cat is for catenate. Later the word became concatenate.

<comment><USER29> It appears not:

[https://books.google.com/ngrams/graph?content=concatenate%2C...](https://books.google.com/ngrams/graph?content=concatenate%2Ccatenate&year_start=1800&year_end=2000&corpus=6&smoothing=3)

My understanding is that when you catenate A and B you concatenate A with B.

That is, the catenation of A and B is AB, but the concatenation of A and B is A (catenated with what - we haven't said) and B (ditto).

Of course this is basically trivia and the word that's used is concatenate.

</comment></comment></comment></comment><comment><USER30> Not saying I'm huge fan of AWS service names, but don't mind them either. Didn't feel it as blocking issue and got familiar with them quite fast.

<comment><USER31> Yeah the names are annoying for all of a few minutes. I suppose if you weren't working directly with them a lot (like a management role perhaps) it could be really annoying but it's not hard to make a cheat sheet.

I'd rather google "ebs <issue>" because it's pretty unique. Google eventually picks up on your preferences for non-unique names so not the worst thing though.

<comment><USER32> > I'd rather google "ebs <issue>" because it's pretty unique. Google > eventually picks up on your preferences for non-unique names so not the > worst thing though.

I appreciate it for this.

As a developer, I've tried to research Django-related items before (The Python Django). But as a guitarist, I've also done a lot of research about Django (Reinhardt). Getting the right Django is sometimes confusing when Google knows you have a deep interest in both unrelated items. Codenames are great like this if they're not reused.

</comment></comment></comment><comment><USER33> I work with a service every day named Connect.

I can't even find articles which I know exist using Google and nearly exact names.

"Amazon connect best practices troubleshooting" gets you to other AWS services like direct connect.

This is the only service name that truly bugs me.

<comment><USER34> Try adding quotes, e.g. [https://www.google.com/search?q="aws+connect"+best+practises...](https://www.google.com/search?q="aws+connect"+best+practises+troubleshooting) brings back results only to do with Amazon Connect.

<comment><USER33> Right, but as a user who has no idea what's available I'm sure that the ux is miserable

</comment></comment></comment><comment><USER35> Probably this is better - [https://github.com/open-guides/og- aws](https://github.com/open-guides/og-aws)

</comment><comment><USER36> Amazon Drawer of old Android devices is the best alternative name.

This is a fantastic resource, I wish I'd had it when I first dived (dove?) into AWS. Maybe these shouldn't actually be names, but it would be nice to have nice descriptions like this in the AWS documentation.

</comment><comment><USER37> Simply brilliant. I've genuinely been struggling to comprehend what most services are.

</comment><comment><USER38> I think most of the names are fine, now it's easy to Google on issues related to a particular service. Try Googling on "amazon queue issue" instead of "aws sqs issue"...

<comment><USER39> AmazonVS should be pretty unique.

</comment></comment><comment><USER40> EC2 is actually a really good name, as it has the important part of cloud right in the name: elastic. Generally, if your load is elastic, and you can design your solution to take advantage of the elasticity of EC2, you will do well in the cloud. If you just lift-and-shift your virtual machines into EC2, with no elasticity or scaling, you're going to hurt, in either performance, cost, or both.

</comment><comment><USER41> I guess it's up for debate. While I agree some are silly (Elastic Beanstalk/Kinesis), renaming the product does not necessarily increase discoverability, which is a bigger issue. As for this list, I find a lot of these too dumbed down or missing some huge use-cases.

S3 is simply an object store, which is a fairly common term. So "Unlimited FTP Server" is less obvious to me, and sounds old, outdated, and a security risk (although S3 can be that, too). Lambda is functions-as-a-service, or serverless. "App Scripts" would also tell me nothing, or sound like something for Office. SNS main use-case for us is not to "send mobile notifications, emails and/or SMS messages", but to link two systems together where some loss is acceptable, so "Amazon Messenger" is worse. SQS and SNS fit together well.

<comment><USER33> I think the sqs and sns naming convention is a bit confusing. Realizing that sns should be the typical choice for an event based architecture is weird to people used to working with a message queue

<comment><USER17> SNS and SQS works together but serve two different purposes.

SNS is for producers. You use SNS to say something happened. You have no guarantee that any consumer actually successfully processed the message and if the consumer is down, that message is lost to them.

The only way a consumer can actually directly process a message is by subscribing to via http or lambda. But again, if the consumer errors or is down, you're out of luck.

SQS is a traditional simple queueing mechanism. It has no fanout capability on its own but you do get the traditional queuing functionality. But it doesn't make sense logically for more than one process (or group of processes doing the same thing) to consume the queue.

If you want the traditional fanout, filtering, multiple queues that do different things on the same event/message, you use SNS and SQS together.

<comment><USER42> >If you want the traditional fanout, filtering, multiple queues that do different things on the same event/message, you use SNS and SQS together.

For this sort of use case, I've generally opted to go with a Kinesis stream, and I'm having a bit of a hard time understanding why a mix of SNS and SQS would be better here.

<comment><USER17> For a simple "something happened" with a message and attributes, Kinesis is overkill and not as flexible.

You can send an SNS message with attributes and subscribe to that SNS message with any combination of SQS queues, lambda functions, emails, http endpoints, etc and with any of the subscriptions you can design it so that any of the subscriptions only get messages based on attribute conditions.

Also with SQS, you get the standard granular retries, dead letter queues etc. Yes with Kinesis you can do shards but it really doesn't make sense to have more than one process reading messages from the same shard to scale out processing. With SQS, you can autoscale instances to read from the queue based on the queue size or just subscribe the SNS to an SQS queue and then subscribe the SQS queue to a lambda and let AWS work it's magic.

<comment><USER42> Much appreciated!

This actually has me rethinking the architecture on a project I'm working on right now. It looks like Kinesis would be a little bit cheaper at the volume of data I'm looking at... But the SNS/SQS method will let me sidestep some potential future scale-up concerns I had with the 5 reads per second limit without making a Rube Goldberg machine of Kinesis Analytics feeding into additional Kinesis Streams, which would drive the cost up higher than an SNS/SQS fanout.

<comment><USER17> 5 reads per second - yeah that's kind of low. At maximum scale up. I am processing 80 messages simultaneously on 8 instances - each instance is running 10 (I/O bound) asynchronous threads. I could push it higher but the database starts screaming.

But with Kinesis, it's true that you can do only 5 reads per second, but each read can have up to 10,000 records. With SQS, you can only get 10 records per call. I would think you could get much higher throughout with Kinesis, you would just have to handle storing your iterator/sequence number per shard somewhere to know where you left off in case of crash.

Kinesis is much better for higher throughput and you can always scale up instead of out if you need consistent throughout. It depends on your use case.

<comment><USER42> Yeah, my primary concern is that there were some other teams expressing interest in hooking up to the stream for working with the data in real time.

I know of a few workarounds - if the data is also being sent to S3, having some services working off of S3 events instead of the stream directly, or using Kinesis Analytics to fan out to additional Kinesis streams.

I might also just hook up SNS to the stream via Lambda and have them fan out from SNS. Hmm.

<comment><USER33> Keep in mind -- SNS is a push source for Lambda. When doing an approach like SNS->Async Lambda->...->Async Lambda it can become easy to saturate the event bus for your account.

<comment><USER17> Exactly. That's why I suggested

Event source -> SNS -> SQS -> lambda and set the concurrency limit of the lambda.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER43> To quote Aziz Ansari in the human giant: "I don't want you out there on the bully plane calling me up, saying 'hey, I gotta pull up my marshmallow pants and hit the boohoo button, 'cause I don't know where the cranberries are.' You know what I mean?"

</comment><comment><USER44> now if someone can translate Google's services....

<comment><USER45> GCP products, for the most part, have a name that describes it very well. [https://cloud.google.com/products/](https://cloud.google.com/products/)

</comment></comment><comment><USER46> This is badly needed for so many things. Amazon is the worst offender. Even the logos for the services are terrible

</comment><comment><USER47> We live on AWS. This is frickin' brilliant, and I just sent it around the technology department.

I also love the sponsorship message:

> Hey, this is sponsored by SendCheckIt - and by "sponsored" I mean that's > what I've been working on instead of updating this list.

</comment><comment><USER48> Amazon high throughput? How about Amazon distributed queues?

Amazon EC2 Queue? How about Amazon State Machines? Or Amazon BPM?

<comment><USER49> Yeah the SWF one is off. I feel like SWF doesn't get enough attention. It's pretty brilliant.

<comment><USER50> I suspect that the person who made this site worked at Amazon. The way they describe SWF makes me think that the author used it when it was in it's prerelease, "Decider" form. The "Flow" version that went onto become the one that was publicly released has a slightly different set of terminology and doesn't expose the use of queues in the same way the Decider version did. I love publicly released version of SWF and think it's a severely underrated product.

</comment></comment></comment><comment><USER51> I disagree. WAF is very transparently named

</comment><comment><USER52> How the hell can Amazon afford to host all of these services?!

<comment><USER53> [https://www.cnbc.com/2018/04/26/amazon- earnings-q1-2018.html](https://www.cnbc.com/2018/04/26/amazon- earnings-q1-2018.html) 5.4B in AWS sales in q1 2018.</comment></comment>


Comprehensive Experimental Analyses of Automotive Attack Surfaces - thomas-st http://www.youtube.com/watch?v=bHfOziIwXic

<comment><AUTHOR> Is this resurfacing because of the journalist "killed" in his Mercedes while investigating the government?</comment>


[Looking for feedback] Crossbrowsertesting.com adds mobile platform for testing - <AUTHOR> http://crossbrowsertesting.com/blog/cross-browser-testing-mobile-devices-now-available

<comment><AUTHOR> We just added mobile browser testing this weekend. We wanted to let people know and get some feedback. Main site is: <http://crossbrowsertesting.com>

Thanks!</comment>


Apple can comply with the FBI court order - <AUTHOR> http://blog.trailofbits.com/2016/02/17/apple-can-comply-with-the-fbi-court-order/ <comment><USER2> Crucially, this is software which doesn't currently exist in the world and which Apple has no intention of voluntarily writing. There is no specific law or regulation (like CALEA) which requires Apple to provide this functionality.

What the FBI is attempting is to use 'All Writs Act' from 1789 which authorizes Federal courts to issue "all writs necessary or appropriate in aid of their respective jurisdictions and agreeable to the usages and principles of law." Are there limits to what a judge can order a person, or a company, to provide?

A warrant describes "the place to be searched, and the persons or things to be seized." I would not expect a judge can draft a warrant for something which doesn't actually exist, and then force someone to create it.

This is not about providing physical access, or about producing documents which are in your possession. This is whether the government can usurp your workforce to make you create something that only you are capable of creating, against your will, not because there's actually a law which says you have to provide that capability, but simply because some investigator has probable cause that given such a tool they could use it to find evidence of a crime!

If 'All Writs' somehow does give the government the ability to enslave software developers to creating this particular backdoor, what is there to legally differentiate this request from, for example, one that would function over WiFi or LTE remotely?

There's been a lot of discussion about the 'secure enclave' and how this particular attack isn't possible on the iPhone 6. I think that's missing the point.... If 'All Writs' can force Apple to open a black-hat lab responsible for developing backdoor firmware for the 5C, then it can do the same for the 6. For example, why not force Apple to provide remote access to a suspect's device over LTE while the device is unlocked / in use? While we're at it, the iPhone has perfectly good cameras and microphones, let's force Apple to provide real-time feeds.

Think about the sheer quantity of networked devices which exist (or will exist) in an average home which could be used in the course of an investigation. If they can force Apple to create a 5C backdoor, I can't see any reason they can't apply the same logic to WiFi cameras, Xbox Kinects, or even your cars OnStar. Heck, even TV remotes come with microphones and bluetooth now... And don't get me started on Amazon Echo!

Fundamentally, the question is can you force a device manufacturer to implement backdoors into their products to be used against their own customers? Notably, _service providers_ have already lost that battle, they are required to architect their systems to be able to spy on their users and provide that data to law enforcement, often through specially design real-time dashboards. At least in that case it is based on duly enacted legislation with that specific intent.

But this is something really quite shocking -- can investigators, simply through obtaining a warrant, force companies to re-design the personal devices that we own and keep with us almost every moment of the day to spy on us? I truly hope not.

<comment><USER3> Under extraordinary circumstances, compelled expert witness testimony has lots of precedents, including situations where experts are required to expend resources to develop that testimony.

People on the Internet tend to believe that technology poses confounding problems for the law, but the law has been dealing with technical challenges for centuries. See, for instance, any case involving a complicated medical issue.

<comment><USER4> Yes, you can compel expert witness testimony, but this is different. Testimony is answering questions. Here, they are seeking to compel engineering/coding work. I've never seen that compelled by a subpoena.

<comment><USER3> If you read old-ish legal journal articles about expert witness compensation, you find that the requirement to do up-front work in order to generate the knowledge required to handle questions is a dividing line for whether (or, at least, whether in the 1960s) expert testimony must be compensated. From that, I gather that this kind of request isn't unprecedented.

</comment></comment></comment></comment><comment><USER5> I know my opinion is probably not popular, but if there was a way for Apple to physically install a firmware on a single device to allow for brute-forcing and if Apple did that in response to a direct court order, then this is probably the best compromise we can get.

I really believe that there should be a way for law-enforcement to get access to specific devices in response to a court order as long as the solution doesn't involve weakening the encryption for everybody else.

I'm absolutely against backdoors, secret* keys or similar crap. But physically access a single device in order to make brute-forcing it possible, that seems acceptable to me as that won't affect any other device.

That would be similar to a court order allowing law enforcement to enter your premises and take out the safe in order to pry it open at some other location where specialised equipment is available.

If this is all law enforcement wants, then maybe it's time to hand this over before law enforcement wants even more which will doubtless pave the way for mass surveillance of devices.

* until they leak. Then everybody has access.

<comment><USER6> > maybe it's time to hand this over before law enforcement wants even more > which will doubtless pave the way for mass surveillance of devices.

The FBI is already paving that way with this case. They don't overly care about access to this particular iPhone. They're taking this case through the courts so that they can establish a precedent that allows them to force manufacturer cooperation to unlock _any_ phone.

Edit: If they really cared about access to this individual phone, they wouldn't be going through the courts to get it; they'd be talking to the NSA TAO or other LEO with advanced forensic capability. As several people have pointed out, this iPhone 5C does not have a Secure Enclave and probably does not present a significant challenge to forensically analyze, to people that know what they're doing. They're going through the courts on this so they can get carte blanche to access iPhones 5S and above, which no LEO currently has capabilities to inspect.

Further edit: This is Farook's work phone. His main, personal phone was found destroyed in a dumpster near the site of the attacks. I find it incredibly unlikely the FBI really cares much about the contents of this individual phone, they just want a high-profile test case to expand their surveillance capabilities.

<comment><USER7> > They don't overly care about access to this particular iPhone. They're > taking this case through the courts so that they can establish a precedent > that allows them to force manufacturer cooperation to unlock any phone.

This is an analysis, not an objective and demonstrable fact.

I could just as well argue that yes, the FBI really does care a lot about this particular iPhone, and that's why the asked-for update is to be keyed to this iPhone and only this iPhone.

At the same time, _even assuming that is true_ , we're talking about the FBI going through a legal process, reviewed by a judge, to get the data off one phone at a time. If that's how it works every time, I don't see a problem; that is how the system is _supposed_ to work. I am kind of baffled as to why we're cheerleading the fact that Apple is refusing to perform what appears to be a perfectly reasonable request that is being made in accordance with the law. If you are operating under the presumption that the government is always a bad-faith actor, then we have much, much bigger problems.

Also, apparently this 'precedent' has already been set; according to a link in the article, Apple had previously offered custom firmware images to law enforcement after a court order that bypassed the lock screen on earlier iPhones.

[http://www.cnet.com/news/how-apple-and-google-help-police- by...](http://www.cnet.com/news/how-apple-and-google-help-police-bypass- iphone-android-lock-screens/)

<comment><USER8> Every comment I've read so far has said that Apple should help in this instance, so I don't see the cheerleading-- yet. Except now I may provide it. I just read Apple's letter to customers, and now I agree with _them_ that the very creation of backdoor software -- even if it's only meant to help in specific instances -- is a dangerous thing. Applying specialized knowledge that Apple has about iOS and iPhones, plus Apple's engineers, to creating an innovative backdoor that does not exist today, means that it can never be un- designed. It will never have fewer people aware of it, unless you kill them after they create the software. The knowledge will only spread. The software can only leak. The engineers can only get conveniently hired by a competitor or foreign government or our own government. I agree, it is troubling.

<comment><USER9> _The knowledge will only spread. The software can only leak._

Then why don't we have Apple's private keys yet?

Plenty of companies keep a lot of things very secret, including things like powerful debug modes, for a long time. At least long enough that everybody forgets the details and the software has long since rotted away.

<comment><USER10> Because it's Apple who keeps them, not FBI.

Nobody in FBI would give a damn about leaking the patched OS image: it's Apple's reputation on stake, not FBI's.

<comment><USER5> But. The FBI doesn't want the keys in this case. They not even want a build that works for on any phone but the one in question.

There is nothing of value for the FBI to leak.

This is the huge difference between this order (which I can live with) and blanket encryption backdoors using key escrow or other crap (which I'm absolutely vehemently against and willing to fight to the teeth)

<comment><USER11> "They not even want a build that works for on any phone but the one in question."

That is completely not true. There is no way to make such a thing that can only work on one particular phone. There will be some point at which the compromised firmware image checks to see if it's that device, at which point it would be possible to change that to whatever device you want.

"This is the huge difference between this order (which I can live with) and blanket encryption backdoors using key escrow or other crap (which I'm absolutely vehemently against and willing to fight to the teeth)"

No, there is absolutely no difference between those two.

<comment><USER12> > That is completely not true. There is no way to make such a thing that can > only work on one particular phone

The technique that makes this possible is described in Apple's iOS Security White paper, page 6 ("System Software Authorization"): [https://www.apple.com/business/docs/iOS_Security_Guide.pdf](https://www.apple.com/business/docs/iOS_Security_Guide.pdf)

This mechanism explains why you can't take an old release of iOS off a different phone and copy it to yours.

<comment><USER11> You've missed the point: By doing this, they've shown that it's possible, and that they already have the tools. Meaning that next time, it's going to be almost impossible to say no.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Indeed, this is precisely why Apple is writing an open letter. If this was an iPhone 6, they would have simply told the judge "no" and that would have been the end of the story. But since its a 5C, it is possible and Apple doesn't want to do it to avoid setting a precedent. If they cooperate with law enforcement to backdoor this phone, then they would face much more pressure to comply with any future laws that require backdoors be built-in.

<comment><USER14> In the end, they will have no choice but to comply.

Do people think this a game? Apple doesn't run things, the federal government does, and will, in the end, use it's full power to get what it desires.

<comment><USER15> Why are you saying this? There is always a choice. TC may choose to go to jail. His successor may also choose to go to jail. To the point that Apple shareholders may choose to let Apple go bust and burn the servers with the source code of iOS. You can argue that this is silly, idiotic and what not. But there is always a choice. Some brave people have choosen to go to jail previously.

<comment><USER16> Apple also has a form of resistance not available to you or I. They don't have to fall on their sword. A sword as big as theirs can be used it to decapitate (or, more aptly, recapitate) the FBI. With a 12-figure bank account, you can get a lot of people elected...people who will be more than willing to replace those in charge at the FBI.

What's more, they don't even have to actually do it, they just need to make the FBI believe that they actually would do it if the FBI presses the issue.

<comment><USER17> Right, but the FBI knows they wouldn't. This whole situation is generating good PR for Apple. Getting people elected that can change things would be a waste of their money because if known, it is very bad PR (the public is generally against lobbying like this) and the good PR created by this "fight" ends immediately.

<comment><USER16> Right, I was just suggesting that Apple has better "nuclear" options than Tim Cook going to jail out of principle and Apple going out of business.

</comment></comment></comment></comment></comment></comment><comment><USER18> This is so far the clearest and easiest to understand explanation of the Apple/FBI case I have come across. Great read.

</comment><comment><USER19> I wonder about the relevance of the case styled "United States v. Hubbell" (530 U.S. 27)†

Specifically ( _emphasis mine_ ):

> ...the Self-Incrimination Clause ... may be asserted only to resist > compelled explicit or implicit disclosures of incriminating information. > Historically, the privilege was intended to _prevent the use of legal > compulsion_ to extract from the accused a _sworn communication of facts_ > which would incriminate him.

-and-

> ...the act of producing documents in response to a subpoena may have a > compelled testimonial aspect. We have held that "the act of production" > itself may implicitly communicate "statements of fact." By "producing > documents in compliance with a subpoena, the witness would admit that the > papers existed, were in his possession or control, and were authentic."

-and-

> Compelled testimony that _communicates information that may "lead to > incriminating evidence"_ is privileged even if the information itself is not > inculpatory.

† [https://www.law.cornell.edu/supct/html/99-166.ZO.html](https://www.law.cornell.edu/supct/html/99-166.ZO.html)

EDIT: Wikipedia summary of the case here: [https://en.wikipedia.org/wiki/United_States_v._Hubbell](https://en.wikipedia.org/wiki/United_States_v._Hubbell)

<comment><USER20> This is all well and good but the 5th amendment doesn't apply to corporations. So United States v. Hubbell is irrelevant.

</comment></comment><comment><USER21> Makes you wonder why the FBI bothered with the bit about submitting PIN guesses electronically, and didn't just ask for a firmware that looped over all 10,000 PINs until it found the right one.

<comment><USER22> Perhaps the phone in question has a 6 digit PIN, so it's useful to try it non- sequentially.

</comment></comment><comment><USER23> Great piece. Get thee to a "Secure Enclave" supported device, everyone.

<comment><USER24> Or any rooted android. Good luck in defeating LUKS. No custom firmwares will help them.

<comment><USER25> a rooted android is probably easiest to own over the air with a push notification, so yeah, that's a great idea! _NOT_

<comment><USER24> A powered down device rarely has that vulnerability.

<comment><USER26> A powered down device isn't exactly terribly useful.

<comment><USER27> You can't send a powered down phone a push notification for post-hoc analysis.

You would have had to know the target and push a vulnerability beforehand, which wouldn't have helped in this case.

</comment></comment></comment></comment></comment></comment><comment><USER28> Despite the assertion of this article, it doesn't actually give any evidence to support the claim that Apple is capable of writing this backdoor. The important question is whether it's possible for Apple to update the OS on the phone (or to load a program into memory that runs on the phone) via DFU mode or something similar without triggering a wipe of the phone. And this article doesn't even acknowledge that question, it makes the blind assumption that this is possible. But is it? As far as I know, nobody has ever updated an iPhone over DFU mode without erasing the phone. It's plausible that Apple has the know-how to do that, but it's also plausible that the device firmware may have been written to trigger a wipe the moment any modification is made via DFU mode.

As a side note, the author mentions that Apple has updated the Secure Enclave with increased delays in the past without wiping data, though they state that only Apple knows how it really works. I just want to put forth the theory that maybe the Secure Enclave allows its firmware to be updated if and only if the user's passcode is provided at the time the OS tells the Secure Enclave to prepare for a firmware update. That would be a reasonable way to ensure the Secure Enclave can't be subverted.

</comment><comment><USER29> One would hope that the Secure Enclave only allows itself to be updated after the PIN has been entered successfully.

</comment><comment><USER30> The security architecture described here seems pretty clever. Is this degree of security unique across mobile devices? If the phone in question was from a different manufacturer or ran a different OS, would the FBI have to ask its creator for help?

<comment><USER31> Chrome OS was already doing chain of trust booting when it was first announced/revealed/open-sourced, but with maybe a hardware switch to enable flashing other loaders. (Since then that has been probably removed.)

There are Android full disk encryption schemes, and of course phones with signed bootloaders.

[https://nerdland.net/unstumping-the-internet/pattern- unlock-...](https://nerdland.net/unstumping-the-internet/pattern-unlock-after- android-full-device-encryption/)

[http://www.extremetech.com/mobile/216560-android-6-0-marshma...](http://www.extremetech.com/mobile/216560-android-6-0-marshmallow- makes-full-disk-encryption-mandatory-for-most-new-devices)

What Apple did that was so valuable is providing a very clear, almost abstract implementation, from scratch, hitting every point along the way (randomized device private keys, read and execute only Secure Enclave, signed loaders, proper AES(-XTS?) full disk encryption, probably also requiring strong a password too, full lock after ~48 hours - sure, it'd be good if this could be customized to something lower).

</comment></comment><comment><USER32> Would setting this precedent to enable brute-forcing the PIN on a less secure model really be that dangerous, then? This isn't a request to circumvent encryption on all models. It would be worrying if the government were asking for a backdoor into the Secure Enclave feature to retrieve the encryption keys, but that's nowhere near what this request is actually detailing.

I still remain opposed to any kind of circumvention that reduces security, which this definitely does. Just questioning whether it's something to be so shocked about since it's not exactly far removed from the kind of requests that they have conformed to in the past.

</comment><comment><USER33> If Apple can update the firmware of the Secure Enclave, could they not also write one that leaks out all the data contained within it?

Presumably this could then be used for offline attacks against the image dumped from the phone's flash memory.

</comment><comment><USER34> The part that I find most interesting as a former enterprise systems administrator from the 90's is that the employer owns the device but does not have a pass code for it. Is this the normal IT policy for these kinds of devices?

<comment><USER35> It's bad security to tell your manager your passcode/passwords, even for accounts they can get into through admin channels. The risk isn't the manager, the risk is that someone overhears you telling them the password, finds the piece of paper it's written on, etc.

</comment></comment><comment><USER36> Obviously government should not be allowed such power. Simply because it cannot be trusted. Everyone knows it will use this backdoor against everyone without limit. And everyone knows the lengths to which the US will go to spy on their people and everyone else. The fact that this request is being made is further evidence of the government's intentional malevolence. This behavior should not come as a surprise anymore. I mean any reasonable person by now knows what to expect from US government.

</comment><comment><USER37> I am wondering if there is no other way to get in. There are lots of security researchers out there who can hack in to iOS or any other mobile os. Would not be it simpler to hire somebody who could do it? There are probably many ways to get access to this device other than guessing the pin.

Update: In the meantime I was talking to my security engineer peers and it is not feasible to carry out an attack this way. The user partitions remains un- mounted until the PIN is provided after the boot.

<comment><USER38> > There are probably many ways to get access to this device other than > guessing the pin.

It's encrypted data using the PIN (and a key embedded in the phone). There's not another way in.

<comment><USER39> So I've been wondering, since the PIN is obviously not a strong cryptographic secret, the way the encryption works is basically security by obscurity.

All an attacker would have to to was clone the contents of the the device's SSD and somehow read the secret key that is embedded somewhere else. I'm not sure how feasible the latter part is, but surely this shouldn't be beyond the capabilities of US three-letter-agencies?

<comment><USER38> It's much more complicated than that (which is why the FBI needs help). The encryption uses the PIN _and_ a key that is in the phone. If you take the image and try all the PIN combinations you will fail because you don't have the embedded key.

[http://www.darthnull.org/2014/10/06/ios- encryption](http://www.darthnull.org/2014/10/06/ios-encryption)

> The UID key is used to create a key called "key0x89b." Key0x89b is used in > encrypting the device's flash disk. Because this key is unique to the > device, and cannot be extracted from the device, it is impossible to remove > the flash memory from one iPhone and transfer it to another, or to read it > offline. (And when I say "Impossible," what I really mean is "Really damned > hard because you'd have to brute force a 256-bit AES key.")

Newer phones also include a secure enclave that introduces another key and hardware restrictions on timing. The FBI's request wouldn't make sense for a modern iPhone.

<comment><USER39> How does "cannot be extracted" work? There must be some physical representation of the key inside the phone, so surely it should be posible to retrieve it somehow (e.g. using a scanning tunnel microscope or whatever)?

<comment><USER40> I don't know if this is implemented in the iPhone's Security Enclave, but many modern HSMs are designed so that physical tampering (such as extracting the chip for analysis) damages/destroys the data.

</comment></comment></comment></comment></comment></comment><comment><USER41> What I don't understand is why Apple can't just unlock the phone the same way that they would for any typical customer that forgot their passcode. I've never owned an iphone, what is the recovery process like for a typical customer that can't get into their phone?

</comment><comment><USER42> What would happen when other governments, their court, their agencies make similar demand?

The Pandora's box is opened?

</comment><comment><USER43> FBiOS :)

</comment><comment><USER44> Technically feasible, sure. But with a higher risk of introducing security vulnerabilities than most features.

</comment><comment><USER45> why can't they just use a pin code robot [https://www.youtube.com/watch?v=k_n5W69OdKM](https://www.youtube.com/watch?v=k_n5W69OdKM)

<comment><USER46> Because they don't want to spend the time.

After too many incorrect pins, there's a time delay before another attempt can be made.

The FBI is also thinking about the next time. They want to be able to take a phone, plug it in and brute force the PIN to gain access.

<comment><USER47> I have a feeling it's more about setting the precedent, as others have said. There are strategies that can bypass the timeout periods and automatic wiping while bruteforcing, and I'd be surprised if the FBI didn't have at least one rig set up to do it.

</comment></comment></comment><comment><USER48> We need to create devices that RESIST (warrantless,unconstitutional) mass surveillance and hide all of our data and metadata from everyone. Obama set a terrible precedent by warrantlessly scanning 'metadata' about who we contact. We're innocent by default, period.

I agree with the first post. We need to be creative and find a way to resist government surveillance, and the piece where the engineering seems impossible is allowing an occasional breach of security for extreme circumstances.

What's extreme? Well first, physical possession of the device should be required. Second, it should take resources only a nation-state would be able to afford. Want to decrypt an iPhone? It's going to cost > $5million in processing power. Any criminal would move on.

</comment><comment><USER49> The FBI's position seems entirely defensible. The phone data may yield important information - accomplices, contacts etc.

It also seems pretty disingenuous/hypocritical for Apple to plead "customer privacy" when the ENITRE BUSINESS MODEL of much of the smart phone and app industry (from which Apple directly benefit with a 30% commission) is predicated on abusing customer privacy.

<comment><USER25> Apple does not use customer data as part of their business model. This is a unique Google/Android feature.

<comment><USER50> Sources to back up your claim?

<comment><USER51> How about this?

"...we never sell your data."

[http://www.apple.com/privacy/approach-to- privacy/#personaliz...](http://www.apple.com/privacy/approach-to- privacy/#personalization)</comment></comment></comment></comment>


The hottest trend in web design is intentionally ugly, unusable sites - <AUTHOR> https://www.washingtonpost.com/news/the-intersect/wp/2016/05/09/the-hottest-trend-in-web-design-is-intentionally-ugly-unusable-sites/ <comment><USER2> Pinboard? Really? Are they confusing it with something else? Pinboard, in my eyes, is utilitarian and plain, but not ugly and unusable.

<comment><USER3> The person writing the article (in common with most people) equates "looking good" with "working well" because they're unable to understand there may be a difference between those two things.

Also, the blandness of most current site designs makes the few who do anything remotely different stand out.

[http://www.novolume.co.uk/blog/all-websites-look-the- same/](http://www.novolume.co.uk/blog/all-websites-look-the-same/)

</comment></comment><comment><USER4> I'll see your brutal website and raise you a lingscars: [http://www.lingscars.com](http://www.lingscars.com)</comment>


Ask HN: "Multi Page App" design/architecture/advice? - _<comment></comment><comment>_ For context, I find SPAs overrated, over engineered and complicated as hell to manage for 99% of the projects/businesses that use them. Let's leave them out and let's leave out any specific languages/frameworks.
I have built a solo side project that makes $XX,XXX/MRR and it was done with a very popular server rendered web framework. I am in the middle of building a second solo business, but this project requires quite a lot more performance and after building a prototype using the previous web framework, I have confirmed it would be difficult (ie, expensive) to scale to meet the needs of the service I am building.
I have built my own "multi page app" solution from the ground up with another language/technology that far surpasses the performance requirements. I'm at the point where I'd like to learn more about multi page apps from the fundamental level so I can ensure my multi page app solution has a solid base (security, performance, reusability, etc). Therefore enabling me to use and reuse it for all of my businesses going forward.
I'm having a hard time finding solid resources that discuss security, architecture and other considerations for "old school server rendered pages". I'd like to learn a lot more so have a very solid base for my project and future projects!
Are there any good resources out there you'd recommend? </comment><comment><AUTHOR> For MPAs security is as "simple" as:

\- Throwing away everything you don't need. \- Don't trust inputs. Actually you shouldn't trust anything - not even this comment. \- Since you dont trust inputs, add a version tag for all you input because your app will evolve. \- Sanitize all input (ints should be ints, not drop database strings for instance). \- Assume system/framework/service calls can fail. Log that. \- Check your routes. Some frameworks expose routes that you didn't knew about until some bastard asks Googlebot the path to remove some data and drives you mad for weeks. \- Remember to log all input data for further analysis. Well, maybe not all; but 1-5% of all (and tell users about that and dont' use that data for other stuff).

For me Javascript is good for small stuff. Maybe a simple "micro" service that updates something is good. Angular, React, and friends are too much for me because I need too much stuff to debug a simple app.

And don't misjudge the programmer time. Some frameworks allow you to start iterating quickly, but debugging is a nightmare. Also, don't use two (or more) technologies at the same time that you are still learning. One is fine, but learning two at the same time makes debugging #@!ng hard.

</comment><comment><USER2> Eh? There's stacks upon stacks of books and web sites written about traditional MVC frameworks...

<comment><USER3> OP probably just didn't know the term to search for was "MVC".

</comment></comment><comment><USER4> check out laravel. It's a modern PHP MVC framework and it's very easy to use.

</comment><comment><USER5> Postgres + gobuffalo.io + turbolinks + stimulusjs might work fo your requirements. IMHO this will scale pretty well for most projects while giving you enough frontend magic to still feel fast.</comment>


Nginx port of mod_pagespeed - <AUTHOR> https://github.com/pagespeed/ngx_pagespeed

<comment><USER2> Just a heads up.. ngx_pagespeed is a work in progress. As in, the skeleton is there and there is a filter or two running as a proof of concept, but there is still a lot of work to be done. Contributions would be most welcome.. :)

<comment><USER3> What help can we provide.

Apart from the whole "making it work part". Is there something in particular that is difficult ?

<comment><USER2> Mostly just hooking up all the API's - aka, "making it work", and making it work in the context of nginx. As a reference point, the Apache implementation took a while to get right even just because understanding all of the gotchas of Apache's worker model and surrounding API's took time - half a dozen false starts, etc. Now it's solid.

If someone has good understanding of nginx internals, then any input, guidance, etc, would be awesome, as it would short circuit a lot of that extra work. We have a design doc in progress, I'll work on making it public and will share it in the project readme. In the meantime, if you have any suggestions, open an issue on the repo and let us know!

<comment><USER4> Cool!

We have a good understanding of the nginx internals - the Tengine web server maintained by us is an example (<http://tengine.taobao.org/> <http://github.com/taobao/tengine>) We also want to ask how to contribute and look forward to your design doc :)

</comment></comment></comment></comment><comment><USER5> This looks pretty cool. For what it's worth - I did give Google's Pagespeed service a shot a month or so ago and ran from it like the wind. It's just that web pages seem to be extremely complex beasts and it's really hard to find a one-size-fits-all solution.

I want my scripts cached a certain way for a certain thing and my deployment systems do take care of all that. Given that situation - the only thing pagespeed was adding for me was serving pages through google's CDN. However, the upstream connection from google to my server was pretty poor and for most cases it ended up ADDING latency! :(

So for now, I'll give automated 'page-speed' tools a pass and simply try and do each step that Y!Slow suggests manually.

<comment><USER6> I'm not sure if I misunderstand your CDN remark, but your web server shouldn't be connecting to the Google CDN at any point. Your server provides the list of resources to the client browser, which is responsible for connecting to remote hosts to fetch those resources. If your server is near you, you will almost always see better latency for locally hosted content. But for users in Asia, being able to download something like jquery from a more local Google server helps significantly. Plus, Google CDN content can be cached, so users don't have to download it again for each site they visit.

I guess the point is, is your site for your personal use, or the world at large?

<comment><USER5> Google has been testing a 'hosted' version of mod_pagespeed over the last few months. It's currently invite only but what you do is you add a CNAME record to your domain and point it to google's caching servers.

So then what happens is that Google does a fetch from your server, and optimizes the response using mod_pagespeed techniques (including throwing your static assets onto their CDN and other funky stuff..).

Basically, all your CSS/JS/page-content/images get fetched through google's CDNs but this functionality relies on one critical part of the framework functioning really well - Google's connection to your origin server.

This is where it's at: <https://developers.google.com/speed/pagespeed/service>

Also, yeah my site is for the world at large and that's why this is an issue. I can definitely see how it's useful for personal websites and small projects.

<comment><USER6> OK, that makes more sense. Actually reading the site, I don't see why anyone would opt for that service over something like CloudFront and some manual optimization, unless it was a very small project.

<comment><USER2> If your upstream bandwidth to Google is poor, chances are, your upstream bandwidth is poor for _most other users_. In other words, I would consider this an issue on its own, and one definitely worth investigating.

CDN's are popular for static content, but there are a number of very good reasons to proxy dynamic content through your CDN as well. The most obvious advantage is that you can terminate the TCP connection much closer to the user, and then can leverage the optimized backhaul network to fetch from origin. This alone can be a huge win, especially if you have SSL in the mix, which requires 2-3 RTT's before it can even send the request.

</comment></comment></comment></comment></comment><comment><USER7> I was just wondering if nginx would have something similar to the apache module. Glad to see this here. Unfortunately I don't have the skills to help, but if there is another way to support this, please, let me know!

</comment><comment><USER8> WoW! That escalated quickly</comment>


Functional Programming in Dart - <AUTHOR> https://www.youtube.com/watch?v=oQcZL0n6cPg

<comment><AUTHOR> This is part of Erik Meijer's Functional Programming 101 Course.

[https://www.edx.org/course/delftx/delftx- fp101x-introduction...](https://www.edx.org/course/delftx/delftx- fp101x-introduction-functional-2126)

At 8:43 he briefly goes into async/async _/ sync_ support in Dart:

[https://www.youtube.com/watch?v=oQcZL0n6cPg&t=8m43s](https://www.youtube.com/watch?v=oQcZL0n6cPg&t=8m43s)</comment>


C++AMP: Accelerated Massive Parallelism - <AUTHOR> http://drdobbs.com/cpp/231000963

<comment><USER2> Slides: [http://ecn.channel9.msdn.com/content/DanielMoth_CppAMP_Intro...](http://ecn.channel9.msdn.com/content/DanielMoth_CppAMP_Intro.pdf)

=== Code example ===

Original, CPU-only code:

      void AddArrays(int n, int * pA, int * pB, int * pC)
      {
          for (int i=0; i<n; i++)
          {
                  pC[i] = pA[i] + pB[i];
          }
      }

GPU optimized code:

      #include <amp.h>
      using namespace concurrency;

      void AddArrays(int n, int * pA, int * pB, int * pC)
      {
          array_view<int,1> a(n, pA);
          array_view<int,1> b(n, pB);
          array_view<int,1> sum(n, pC);
          parallel_for_each(
              sum.grid,
              [=](index<1> idx) restrict(direct3d)
              {
                 sum[idx] = a[idx] + b[idx];
             }
          );
      }

First impressions: I like it.

<comment><USER3> With some decent DFA you can automate this stuff.

</comment></comment><comment><USER4> If it something like OpenMP (meta language on top of general purpose one) then I can see it, but if it's something that forces one to write always AMP code in the same language, then it would get messy very fast. I much preffer #pragma opm parallel for, rather than parallel_for<> and some syntax that would try to get into the original language.

Why Microsoft can't reuse OpeNCL?

<comment><USER5> The same reason they introduced DirectX to compete with OpenGL. Lock-in.

<comment><USER6> Maybe, but to be fair, that's only part of it. OpenCL is C99-based, and MS wants a C++ solution. OpenCL introduces more problems than it solves, primarily because the standards body mandated C99 and a low-level, driver- style interface.

Have you ever seen an OpenCL Hello World program [1]? It's miserable.

[1] [http://developer.apple.com/library/mac/#documentation/Perfor...](http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/Example:Hello,World/Example:Hello,World.html)

<comment><USER4> Can you show us a DirectCompute one?

Btw, introducing C++ introduces problems too: RTTI, exceptions, and the fact that templates are to be used (would tend to create bigger code).

<comment><USER6> DirectCompute suffers much of the same problems as OpenCL.

Folks who want to program GPUs productively use Thrust [1].

[1] <http://code.google.com/p/thrust/>

</comment></comment></comment></comment></comment><comment><USER7> While I really like the quality and features of the VC++ compiler, I really wish they would do something about the IDE that's gotten worse for C++ devs over time...</comment>


Online Arbitrage Deals on Amazon.com and UK - <AUTHOR> https://www.bestpricewinner.com/catalog/ <comment><AUTHOR> I recently started looking for deals on Amazon UK as well. I also added some filtering options to rule out unverified suppliers for instance. Check it out if you are into selling on Amazon. Cheers,</comment>


Agamemnon 0.3.0.0: A graph database built on top of cassandra - <AUTHOR> http://pypi.python.org/pypi/agamemnon/0.3.0.0

<comment><USER2> This is just about the best "new version" headline I've seen, since it has the name of the project, the version, and _what the thing actually is_.

</comment><comment><USER3> Anyone had any practical experience with this?

I'm somewhat skeptical of the practicality of a graph database backed by a network-connected datastore (as distinct from a graph database exposed over a network interface, ie: neo4j) due to the inevitable latency when traversing the graph.

Also the practicality of scale-out using an ostensibly sharded datastore (cassandra) for a structure that's notoriously difficult to shard meaningfully (graph).

<comment><USER4> It's going to be slow for global algorithms in large graphs, and fast for local traversals in any graph. Which is the best you can hope for, and they're probably close to the state of the art at doing both in one DB.

</comment></comment><comment><USER5> The joke in the name of this project makes me really uncomfortable.

<comment><USER6> For those not in the know Agamemnon took Cassandra (daughter of Priam king of Troy) as his concubine in the Iliad, hence the "on" pun.

I'm with you though. As much as I love projects with Classical History names this title makes it just a little creepy.

</comment></comment><comment><USER7> Says inspired by neo4j, any reason to use this over neo4j? Any benefits from being build on top of Cassandra?

<comment><USER8> Neo4j is limited to the ram available on a single machine. Cassandra can scale across many machines. You won't get nearly the same performance though as you would with neo4j.

<comment><USER9> Small correction: neo4j is limited to the resources of a single machine, but the database doesn't need to fit in RAM. You will see a significant slowdown once your data gets too big for RAM, but neo4j has put a fair amount of effort into efficient caching.</comment></comment></comment>


Ask HN: REST API to Render Isomorphic JS(React)? - <AUTHOR>

Just wondering if someone put already together a Nodejs project that renders templates with React components and that can be consumed from any language through a REST interface. And perhaps if you don't know, you can tell me your opinion about if you think it could be a good idea.
I'm aware of projects like https://github.com/reactjs/react-php-v8js or with go-ducktape
https://github.com/olebedev/go-react-example
But maybe keeping all javascript/html/render concerns in a separate Nodejs api could be cleaner. And reusable for any language. Thoughts  ? <comment><USER2> There is an Express package for this:

[https://github.com/reactjs/express-react- views](https://github.com/reactjs/express-react-views)

<comment><AUTHOR> I also found [https://github.com/paypal/react- engine](https://github.com/paypal/react-engine) But still the REST API is missing, I'm thinking to work on a proof on concept on an api on top of express react views to be consumed from Golang.</comment></comment>