Head of Navy intelligence hasn't been allowed to see military secrets for years - <AUTHOR> https://www.washingtonpost.com/news/checkpoint/wp/2016/01/27/the-admiral-in-charge-of-navy-intelligence-has-not-been-allowed-to-see-military-secrets-for-years/ <comment><USER2> "After a year in limbo, the Navy has decided to move ahead and replace the service's top intelligence officer, whose tenure has been hamstrung by suspected ties to a disgraced defense contracting firm.

The Office of the Secretary of the Navy has nominated Rear Adm. Elizabeth Train for a third star and to relieve Vice Adm. Ted Branch as director of naval intelligence, according to two Navy officials.

Branch's access to classified information was suspended in November 2013, along with that of a deputy, Rear Adm. Bruce Loveless, the director of intelligence operations, for possible connections to Glenn Defense Marine Asia — the husbanding firm at the center of one of the Navy's biggest bribery scandals in decades." [http://www.navytimes.com/story/military/pentagon/2014/11/26/...](http://www.navytimes.com/story/military/pentagon/2014/11/26/elizabeth- train-nomination-ted-branch-navy-intelligence-boss-relief-ray- mabus/19537939/?from=global&sessionKey=&autologin=)

"... Navy officials boarded and relieved Capt. Daniel P. Dusek of his command of the amphibious assault ship USS Bonhomme Richard. Fifteen months later on January 15, 2015, federal prosecutors obtained a guilty plea from Dusek on charges of bribery for supplying classified ship movements in the Asia-Pacific region to Glenn Marine in return for prostitutes and luxury hotel stays worth over $10,000. Dusek arranged for the carrier USS Abraham Lincoln and the amphibious assault ship USS Peleliu to stop at ports where Francis' firm could service the ships. Dusek was released on $200,000 bail pending his sentencing hearing set for April 3, 2015. The previous week, on January 2, 2015, Cmdr. Jose Luis Sanchez pleaded guilty to supplying secret ship movement schedules in return for prostitutes, luxury travel and $100,000 in cash over a four year period."

</comment><comment><USER3> In 2010, UWisconsin professor of history Alfred McCoy was invited to the 8th Annual Western Regional International Health Conference "War & Global Health" held at the University of Washington in Seattle. He gave a lecture mostly on torture and public policy.

In this lecture, Dr. Alfred McCoy claims that there was a bitter debate in the 2000s between the Justice Department and the Judge Advocate General's Corps [Famously broadcast television's JAGs] over torture [1]. He alleges that the JAGs were against the vast expansion of Executive power under the Bush administration (continued under Pres. Obama).

It is tinfoil-y to make broad sweeping narratives about the powers that be. All the same, on the basis of Dr. McCoy's speculation and public knowledge about John Yoo [2], I presume that if the Justice Department and the Navy are fighting that the Navy are the good guys.

[1] [https://www.youtube.com/watch?v=Dy_jjwid3YM#t=52m21s](https://www.youtube.com/watch?v=Dy_jjwid3YM#t=52m21s) [portion of immediate interest at 53:45]

[2] [http://www.nybooks.com/articles/2010/04/08/they-did- authoriz...](http://www.nybooks.com/articles/2010/04/08/they-did-authorize- torture-but/)

</comment><comment><USER4> _Pentagon officials said his security clearance would have to be restored by a separate arm of the bureaucracy in a process that usually takes months._

You'd think that they'd make an exception and speed up the process for the head of intelligence.

<comment><USER5> The problem is he's not yet cleared from the still-ongoing federal case. The feds need to release him from that before the adjudication authority can make a decision.

<comment><USER4> The context of the sentence I quoted said:

 _Even if Branch were cleared of wrongdoing by the Justice Department and the Navy tomorrow, he would face a much longer wait to regain access to military secrets._

</comment></comment></comment><comment><USER6> I don't think this is that big of deal. Most intel officers and especially commanders are first and foremost managers of people. They don't really require access to classified information to do their job.

<comment><USER7> Yes, they do require access to classified information to do their jobs. You cannot manage people effectively if you have no idea what they are working on or visit their work areas. In fact, many basic operational details of units like this are low-level classified information, which would make command without a clearance effectively impossible.

<comment><USER8> My health insurance is provided by Aetna. Does Mark Bertolini, the CEO of Aetna, require access to my private health data do to his job?

<comment><USER7> As someone else mentioned, yes he does need to be able to access that data should a specific need arise.

That said, personal health records at an insurance provider are not the same thing as classified information within the DOD. The DOD classifies lots of operational details in order to protect its operations. Unit locations, security procedures, budgets, even the existence and personnel rosters of certain locations. Do you think Mark Bertolini could run Aetna without access to its complete budget, employee rolls, locations, and functional areas?

</comment></comment></comment></comment><comment><USER9> _Branch can 't meet with other senior U.S. intelligence leaders to discuss sensitive operations, or hear updates from his staff about secret missions or projects. It can be a chore just to set foot in colleagues' offices; in keeping with regulations, they must conduct a sweep beforehand to make sure any classified documents are locked up._

 _" I have never heard of anything as asinine, bizarre or stupid in all my years," Norman Polmar, a naval analyst and historian, said in an interview._

SNAFU/FUBAR come to mind. [https://en.wikipedia.org/wiki/FUBAR_%28disambiguation%29](https://en.wikipedia.org/wiki/FUBAR_%28disambiguation%29) [https://en.wikipedia.org/wiki/Snafu](https://en.wikipedia.org/wiki/Snafu)

</comment><comment><USER10> "That has resulted in an awkward arrangement, akin to sending a warship into battle with its skipper stuck onshore."

This seems a bit overstated. Its more akin to the head of NASA not having a space suit, or the head of the Olympics Committee taking 40 seconds to run the 100m. He is basically a pen-pusher at this stage, chasing funding, greasing up to politicians, attending banquets. I think it is good he cannot see secrets, he doesn't need to, he has staff for that.

<comment><USER5> >I think it is good he cannot see secrets, he doesn't need to, he has staff for that.

I think you're underestimating how important classified material is in the day-to-day operations of the military. He doesn't have access to _any_ classified material, even down to the CONFIDENTIAL level. Every U.S. Navy officer has at least a SECRET clearance as the "default," and a ensign would be hard-pressed to work without a clearance, let alone a 3-Star.

<comment><USER11> [https://en.wikipedia.org/wiki/Compartmentalization_%28inform...](https://en.wikipedia.org/wiki/Compartmentalization_%28information_security%29)

<comment><USER5> But he doesn't have the clearances for even non-compartmented classified material and that stuff is _everywhere._

</comment></comment></comment></comment><comment><USER12> $150B budget. Interestingly about two thirds of Apple's revenue

</comment><comment><USER13> I think you must be crazy to think like this.

<comment><USER14> Please don't post uncivil and unsubstantive comments to Hacker News.

We detached this subthread from [https://news.ycombinator.com/item?id=10989737](https://news.ycombinator.com/item?id=10989737) and marked it off-topic.

</comment></comment><comment><USER15> Sounds more like the Head of Stupidity.

</comment><comment><USER16> <sarcasm on>I thought the whole reason for the military budget these days was to funnel public money into large defense contractors for dubious services?

<comment><USER17> After a lengthy investigation, lobbyists have determined that neither Glenn Marine nor its CEO "Fat" Leonard Francis have ever given any money to a PAC, super-PAC, campaign, or think tank. Nor have they put up any retired generals at the Four Seasons for the week while said generals made the rounds of the political bloviation shows. This is simply _not_ how it is done in USA military procurement. "Cultural differences" is no excuse. The aesthetics of bribery are at least as important as the amounts. To bribe a C.O. directly is to ignore the chain of command, and that shit ain't cool.

<comment><USER18> "On October 2, 2013, near the end of the three-year investigation, Navy officials boarded and relieved Capt. Daniel P. Dusek of his command of the amphibious assault ship USS Bonhomme Richard.[8] Fifteen months later on January 15, 2015, federal prosecutors obtained a guilty plea from Dusek on charges of bribery for supplying classified ship movements in the Asia-Pacific region to Glenn Marine in return for prostitutes and luxury hotel stays worth over $10,000.[6] Dusek arranged for the carrier USS Abraham Lincoln and the amphibious assault ship USS Peleliu to stop at ports where Francis' firm could service the ships. Dusek was released on $200,000 bail pending his sentencing hearing set for April 3, 2015. The previous week, on January 2, 2015, Cmdr. Jose Luis Sanchez pleaded guilty to supplying secret ship movement schedules in return for prostitutes, luxury travel and $100,000 in cash over a four year period."

<comment><USER17> This reply indicates that you are several layers of reading comprehension behind the conversation that 'buserror and I were having. Please note that 'buserror's post helpfully began with a _< sarcasm on>_ tag. It would have taken you less time to re-read the thread, than copying-and-pasting that pile of irrelevance took.

If the irrelevant block-quote was an attempted meta-comment on a thread that you found irrelevant or confusing, then keep trying! Don't let me discourage you!

<comment><USER18> well I was responding to you specifically. I fail to see how the quote is unrelated as it was from the most up-to-date sources regarding the situation. I apologize for assuming that your response was in earnest. Indeed, I did not see the sarcasm tag despite reading buserror's comment first and then your's. I still don't think your comment is factually correct and if it was in jest, I simply didn't see it as sarcastic despite it being in response to a sarcastic comment.

Also, it took me a few seconds to past that comment as I had it on the ready. So really no loss for me, except for responding to your comment, that has indeed cost me much more time than my first comment did. ;)

<comment><USER17> "After a lengthy investigation, _lobbyists_ have determined that neither Glenn Marine nor its CEO "Fat" Leonard Francis have ever given any money to a _PAC_ , _super-PAC_ , _campaign_ , or _think tank_."

"To bribe a C.O. directly is to ignore the chain of command, and that shit ain't cool."

<comment><USER18> I love how aren't reading my comment. I also didn't know buserror's sarcasm tag immediately transferred to your comment. I genuinely thought your comment was in earnest. The Four Seasons thing did happen, parts of your comment are factually wrong. The fact that you fail to see what I'm commenting on is probably as funny as my original mistake. Sarcasm tag or not I was still commenting on the lack of facts in your post. So agree to disagree??

<comment><USER17> "Whoosh!"</comment></comment></comment></comment></comment></comment></comment></comment>


Approaching Optimality for Solving SDD Linear Systems - <AUTHOR> http://www.drdobbs.com/architecture-and-design/227900457

<comment><AUTHOR> Link to actual paper: [http://www.cs.cmu.edu/~glmiller/Publications/Papers/KoutisAp...](http://www.cs.cmu.edu/~glmiller/Publications/Papers/KoutisApproaching-2010.pdf)

</comment><comment><USER2> The discussion is here:

<http://news.ycombinator.com/item?id=1820891>

<comment><AUTHOR> On a post made a day later... _tear_</comment></comment>


Why Are Fax Machines Still a Thing? - <AUTHOR> http://motherboard.vice.com/read/why-are-fax-machines-still-a-thing

<comment><USER2> Because Back to the Future (part II).</comment>


Show HN: Klokki – Rule-based automatic time-tracking for Mac - <AUTHOR> https://klokki.com <comment><USER2> This looks interesting.

I'm still looking for a replacement to Billings, at this rate I'll need to build part of it myself and rely on csv exports from one of the better desktop time trackers.

Edit, because HN says I'm too chatty!

——

No offence but after being burned by MarketCircle with Billings, I can't trust my business invoices to something I don't control completely and a single- desktop-app solution doesn't work for me.

So my plan (unless something OSS turns up) is to build out the invoicing solution I need as a web app and then have it generate an internal representation of billable hours by importing csv files. These could come from one of the available desktop "time tracking" apps (such as Klokki) or from manually created timesheets, or wherever.

If a time tracking becomes unsupported, I can swap to another one or enter blocks of time manually, and the important part (invoice handling, billing etc) is unaffected.

<comment><USER3> Hello Stephen! My name is Stas, and I am the maker of Klokki and would be happy to answer any questions you might have.

Some of the billing functionality is coming very soon to the app. Plus invoicing is also on our radar.

Can you elaborate on the CSV export?

<comment><USER2> Hi Stas,

In case you didn't see it (I know I wouldn't notice because its not a reply), I "replied" in my original comment because HN wouldn't let me reply at the time.

TLDR: I'm happy to (and would like to) use a desktop app like Klokki to track time, but I'm unwilling to have the financial aspect (invoicing/billing and payment records) in something that I don't control fully.</comment></comment></comment>


Leaked build file suggests HTC Scorpion uses 1.5GHz Snapdron, Android 2.2 - <AUTHOR> http://www.geek.com/articles/mobile/leaked-build-file-suggests-htc-scorpion-uses-1-5ghz-snapdron-android-2-2-20100210/

<comment><USER2> The disparity between the low end and high end on Android devices is becoming staggering. Several carriers still sell ~500Mhz Android devices (Verizon, Sprint, T-Mobile) on 2 year contracts. So these devices will certainly be in use for years to come. There's the _current gen_ devices at ~1Ghz on 2 year contracts that will probably be around for the next 5 years. Now we have 1.5Ghz _next gen_ devices with a shelf life of more than 5 years in the hands of consumers. So over the next 5 years it seems Android developers are going to have to account for a radical variation in performance between mainstream devices.

<comment><USER3> No different from the iPhone--the original does quite a bit less (GPS/Compass/3G/etc) with a much slower chip. Do consumers typically keep smartphones in use for five years? That sounds astoundingly long. Considering all the complaints over early termination fees, I doubt the average length is much longer than two years.

<comment><USER2> 2 or 3 years sounds about right. It seems lots of people wait to upgrade not wanting to get locked into another 2 year stint if there's a more appealing phone coming out in the near future. Apple stopped selling the 2G iPhone in 2008 but you can goto the Sprint, T-Mobile or Verizon store and walk out with a glorified G1 device today. Motorola and a few others actually have these ~600Mhz Qualcom based phones on their road maps for late 2010 releases so it seems likely they will be around beyond 2012 in massive numbers. Probably as "free with contract" options.</comment></comment></comment>


Aaron Fu Joins MEST from Nest - <AUTHOR> https://www.iafrikan.com/2017/09/11/aaron-fu-joins-mest-front-nest/ <comment><USER2> Unrelated to the article, but I parsed this as the Scientology "MEST" at first glance and was very confused. :)</comment>


10 common geek misconceptions about businesses  - <AUTHOR> http://www.seolime.com/2007/05/10/top-ten-geek-business-myths/ <comment><USER2> 11) Don't be a snob:

"I don't mean to sound condescending here, but the sad fact of the matter is that compared to you, most people are pretty dumb (look at how many people vote Republican ;-) and they care about dumb things. (I just heard about a new clothing store in Pasadena that has lines around the block. A clothing store!) If you cater only to people who care about the things that you care about then your customer base will be pretty small."

<comment><USER3> 12) Don't be delusional. \-- referring to #6 "a Lisper can run rings around a C programmer".

Now, before you flame me, I'm not attacking Lisp. I simply think that the framework and tools available to you are more important than the language you choose. A Lisper is going nowhere if he doesn't have good third-party tools and has to build everything from scratch.

<comment><USER4> I have some experience with writing in Lisp without good libraries for what I'm doing. It turns out not to be an enormous amount of work to turn an unmaintained unusable FFI to the C library you want into a highly usable, Lispish library. It can at times even be useful for understanding said library. I'm not saying this isn't a drawback of Lisp, but it's also not as huge a barrier as some might think. FFI's have gotten good enough that it doesn't really matter that much what language the library is written in.

</comment></comment></comment><comment><USER5> I hate plaigarism.

<http://rondam.blogspot.com/2006/10/top-ten-geek-business-myths.html>

<comment><USER6> I knew it sounded familiar.

N.B. Regarding the Lisp vs. C issue: the original author, Ron Garret (formerly Erann Gat) is a well-known Lisper. He used Lisp at JPL for many years before political forces rendered its continued use there untenable.

</comment></comment><comment><USER7> "Google was based on a couple of brilliant ideas (Page rank, text-only ads, massive parallel implementation on cheap hardware) but none of those ideas were original with Larry or Sergey."

<http://en.wikipedia.org/wiki/PageRank>

"PageRank was developed at Stanford University by Larry Page (hence the name Page-Rank[1]) and Sergey Brin "

Geez, it's only named after him. Also: text-only ads are somewhat less brilliant than any number of things msft has done. Yeah--they _work_, but they aren't brilliant, and they sure as hell aren't original. Massive parallel implementation, of course, is hardly an "idea" of google's.

</comment><comment><USER8> I was reading this stuff with interest, then:

"A C programmer, by contrast, can't do anything useful except as a member of a team".

Don't you think this statement is a bit too strong?</comment>


Why Free Markets Make Fools of Us - <AUTHOR> http://www.nybooks.com/articles/2015/10/22/why-free-markets-make-fools-us/ <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=10330280](https://news.ycombinator.com/item?id=10330280)

</comment><comment><USER3> >Very few economists foresaw the great recession of 2008–2009

I just can't get past the very first sentence. First, it ignores the realities of both economists and financial insiders who made attempts to blow the lid off of the ARM/toxic loan schemes - not unlike pre-Snowden whistle blowers who were equally ignored and erased from history. Second, even as a 17 year old kid, in 2001, I wrote an economics paper about the impending housing collapse - only I was guessing 2005 not 2008 - based on ARM's; 103% financing with 0% down; and stated income.

The next thing will be people talking about how very few economists foresaw the issues with reverse home mortgages, or how no regulators foresaw the dangers of equity crowdfunding for non-accredited investors.

<comment><USER4> Came here to say the same thing. The Austrian-school economists were screaming at the top of their lungs: [https://wiki.mises.org/wiki/Austrian_predictions](https://wiki.mises.org/wiki/Austrian_predictions)

<comment><USER5> Aren't they usually, though?

<comment><USER6> Given the century of economies dominated by Keynesians, Monetarists, Marxists, and other UFO abductees pretending to be economists, why wouldn't they?

</comment></comment></comment></comment><comment><USER7> The term "free market" is thrown around rather easily in this article, oftentimes with the assumption that consumers have absolutely no recourse in said "free market." A few places, you could replace "free market" with "freedom of speech" and it would read the same. Of course the "progressive" thing to do is to limit speech as well, for our own good.

When an economy has a strong central bank meddling with the interest rates, firms and individuals receive an incorrect signal in the time-preference for money, since the interest rates are not determined by the market. Coupled with an inflationary monetary regime and Keynesian ideology throughout, the "free market" has no chance to produce optimal outcomes.

Come back with a book that examines actual free markets and we'll talk.

<comment><USER8> >Come back with a book that examines actual free markets and we'll talk.

Do you have any examples of "actual" free markets?

<comment><USER9> Part of that would be no protectionism. I seriously doubt that most in the HN community are big fans of e.g. the H-1B visa program. And yet a free market would not have an H-1B program because in such a market anyone anywhere would be hireable strictly upon the discretion of the employer. The H-1B program itself is an intervention.

The reality is that you cannot have completely free markets in a democracy. As soon as a signifcant minority (let alone majority) do not like the market's outcome, they will petition a legislative alternative to that outcome. So of course there's going to be a hybrid system. Is there any 1st world country with a less interventionist government in economics than the U.S.? There are plenty of 3rd world countries where there's no regulation at all, I don't see entrepreneurship flourishing there, rather it's exploitation, and might makes right.

<comment><USER8> >As soon as a signifcant minority (let alone majority) do not like the market's outcome, they will petition a legislative alternative to that outcome.

But that presupposes that the populous would dislike the free market's outcome, which if anything points to the idea that free markets are unworkable in a practical sense.

</comment></comment></comment></comment><comment><USER10> I'm glad to see that this book review is by Cass R. Sunstein, who has devoted much of his research to related issues. Human psychology works in ways not completely anticipated by classical liberal economists like Adam Smith (although Smith deserves more credit than he gets for a deep understanding of human psychology). One interesting paragraph in the review tells the tale: "To support this claim, Akerlof and Shiller point to an uncanny prediction by John Maynard Keynes in 1930. Keynes expected that by 2030, the standard of living would be eight times higher. We are on track to get in that vicinity. At the same time, Keynes made a profound mistake. He predicted that the workweek would plummet to fifteen hours and that people would struggle not with financial problems, but with a surfeit of leisure. That isn't going to happen. What Keynes missed is that free markets generate new desires. In Akerlof and Shiller's words, markets 'do not just produce what we really want; they also produce what we want according to our monkey-on-the-shoulder tastes.'" In other words, producers can act jointly more effectively than consumers can in exploiting weaknesses of human psychology. This seems to be a fair statement with a lot of empirical support.

I think the reviewer does a good job at the end of his review of critiquing the book's view of behavioral economics by asking for more specificity about which mechanisms most lead to "phishing" (dishonest marketplace behavior to fool consumers). To say that free markets take advantage of consumers does not guarantee that making markets less free is any better for consumers, unless some new form of regulation is based on careful research and an affirmation of commonly held human values.

<comment><USER11> > "What Keynes missed is that free markets generate new desires. In Akerlof > and Shiller's words, markets 'do not just produce what we really want; they > also produce what we want according to our monkey-on-the-shoulder tastes." > In other words, producers can act jointly more effectively than consumers > can in exploiting weaknesses of human psychology. This seems to be a fair > statement with a lot of empirical support.

An alternative theory for explaining Keynes' mistake is just that people's consumption is driven by desire for relative status, a zero-sum game, and therefore people will continue to work to consume more no matter how productive they become. But what is the evidence that free markets _generate_ these desires rather than merely fulfill them? Yes of course marketing will have a hand in determining which goods are high-status, but I don't know much reason to believe that people would stop consuming for status in the absence of marketing. (To wit, there was plenty of conspicuous consumption historically by the rich before there was any sort of marketing industry.) They would just consume a different arbitrary basket of good.

<comment><USER12> > An alternative theory for explaining Keynes' mistake is just that people's > consumption is driven by desire for relative status, a zero-sum game, and > therefore people will continue to work to consume more no matter how > productive they become.

I have a different explanation: that progress is uneven.

(1) There has been amazing progress with electronics, where computers have increased our productivity practically unmeasurably, and in manufacturing, where new technologies and materials have made products better and cheaper.

(2) On the other hand, in areas like human services (e.g. medicine, law), housing (the price of land isn't falling with technological progress), and transport (e.g. bus drivers, garbage collectors, everyone who needs to drive around) there has been very little progress from free markets, rising GDP, or technological advancement.

Since people _need_ things in (2), they need to work. And since (1) affects most of us (rising productivity => falling wages), we need to work more and more to afford (2).

<comment><USER11> Even if there are certain products we need that can't be produced more efficiently with better tech, Keynes' would still expect overall hours worked by most people to go down as tech made other products cheaper. But in fact, hours worked continues to rise for the _most productive people_ whose wages have _increased_.

</comment></comment></comment></comment><comment><USER13> Along with inestimable human livelihood and wealth, the free market creates various possibilities to foolishly harm oneself. Some questions Sunstein does not raise are:

1\. Does the option of self-harm have value? If such options are forcibly removed, is the human condition degraded? For example, if one is stripped of having the sense of self-ownership, is that person limited in their level of human development and functioning?

2\. Can harmful products be forbidden without the threat and use of violence against their would-be producers and consumers?

3\. How successful could we expect such efforts to be, based on similar past and current efforts? And how costly, monetarily, socially, and in human lives?

4\. How likely are such efforts, and the institutions that exert them, to be corrupted and bent to the service of powerful interests?

<comment><USER14> > Along with inestimable human livelihood and wealth, the free market creates > various possibilities to foolishly harm oneself.

As opposed to the ability for the state to foolishly harm us? Sure, a free market allows humans to be human and make mistakes, but allowing others to take your freedom in the interest of self-preservation is a fool's compromise.

Certainly, you raise great philosophical questions though. One of my favorite thought experiments is to imagine how many things done by the government today could be accomplished without the government. I don't mean obvious things like the postal service, I mean fundamental services like road building and a court system. I plan to read David Friedman's book soon on this topic, called "Legal Systems Very Different From Ours":

[http://www.daviddfriedman.com/Academic/Course_Pages/legal_sy...](http://www.daviddfriedman.com/Academic/Course_Pages/legal_systems_very_different_12/LegalSystemsDraft.html)

</comment></comment><comment><USER15> Exploitation of irrationality is how rationality evolves in biological systems. In other words, if we get the government to play the role of a protective nanny, we the citizen will remain intellectual equivalent of infants.

<comment><USER16> Allowing rationality to evolve by allowing irrational actors to be exploited is going to take thousands of years at the _least_. I'd rather figure out some way to improve things sooner than that.

<comment><USER17> It doesn't have to be biological evolution or take thousands of years. Most exploitation of irrationality works by playing off subconscious desires; once that leads to a very public and consequential failure, it is very quickly brought into consciousness, where future instances can be dealt with rationally.

Someone who invested their life savings in dot-coms in 1999 is probably never again going to invest in "the next big thing". That brings its own form of irrationality - once everyone believes that it's foolish to invest in the next big thing, the next big thing becomes very underpriced - but they are at least not going to make the same mistake twice.

</comment></comment></comment><comment> vezzy-fnord Don Boudreaux has done a reasonable job of highlighting Akerlof and Shiller's dishonesty in their latest book:

[http://cafehayek.com/2015/12/phoolishly-against-phreedom- of-...](http://cafehayek.com/2015/12/phoolishly-against-phreedom-of- speech.html)

[http://cafehayek.com/2015/12/a-baseless- charge.html](http://cafehayek.com/2015/12/a-baseless-charge.html)

[http://cafehayek.com/2015/12/daffy- elitists.html](http://cafehayek.com/2015/12/daffy-elitists.html)

[http://cafehayek.com/2015/12/mostly- exaggerated.html](http://cafehayek.com/2015/12/mostly-exaggerated.html)

[http://cafehayek.com/2015/12/more-on-phishing-for- phools.htm...](http://cafehayek.com/2015/12/more-on-phishing-for-phools.html)

[http://cafehayek.com/2015/12/the-role-of-market-forces-in- pr...](http://cafehayek.com/2015/12/the-role-of-market-forces-in-protecting- against-phishing.html)

I would also like to note that anyone criticizing neoclassical economics (and it's full of dubious assumptions, don't get me wrong) based on straw men about "rationality" is fighting windmills. But don't take it from me, take it from a heterodox post-Keynesian: [https://unlearningeconomics.wordpress.com/2012/06/29/how- not...](https://unlearningeconomics.wordpress.com/2012/06/29/how-not-to- criticise-economics/)

And, unsurprisingly, Akerlof and Shiller stop at yelling "market failure" without proposing a theory of government and ignoring the very fruitful area of government failures.

Anyone who argues for intervention on basis of asymmetrical information without having read up on public choice is in no position to speak of anything, since their model is stuck in assuming government is a mystical exogenous equilibrator and that all of its constituents have virtually no expectations whatsoever (which is an even worse assumption than full rationality).

Akerlof and Shiller are obviously well aware, but their book is little more than a political polemic.

<comment><USER18> I can't see where Boudreaux's comments - themselves more polemic than analysis - expose any "dishonesty". I mean, one of his posts pulls out the old libertarian canard of "every potentially harmful product will be effectively countered by competitors taking the equal and opposite opportunity to sell good honest consumer-friendly protection" by speculating that a market solution to smells designed to induce customers to over-eat could be rival entrepreneurs selling a nose-attachment[1]! And as far as I can tell, he's actually not trying to parody his own argument. If that's one of the _best_ objections he can raise to an example in Akerlof and Shiller's book it must be remarkably good by the standards of popular economics texts.

[1]Perhaps the only reason America doesn't have a penchant for nose attachments and no obesity problem is because the market isn't free enough!

<comment> vezzy-fnord The reason his proposed solution of a "nose attachment" sounds ridiculous is because the _original complaint_ by Akerlof and Shiller of "pastries that just smell so good consumers can't resist them" is a complete non-issue that is straight out of Poe's law.

To quote Alex Tabarrok: "Cinnabon pastries are hard to resist. Advertising can be deceptive. Humans sometimes act in foolish ways. If these statements strike you as anodyne then there is no need to read George Akerlof and Robert Shiller's new book Phishing for Phools, a disappointing foray into behavioral economics from two recent Nobel Prize winners."

<comment><USER19> Full article here for anyone interested: [http://newramblerreview.com/book- reviews/economics/a-phool-a...](http://newramblerreview.com/book- reviews/economics/a-phool-and-his-money)

</comment></comment></comment></comment><comment><USER20> The central problem of a free market is also its greatest strength: it relies on the people making the purchases to decide what constitutes a good product or service. It asks us to vote with our wallets.

This works best when the individual educates him/herself about each purchase.

However, when individuals make purchases based on popularity rather than merit, or based on what they're used to, their ability to vote with their wallet suffers. And when producers begin to settle into a position of comfortable mediocrity, when they refuse to compete and improve, they also hurt the consumer's ability to vote with their wallet.

</comment><comment><USER21> Does the appropriation of the term "phish" disturb anyone else? To me, it confuses the distinction between auspiciously legal capitalistic behavior and the work of con artists. The appropriation equates tempting irrational actors to act against their own interests with defrauding rational actors into acting against their own interests. I also shutter at the thought of reading a 272 page book littered with various "phish", "phool", "ph"-etc'd terms.

[Edit: grammar]

</comment><comment><USER22> Milton Friedman, why have you forsaken us.

</comment><comment><USER23> ... Microsoft also being one of those phishermen</comment>


ASM International Headquarters and Geodesic Dome - <AUTHOR> https://rs.locationshub.com/location_detail.aspx?id=053-10059511 <comment><AUTHOR> I stumbled across this the other day when I was supposed to be working.

The geodesic framework is pretty cool, but the architecture of the headquarters building is really cool too.

Here are a few images that I particularly liked:

[https://oh.reel-scout.com/up_images/8/1883578.jpg](https://oh.reel- scout.com/up_images/8/1883578.jpg)

[https://oh.reel-scout.com/up_images/6/1883586.jpg](https://oh.reel- scout.com/up_images/6/1883586.jpg)

[https://oh.reel-scout.com/up_images/5/1883565.jpg](https://oh.reel- scout.com/up_images/5/1883565.jpg)

[https://oh.reel-scout.com/up_images/5/1883585.jpg](https://oh.reel- scout.com/up_images/5/1883585.jpg)

These are all from slideshow [1] which has a lot more pictures both of the headquarters building and the dome. (After about the fifth picture of the dome I was starting to get bored. It's worth it to persevere, though, since there are a lot of nice shots of the interior of the headquarters building later in the sequence.)

[1] [https://rs.locationshub.com/Slideshow.aspx?lid=053-10059511](https://rs.locationshub.com/Slideshow.aspx?lid=053-10059511)

<comment><USER2> Does the dome have some sort of purpose? For example, as an engineer, if the dome was the wall of a building and provided more space inside for less material that would be awesome. As it is, it just seems like a useless art display and waste of material since the building inside is exactly the same as it would be without it.

<comment><AUTHOR> I am under the impression that the dome is entirely decorative, which does seem kind of nuts given its size.</comment></comment></comment>


NewSQL databases fail to guarantee consistency and I blame Spanner - <AUTHOR> http://dbmsmusings.blogspot.com/2018/09/newsql-database-systems-are-failing-to.html <comment><USER3> > _Systems that guarantee consistency only experience a necessary reduction in > availability in the event of a network partition. As networks become more > redundant, partitions become an increasingly rare event. And even if there > is a partition, it is still possible for the majority partition to be > available_

In my experience, yes network partitions are incredibly rare. However 99% of my distributed ststem partitions have little do with the network. When running databases on a cloud environment network partitions can occur for a variety of reasons that don't actually include the network link between databases:

1\. The host database is written in a GC'd language and experiences a pathological GC pause.

2\. The Virtual machine is migrated and experiences a pathological pause

3\. Google migrates your machine with local SSDs, fucks up that process and you lose all your data on that machine (you do have backups right?)

4\. AWS retires your instance and you need to reboot your VM.

You may never see these issue if you are running a 3 or 5 cluster database. I began seeing issues like this semi regularly once the cluster grew to 30-40 machines (Cassandra). Now I will agree that none of the issues took down majority, but if your R=3, it really only takes an unlucky partition to fuck up an entire shard

<comment><USER4> I may be a bit of an old fart, but this is the exact reasoning behind my decision to never go with "distributed X" if there's a "single-machine X" where you can just vertically scale.

If you can afford 3-5 machines/VMs for a cluster you can almost certainly afford a single machine/VM with 2-4x the resources/CPU and chances are that it'll perform just as well (or better) because it doesn't have network latency to contend with.

Of course if you're around N >= 7 or N >= 9, _then_ you should perhaps start considering "distributed X".

As long as your application is mostly built on very few assumptions about consistency it's usually pretty painless to actually go distributed.

Of course, there _are_ legitimate cases where you want to go distributed even with N=3 or N=5, but IME they're very few and far between... but if your 3/5 machines are co-located then it's really likely that the "partitioning" problem is one of the scenarios where they actually _all_ go down simultaneously or the availability goes to 0 because you can't actually reach any of the machines (which are likely to be on the 'same' network).

<comment><USER5> I think part of this is that most of the common knowledge about scaling is hard fought from the 90s/2000 era. eBay got bigger and bigger Sun boxes to run Oracle, until they couldn't get anything bigger -- then they had a problem and had to shard their listings into categories, etc. In the last few Intel cpu generations, computation performance has had small gains, but addressable memory has doubled about every other release, you can now get machines with 2TB of ram, and it's not that expensive.

You can fit _a lot_ of data in an in memory database of 2TB.

<comment><USER6> You can get commodity x86 server with 12TB RAM and 224 cores.

<comment><USER7> Link?

It depends what is meant by "commodity" I guess.

The largest server AWS offers is only 64 physical cores (128 logical) and less than 4 TB RAM.

<comment><USER8> [http://www.supermicro.com/products/system/4U/8048/SYS-8048B-...](http://www.supermicro.com/products/system/4U/8048/SYS-8048B-TR4FT.cfm)

Quad socket R1 (LGA 2011) supports Intel® Xeon® processor E7-8800 v4/v3, E7-4800 v4/v3 family (up to 24-Core)

Up to 12TB DDR4 (128GB 3DS LRDIMM); 96x DIMM slots (8x memory module boards: X10QBi-MEM2)

AFAIK the latest Skylake Xeons ("Scalable" \- Platinum/Gold/Silver/Bronze) have regressed to 1.5TB support, see [https://ark.intel.com/products/93794/Intel-Xeon- Processor-E7...](https://ark.intel.com/products/93794/Intel-Xeon- Processor-E7-4809-v4-20M-Cache-2_10-GHz) [http://www.colfax- intl.com/nd/downloads/Intel-Xeon-Scalable-...](http://www.colfax- intl.com/nd/downloads/Intel-Xeon-Scalable-Processor-Matrix.pdf) corroborated by [https://ark.intel.com/products/120502/Intel-Xeon- Platinum-81...](https://ark.intel.com/products/120502/Intel-Xeon- Platinum-8160M-Processor-33M-Cache-2_10-GHz)

Since a single 128GB stick costs about 2900 USD, 96 of them will run to ~280 000 USD plus the server so it's likely to be above 300 000K.

If you want to go with 6TB "only" then it's a lot, lot cheaper as 64GB RDIMM sticks can be had below 700 USD. The end result might cost closer to a third of the 12TB server than half of it.

RAM prices comparison: [https://memory.net/memory- prices/](https://memory.net/memory-prices/)

<comment><USER9> That's a previous-gen CPU system. Current is:

[https://www.supermicro.com/products/system/7U/7089/SYS-7089P...](https://www.supermicro.com/products/system/7U/7089/SYS-7089P-TR4T.cfm)

Server itself is might only be $25k but those 224 cores could add another $90k, so the total would be close to $400k.

The previous-gen version, SYS-7088B-TR4FT (link in my comment upthread), has 192 DIMM slots, so if you don't need CPU horsepower, you cn get the lower- density modules and still have 12TB (or the max of 24TB for the price premium!).

<comment><USER8> I edited my answer to indicate that current gen 3.06TB RAM supporting CPUs are not out (yet?)

<comment><USER9> Right, which is why the current generation is limited to 12TiB for 8S systems, compared to 24TiB for the generation you quoted.

Even previous gen, if 12TiB main memory is your goal (NUMA concerns aside), it's probably worth going for the 8S system instead of the 4S one, since that's a savings of $144k, and 8 slower/fewer-core CPUs might even be cheaper than 4 that have twice the performance.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> It's definitely true that putting the burden of consistency on developers (instead of on the DB) results in a lot more tricky work for developers. On my project, which started six years ago, we use Cloud Datastore, because Cloud Spanner hadn't come out yet. It results in complicated, painful code that would be completely unnecessary with stronger transactional guarantees. Some examples: [https://github.com/google/nomulus/blob/master/java/google/re...](https://github.com/google/nomulus/blob/master/java/google/registry/backup/CommitLogCheckpointStrategy.java) [https://github.com/google/nomulus/blob/master/java/google/re...](https://github.com/google/nomulus/blob/master/java/google/registry/model/ofy/CommitLoggedWork.java) [https://github.com/google/nomulus/blob/master/java/google/re...](https://github.com/google/nomulus/blob/master/java/google/registry/model/index/ForeignKeyIndex.java)

It's no surprise that we're currently running screaming to something with stronger transactional guarantees.

<comment><USER11> I'm guessing that Nomulus is your project?

I ran across it before and just wanted to say it's really cool that this is open sourced.

<comment><USER10> I'm the tech lead of it. Glad to hear that you've heard of it before, and yeah, I think it's pretty cool it's open sourced too, which is why I made it happen! [https://opensource.googleblog.com/2016/10/introducing- nomulu...](https://opensource.googleblog.com/2016/10/introducing-nomulus-open- source.html)

</comment></comment></comment><comment><USER12> The post talks about Spanner using "a specialized hardware solution that uses both GPS and atomic clocks to ensure a minimal clock skew across servers." But what it fails to mention is that is that this time is distributed using a software solution --- NTP, in fact.

Google makes its "leap-smeared NTP network" available via Google's Public NTP service. And it's not expensive for someone to buy their own GPS clock and run their own leap-smared NTP service.

Yes, it means that someone who installs a NewSQL database will have to set up their own time infrastructure. But that's not hard! There are lots of things about hardware setup which are at a similar level of trickiness, such as UPS with notification so that servers can shutdown gracefully when the batteries are exhausted, locating your servers in on-prem data centers so that if a flood takes out one data center, you have continuity of service elsewhere, etc., etc.

Or of course, you can pay a cloud infrastructure provider (which Google happens to provide, but Amazon and Azure also provides similar services) to take care all of these details for you. Heck, if you use Google Compute Platform, you can use the original Spanner service (accept no substitutes :-)

<comment><USER13> > And it's not expensive for someone to buy their own GPS clock and run their > own leap-smared NTP service

This is a fun weekend hobby project that anyone can do at home if they are curious. Get a GPS chip with a PPS output signal, a plain old "hockey puck" antenna, and a computer to hook it up to (i have a rpi in my attic) and you can deliver fairly accurate time to your home network. Not a setup I'd rely on for a commercial, globally distributed deployment, but accurate enough for home use, and probably better than your current time source.

<comment><USER14> The problem with production usage is not clock accuracy, but accuracy guarantees. If a clock is within whopping 1ms, it is ok as long as I can prove it is definitely within the 1ms.

Which, as far as I see, boils down to hardware+software reliability.

</comment></comment></comment><comment><USER15> In the post and another comment here it is stated that Calvin can handle any real-world workload. However, according to my reading of the Calvin paper, one must understand the update keys before starting the transaction. I also experienced limitations when trying to use FaunaDB: it doesn't support ad-hoc queries and it only allows for indexed queries.

I really like the Calvin protocol, and is does seem perfectly suited to many application workloads, but it is odd to me though, to see Calvin presented as purely superior to all alternatives. It seems like more research and work needs to be done to create systems that can address its shortcomings around transactions that query for keys (3.2.1 Dependent transactions in the paper), including ad-hoc queries, and even interactive queries (with a transaction).

Disclaimer: I work on TiDB/TiKV. TiKV (distributed K/V store) uses the percolator model for transactions to ensure linearizability, but TiDB SQL (built on top) allows write skew.

<comment><USER16> Support for dependent reads is a subject that the Calvin paper only touches on briefly, describing one strategy of using "reconnaissance reads" to determine the key set.

In FaunaDB, this is formalized as an optimistic concurrency control mechanism that combines snapshot reads at the coordinator and read-write conflict detection within the transaction engine. By the time a transaction is ready to commit the entire key set is known. I wrote a blog post that goes into more detail here: [https://fauna.com/blog/acid-transactions-in-a-globally- distr...](https://fauna.com/blog/acid-transactions-in-a-globally-distributed- database)

Better analytics support, including ad-hoc queries is on our roadmap. That being said, requiring indexes was a design choice: First and foremost, we want FaunaDB to be the best operational database. It is a lot easier to write fast, predictable queries if they cannot fall back to a table scan!

While FaunaDB requires you to create indexes to support the views your workload requires, the reward is a clearer understanding of how queries perform. We've built indexes to be pretty low commitment, however. You can add or drop them on the fly based on how your workload evolves over time.

<comment><USER15> Thanks for the link to the explanation. It seems like FaunaDB is doing the hard work to show how Calvin can actually be used for all types of workloads.

<comment><USER16> You're welcome! I've enjoyed following TiKV/TiDB's development as well. It is an interesting time for databases. :-)

</comment></comment></comment></comment><comment><USER17> The CAP theorem has been truly disastrous for databases. The CAP theorem simply says that if you have a database on 2 servers and the connection between those serves goes down, then queries against one server don't see new updates from the other server, so you either have to give up consistency (serve stale data) or give up availability (one of the servers refuses to process further requests). That's all that CAP is, but somehow half the industry has been convinced that slapping a fancy name on this concept is a justification for giving up consistency (even when the network and all servers are fully functional) to retain availability. The A for availability in CAP means that ALL database servers are fully available, which is unnecessary in practice, because clients can switch to the other servers. Giving up consistency introduces big engineering challenges. You're getting something that most people don't need in return for a large cost.

<comment><USER18> "The A for availability in CAP means that ALL database servers are fully available"

Is this true? I always thought it meant that clients could continue to read and write to "the database" which could include the client switching to another node. There is nothing in CAP theorem about latency, so switching, even if it adds high latency, is fine by CAP theorem.

This lack of accounting for latency is what makes CAP theorem less useful than a lot of people realize IMO.

<comment><USER17> It is true: if you allow clients to switch then you can have all three C,A,P.

<comment><USER19> No, you can't. Say you have two nodes, and a client has just sent a COMMIT to node 1. Then Node 1 gets partitioned away from node 2 and the committing client vanishes. Giving clients the ability to switch to node 2 doesn't help you determine whether node 2 does or does not have the data that was committed (consistency), so you have to choose between CP and AP.

<comment><USER17> You can trivially redirect all clients to node 1 whether or not there is a partition, and voila, you have a CAP system under that definition. If clients can be partitioned from servers then we're back in the original scenario in which switching is not allowed: just partition each client from all but one server (but a different server for each client).

Maybe there is a way to modify the CAP theorem so that it says something non- trivial (e.g. a theorem about the limit of how many node failures a Paxos-like algorithm can handle, but even this is probably trivial, namely half), but the CAP theorem as stated by the originators is trivial, and the proof is a dressed up version of what I stated above. I don't think the authors would disagree with this at all, since they explicitly state:

"The basic idea of the proof is to assume that all messages between G1 and G2 are lost. If a write occurs in G1 and later a read occurs in G2, then the read operation cannot return the results of the earlier write operation."

Isn't it interesting that such a paper has 1600 citations and has reshaped the database industry?

</comment></comment></comment></comment></comment><comment><USER20> I'm the author of that post. I'm happy to respond to comments on the post on this thread for the next several hours. You can also leave comments on the post itself, and I will respond there at any time.

<comment><AUTHOR> Do these concerns also apply in an HTAP or OLAP context e.g. systems like Cloudera's Kudu, which uses Hybrid Time? Or maybe Volt which you also worked on?

<comment><USER21> OLAP systems tend to be read only (for analytics) so the question of transactions and consistency isn't really applicable.

<comment><USER22> They don't load themselves.

</comment></comment></comment></comment><comment><USER23> I've seen comments on HN over the years in which someone Dunning-Kruegers their way into saying that TrueTime is easily replicated. I always wonder if they have sixteen senior SREs in their pocket, because that's the level of production engineering Google applies to the problem. Time SRE has at various points had take measures up to and including calling the USAF and telling them their satellites are fucked up. If you don't have the staff for this, the easiest way to get access to TrueTime is probably to just use Cloud Spanner.

<comment><USER24> > Time SRE has at various points had take measures up to and including calling > the USAF and telling them their satellites are fucked up

It's another cute anecdote, but Google culture is full of these, always scant on details and always intended to show how big/smart/important/complex/indispensable their engineering is.

"Had to" is a strong term here, it's made to sound like USAF could not possibly have noticed some deviation they were likely to correct of their own accord as a matter of routine as they had been doing for the 20 years of the GPS project prior to Google being founded.

The reality is drift and bad clocks are and always have been a feature of GPS, one explicitly designed for, one an entire staff exists to cope with, and designs depending on the absolute accuracy of a single clock have never been correct

<comment><USER25> So yes, Google can be very impressed with Google. But I'm not sure that's the issue here.

Is it really surprising that people who have extremely precise time needs and a whole team devoted to solving them would notice issues that other people wouldn't? I think it's a very common pattern that a product has some set of trailblazer users who find issues before the people who make the product.

Also, I think you're over-interpreting. "Had to" here only means that they noticed and reported the issue first because their system depended on GPS time being right. It doesn't preclude the possibility that the USAF would notice and fix the issue eventually, just with a higher latency that Google wanted.

<comment><USER24> If some condition existed that exceeded GPS intended design, you most certainly wouldn't learn of it first from some random anecdote on HN.. more likely the front page of the BBC as the transportation system instantly collapses

So the anecdote itself is noise, it's intended to show how seriously intractable a problem accurate time is, but it doesn't do that, instead it only demonstrates OP's lack of familiarity with GPS and willingness to regurgitate corporate old wives' tales

<comment><USER26> Sub-millisecond flaws in GPS would make the transportation system collapse? Why?

<comment><USER27> Here's an interesting article[1] about how relativity affects GPS satellites. The clock ticks in a GPS satellite need to be accurate to within 20-30 nanoseconds for accuracy, and they tick 38 microseconds/day faster to account for relativity.

[1] [http://www.astronomy.ohio- state.edu/~pogge/Ast162/Unit5/gps....](http://www.astronomy.ohio- state.edu/~pogge/Ast162/Unit5/gps.html)

<comment><USER28> GPS is one of the few technologies that have to account for both Special Relativity and General Relativity. The level of engineering that went into the system is just amazing.

Fun fact, GPS satellites use rubidium clocks instead of cesium clocks, and only maintain their accuracy thanks to yet another incredible feat of engineering.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> This article lacks any reference to FoundationDB, which offers external consistency and serializable distributed transactions without trusting clocks in any way. We designed it starting in 2009 and so its lineage is independent of either Calvin or Spanner.

FDB doesn't have an actively developed SQL layer at the moment, so I guess you could say it isn't a "NewSQL" database, but none of the properties under discussion have much to do with the query language.

<comment><USER30> As best as I could find, FoundationDB doesn't provide strict serializability (i.e. linearizability + serializability) and doesn't tackle multi-DC deployments. So I wouldn't put it in the same class as FaunaDB or Spanner.

<comment><USER31> There is a "Datacenter-aware mode": [https://apple.github.io/foundationdb/configuration.html#data...](https://apple.github.io/foundationdb/configuration.html#datacenter- aware-mode)

Here is some discussion about linearizabilty in fdb: [https://news.ycombinator.com/item?id=16884882](https://news.ycombinator.com/item?id=16884882)

<comment><USER30> Without knowing exactly how reads and writes are replicated, I am skeptical. I have gone through the technical documentation and haven't found many details. For reference, I've done work in storage and consensus algorithms and I can tell you for a fact that without using a consensus algorithm for either reconfiguration or request propagation, you will have consistency violations.

I would love to be proven wrong, as more systems with strong consistency guarantees is better, but for now, I don't believe that foundation db provides stronger guarantees than serializable reads and writes.

<comment><USER29> FoundationDB uses a consensus algorithm for reconfiguration, but not in the (happy path) transaction pipeline. It provides (by default) strict serializability (i.e. serializability and external consistency/linearizability) for arbitrary, ad hoc, interactive transactions, and it's expected to provide excellent performance when every single transaction is cross node (so e.g. indexes can be efficiently updated this way). It provides better fault tolerance than consensus replicated databases typically can because it needs only N+1 replicas instead of 2N+1 to survive N faults (it keeps 2N+1 replicas of tiny configuration for consensus, if course). It has the best testing story in the industry and is used at scale by, among others, the largest company in the world. Because it doesn't have consensus in the datapath it can have lower latencies than consensus replicated databases in multi region deployments, it also supports asynchronous replication, and an upcoming feature will provide a unique option for multi region failover with sub geographic write latencies, maintaining full transaction durability in failover, as if in synchronous replication, except for the exceptionally rare case where the failure of multiple datacenters in a region are exactly simultaneous.

Besides its extensive documentation, you can read its source code and run its deterministic simulation tests yourself if you are interested (it's Apache licensed). Skepticism on these points was reasonable when we originally launched it in 2012 but is getting a little silly in 2018.

<comment><USER17> How does FoundationDB do distributed transactions without consensus?

</comment></comment></comment></comment></comment></comment><comment><USER32> > With 10ms batches, Calvin was able to achieve a throughput of over 500,000 > transactions per second. For comparison, Amazon.com and NASDAQ likely > process no more than 10,000 orders/trades per second even during peak > workloads.

I haven't worked with NASDAQ stream directly, but knowing how fast equities tick I find this "10,000 orders/sec" estimate quite low.

Not to mention that 10ms delay in confirming an order would be really terrible.

<comment><USER33> According to NASDAQ's website [1]:

> Able to consistently sustain an order rate of over 100,000 orders per second > at sub-40 microsecond average latency

[1]: [https://business.nasdaq.com/market- tech/marketplaces/trading](https://business.nasdaq.com/market- tech/marketplaces/trading)

</comment></comment><comment><USER34> > We will trace the failure to guarantee consistency to a controversial design > decision made by Spanner that has been tragically and imperfectly emulated > in other systems.

This post doesn't establish any "controversy" about Spanner's design decision. It only says that it requires special hardware, which other systems attempt to emulate despite not having this specialized hardware.

To call this decision "controversial" I think one would need to show that it has some significant problem _in the environment it was designed for_.

<comment><USER20> By controversial, I mean that in the database research community (where I spend most of my time), there is significant disagreement about global consensus vs. Spanner's choice of partitioned consensus.

<comment><USER34> Disagreement about what though? Does Spanner's solution have an objective problem? Do you or others in your community have specific reasons to believe that it cannot deliver on its promises?

<comment><USER20> Spanner's approach requires help from hardware and several full time employees maintaining and ensuring the uncertainty guarantees. This increases the cost of the maintaining the system, which for Cloud Spanner is partially passed on to the end users. If you can build a system that doesn't require time synchronization, yet doesn't have any significant drawbacks relative to what Spanner provides, you'd be better off using this alternative system.

<comment><USER34> > If you can build a system that doesn't require time synchronization, yet > doesn't have any significant drawbacks relative to what Spanner provides, > you'd be better off using this alternative system.

But you describe exactly the drawbacks of giving up time synchronization:

> The main downside of the first category is scalability. A server can process > a fixed number of messages per second. If every transaction in the system > participates in the same consensus protocol, the same set of servers vote on > every transaction. Since voting requires communication, the number of votes > per second is limited by the number of messages each server can handle. This > limits the total amount of transactions per second that the system can > handle.

How is "worse scalability" not a significant drawback?

This just sounds like an engineering tradeoff. I don't think engineering tradeoffs are the same as controversy. I get that your group's DB takes a different approach. But "blaming" Spanner for making a different trade-off doesn't come off well (I approached the article with an open mind).

<comment><USER35> You beat me to it. Also, per

> Calvin was able to achieve a throughput of over 500,000 transactions per > second. For comparison, Amazon.com and NASDAQ likely process no more than > 10,000 orders/trades per second even during peak workloads.

Maybe if you are only considering the small scope of just the order transactions, but they are actually writing way more data to their databases such as logs, metrics, current state for things like shopping carts. In my experience, what teams have done is split their data off into their own siloed database to minimize scaling problems, but this becomes super painful when you want to join your data with others. If spanner can hold all of our data, scale, and handle joining across all of it, that sounds like a huge win.

</comment></comment></comment></comment></comment></comment><comment><USER36> This is the clearest presentation of why CAP is misleading that I've ever seen! Wonderful.

If the app programmer knows they don't have global consistency, just consistency per partition, I wonder if in practice there are ways to achieve the necessary application-level guarantees such as in the photo-sharing case (not that it sounds that appealing to need to do so).

<comment><USER37> > application-level guarantees

If your database doesn't "guarantee" consistency, but instead provides eventual consistency, your application needs to be aware of how long "eventually" is. In effect, you'd be coding something similar to Spanner's timestamp uncertainty estimation. In the photo sharing example, it'd be reasonable to put a delay on sharing new photos with other users until after permissions changes would have propagated.

<comment><USER38> > delay on sharing new photos with other users until after permissions changes > would have propagated.

And then you'd maybe have to map the ux of _changing_ permissions on an existing permission to a three-state: user makes change;ui shows change in progress;change takes effect and is reflected in ui.

</comment></comment></comment><comment><USER39> Please be sure to distinguish between Couchbase and CouchDB. Couchbase is a CP system.

</comment><comment><USER40> Anyone interested in this subject may also find it worthwhile to read the paper describing Spanner: [http://static.googleusercontent.com/media/research.google.co...](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner- osdi2012.pdf)

</comment><comment><USER41> Seems to have a powerful straw man there about eventual consistency.

The point of AP systems is not 100% availability, but rather _higher_ availability.

By the same reasoning, one should never do CP, because it is also not possible to have 100% consistency. Disk/memory/network corruption, even with ECC can overwhelm the ability to maintain consistency.

</comment><comment><USER42> The context of this article still seems to constrain consistency to guarantees for single atomic units of data (atomic at the node level).

But the second you have multiple-node transactions (your data after all in a truly distributed system will exist on mulitple nodes), then the single-node reliability become dependent on multiple data exchanges across networks for confirmations. Then your network partition exposure starts to snowball.

Same thing for joins. Great if your joins are perfectly served by a node-local sharding strategy, but when you retrieve from multiple nodes, again your network partitioning risk starts to compound.

In AWS you will see noisy neighbor networks and network unreliability. Your VMs get yanked. Your EBS might experience an IO pause. GC pauses. Or simply one of your nodes might get swamped by a query spike.

</comment><comment><USER43> I like the realistic view of noSql vs CAP and the different tradeoffs. We do need to talk more about the disadvantages of noSql systems and all the new database alternatives.

Which brings me to my point - what the author fails to talk about is why spanner has taken the design decision they have made. He does claim scalability, but that is a very general word.

I believe the spanner decision is to avoid making a global voting, as in global across the entire world, from North America, to Asia, Europe and even as far as Australia. Such a global voting will take a lot of time - <USER2> seconds of later on any write.

I think the author, when he talks about having a single global vote with a small window, thinks in terms of a single database, maybe two regions on the Continental USA, as apposed to spanner trying to be Geo distributed.

</comment><comment><USER44> Any comments on how FoundationDB might be the same / different?

<comment><USER45> FoundationDB adheres to the highest level of consistency (linearizability) and, unlike Spanner or its derivatives, does not rely on clocks to achieve this.

I'm surprised FoundationDB is not mentioned in the article. Maybe it didn't help the author make his point, but it is both the most mature of the new breed of ACID+noSQL databases and completely free/open source.

<comment><USER46> According to their docs, FoundationDB only provides serializable isolation, so it isn't the same as the others in the post which offer strict serializable isolation (multi-key version of linearizability). Without strong clocks you can't have strict serializablity and scale beyond a single log (but one log can get you pretty damn far). TBH most people probably only need serializable transactions anyway.

[https://apple.github.io/foundationdb/developer- guide.html#tr...](https://apple.github.io/foundationdb/developer- guide.html#transactions-in-foundationdb)

<comment><USER47> While that documentation isn't _wrong_ , FoundationDB also provides external consistency.

[https://forums.foundationdb.org/t/keyspace-partitions- perfor...](https://forums.foundationdb.org/t/keyspace-partitions- performance/168/7)

</comment></comment></comment></comment><comment><USER48> CTO of YugaByte here. We firmly stand by our claims, and I wanted to explain more.

From the post by Daniel: << CockroachDB, to its credit, has acknowledged that by only incorporating Spanner's software innovations, the system cannot guarantee CAP consistency (which, as mentioned above, is linearizability).

YugaByte, however, continues to claim a guarantee of consistency. I would advise people not to trust this claim. YugaByte, by virtue of its Spanner roots, will run into consistency violations when the local clock on a server suddenly jumps beyond the skew uncertainty window. >>

The statement about YugaByte DB is incorrect.

1\. With respect to CAP, both Cockroach DB ([https://www.cockroachlabs.com/blog/limits-of-the-cap- theorem...](https://www.cockroachlabs.com/blog/limits-of-the-cap-theorem/)) and YugaByte DB ([https://docs.yugabyte.com/latest/faq/architecture/#how- can-y...](https://docs.yugabyte.com/latest/faq/architecture/#how-can-yugabyte- db-be-both-cp-and-ha-at-the-same-time)) are CP databases with HA and there is really no difference in the claims.

2\. With respect to Isolation level in ACID, YugaByte DB does not make the linearizability (called external consistency by Google Spanner) claim. YugaByte DB offers Snapshot Isolation (detects write-write conflicts) today and Serializable isolation (detect read-write and write-write conflicts) is in the roadmap ([https://docs.yugabyte.com/latest/architecture/transactions/i...](https://docs.yugabyte.com/latest/architecture/transactions/isolation- levels/)).

3\. We have publicly claimed that we do rely on NTP and max clock skew bounds to guarantee consistency. For example, slide 43 of our NorCal DB Day talk ([https://www.slideshare.net/YugaByte/yugabyte-db- architecture...](https://www.slideshare.net/YugaByte/yugabyte-db-architecture- storage-engine-and-transactions)) we mention we are "relying on bounded clock sync (NTP, AWS Time Sync, etc)."

<comment><USER20> Looks like you cross-posted this comment here and on my blog, so I'll also cross-post in my response.

I am quite confused by your statement that YugaByte does not claim linearizability. The C of CAP is linearizability (see the original CAP theorem [https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL- cap.p...](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf)). By claiming to be CP from CAP, you are claiming linearizability.

CockroachDB also makes the same CP claim. However, they explicitly walk back from this claim ([https://www.cockroachlabs.com/blog/living-without-atomic- clo...](https://www.cockroachlabs.com/blog/living-without-atomic-clocks/)). In contrast, YugaByte documentation makes no effort to walk back from this claim. Rather, the documentation seems to indicate that YugaByte is linearizable at: [https://blog.yugabyte.com/jepsen-testing-on-yugabyte-db- data...](https://blog.yugabyte.com/jepsen-testing-on-yugabyte-db-database/) and [https://docs.yugabyte.com/latest/develop/learn/acid- transact...](https://docs.yugabyte.com/latest/develop/learn/acid- transactions/).

Also, I would encourage you to read the Herlihy-Wing paper on linearizability published in 1990. You seem to be confusing linearizability with ACID isolation levels, which are actually a different concept. Peter Bailis has a good blog post on the difference: [http://www.bailis.org/blog/linearizability- versus-serializab...](http://www.bailis.org/blog/linearizability-versus- serializability/).

On your third point, we agree. However, the point of my post is that relying on max clock skew without hardware support is dangerous. I'm going so far as to say that it's so dangerous that it is incorrect to claim consistency guarantees when you make such assumptions.

I would really encourage YugaByte to consider using global consensus instead of partitioned consensus. I believe you will find it much easier to support serializability (which as you said, is on your road map) and linearizability.

<comment><USER48> HN ate my comment, hope to figure hn out someday! Had written:

From the bailis.org link you posted:

> Linearizability is a guarantee about single operations on single objects.

The place we references "linearizability" (in the Jepsen blog and docs) are in the context of single row-key operations; I can update our docs to clarify that further.

For multi-key transactions, our docs clearly point out that we support Snapshot Isolation now and Serializable Isolation is in the roadmap.

</comment></comment></comment><comment><USER49> In case you're wondering : this is a very worthwhile read.

<comment><USER50> The sibling comment by zzzcpan about consistency guarantees is dead and flagged, and can't be replied to, but I would be interested in reading other takes on this tradeoff.

The take on CAP from CockroachDB, for example, is [https://www.cockroachlabs.com/blog/living-without-atomic- clo...](https://www.cockroachlabs.com/blog/living-without-atomic-clocks/), and is linked to in the GP article, but is somewhat downplayed and definitely deserves to be read.

It seems obvious to me that we're within but beyond CAP when it comes to choosing what to sacrifice.

</comment></comment><comment><USER51> The author talks about high throughput achieved via batching. But he has not mentioned latency implications of batching, or perhaps I missed that in the article.

Wouldn't batching lead to an increase in transaction latency, even if we achieve higher throughput?

</comment><comment><USER52> This reads like an advertisement for the researcher's system combined with some FUD.

<comment><USER53> would you mind to elaborate?

<comment><USER54> Just to mention a few points:

\- The title implies that Spanner is at fault for something, then the article itself admits that Spanner is totally fine.

\- Then it goes on to argue that this approach can't possibly work without physical devices for precise time. However, there is no proof whatsoever. Please be a researcher and design an experiment that _demonstrates_ a violated consistency guarantee.

\- Finally, not disclosing financial relationships with products which are praised in the article is really low, and has only been fixed after this has been pointed out here. And it is not marked as a later addendum, as usual for changed articles.

</comment></comment></comment><comment><USER55> It's becoming harder to evaluate the guarantees of the most recent so called "cloud-scale" databases, Spanner or CockroachDB for instance.

Is there anything out there like a standard benchmark to compare these offerings more accurately?

</comment><comment><USER56> I don't know for sure, but to me the AP vs CP interpretation seems only to be a true limitation for distributed systems of exactly two nodes.

I also like the blogs point that availability is not ever 100%, but I think the added cost of availability levels when going from an eventual consistency system to a linearizable one is underestimated because performance is going to be a significant availability factor, not only failuremodes as discussed.

</comment><comment><USER57> Maybe I'm missing something, but the way this reads seems to attribute Spanner's concurrency control entirely to TrueTime. Spanner still uses partitioned Paxos to establish consensus and 2PC for multi-partition write transactions.

</comment><comment><USER58> Consistency is a requirement that holds us back deeply. Implementing constency with eventually voted know-all masters are also holding us back. Looking at this makes an engineers heart cringe. In fact the current architecture is only slightly better than what we had in 2005, more than 10 years ago. And if it runs not on google or amazon clouds, and therefore on UNRELIABLE networks, the voting itself can fail and you have a centralized system without center. And while we claim that we need a central point of knowledge that is at sync throughout the whole system, the whole world AROUND the IT works completely without being in sync and completely without knowing it all (sometimes even having no knowledge or assumed but wrong knowledge), at a scale that IT systems only to some degree come close to nowadays.

</comment><comment><USER59> Probably a dumb question but if you need all servers to talk to each other to achieve consensus, how do you deal with network latency? Do people just keep data in separate zones so they aren't globally replicated?

</comment><comment><USER60> And majority of developers don't need NoSQL or NewSQL - they are well off with PostgreSQL.

I think the old and tried should be the default choice here and other paths taken only after careful consideration and good justifications.

<comment><USER61> Or how about instead of just blindly picking a system. You spend a week or two to evaluate a few that you think might mesh well for your data structures. PostgreSQL doesn't work well for many, many common use cases.

</comment></comment><comment><USER62> No mention of Clustrix? The Spanner paper was in 2012. Clustrix started working on a "NewSQL" database in 2006 and had a product out in 2010.

<comment><USER63> One big difference is that Clustrix (YC'06) was a single datacenter consistent cluster, while Spanner can do multi-region consistency. It will be interesting to see what MariaDB does with Clustrix, now that they have acquired them, fingers crossed that they open source the technology.

</comment></comment><comment><USER64> > a specialized hardware solution that uses both GPS and atomic clocks to > ensure a minimal clock skew across servers

Maybe I'm wrong, but pretty much anyone with a DC is going to use Microsemi (previously Symmetricom) grandmaster clocks with all the bells-and-whistles including the internal Rubidium atomic oscillator along with PTP to keep everything in sync with multiple layers of redundancy. A specialized hardware solution that uses "both GPS and atomic clocks" to guarantee ~15ns RMS to UTC are just a shopping cart away.

</comment><comment><USER65> I'm hoping aphyr will comment on this...

</comment><comment><USER66> Odd to see the most popular distributed operational database system in the world left out here.

</comment><comment><USER67> I have a whitepaper about scalable consistency guarantees using optimistic transactions. It should solve these very problems.

[https://medium.com/@andrasgerlits/optimistic-acid- transactio...](https://medium.com/@andrasgerlits/optimistic-acid- transactions-4f193844bb5f)

</comment><comment><USER68> since spanner is distributed on the backend, any function that uses multiple sql commands that might be called or ingested by multiple sharded servers which are then sent to spanner, should always have these calls sent in a single transaction

</comment><comment><USER69> Distributed databases are like systems of government. Some are worse than others, but all of them suck. I'm not aware of any study that shows that X type of database reduces bugs, increases availability, and makes customers happier. Pick one that fits your application and deal with the suckiness.

<comment><USER61> Distributed databases underpin every major web app today e.g. Facebook, Instagram, Google, Apple, Spotify etc.

So clearly they are helping to increase availability and make customers happy.</comment></comment>


What Exactly Is "Mobile-Friendly Web Design"? A Very Short Introduction - <AUTHOR> http://mobile1st.com/what-exactly-is-mobile-friendly-web-design-a-very-short-introduction/

<comment><USER2> Thanks for the clarification!</comment>


The Perfect Birth Control for Men Is Here. Why Can't We Use It? - <AUTHOR> http://motherboard.vice.com/read/the-perfect-birth-control-for-men-is-here-why-cant-we-use-it

<comment><USER2> Ugh, the private sector is laughably bad at drug development. All the big pharma companies combined haven't put out more than a handful of genuinely innovative drugs in the past two decades.

</comment><comment><USER3> I'm not impressed that they say condoms are not effective

<comment><USER4> They have a typical use failure rate 10x worse than an IUD so that is pretty bad. ~10% odds of pregnancy each year you use it as your only form of birth control, whereas an IUD is less than 1%. Over 10 years, that's a 35% success rate for condoms and a 90% success rate for the IUD, isn't it?</comment></comment>


Admin - Configuration - Images - Zen Cart(tm) Wiki - <AUTHOR> http://www.zen-cart.com/wiki/index.php/Admin_-_Configuration_-_Images <comment><AUTHOR> Posting this was a complete mistake. I accidentally clicked my bookmarklet. Anyone know how to delete a submission?</comment>


Inside the St. Petersburg (Russia) Yandex office - <AUTHOR> http://englishrussia.com/2012/09/11/russki-start-up/#more-110355

<comment><USER2> I can't comprehend how some companies can spend money (and often quite a lot of it as well) on ridiculous interiors like this. I don't understand what the purpose is, maybe:

1) To impress clients?

2) To impress potential employees? Nah...

3) Simply bad taste of the company execs? Most likely.

<comment><USER3> Have fun, overdo google

</comment></comment><comment><USER4> It looks really great ! (Although I wouldn't be able to work 27h a day. ;) )

<comment><AUTHOR> Yeah, me neither... Interesting décor though!</comment></comment>


IOS games using JavaScriptCore without WebKit - <AUTHOR> http://www.phoboslab.org/log/2011/04/ios-and-javascript-for-real-this-time <comment><USER2> AFAIK the only way Apple can enable Nitro for 3rd party apps without enabling executable memory pages generally is by separating JavaScriptCore (and WebKit render engine) into separate processes (ala WebKit2 / Chrome) which are allowed to create executable memory pages.

Then, of course, there is no way to create bindings between your code and the JavaScript interpreter (at least not without the overhead of IPC, which would probably negate any benefits of enabling Nitro).

So yeah, I wouldn't hold my breath.

</comment><comment><USER3> I am super glad he has released this. He is not joking about compiling javascript core for iOS being painful, I dumped many hours into it. It would have been nice of him to release the project files just for jsc under MIT or something, but I guess people have to make money somehow.

<comment><USER4> Since JavaScriptCore is LGPL, you could probably demand them from him after buying some app that uses this.

"For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library."

<comment><USER5> So we could demand the project files to build it for iOS directly from Apple then? :)

Anyway, I will tidy up and release the project files and patches for JSC in a couple of days. My selling point is the game engine and the OpenGL Canvas abstraction, not JSC.

<comment><USER6> > So we could demand the project files to build it for iOS directly from Apple > then? :)

Yes?

[http://opensource.apple.com/source/JavaScriptCore/JavaScript...](http://opensource.apple.com/source/JavaScriptCore/JavaScriptCore-621.1/)

It's from iOS 4.2 (<http://opensource.apple.com/release/ios-42/>), as JSC's source in iOS 4.3 is marked as "coming soon" (<http://opensource.apple.com/release/ios-43/>).

</comment></comment></comment></comment><comment><USER7> Appcelerator's Titanium uses JavaScriptCore as well to create native bindings to UIKit. Titanium is not a UIWebView wrapper per se, although that is one of many UIViews you can create and embed web apps. The result is a much more "native" experience and tighter integration to platform capabilities.

</comment><comment><USER8> also see ngcore, a JavaScript gaming framework that uses OpenGL under the hood. It's maintained by ngmoco:)

<comment><USER9> This is commercial though right? I mean it's not open source that I can just dl an Xcode project and play around with, it's hosted by them or something like that?

<comment><USER5> It is commercial, but it is also open source. If you have a license for the game engine, you will get the whole source code for the project and can do whatever you want with it.

</comment></comment></comment><comment><USER10> > Which leaves me to wonder why the JavaScriptCore library that comes with iOS > is private in the first place.

Because the JavaScriptCore library is not finalized? I don't understand what there is to wonder about. Other than that point, I still think this is really awesome.

<comment><USER5> The API for JSC has stayed unchanged for years. JSC is a public library on OSX and there are thousands of Apps that rely on it.

The only reason it's not public on iOS is that Apple doesn't like scripting languages on a mobile device, as they are potentially slow and energy hungry. At least that's my guess.

<comment><USER11> However, it's possible to compile and use JSC as an interpreter, which is Even slower.

They won't let you use the private dynamic compiler, though, most probably for se urity reasons.

</comment></comment></comment><comment><USER12> I'm hoping he releases a guide (or at least the project files) for bundling JSC.

</comment><comment><USER13> Correct me if I'm wrong: Titanium compiles to Objective-C.

This is, of course, different since it runs actual JavaScript code. Does Apple prohibit use of Titanium? Sorry I wasn't following this for some time.

<comment><USER7> Titanium uses JavaScriptCore as a runtime interpreter to bind to native Obj-C, which is in full compliance with Apple's policies regarding interpreted code (section 3.3.2).

</comment></comment><comment><USER14> Neat.

...but it's still violating the iOS developer agreement. Specifically the no interpreter rule except those provided by Apple. They probably didn't notice but blogging about it may get the apps pulled.

Take it from someone that has been on Apple's bad side: this is a bad idea and will probably get you pulled. They also don't like braggers that figured out ways around the rules.

I've dealt with these things. There are few options though. Compiling to native (in a AOT style) is one way, (ala MonoTouch and Adobe's Flash Convert tools). The other is just embedding a UIWebView somewhere (even if it's not visible) and IPCing over stringByEvaluatingJavaScriptFromString and URL change notifications.

<comment><USER15> The rule you reference no longer exists. You can run an interpreter as long as the code you're going to interpret is part of the app you submitted for review (i.e. you aren't allowed to use JavaScriptCore to run scripts off a web page, but your app can use any kind of interpreter it wants internally). The rule was horribly misguided and never really enforced — many of the top apps have always embedded scripting languages.

<comment><USER14> Interesting... You're correct. I wonder when that changed. THIS CHANGES EVERYTHING

      3.3.2 An Application may not download or install
      executable code. Interpreted code may only be used
      in an Application if all scripts, code and interpreters
      are packaged in the Application and not downloaded. The
      only exception to the foregoing is scripts and code
      downloaded and run by Apple's built-in WebKit framework.

The rule was however enforced. My own app was pulled for it a year ago for embedding an little tiny Lua interpreter for handling a few game logic changes.

The question is still interpreted code that is not included with the app but written by the user in the app. I used to work for TI programming graphing calculators a couple jobs back. I always wondered if we could do a port of one of the later generation calculators to iPhone but I always stopped at TI-Basic or if our CAS engine could be considered an interpretor. Now given the rule change, would user entered code still be considered against the rules. It wouldn't be code shipped with the app... but still.

<comment><USER15> Code written by the user is still forbidden, though Apple are really sketchy as to what they consider "external interpreted code" versus just "a document." To a large degree, it seems like a question of marketing. If the feature feels like writing a program, the reviewers will reject it. I am not sure how sophisticated the calculator you're thinking of is. It's possible Apple could see it as just storing formulae, which they'd be OK with. Tough to say.

(And for anyone who thinks I'm splitting hairs: The line between "document" and "program" really is fuzzy. For example, Little Big Planet's game engine turns out to be Turing-complete, so you can build a working computer in the level editor out of game objects. See here for more: [http://forums.xkcd.com/viewtopic.php?f=12&t=57034](http://forums.xkcd.com/viewtopic.php?f=12&t=57034) )

<comment><USER4> No, it's not. iScheme is in the store and its only purpose is to evaluate code entered by the user. (<http://itunes.apple.com/us/app/ischeme/id395305584?mt=8>)

<comment><USER16> Also Pixie Scheme ( [http://web.mac.com/Jay_Reynolds_Freeman/My/Pixie_Scheme_III....](http://web.mac.com/Jay_Reynolds_Freeman/My/Pixie_Scheme_III.html) ) - which has the notion of a persistent "world", but does not allow code to be loaded from external files.

</comment></comment></comment></comment></comment></comment><comment><USER17> iOS[1] is Apple's mobile operating system. IOS is Cisco's Internetworking Operating System[2]

[1] <http://en.wikipedia.org/wiki/IOS_(Apple)>

[2] <http://en.wikipedia.org/wiki/Cisco_IOS>

<comment><USER18> HN autocapitalizes the first letter of submissions. So it's most likely not the submitter's mistake.

<comment><USER17> Huh, didn't know that, thanks.</comment></comment></comment>


Why should I buy Win7 when it won't even play animated gifs out of the box? - <AUTHOR>

The default photo viewer on Windows 7 does not play animated gifs, even though this feature was present 10 years ago in WinXP and arguably animated gifs are in even wider usage now.
They claim they didn't add support because "the GIF format is not widely used for photos"[1]. But it is very obvious they did this to promote the usage of IE. I wouldn't be surprised if they purposely removed already written code just to cripple the Windows Photo Viewer.
I would like to shame Microsoft engineers who frequent HN into fixing this.
[1] http://social.technet.microsoft.com/Forums/en/w7itprogeneral/thread/b0e84027-9753-46cb-94b8-b099c0a60e1d <comment><USER2> Is _that_ a real deal-breaker for you? I would find rather worse problems with W7 (and this is a pretty decent OS)

You don't have to buy it (unless you have to ;)). I find various Linuxes fairly usable nowadays. Or reach deep into your pocket and buy a Mac.

</comment><comment><USER3> > <http://www.irfanview.com/>

</comment><comment><USER4> that's a dumb reason why you shouldn't buy Windows 7</comment>