Ask HN: What could journey84.com have done to avoid crashing? - <AUTHOR> Last night https://journey84.com site crashed immediately when the Super Bowl ad linked to their site. What infrastructure decisions should they have made to make sure the site not crash?<p>- Is it even possible to purchase an Amazon EC2 or other cloud instance large enough to handle traffic from the Super Bowl? Which instance would they have needed? - They linked their video to YouTube. Was that the best decision? - What else could they have done to avoid crashing given that they were expecting millions of immediate concurrent visitors? <comment><USER2> given that site is static content, it's more than easy to use something like cloudflare, which afaik even on their free plan will cache it on their global cdn.

(honestly I would consider the possibility of the "crashing" being part of a PR strategy - makes a good story)

<comment><AUTHOR> The free tier of cloudflare includes global cdn. Does that mean all they would have had to do is use the free tier and they would have avoided the issue?

Would there have been some kind of cloudflare loading screen if they'd done that? It doesn't make sense that you can do that with cloudflare for free.</comment></comment>


Creatine supplementation improves brain performance - <AUTHOR> http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1691485/?tool=pubmed <comment><USER2> Has anybody tried this?</comment>


Stonebraker on CAP Theorem and Databases - <AUTHOR> http://perspectives.mvdirona.com/2010/04/07/StonebrakerOnCAPTheoremAndDatabases.aspx

<comment><USER2> Original article here: [http://cacm.acm.org/blogs/blog-cacm/83396-errors-in- database...](http://cacm.acm.org/blogs/blog-cacm/83396-errors-in-database- systems-eventual-consistency-and-the-cap-theorem/fulltext)</comment>


U.N. could tax U.S.-based Web sites - <AUTHOR> http://news.cnet.com/8301-1009_3-57449375-83/u.n-could-tax-u.s.-based-web-sites-leaked-docs-show/ <comment><USER2> From one of the linked documents:

 _Operating Agencies shall endeavour to provide sufficient telecommunications facilities to meet requirements of and demand for international telecommunication services. For this purpose, and to ensure an adequate return on investment in high bandwidth infrastructures, operating agencies shall negotiate commercial agreements to achieve a sustainable system of fair compensation for telecommunications services and, where appropriate, respecting the principle of sending party network pays_

What's the "sending party network pays" principle? I get that if I make a phone call, I pay, not the receiver. But if someone in a village in Africa consults google, _that_ person is the initiator, not google. So I'm not sure what way around this is supposed to work.

Besides, each party is already paying for bandwidth on each end.

"operating agencies shall negotiate commercial agreements" - this doesn't sound like "tax" (in that governments are not the beneficiaries), it sounds like granting new powers to bandwidth providers. I'm guessing the T-word is linkbait, even if the proposal is horrible anyway.

<comment><USER2> Aha ... in the other (longer) linked document, the T-word is mentioned:

 _National authorities are free to impose taxes on all telecommunications traffic, whether incoming or outgoing._

I don't know how to interpret this document, particularly as it's a work in progress, and looks like the output of a human-powered diff process. But it's hard to conclude that it specifically targets Google or Apple, or the U.S., or even just websites. It's about telecommunications.

</comment></comment><comment><USER3> It sounds like this is more of a tarrif issue attempting to balance trade issues more than a straight tax. As such my hunch is this isn't going anywhere. And isn't it that countries would be allowed by the UN to tax US companies to fund network build-outs? That is VERY different from the UN taxing anyone.

</comment><comment><USER4> Highly doubt this would just be about taxing U.S.-based websites. Clearly the article is biased. Anyone know what the benefits of such a tax could bring? Let's see the other side of the coin..</comment>


Computational Linear Algebra for Programmers (2017) - <AUTHOR> https://github.com/fastai/numerical-linear-algebra/ <comment><USER2> Really appreciate this material! And I did take the fastai course, it was throughly enjoyable</comment>


Using Git Grep - <AUTHOR> https://blog.afoolishmanifesto.com/posts/you-should-be-using-git-grep/ <comment><USER2> I personally use the silver searcher[0], also known as ag, which is .gitignore aware and I find quite quick and useful.

In fact, ag references git-grep in its readme while this blogpost makes no mention of ag. I suspect the author just doesn't know about ag or doesn't want to install an additional less-standard package... I personally find it worth the installation.

[0]: [https://github.com/ggreer/the_silver_searcher](https://github.com/ggreer/the_silver_searcher)

<comment><USER3> > I suspect the author just doesn't know about ag

Actually, the author uses Windows, and ag is a pain to build on Windows. pt[1] (written in go) has drop-in builds for Windows, Mac, and Linux.

[1] [https://github.com/monochromegane/the_platinum_searcher](https://github.com/monochromegane/the_platinum_searcher)

<comment><USER4> The main reason for poor windows support is that I didn't own a copy of windows until two months ago. There is a windows fork of ag, but it doesn't compile on *nix: [https://github.com/kjk/the_silver_searcher](https://github.com/kjk/the_silver_searcher)

That said, pt is pretty cool. If that's what works for you, keep using it.

<comment><USER5> Thanks for that... I am a big fan of ag at work but I had trouble making it work on cygwin at home. This should solve that problem :)

</comment></comment></comment></comment><comment><USER6> It took me a while to understand that the article's use of "frew" simply was a random placeholder search string. I started looking up those characters in the docs, and becoming annoyed since it made no sense. :)

Also, shameless plug: my Gitbrowser plug-in for the Geany editor/IDE support git grep, and makes the search results clickable in the editor ([https://github.com/unwind/gitbrowser](https://github.com/unwind/gitbrowser)).

</comment><comment> james-skemp 2nd gen Nexus 7 doesn't like the SSL cert and removing HTTPS redirects back to that version.

In case the author is reading these comments, that's unfortunate. (Chrome for Android, should be current.)

<comment><USER7> It looks like the server is slightly misconfigured, it isn't serving the required intermediate certificate[1].

Desktop browsers are smart enough to find the intermediate certificate and then verify the chain, but technically I don't think this is part of the spec.

[1] [https://www.ssllabs.com/ssltest/analyze.html?d=blog.afoolish...](https://www.ssllabs.com/ssltest/analyze.html?d=blog.afoolishmanifesto.com&hideResults=on)

<comment><USER8> I'll see if I can fix this when I get a chance. If anyone knows how to fix it for apache 2.2 I'd appreciate it; I can nopaste my config.

</comment></comment></comment><comment><USER9> I found out about it maybe six weeks ago and have been using it ever since, pretty much every day. Extremely useful.

</comment><comment><USER10> I invoke git grep with helm-git-grep inside Emacs. Almost instantaneous incremental search across the whole repo.

</comment><comment><USER11> Git grep also integrates nicely into Vim with Fugitive. It shows the results exactly like :vimgrep.

</comment><comment><USER12> git grep can be used outside a git repo (git 1.7.8):

      --no-index

<comment><USER13> I was confused after reading your comment, as I initially ran "git grep" in my $HOME and it worked fine. Then I remembered that my $HOME is managed using git!

Indeed, it doesn't work in a non git directory without the switch. Thanks for pointing it out.</comment></comment>


Ask HN: Project Ideas? - <AUTHOR>

I'm taking a Verification and Validation graduate course and we get to pick a small project we can complete in 5 weeks.
The requirements are pretty broad: It has to be something to do with either:
* Specifications * Static Analysis * Dynamic Analysis * Modeling
I don't have any solid use case yet but I think it could be cool to do something with dynamic analysis on python and using d3js to do (real time?) visualization of that analysis. There are just so many uses for dynamic analysis though, I can think of anything useful.
I am completely open to ideas though. I know python, java, javascript, etc.
Anyone have a cool use cases or ideas? <comment><USER2> This would be cool: small app that would scrape METAR/TAF information from almost all pan-american airports, guess/read the rainfall measurements verify the relationship between corn and wheat prices and rainfall - and maybe even make some informed guesses about small fluctuations in commodities prices and make money on day trading.

<comment><AUTHOR> Oh that does sound cool! It might be a little much given the time frame, but I'll look into it. Thanks!</comment></comment>


Ask HN: How big is your database? - <AUTHOR> Found that major cloud providers like AWS and GCP are now providing more than 10TB RAM machine types, so wondering whether one single such machine is able to hold the entire data in RAM for most websites, apps, and maybe many business...<p>What's the size of the database you have worked on? <comment><USER2> I can imagine most companies customer facing data will fit in 10TB.

</comment><comment><USER3> Roughly 1TB.

Though a 10TB ram instance will cost a handful or arms and legs a month.</comment>


Modeling Data in MongoDB vs. ArangoDB - <AUTHOR> https://www.arangodb.com/2014/11/06/data-modeling-mongodb-arangodb <comment><USER2> This actually looks pretty interesting. I appreciate their FAQ has a great answer to "What is ArangoDB and for what kind of applications is it designed for?" \-- more projects need to offer this kind of statement. [https://www.arangodb.com/faq](https://www.arangodb.com/faq)

<comment><USER3> I like this project and am keeping an eye on it, but tbh that answer doesn't really answer the question in a way that seems objective. It just says it's a _" general purpose database offering all the features you typically need for modern web applications"_.

</comment></comment><comment><USER4> Does ArangoDB use the same storage strategy MongoDB does? From the FAQ:

"So how much RAM do you need? This depends on the size and structure of your data: Your application will access one or many collections (think of collections as denormalized tables for the time being). Once you open a collection the indexes for this collection are created in the RAM and the data is loaded into the RAM using memory-mapped files. If your collections are bigger than your RAM, the operation system will be forced to swap data in and out of the swap space."

I'm not an expert, but a lot of people seem to harp on MongoDB for this very reason. Does ArangoDB use the same strategy? If not, how is it similar/different?

<comment><USER5> In principle, ArangoDB behaves similarly to MongoDB here. Both are essentially "mostly-in-memory" databases in the sense that they hold the data in memory and persist it at the same time to disk via memory mapped files. This approach is good for performance and if you run out of RAM you ought to shard your data.

However, MongoDB often uses a lot of memory for the actual data, since its BSON binary format stores the names of the attributes with every single document. ArangoDB detects similar shapes of documents (see [https://www.arangodb.com/faq#how-do-shapes-work-in- arangodb](https://www.arangodb.com/faq#how-do-shapes-work-in-arangodb)) and thus avoids this particular problem.

<comment><USER6> I have been bitten by this using MongoDB as well. The shape recognition of ArangoDB sounds very useful. If this works well, it would alleviate a problem that NoSQL solutions so far have in comparison to classical relational databases.

</comment></comment></comment><comment><USER7> Interesting article. An obvious reaction is to say: "In a document store, not all joins will be efficient in a sharding situation!". This is true, but certain queries involving joins backed by the right secondary indexes will indeed scale well, therefore one should not use this argument as a reason not to implement joins at all.

<comment><USER8> Can you give an example for a join between two different sharded document collections that can be executed efficiently on say 100 servers?

<comment><USER9> just because the dataset is sharded doesn't mean that one query has to hit every shard. for example, suppose you're looking for documents with `parent_id = foo` and your sharding key is `parent_id`, then an intelligent query planner would only query one shard (the one that "foo" hashes to), and then this looks a lot like a join in an RDBMS. indeed, if you wanted to do (in RDBMS terms) a self-join to load the whole tree of documents rooted at parent_id = foo, and your sharding key were the root for each document, that query would only hit one shard with a. the trick is deciding which keys to shard on (and, in many cases, what other keys to shard on in redundant datastores that serve different types of queries).

<comment><USER7> Right, you were quicker but are essentially saying the same thing as I said in my example.

</comment></comment></comment></comment><comment><USER10> Is there a rule of thumb, in which situation you would model your connection as foreign key and in which situation you would model it as graph? Or do you always use graphs?

<comment><USER11> I think if you are connecting the same type of objects (i.e. users) you should use graphs. If you have a 1:n relation between different types, you could as well use foreign keys. For n:m you again need graphs.

<comment><USER12> Having a 1:n relation which you might want to annotated with, for instance, "type of relation" it is also feasible to use the graph model, as edges can carry attributes.

</comment></comment></comment><comment><USER8> I like that ArangoDB can be extended by micro services. Does this not raise security concerns, because user code is executed on the DB server?

<comment><USER13> This is an argument one often hears. However, V8 is encapsulated quite well, since chrome has the same issue.

Furthermore, these micro services can actually improve security: You can implement your own scheme for authentication and authorisation on the document level and deploy it to the database. Then, if your application has various clients for different devices, they are all authorized in the same way by the same code. This leads to a simplification in app development and thus to more security, because there are fewer places to get right and the whole approach is less error prone.

</comment></comment><comment><USER14> First time i've heard about ArangoDB ,and it looks quite interesting.

When did the project start?

Could the Foxx thing be an independent application ?

<comment><USER13> ArangoDB was only started in 2012 but many years of experience in developing special-purpose database solutions went into it. This is how the rapid evolution into a market-ready product was possible at all.

Foxx is designed as the extension framework for ArangoDB and so it does not really make sense to rip it out of the DB kernel. Furthermore, a lot of its advantages would vanish if it does not longer have immediate and rapid access to the data.

</comment></comment><comment><USER15> No astroturfing on HN, please.

<comment><USER3> Can you explain how this is astro-turfing?

<comment><USER15> It's hard to know for sure, of course, but according to the data we look at, some of these comments appear promotional rather than organic discussion.

That's not to say this isn't a great database, and we admire anyone who's undertaking a hard project. But there are proper and improper ways to get attention on HN. This one appeared to cross a line, hence my comment.</comment></comment></comment>


Hey, Microsoft, stop installing third-party apps on clean Windows 10 installs - <AUTHOR> https://www.windowscentral.com/microsoft-please-stop-trying-install-third-party-apps-my-clean-windows-10-install <comment><USER2> My favourite tool for dealing with third-party apps is Bulk Crap Uninstaller [0][1] by Klocman Software (Apache license).

The real question is how can you disable Microsoft apps if you don't want them? For example, disable Cortana on a Win10 system and something new will break every day, including security updates.

[0] [https://klocmansoftware.weebly.com/](https://klocmansoftware.weebly.com/)

[1] [https://github.com/Klocman/Bulk-Crap- Uninstaller](https://github.com/Klocman/Bulk-Crap-Uninstaller)

</comment><comment><USER3> I'd rather they try to launch Windows 11 than try to go to a rolling release with bundled apps. Before you know it, you won't be able to install Windows 10, but will need to download the vendor specific version from Dell/HP/Lenovo.

Microsoft, Android is not something you want to emulate!</comment>


Startup Quote: Charles F. Kettering, Inventor - <AUTHOR> http://startupquote.com/post/2728902054

<comment><AUTHOR> You can't have a better tomorrow if you are thinking about yesterday all the time.

\- Charles F. Kettering

<http://startupquote.com/post/2728902054>

<comment><USER3> "Those who cannot remember the past are condemned to repeat it." - <USER2> Santayana</comment></comment>


Why do people persist in believing things that just aren't true? - <AUTHOR> http://www.newyorker.com/online/blogs/mariakonnikova/2014/05/why-do-people-persist-in-believing-things-that-just-arent-true.html

<comment><USER2> This is very interesting. Linking those that are suspicious of the MMR vaccine with people who used to think the world is flat, people who just stubbornly "don't want to be right," people who are dumb? Hmm, ok I'll bite.

The writer is acting like the debate has happened and is over, that the reader already knows this truth. This tone should drive suspicion of the actual goal of the writer. Or am I jumping to uneducated conclusions too?

As a reader I want to be educated but in this piece the writer doesn't tell me why the MMR vaccine is safe. I don't know if the MMR vaccine does cause autism but I'd like to at least hear evidence why it doesn't.

<comment><USER3> I think the write is making an assumption (warranted, in my opinion) about her reader's knowledge level. She does not defend vaccines for the same reason she does not defend the spherical earth theory.

<comment><USER2> Yes, "in your opinion." I agree as well, all I have is an opinion. I'd like to hear a scientific opinion.

I thought it was awfully presumptuous to leave out science in such an important issue. I guess we'll have to settle for another opinion piece masked as scientific fact.

<comment><USER4> There is no such thing as a scientific opinion.

<comment><USER5> That's like, your _opinion_ , man

</comment></comment></comment></comment></comment><comment><USER6> These are disturbing findings but not all that unexpected. Anyone who's really probed other people's belief systems will have come to more or less the same conclusions in an anecdotal way. More worryingly these findings relate to why people will kill and die for (in the name of) some beliefs but not others.

What might be an interesting follow on for the HN crowd is how the digital realm or the internet changes any of this.

What think ye?

<comment><USER7> The internet allows people who believe in fringe nonsense to find each other and reinforce each other's beliefs. In the past, this only happened with mainstream nonsense.

</comment></comment><comment><USER8> It is difficult to get a man to understand something, when his salary depends on his not understanding it. -Upton Sinclair

</comment><comment><USER9> Why do people persist in believing things that just aren't true?

Like God?</comment>


Free of New York's Sludge Train, an Alabama Town Is Still Steaming - <AUTHOR> https://www.nytimes.com/2018/04/19/nyregion/poop-train-alabama.html <comment><USER2> Are there any other cities in the USA shipping their human waste to other states?

Also, couldn't they better contain the train cars and vent through activated charcoal liners to reduce the odor?

<comment><USER3> This really surprised me, in the UK sewage gets treated and then the sludge is used for fertiliser while the water is released into rivers. Shipping it across the country seems quite wasteful.

</comment></comment><comment><USER4> Maybe they'll institute zoning regulations. The lack of them is why the town was chosen to park the poop train.

<comment><USER5> It's an unfortunate mindset that people would choose to harm other people just because their city didn't happen to have an ordinance about an edge case that doesn't come about often, especially one that they were currently being litigated against, so they know they're actively harming people.

As a responsible member of the community and just being a decent person in general, it is everyone's responsibility to think about the effect of their actions on others, but I guess that's not how you "win" in life.

<comment><USER6> In other words, in a chain of events several _people_ decided not to follow the golden rule here. They wouldn't have done this in _their_ neighborhood. They're the reason this happened.

You can't really build airtight legislation and regulation enforcing decency. There is some evidence that you violate the golden rule when you try.

<comment><USER7> You can totally write regulations that require the consent of the community before doing things like this. It's hard to write them to not have side effects, but it's doable.

<comment><USER8> A town of <1000 people simply cannot craft city ordinances with all the edge cases that a city of >8500000 can. That is not a reasonable request, and it is not a license for the city of >8500000 to take advantage of the town of <1000.

<comment><USER7> That's true, but it's the cost this town paid for not wanting regulations at all. They have literally no zoning regs and are now crying that someone took advantage of them. They shouldn't have been so naive.

<comment><USER6> In the context of a small town, you don't craft airtight zoning regulations because if Harold is being a bad neighbor, you go work it out with Harold. If he's still being a jerk, you ask his friends to help you talk to him.

I don't think it's fair to blame the town for expecting people to be considerate and decent. Blaming them is like blaming consumers for not reading a EULA.

<comment><USER7> Nah, it's not like there aren't a million towns out there with adequate regulations they could have just copied. Or they could have made that "contact Harold if he's being an jerk" have legal teeth: community review boards and the like. Or zoning, like most towns have.

You don't need perfectly airtight zoning regulations if draft them right: just ask SF residents where the rights of existing residents are almost too strong.

This is a southern town so I strongly suspect the anti-regulation rhetoric won out and now they paid the price.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> With the whole of New York behind this, can't they just build a couple of miles of new track to provide a new route to the landfill which bypasses the town?

<comment><USER10> By the time construction is finished, the sludge has moved on to some other lowest bidder.

</comment></comment><comment><USER11> Why the "poop train" shit train makes more sense, no need to be polite.

</comment><comment><USER12> What a headline

<comment><USER13> I can just picture a NYC man with the most smug smirk on his face. He is the NYT reporter who penned this masterpiece.</comment></comment>


Leap Second in a graph - <AUTHOR> https://twitter.com/FSMLabs/status/815589123121618944 <comment><USER2> One day, developers will rise up and thump the astronomers that create leap seconds, create a new "Astronomy Celestrial Time" zome, and try to forget about the disruptions this causes every couple years.

<comment><USER3> "Abolishing the leap second all those centuries ago was the best thing we'd ever done."

"I agree; now, come on, it's 3am - the sun's going to set soon, and if we want to enjoy this warm January day, we'd better be off."

<comment><USER4> Aren't climates, in general, changing anyway. Not to mention that for half of the globe that is an accepted fact anyway. So, temperature just isn't that compelling of an argument for this.

<comment><USER3> My joke was actually about the calendar itself precessing, since it would become decoupled from the Earth's rotation around the sun, but if you'd like to contradict the entire scientific establishment, you're welcome to.

<comment><USER4> I wasn't contradicting any establishment. I just don't think weather is a concern. Really, neither are dates. Our calendar system isn't that old, after all.

Edit to add: I'm also being over brief, since I'm mainly posting from my phone. I make no claim that there are reasons to ditch leap seconds. Or that I fully understand why we have them. I just personally feel that calendar weather isn't that compelling. The changes would be so minor per generation, I would wager most wouldn't notice it.

Now, let none of this get confused with climate change. Which I do feel we are contributing to and we should seek to control.

</comment></comment></comment></comment></comment><comment><USER5> What are the axes?

<comment><USER6> This is what it looks like to me:

X axis - time of day

Y axis - NTP server's delta from actual time

What you're seeing with the yellow lines is "leap smearing" by Google's public NTP time servers. They slowly diverge from the real time for the 10 hours before and after the leap second, so that they can have 60 instead of 61 seconds at midnight. See: [https://cloudplatform.googleblog.com/2016/11/making-every- le...](https://cloudplatform.googleblog.com/2016/11/making-every-leap-second- count-with-our-new-public-NTP-servers.html).

<comment><AUTHOR> Correct. The X axis is our estimate of actual time from GPS time. The Y axis is the deviation from estimate. The estimate includes a slew of about 5 minutes around the leap second.</comment></comment></comment>


IBM: New heat-dissipating glue will allow 1000x processor speedup via stacking - <AUTHOR> http://www-03.ibm.com/press/us/en/pressrelease/35358.wss

<comment><USER2> With all the 1000x time speedups that IBM releases I'm amazed that we have to wait for computers at all, no matter what the task.

I really wished that these announcements would be at least accompanied by working prototypes showing the main claims in a realistic setting.

Since these are all things that may (or may not) be realized in the distant future when those reading the article will have long forgotten about it or will be safely deceased I suspect they are more of a marketing ploy than a true announcement of a breakthrough.

<comment><AUTHOR> Generally I agree. This one caught my eye because it addresses such a basic problem that it seems more realistic to expect this one to actually make it from theory to practice.

<comment><USER2> Yes, but the actual release states that they plan to jointly develop this (3M and IBM), not that they even have this adhesive, let alone the tech to stack the chips and do the interconnects.

Really, this is an announcement of the development of vapourware, it doesn't come much more tenous than that.

IBM seems to be pretty desperate for the spotlight lately.

</comment></comment></comment><comment><USER3> See the comments on the press release here: <http://news.ycombinator.com/item?id=2981939>

(which is now dead)

Basically the bogosity here is that while its cool that the glue can act as a heat spreader, the heat still has to go somewhere. This has been a bigger hindrance on 'stacked' silicon. How do you pull 250 - 500 watts out of a chip efficiently. Its a very hard problem. If you have good chops on how to do this you can make a mid six figure income designing power stages for fighter jet radar units.

</comment><comment><USER4> While I am as dubious as the rest of you about how likely we are to actually see this, I appreciated learning that adhesives are one of 3M's 46 core technology platforms. Does anyone know what the other 45 are?

</comment><comment><USER5> I get the feeling that researchers and manufacturers always wait until we're close to falling short of Moore's Law to come out with advances like this. I guess they can push quantum computing back a few more years now.</comment>


Show HN: #nomads – a chat community for digital nomads - <AUTHOR> http://hashtagnomads.com/

<comment><USER2> With hopes of not sounding too rude:

Could you explain more what this is about? (These frontpages with nothing but a "give me your name and email address so we can sign you up for $list" are kind of irritating, personally.)

Why should one sign up? The hashtag makes me think of IRC channels (but apparently it's just a hashtag?) Why is this better than creating an IRC channel and pointing people to it?

..so it's powered by levels.io, which is for "building a community around your product." Its frontpage includes a graphic about a spike in pageviews.

<comment><AUTHOR> Sorry about that, I could make that page a bit more clear :)

Yes, it's a Slack chat for nomads and remote workers and people that are planning to be soon. It has channels for different cities so that people can meet up wherever they work.

We have just passed 500 members, so it's fun to see where this goes!

</comment></comment><comment><USER3> Why not a IRC chat room?

In fact, I'll enter the #nomads channel and see what happens.

<comment><USER4> Not every DN is a programmer. There are no good clients for mobile and tablet. Sharing files would be a pain. Every individual would need to store logs for themselves. And finally, you can use slack over IRC if you like.</comment></comment>


Prime Minister's office contacted Guardian over Edward Snowden secrets - <AUTHOR> http://www.bbc.co.uk/news/uk-23776063

<comment><USER2> > The files had already been copied and the Guardian will continue to pursue > the Snowden story, but from the US.

Kind of ironic, sad, funny, strange, all at the same time.

<comment><AUTHOR> All of that. And now, to boot, we've just had (Sir) Malcolm Rifkind on BBC Radio 4 displaying a nice and clear level of detachment from reality, alluding to the Guardian editor's supposed implicit agreement of his own wrongdoing by allowing agents access to the Guardian property in order to 'destroy' the files.</comment></comment>


What Hacker News readers want in a job - <AUTHOR> https://medium.com/@lynnetye/what-does-hacker-news-care-about-e364fb87431c <comment><USER2> Well there are more things which, given the experience, I don't want: corporate bollocks, high discipline competitive working environment, being underpaid/overworked, working in low cost/outsourcing center, insufficient hardware, strict development environment fixated on validation, windows machine with antivirus eating most resources, bloated backend running locally and eating up the remaining resources, pushing and manipulation understood as "teamwork", managers worrying about their cozy position and not seeing or not wanting to see through this "teamwork", begging or even asking for holidays, with the time diluting number of experts and increasing number of those lazy and incurious. Otherwise I'm open minded like a 18 years old virgin.

<comment><USER3> > strict development environment fixated on validation

I've spent some time working with ill-defined scenarios/flows so having validation doesn't look to be something bad to me. Although I had never worked in an environment that could be said to be _fixated_ on it, so I guess I'm missing something.

So I wonder... what's bad about this? (Or I misunderstood what this is about?)

<comment><USER2> I meant mostly which activities trigger running the tests of the project locally and on the CI server. Local build, git hooks, push to remote? Does CI validate all remote branches, is it possible to disable running tests on a particular branch? Given an overzealous quality evangelist in the team, there are too many ways to paralyze the workflow of those preferring to have space to move and air to breathe. Configuration of tools like JSHint can easily go too far as well.

<comment><USER4> Hmm. We use Phabricator, and while you're free to skip unit tests and linters locally (on by default, but can be skipped) or ignore Jenkins build failures as you iterate over a diff, the expectation is that you get all the tests and linters to pass before landing to master (and usually before soliciting reviewers).

</comment></comment></comment></comment><comment><USER5> Maybe it is just me (and being not a programmer or software engineer it is perfectly OK to ignore this note), but it is not like there is a "wide" representation of more "practical values".

I mean (just examples of less "idealistic" values):

1) Job is paid an awful amount of money

2) Relocation is fully reimbursed

3) Full health assistance provided

or even:

4) No open space, you will have a real office

might be - I believe - more selected than "Has good beer".

<comment><USER6> Agreed. I found myself ticking just two boxes: Remote Work and Continuous Integration.

I'd almost exclude a company for mentioning some of these values.

"Ideal for Parents"? I'm a parent and I have no idea what that's supposed to mean. Generous vacation time and flexible hours are generally appreciated by everyone. Seems weird to sort of single out people with children as if we're "special needs" or something.

"Supports physical wellness" can end up really pushy. I've seen this in companies that self-insure especially. Maybe I just want to eat a cheeseburger for lunch and _not_ take the company sponsored cholesterol test, ya know? No, I don't care that you're "hoping for 100% participation".

Eats lunch together, friends outside of work, has good beer... Eh... Mixing friends/coworkers hasn't turned out well for me in the past. I prefer work to stay work. I've got nothing against having a beer while talking about work, but I really like to keep my personal life _out_ of the office.

Psychological safety, active inclusion, safe to fail... I'm scared to comment on why I would avoid these "features", which I suppose says enough about it anyway.

Don't get me wrong -- It's an awesome website and a fantastic idea. It's just not at all for me. I guess I'm much more of a "mercenary" than a "missionary". :)

<comment><USER7> > "Ideal for Parents"?

Hum, like in the sense of: "I want to pass more time with my kids" or like in "I want to hide from my kids as many time as humanely possible"?

</comment></comment></comment><comment><USER8> For the last 10 years it was all about learning and sometimes the company mission.

Now I'm turning 30 so it's mostly about money. Present money or future money.

<comment><USER9> Interesting. I don't think you being 30 makes it mostly about money. There probably is some other factor than your age.

I'm 32 and for me it's about work-life balance and high quality codebase - apparently that makes me very average.

<comment><USER2> I guess it depends on where the OP is from? People from US and developed EU countries already have at least decent salary so they focus on things higher up in the hierarchy of needs, people from countries where outsourcing/low cost centers dominate say "it's all about money" but they simply mean "at least a decent salary":)

</comment></comment></comment><comment><USER10> "United States choose 'Promotes from Within' more than readers from anywhere else."

Can only speak for myself as an Australian, but i initially took this as some kind of "Anthony Robbins" type bullshit motivational phrase or american corporate marketing nonsense statement.

Now that i pause and ask myself to reframe it, presumably in its intended form, my second natural response is "well, where else would they promote from?", thus making it a truism.

Only when i pause even longer would I consider it as asking about the phenomenon of needing to job-hop to get ahead.

But in short, i don't think the phrase captures a universal intended meaning very well :)

</comment><comment><USER11> The longer I work, the more "High Quality Code Base" matters to me.

Maybe after you've had enough of working on so much others' shit, not much else matters.

<comment><USER12> I've spent too many hours of my life improving code. Then come to find out my improvements were worthless because of some insane externality that I would have never considered.

For example, I just spent a week improving the loading speed of this data processing engine from like 1.5MB/s to over a GB/s (using an artificial benchmark that I wrote). I put things into certification and saw the loading speeds were only like 2.0MB/s. After some investigating, I discovered I was hitting the limit of the system that was serving the data.

I would have never thought that, in 2017, there would be systems in place that couldn't serve a single file faster than 2.0MB/s.

</comment></comment><comment><USER13> \- Zero egos & cut throat B.S.

\- Camaraderie

\- Kindness

\- Respect

\- Fair market salary with raises that match what recruiters offer daily

<comment><USER14> In other words: "Our incredible journey"

</comment></comment><comment><USER15> Interesting that High Employee Retention is so high for the US (#4) but the only country with it in the top 10 is India (#10). As an engineer who has recently moved from the US to the UK, I'm just getting used to these cultural differences and I think mature tech locations (US) are able to understand the importance of employee retention toward an individuals fulfillment in the job. A deeper dive into the statistics would be insightful for comparing countries. Specifically, looking at the values that are uniquely high or low for a location.

<comment><AUTHOR> I look forward to collecting more data and will definitely share them once I do.

The US, despite being more "tech mature" than other countries, still fails to provide work/life balance or maintain quality code. I was honestly surprised to see these two things at the top of _every_ list. It seems obvious that companies would prioritize these two things, yet... they aren't the standard.

Just reading the other popular posts on HN today (ie. [https://medium.com/@deusexmachina667/you-fired-your-top- tale...](https://medium.com/@deusexmachina667/you-fired-your-top-talent-i- hope-youre-happy-cf57c41183dd)), it sounds like these are common stories. You can be well-respected, be incredibly experienced/knowledgable, and still be overworked and pushed to push code we're not proud of. These things lead to turnover. I wonder if the startup culture in the US ("grow as fast as you can, do whatever it takes!") is especially bad, and contributes to low retention. Probably.

<comment><USER16> That's where the fuzziness of the terms comes in, I think.

For instance, I've seen in-house codebases that drive US devs to anger about their low quality that are regular paragons of excellence compared to stuff that's come back as part of outsourced projects (and not solely offshores outsourcing), so it's all relative.

</comment></comment></comment><comment><USER17> I am surprised over "eats lunch together" being so high. I dont get why would anyone care about that at all.

<comment><AUTHOR> It's funny, even though "Eats Lunch Together" is really important to me, I'm also surprised to see it so high on the list.

Lunch time is an opportunity to socialize with your colleagues. It's also a great time for spontaneous collaboration to take place. I've worked at a startup where great ideas were born out of engineers, operations managers, and customer service reps eating sandwiches together. It's cross-pollination that does good for everyone.

A lot of companies also combine lunch with talks, presentations, or team building activities. In general, I care deeply about working with people that I look forward to chatting with during the day.

If you can imagine a place where most people eat alone at their desks, what else might this signal? Maybe people aren't friendly? Maybe everyone is expected to work through lunch? Maybe people are very exclusive and leave the office in group without inviting "outsiders"?

<comment><USER17> When I was younger, I used to often lunch with boyfriend who worked nearby. These days, I go sometimes with small group of colleagues, not always the same. I oftentimes go alone, because they prefer different place then me. I also occasionally lunch with former colleagues or with people from different departments. Some colleagues go exercises instead of lunch and then eat sandwich fast at the table - their freedom to choose so. We have very good working relationship, I respect them a lot and know they respect me and know they would tell me directly if they would have some problem with my work or me (same with long time ago). We do have personal conversations too and support each other when someone has problem at home.

The worst teams I worked in expected a lot unofficially-mandatory socialization where your status and work progress depended a lot on your ability to be charming and fun. Did not prevented bad politics.

</comment></comment></comment><comment><USER18> High pay, interesting work that makes the world better, and flexible low hours =)

</comment><comment><USER19> Something with low hours (think: 2 days a week), no bullshit like open offices, and mininal office politics.

Of course with that first requirement I'm unemployable, so, I'll stick to teaching English and keep my dev skills for private projects.

</comment><comment><USER20> > Eats lunch together

Is that really high up on the list when people are looking for a new job?

I'm perfectly fine working in teams and actively enjoy it for the most part, but lunchtime is my time.

I spend it reading articles I've saved for later, studying something unrelated to work, reading a book or even just going for a walk.

I like my co-workers a lot and I meet them outside work for nights out/leaving drinks etc. but I still prefer to eat by myself and take a break from everything.

</comment><comment><USER21> I'd like to point out how some of the responses may be skewed. This is not a criticism, but worth discussing.

I would suggest that in some cases, the priority of various values has a lot to do with fears and insufficiency in recent experience, rather than the true priority given to a particular value.

Example: In the US, Promotes From Within is rated higher than other values when compared against other regions. Does this mean it really is a higher- priority value, or is this a contrast to experience for US workers? Maybe they are mentioning it more because they are experiencing it less, but that doesn't mean other things they assume/always get are not more important. I may not mention High Wages if I am used to getting paid well, but that doesn't mean I would not recognize that as a priority if I faced a situation where I might get paid a lot less.

<comment><AUTHOR> Certainly worth discussing. I actually talk about this in my article and use "Promotes from Within" being ranked highly in the US as an example.

It is very likely that the most popular values are a combination of what we most value _and_ lack. It's hard to know for sure. Anecdotally, I've spoken with many American developers who disagree with the way their company handles promotions. It sounds like devs are often promoted into managerial roles as a reward for technical ability, even though they don't have experience managing people. Sometimes, they aren't even particularly interested in managing people. I wonder how often this happens, and how many less-skilled developers would succeed in those roles.

<comment><USER22> Hi,

I've been a developer for a few decades, mostly in large companies (>50k employees). On the subject of promoting technical talent, I can offer some insight into how it happens and why. I studied Organization Behavior and Operations Management as I found the topics interesting. Hence, I've learned how companies interact with their employees and how some companies adjust.

First, this "issue". A person is very good at their job and withing the company - they should be promoted to recognize their continued contributions. Most companies have a Human Resources department that is designed for efficiency and 'legally provable fairness' _, so people are categorized into titles, grades, and rankings. Most technical career paths have a limit to their maximum grade - hence a maximum salary.

For example, some companies have grades GSR01 - GSR08 as non-managerial employees. Manager roles have ranks from GRS09 - GRS15. Above that is executive, ESR16 - ESR21. Each has a salary range which is determined by competitive salary surveys of other companies in similar industries.

The situation described above - a talented person needs to be compensated more - causes a conflict because these companies don't have a "career path" that includes non-managerial positions with higher pay (or career management requirements). A manager's work performance is determined by a number of tasks that are related to the performance of their employees. But such a list isn't available for a company without a "Technical Career Path". The result is that in order for a good employee to get a promotion, they are forced into a Managerial Career Path. A technical person is moved into a management role because the company has no other way to promote them or increase their salary.

Allow me a specific example: A person worked as a mechanic at a local muffler place. He was their best. They had 4 other guys and a front-office manager, plus an owner. When the manager quit, the top mechanic wanted they job because it paid more than the mechanic job. The owner was quite blunt: "You have years of experience working on cars and no experience running a store. I can't lose you as a mechanic and a I can't risk my only income source to a person with no experience. So I can't promote you." (Later, they negotiated a different pay scale to keep the mechanic working there. Most companies don't have that flexibility - all salaries are limited by HR rules.)

If the above example is applied to a large company - they can afford to train a manager 'on the job' \- so they accept the risk and cost of doing so. And in most cases, the person is good enough at the job. However, everyone involved knows it is not a best case scenario. It only happens that way because the company doesn't have a better solution.

\---

I mentioned the better solution above - the Technical Career Path. This is a structure within a company that allows the desired progression. Often it requires the employee to meet requirements beyond their day-to-day work. Some requirements may be; nationally published, provide support on other products within the company, present technical information within a larger group within the company, contribute regularly to external projects (open source), etc.

For this to happen, the company has to invest in an additional career path within their HR department and train upper and mid-level management on managing, mentoring, and guiding these employees. This is not a small undertaking. Most small to medium companies cannot afford this type of investment.

The alternative, and the result, is that technical people don't get promoted to management very often. The company recruits from outside so they don't have to bear the cost of training the new manager.

\---

So, are we, technical people, 'stuck'? Is this something that can only be solved by the 'company'? No. It is something that can be addressed by each person who ranked "Promotes from Within" as high on their list. Being bluntly; for a person to get promoted, they have to be promotable. That is, they have to develop the skills the company is needing. Take a couple of night courses on Business Management, Leading Teams, and Public Speaking. Then ensure the company management knows you have these skills and want to put them to use. We technical people will happily spend a weekend building a network in our basement or learning the latest javascript library. But in order to get beyond that promotion boundary, a technical employee has to learn something other than the technical.

As a technical person, I've resigned from management jobs in order to go back to technical work. I love creating software more than I do leading people - even for less pay. When I had access to the Technical Career Path, I took it and I was happy.

thanks, jon

_'legally provable fairness' is a made-up term that is intended to relate how an action by a person is driven by a company policy. Most company policy is written with the intention of being used as a defense in a legal situation relating to a complaint against the company. For example, an improper termination lawsuit or an investigation by a government agency.

</comment></comment></comment><comment><USER23> It immediately jumps out at me that "Team is diverse" has such a high bar. Is this the HN/San Fransisco bubble in action?

In all of the interviews I've done as both interviewer and interviewee, not once has "diversity" been mentioned. In fact, it's so strange that it feels oddly hostile to me. It's that weird. I can't fathom asking someone who's interviewing me: "Do you have enough latinos in your team?"

<comment><USER24> Diverse doesn't even really mean diverse. It's just an excuse to make people feel like they are inclusive, at least - that's the impression I have from those I speak to in SF.

So yes, that's a mostly SF thing from my experince.

It's also interesting that I'm usually considered not diverse (white guy in tech). However, what's interesting is that when we conduct surveys at work, in conferences, school, etc. I usually stick out like a sore thumb. Because I'm from a poor income bracket, in the midwest. Where most "diverse" people get scholarships for school, because I'm white I received next to none (besides for my research / grades). So what people mean isn't really "diverse" they mean, woman and / or other skin color (not even other culture).

Diversity should include states IMO since the U.S. is easily diverse, perhaps not as much as Europe, but enough to be unique. How many people on your office have people from the Midwest or the south? It's actually rarer than I anticipated looking at the figures.

<comment><USER12> > Where most "diverse" people get scholarships for school

Most "diverse" people don't get scholarships either. These scholarships are either broad, but small (i.e., All Native American students get $500/semester) or generous but targeted (Native American Women Studying Electrical Engineering get $4000/semester). The latter can afford to be so generous because of the complete lack of candidates.

But this attitude completely ignores the silent majority of these "diverse" groups that get nothing (or are actively screwed) while being chastised by the "I'm white so I get nothing crowd."

I had several Asian friends in college that paid $40k+ a year for tuition at a shitty state school (which was $8k/yr for me). One was married to an American since his freshman year and started working a job in the US at the end of his sophomore year, yet, the university refused to give him the in-state tuition rates until his very last semester. He also graduated with a 3.9 GPA.

His parents paid roughly $150,000 for the same education that I would have paid $32k for. Had he been a white American, he would have been eligible for an automatic academic scholarship (like I was).

<comment><USER25> >Had he been a white American You mean "had he been an American citizen born in your state"? Race has nothing to do with this example. All out-of-state people regardless of color experience the same.

</comment></comment></comment></comment><comment><USER26> No assholes. =)

<comment><USER27> Unfortunately they're everywhere!

</comment></comment><comment><USER28> Money.</comment>


Mandatory software engineering license? - <AUTHOR> http://ncees.org/about-ncees/news/ncees-introduces-pe-exam-for-software-engineering/ Is this what the future will hold for software development? <comment><USER2> It's an open-book test, involving 80 multiple-choice questions in eight hours and not a single line of code.

Seriously?

<comment><AUTHOR> I'm not sure if I should laugh or cry :/</comment></comment>


Varnish Cache 6.0.0 - <AUTHOR> https://varnish-cache.org/releases/rel6.0.0.html <comment><USER2> I work in the CDN industry and am also heavily involved in the FreeBSD community. I find Varnish to be kind of a tragic curiosity in that is has nice fit and finish but is pretty unsuitable for high scale workloads due to the influence of its creator phk@. Ironically on the OS he should know like the back of his hand, sched_ule(4) has fairly expensive depth searches to ensure process fairness. Doing a thread per connection is about the worst conceivable design for web acceleration. It is probably ok for low connection count high bandwidth (like chunked video streaming), but you're still going to be dropping performance on the floor vs other I/O models as you get into the 1000s of connections, and as Netflix has publicly shown that is modern reality on FreeBSD with 100gbit networking.

My understanding is that fastly has rewritten the I/O model upon more industry standard event polling worker threads. They also reworked a lot of the memory model using [https://github.com/fastly/uslab](https://github.com/fastly/uslab). None of that I/O work is upstream and it's unlikely it ever will be because of the phk@ influence and perhaps fastly sees it as IP. So be prepared to do some deep systems work if you need high scalability out of Varnish.

Apache Traffic Server is the most ready "out of the box" caching software for rolling a CDN that I've seen. If you're going to do custom development, nginx is a good I/O and HTTP model but be prepared to roll a complete cache storage model from scratch.

<comment><USER3> > They also reworked a lot of the memory model using > [https://github.com/fastly/uslab](https://github.com/fastly/uslab).

Can anyone explain what being 'ABA-safe' means? I've not come across this before and Google is not being helpful.

<comment><USER4> I had a little more luck. I assume it is this:

[https://en.m.wikipedia.org/wiki/ABA_problem](https://en.m.wikipedia.org/wiki/ABA_problem)

</comment></comment></comment><comment><USER5> In case any of you have questions about V6, I'll keep an eye on this thread to answer them today.

Contrary to the trollish claims below, Varnish works quite nicely, and is involved in around one fifth of all HTTP traffic globally.

<comment><USER6> kev009 doesn't seem to argue that Varnish "doesn't work quite nicely", but that it has deep architectural limitations exposed in environments requiring high scaling.

WordPress is involved in even more than 20% of all HTTP traffic globally, yet it is the target of frequent criticism (whether rightfully or not is besides the point). Popularity doesn't grant free pass on valid feedback.

<comment><USER2> Yes as I said Varnish has great fit and finish. If you have a small pool of servers my comments will mean little to overarching business decisions.

To clarify my own part, this was in the back of my mind [http://varnish- cache.org/docs/trunk/phk/notes.html](http://varnish- cache.org/docs/trunk/phk/notes.html). It's written sanctimoniously and is wrong. I care a lot about the profession of systems programming and hate to see people misled. If calling bullshit is trolling I guess everyone is either a bullshitter or a troll.

I contest most the points in that page. Varnish I/O model is ignorant of TLB flushing, instruction cache, VM hints like madvise(2), and the overhead (and downright difficult job) of an OS scheduler, as well as high performance networking KPIs like load balancing SO_REUSEPORT or RSS. In a production web cache there are very good reasons you might want to park some objects in memory outside the vfs (the vfs is demand paged and also carries heavy nontrivial locking). The stuff under the header "More caches" is correct, and trivially dealt with using per worker (cpu) APIs, see counter(9) in the FreeBSD kernel for a nice example.

By the text of the page, Varnish remains 2006 software. It's now 2018 and 48 hardware threads are common on servers, RAM is commonly measured in many hundred GB, and multicore programming is beginning to mature with high quality software, libraries, books, and tooling like Intel's VTune available.

If my points didn't have some validity, Fastly would not have done what they did. That's all I have to say. I don't know nor care about phk (and find the "smear me" comment hilariously paranoid), but a lot of the technical marketing is bullshit and these problems could be fixed if he were willing to back down and revisit the bold claims.

<comment><USER7> This is another misinformed rant.

> Varnish I/O model is ignorant of TLB flushing, instruction cache, VM hints > like madvise(2), and the overhead (and downright difficult job) of an OS > scheduler.

TLB flushing is a hardware problem, not a software problem. Instruction cache? Last I checked, the varnishd binary is about 2MB and uses very predictable jumping and straight function calling. Im pretty sure your going to be getting a 99% instruction cache hit rate. Madvise is used in Varnish's storage engine's, and there seems to be little interest or knowledge about how Varnish uses storage here.

> If my points didn't have some validity, Fastly would not have done what they > did.

Can you expand on what Fastly did? They published a non locking memory allocator? So the claim is that memory allocation is the bottleneck and jemalloc is not suitable?

Sounds like someone might be stuck in performance hell and you are trying to draw parallels to Varnish which simply don't exist!

<comment><USER2> You don't understand TLB. It is distinctly not a hardware problem. A TLB is a content addressable memory and the mappings and flushing are done by.. software. You flush it every time you context switch, and pretty much fully all the time with KPTI now that PCID's 4096 ASIDs can't safely save anything other than the kernel and runnable process. My point about madvise protects against PHKs post claiming memory pool objects will always be paging in and out, which is false and again a memory pool is desirable for certain uses as it guarantees maximum latency and avoids very heavy locking in the VFS for high concurrency.

</comment></comment></comment></comment></comment><comment><USER8> Cool, I have been using Varnish for a few years, mostly in front of wordpress sites. Amazing product, almost no config and no worries :D It has made the life of my users much better.

</comment><comment><USER9> I'm curious. Since SSL is not supported (plenty of info about why in the docs), what are people using besides HAProxy in front of Varnish?

<comment><USER5> Pretty much whatever they prefer, and pretty much anything can work so take your pick.

My personal preference is 'hitch' because I want as few lines of code involved with the certificates as possible.

For important sites, I recommend running two different SSL implementations, so that you are not dead in the water when a bad CVE in one of them comes around.</comment></comment>


Perl Teasing Challenge - <AUTHOR> http://programming.tudorconstantin.com/2012/03/perl-teasing-challenge.html

<comment><USER2> What do you think are the characteristics of a highly efficient teasing presentation for a programming language?</comment>


Ask HN: I own kittens123.com.  Now what? - <AUTHOR>

I wouldn't normally ask but it's a quiet holiday weekend.
I bought kittens123.com as that seemed one of the most basest, irony-loaded, domains I could think of that gets close to the most populous scurge of the kitten pictures (and preference for bad weak passwords).
Now what? <comment><USER2> Free it if you have no use for it.

<comment><USER3> Agreed. That or porn.

</comment></comment><comment><USER4> get people to post cat pictures on it. profit $$$</comment>


MySQL 8.0: Retiring Support for the Query Cache - <AUTHOR> http://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/ <comment><USER2> Product Manager for the MySQL Server here (and post author). Happy to answer any questions...

<comment><USER3> I'm a developer who drastically prefers PostgreSQL due to things like window functions, a more predictable query planner, a variety of index types and the ability to index over calculated fields, improved strictness out of the box (e.g., UTF-8 being UTF-8, no implicit truncation of long strings, no silent and lossy automatic typecasting), and so on.

I'm forced to use MySQL at work, because it's much easier to work with for our operations teams.

That said, my perception is that PostgreSQL is catching up to MySQL in terms of operational overhead and replication strategies faster than MySQL is catching up to PostgreSQL on the end-user side of things.

To an end-user like me, what would you point out are some current advantages that MySQL has over PostgreSQL, and what do you see the MySQL project doing to help it catch up to the growing gulf in feature parity?

<comment><USER2> I would maybe start off by saying feature parity was/is never the goal. The original goal of MySQL was to be the "Ikea of databases" (both come from Sweden).

Having said that, I think expectations on what is the minimal functionality have evolved, and we have responded by adding functionality like JSON in MySQL 5.7, and CTEs and Window Functions in 8.0. In terms of the specific issues you raise:

* utf8 vs utf8mb4 is "problem #1" [http://mysqlserverteam.com/sushi-beer-an-introduction-of-utf...](http://mysqlserverteam.com/sushi-beer-an-introduction-of-utf8-support-in-mysql-8-0/) \- we have switched the default in 8.0, and will deprecate utf8mb3 to reduce confusion: [http://mysqlserverteam.com/mysql-8-0-when-to-use-utf8mb3-ove...](http://mysqlserverteam.com/mysql-8-0-when-to-use-utf8mb3-over-utf8mb4/)

* Implicit truncation and automatic type casting is no longer the default (strict was enabled for new installs in 5.6 (2013) and all installs in 5.7 (2015)). That is, unless the standard specifies it should (there are some weird cases).

* 5.7 has virtual columns + indexes. This allows for a functional index.

Edit: Missed a word, added computed columns

<comment><USER4> > adding functionality like JSON in MySQL 5.7

In the Java world, the Spring framework is about to drop a new major release revolving around asynchronous or "reactive" programming. Many other programming languages and frameworks are already moving in this direction.

This model pulls people toward alternative databases such as Cassandra, MongoDB, etc. Because you lose many of the advantages of asynchronous processing in the application tier, if your data access tier still relies on synchronous blocking API's (such as Java's JDBC and JPA).

Recently I was researching whether any relational database vendors were adding support for asynchronous access, and stumbled across MySQL's new "X Protocol" basically by accident. The documentation is still rather new and thin, and I was puzzled that it seems to revolve 100% around the use case of MySQL as a document store to compete with MongoDB.

Are there any plans to push the X Protocol further toward the spotlight, beef up the documentation, and emphasize use cases around asynchronous access as a relational database rather than document store?

<comment><USER2> The "X" comes from it being a crossover/hybrid protocol between SQL and a CRUD API. It has a lot of modern protocol features, and uses protobufs, which makes it easy to add new driver support. The CRUD API has overlap with Document Stores like MongoDB, but the X Protocol really goes beyond that.

There are plans to continue developing the X Protocol. We have also chatted about doing translation from the classic protocol to X Protocol in the MySQL Router. I agree with you that async is important. Stay tuned :-)

</comment></comment></comment></comment></comment><comment><USER5> These days it is much easier to implement a query cache specific to your application's needs in other layers of your infrastructure. These other layers also tend to scale horizontally much more easily than a relational database does. I like it.

<comment><USER6> In a former job I had an application that made excellent use of the Query Cache. A number of computers (in clusters across a large campus) that all needed to check on the same computed value that was derived from a query that spanned 5 tables. The computers each checked in up to every 5 minutes, and really only needed to know when the computer value changed, but without setting up some sort of push system (which would have been engineering expensive), we just fell back on the Query Cache. Worked beautifully, especially since we would only see an extra recompute a few times a day.

Yes, you could architect a separate system to do this (e.g. a separate table, possibly with a stored procedure firing for changes on any of the tables), but that would necessarily involve more complexity.

<comment><USER7> This is a quite lucky edge case; in order for this to work, you need to have the underlying tables (5 in this case) change infrequently.

This is actually, directly and indirectly, the core issue of query caches.

The one mentioned is the direct problem; the indirect one is that for each record change in any table [present in the query cache], the entire query cache must scanned and invalidated, which causes locking.

</comment></comment></comment><comment><USER8> It's good that MySQL gets better because I'm tied to it since Sequel Pro is the best database browser there is and it only supports MySQL.

Datagrip has that Java kind of non-nativeness (weird scrolling and the looks) and it's never easy to read/write triggers, relations and export data into csv etc.

I did find Postico being decent last time I checked but what a limiting factor on the tooling.

<comment><USER9> [http://dbeaver.jkiss.org/](http://dbeaver.jkiss.org/) is the best I've used for a universal SQL (and nosql) client.

<comment><USER10> I started using it since it was last mentioned on HN and it's really impressive, I've been converted.

</comment></comment></comment><comment><USER11> >>Use of non-deterministic features will result in the query not being cached (including temporary tables, user variables, RAND(), NOW() and UDFs.)

Makes me wonder how many simplistic client side caches check for this. Pretty sure I've seen PHP shopping apps that blindly hash the query.

<comment><USER12> How often would that actually be a problem? RAND() and udfs aren't often used in queries, I would say. And NOW() is used for something like "items from last week" where some time difference doesn't matter too much (you need some cache invalidation as new data comes anyways)

<comment><USER2> I don't think it's common per-se, but it leads into the next point as well. Because of MVCC, what you are supposed to see (while returning non-stale results) gets complicated.

</comment></comment></comment><comment><USER13> This PostgreSQL diehard had a usecase that required a cluster of 3 masters to stay up if two of them died. Turned out that was really easy with MySQL multi- master and multi-source where each master is a slave to the other two.

</comment><comment><USER14> Though this is probably a good move, I think it's going to catch out a lot of bad web apps based on my experience of trying to disable it at a web hosting company :-)

</comment><comment><USER15> I always assumed that it makes sense to have the query cache active. It just makes sense logically.

On my production server, "SHOW STATUS LIKE 'Qcache%'" currently gives me:

        Qcache_free_blocks	2184
        Qcache_free_memory	7629288
        Qcache_hits	328939349
        Qcache_inserts	14440714
        Qcache_lowmem_prunes	7814306
        Qcache_not_cached	290027559
        Qcache_queries_in_cache	7497
        Qcache_total_blocks	17225

About 20 hits per insert. Sounds good to me.

Anybody here who is more "in the know" then me and can tell me what I can conclude from these numbers and/or which other stats to look at?

<comment><USER2> It's not easily possible to tell from these numbers.

For example:

\- You can see a hit, but what was the cost of a miss? If it was a point lookup, it is very low cost.

\- Comparing hits to inserts, does not show the cost added to every other query to search the cache (Com_select) that may have not been added to the cache after execution due to judged to be non-deterministic.

\- Inserting results into the query cache can cause stalls (mentioned on Rene's post)

\- Performance should be judged on 99th+ percentile. Even if it makes some queries faster, has it improved your p99?

If you wanted to take a more wholistic approach, it is good to measure this from the Application with something like NewRelic.

<comment><USER15> > what was the cost of a miss

Yeah, no idea.

Regarding "Com_select", it seems to be 0:

        SHOW STATUS LIKE "Com_select"

        Variable_name       Value
        Com_select          0

What does that mean?

As for the wholistic approach .. well, the server tucks away nicely. I never experience any lag and all users are happy with the speed. So there is no strong drive to investigate. Computers are so fast these days. A cheap $15/month VPS can easily handle tens of thousands of users per day.

</comment></comment></comment><comment><USER16> It is definitely high time, the QC is an abomination, it's totally at odds with the idea of MVCC.

In my experience, anyone who enabled the QC was deeply mistaken about its behaviour.

<comment><USER17> Exactly! This should have been done a long time ago.

The MySQL query cache was nothing less than a _trap_ for unsophisticated DBAs.

</comment></comment><comment><USER18> when optimizing old school server rendered web apps turning on the query cache always gave the most bang for the buck. hit rates around 90% or more.

</comment><comment><USER19> Out of curiosity: how does people using Wordpress [at somewhat scale] handle layers of cache? Last I used it, relying on the Wordpress cache layer just didn't cover enough cases. The MySQL one "saved" me seeing how Wordpress likes to ask the same question. A lot.

<comment><USER20> If you enable WordPress's object cache, it should get most page views down to a couple or even zero queries. It's poorly written themes and plugins where problems can arise.

The easy solution is to just enable full page caching. On single server setups, something like WP Super Cache works well. On distributed setups like WordPress.com, this is more appropriate: [https://github.com/Automattic/batcache](https://github.com/Automattic/batcache)

<comment><USER11> The object cache doesn't persist across HTTP requests. You have to install some 3rd party plugin for that.[1]

[1][https://codex.wordpress.org/Class_Reference/WP_Object_Cache](https://codex.wordpress.org/Class_Reference/WP_Object_Cache)

<comment><USER20> Correct, which is what I meant by enabling it. Apologies for not being clearer.

It used to persistent via writing objects to the filesystem but it actually ended up being _slower_ in some configurations.

</comment></comment></comment></comment><comment><USER21> I am trying [http://www.heimdalldata.com/](http://www.heimdalldata.com/) as a replacement.

</comment><comment><USER22> I'm not sure that it will "only affect a small number of users".

Maybe this should be an option with false as default value, it could help with the transition.

<comment><USER23> It has already been disabled by default for a while. From the article:

> The query cache has been disabled-by-default since MySQL 5.6 (2013)

<comment><USER17> Yep.

What they should have done was add a notification in the error log when you startup-- "Query Cache is enabled. Are you really sure you want to do that? Read [http://whatever/qcisawful.html](http://whatever/qcisawful.html) for more information."

And this should have been added to the final releases of every version all the way back to 5.0.

For people saying "please, it's been off since 5.6 in 2013", my company's primary product runs on Percona 5.5 (2010), and our secondary product, is actively developing the _next_ version on Percona 5.6. That isn't particularly unusual.

</comment></comment></comment><comment><USER21> I'm working with a company called [http://www.heimdalldata.com/](http://www.heimdalldata.com/) they do SQL auto- caching with no code changes. A perfect replacement for Query Cache if you have a read-heavy application. They also offer a nice dashboard that helps identify database inefficiencies. I would try them out to see if you get a performance boost.

<comment><USER24> How is this different from MySQL query caching?

<comment><USER21> Unlike other solutions, the software auto-caches and auto-invalidates SQL; it takes away a developer having to manually configure the cache. Heimdall works with both MySQL and Postgres</comment></comment></comment>


The impoliteness of overriding methods - <AUTHOR> http://journal.stuffwithstuff.com/2012/12/19/the-impoliteness-of-overriding-methods/

<comment><USER2> To the best of my knowledge Common Lisp methods (CLOS) already allows the ability to do things such as your rendering co-ordinate transformation example already without requiring extraneous abstract method definitions.

Generic functions and their associated methods allow :before, :after and :around qualifiers to be added to specify the order in which they are run without the need of creating secondary method names for each layer of subclasses. For base class methods that need code to be run before or after the more-specific subclass method is called, a :before/:after method(s) is written that will be executed before the more-specific subclass "overridden" unqualified method is called. The developer of the subclass doesn't have to care/know that the base class is still doing some work there.

Conversely, if this base :before method needs to be modified, it too can be overridden with a corresponding :before qualified method (with/or without a call back to the base :before method via call-next-method) or even totally shadowed by an :around qualified method in the subclass.

This seems to be the best of both worlds. The original base class developer can specify code that needs to be executed for each overridden method without the sub-class developer needing to be aware of it without handcuffing the sub- class developer in handling edge-cases that the base-class developer didn't foresee.

Here is the example code that implements this:

      (defclass game-object ()
        ((x :accessor x :initarg :x :initform 0)
         (y :accessor y :initarg :y :initform 0)))

      (defmethod set-transform (renderer x y)
        ;; set the renderer coordinates here.
        )

      (defmethod draw-image (renderer image)
        ;; draw image here
        )

      (defgeneric render (game-object renderer)
        (:documentation "Render GAME-OBJECT to display using RENDERER."))

      (defmethod render :before (game-object renderer)
        (set-transform renderer (x game-object) (y game-object)))

      (defmethod render (game-object renderer)
        (draw-image renderer game-object))

      ;; Class where the :before base class method just runs
      (defclass scary-monster (game-object)
        ((image :accessor image :initarg :image)))

      (defmethod render ((game-object scary-monster) renderer)
        (draw-image renderer (image game-object)))

      ;; Class where the :before base class method is prevented from running
      ;; to prevent some undesirable action.
      (defclass happy-monster (game-object)
        ((image :accessor image :initarg :image)))

      (defmethod render :around ((game-object happy-monster) renderer)
        (draw-image renderer (image game-object)))

      ;; REPL session with the RENDER, SET-TRANSFORM and DRAW-IMAGE methods traced
      CL-USER> (render (make-instance 'scary-monster :x 1 :y 2 :image 'a) nil)
        0: (RENDER #<SCARY-MONSTER {2456D3F1}> NIL)
          1: (SET-TRANSFORM NIL 1 2)
          1: SET-TRANSFORM returned NIL
          1: (DRAW-IMAGE NIL A)
          1: DRAW-IMAGE returned NIL
        0: RENDER returned NIL
      NIL

      CL-USER> (render (make-instance 'happy-monster :x 3 :y 4 :image 'b) nil)
        0: (RENDER #<HAPPY-MONSTER {246A1689}> NIL)
          1: (DRAW-IMAGE NIL B)
          1: DRAW-IMAGE returned NIL
        0: RENDER returned NIL
      NIL

</comment><comment><USER3> Nice.

One metaphor that I like to use in OO is that inheritance is best used to "fill in holes." Imagine that an abstract class is a class with holes in it (i.e., the abstract methods). Subclassing fills in the holes and gives you a complete class. That is really the best use of inheritance. If you override, you have a higher chance of breaking behavior via a Liskov Substitution violation.

<comment><USER4> You mean the template pattern as described in GOF? Very nice nice and underused pattern, but sometimes it is better to use some event based system as mentioned in the article and sometimes it is better to just be rude and overwrite a method (very nice metaphore BTW).

More "traditional" OO like C++ or Java let the developer choose. The "traditional" way gives you more flexibility and more ways to shoot yourself in your foot.

<comment><USER5> _You mean the template pattern as described in GOF? Very nice nice and underused pattern_

The template pattern was when I finally "got" design patterns, realizing that they were ways of describing and communicating (some) things that I was already doing.

</comment></comment></comment><comment><USER6> Overriding virtual functions is a huge hole in information hiding.

In C++, the "Non-Virtual Interface" (NVI) design pattern recommends that interface classes declare nonvirtual public functions that delegate to private pure virtual functions to be implemented by derived classes. A base class destructor should be either public and virtual, or protected and nonvirtual. NVI allows the base class to add pre- and post-condition assertions to test the derived implementation classes. NVI should also alleviate the "fragile base class" problem with C++ binary compatibility.

[https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non- Virtua...](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non- Virtual_Interface)

</comment><comment><USER7> This is an interesting concept. I've recently been working on 3d engines and games and found the typical subclassing behavior broken like he describes.

The Entity-Component-System architecture I think largely solves my problem, though. After I finish my current game I plan on reflect on better ways to structure the data, so it's good to have this idea in mind. Thanks.

</comment><comment><USER8> Moose (<http://moose.perl.org>) also provides the same mechanism via _augment/inner_.

Here is one of the examples in Perl/Moose:

      package GameObject {
          use Moose;
          has ['x', 'y'] => (is => 'rw', isa => 'Num');

          sub render {
              my ($self, $renderer) = @_;
              $renderer->set_transform( $self->x, $self->y );
              inner;
          }
      }

      package ScaryMonster {
          use Moose;
          extends 'GameObject';

          augment render => sub {
              my ($self, $renderer) = @_;
              $renderer->draw_image(Images->scary_monster);
          };
      }

refs:

\- [https://metacpan.org/module/DOY/Moose-2.0604/lib/Moose/Manua...](https://metacpan.org/module/DOY/Moose-2.0604/lib/Moose/Manual/MethodModifiers.pod)

\- [https://metacpan.org/module/DOY/Moose-2.0604/lib/Moose/Cookb...](https://metacpan.org/module/DOY/Moose-2.0604/lib/Moose/Cookbook/Basics/Document_AugmentAndInner.pod)

</comment><comment><USER9> Two follow-up questions for you, Bob:

Do you think it would be wise to implement inner() (perhaps alongside the existing super()) for Dart?

If so, would there be a decent way to do the implementation for the compile- to-JS version, given that there's no native JavaScript way refer to things _down_ the prototype chain instead of up?

<comment><AUTHOR> _Do you think it would be wise to implement inner() (perhaps alongside the existing super()) for Dart?_

I think it would be neat, but it's very unlikely to happen. I'm not one of the language designers. Lars and Kasper are and they've both implemented BETA VMs, so they're certainly aware of inner() and decided not to go in that direction.

 _If so, would there be a decent way to do the implementation for the compile- to-JS version, given that there's no native JavaScript way refer to things down the prototype chain instead of up?_

If you can statically tell your inheritance chains (i.e. at compile time you know what your superclass is), it should be pretty straightforward, I think.

        class A {
          foo() {
            before();
            inner();
            after();
          }
        }

You'd compile the above to something like:

        function A() {}
        A.prototype.foo = function() {
          before();
          this.$A_foo_inner();
          after();
        }
        A.prototype.$A_foo_inner = function() {}

And a subclass like:

        class B extends A {
          foo() {
            console.log('In B!');
            inner();
          }
        }

Gets compiled like:

        function B() {}
        B.prototype.$A_foo_inner = function() {
          console.log('In B!');
          this.$B_foo_inner();
        }
        B.prototype.$B_foo_inner = function() {}

I think something like that would work, but I haven't put much thought into it. The critical bit is being able to tell at compile time that the foo() in B is an override so that you know to compile it to $A_foo_inner and not just foo().

</comment></comment><comment><USER10> Shouldn't it be this.balance ?

        var account = {
          balance: undefined,
          deposit: function(amount) {
            return balance += amount;
          }...
        }

<comment><USER11> In javascript yes. Munificent probably got a bit confused with java (that's what he seems to be using in the rest of the post, and from what I remember it's his historical go-to language) or with Dart (I don't know if dart mandates `this` for self-attributes)

<comment><AUTHOR> Ha, yes, you're exactly right. I'll fix that in the post. :)

Dart does indeed allow you to omit "this." which is really really nice.

</comment></comment></comment><comment><USER12> Another way to solve this problem in theory is to have Java-like annotations that force subclasses to call super whether they like it or not, and even where they must call super, for example @OverridesMustCallMe(location="top"). The super call could be automatically added at compile time if you don't provide it, or it could result in a compiler error if you don't provide it (probably the latter). Never seen a language like this though, so it may be a bad idea for some reason.

</comment><comment><USER13> A simpler mechanism is a keyword to declare a derived function as recursive, either head or tail. They would be similiar in behavior to ctor and dtor methods e.g. in C++. The idea is, to extend the existing execute-base-first behavior of C++ constructors, and execute-derived-first behavior of destructors, in a way that can't be overridden.

Less utility, but simpler to explain and already implemented, at least in some languages.

</comment><comment><USER14> I wonder if this is an issue that can be addressed using a metaobject protocol -- change the way methods are dispatched and if, when, and how they can be overridden.

</comment><comment> throwaway54-762 Upvoted just for "// Service charge, sucker!"</comment>


Clinton got previews of some debate questions - <AUTHOR> https://www.washingtonpost.com/news/the-fix/wp/2016/10/31/hacked-emails-suggest-trump-was-right-after-all-clinton-got-previews-of-some-debate-questions/?tid=sm_tw <comment><USER2> I'm deeply saddened that so many people I look up to and admire, publicly support Clinton. People like Brian Cardarella, DHH, Zed, Katz, Tom Dale...

Even pg, for some reason! [https://twitter.com/paulg/status/786511993855352833](https://twitter.com/paulg/status/786511993855352833)

"These people are so smart, how can they be so blind?" Then I start second guessing myself, "maybe I'm the one who's wrong here?"

But the closer we get to election day the more it becomes clear that Clinton _is_ a poor choice and has successfully framed a great choice for president as a "racist mysoginist xolyphone polymorphy demoagog facist archanite."

So now I ask, "why do they still support her"?

Edit: This was flagged, I vouched for it. Nothing controversial about it. It's black and white.

<comment><USER3> > Clinton _is_ a poor choice

I agree, but the other choices are even worse.

<comment><USER4> It could have been Bernie if Podesta's email had been spear-phished earlier [1], before the DNC was able to backstab Bernie [2].

[1] [https://news.ycombinator.com/item?id=12826552](https://news.ycombinator.com/item?id=12826552) / [https://wikileaks.org/podesta- emails/emailid/34899](https://wikileaks.org/podesta-emails/emailid/34899)

[2] [http://heavy.com/news/2016/07/wikileaks-emails-clinton- berni...](http://heavy.com/news/2016/07/wikileaks-emails-clinton-bernie-list- directory-photos-most-damaging-worst-rhode-island-delegate-fec-jvf/)

<comment><USER5> There may still be time depending on how quickly Comey moves ;)

</comment></comment></comment></comment><comment><USER6> >"One of the questions directed to HRC tomorrow is from a woman with a rash," Brazile writes in the subject line of an email to Jennifer Palmieri and John Podesta. In the body of the email, she adds: "Her family has lead poison and she will ask what, if anything, will Hillary do as president to help the ppl of Flint." The description matches what Flint resident Lee-Ann Walters asked at the debate.

Couldn't the question be reasonably estimated based on the fact that the woman is from Flint and that her family has lead poisoning?

Imagine somehow Brazile gets the drop not on the question itself, but the name of the person that the question is coming from. She Googles this person's full name. What comes up when you google "Lee-Ann Walters"?

[http://michiganradio.org/post/mom-helped-uncover-what-was- re...](http://michiganradio.org/post/mom-helped-uncover-what-was-really-going- flint-s-water)

Gee, I wonder what she's going to ask at the debate?

</comment><comment><USER7> As Matt Drudge wrote on twitter recently, "Media CAN'T cover WikiLeaks Podesta shitstorm - because so much of it involves them! Will take a generation to recover from this corruption."

<comment><USER4> This is being downvoted. I guess it's people who don't trust Drudge, especially without sources, which certainly isn't unreasonable.

However, there have been some very disturbing items involving the press other than this story of the CNN leaks. For example, here's what appears to be evidence of an illegal joint fundraiser between the DNC and the Washington Post:

[http://heavy.com/news/2016/07/wikileaks-emails-clinton- berni...](http://heavy.com/news/2016/07/wikileaks-emails-clinton-bernie-list- directory-photos-most-damaging-worst-rhode-island-delegate-fec-jvf/3/)

Note how the DNC lawyers are against this plan.

</comment></comment><comment><USER8> Clinton has been handed such an easy election- her opponent has made every mistake in the book, and then even made up new ones no one expected- and still, Clinton resorts to dumb things like this to try to get ahead. Why? For what purpose?

If this is for real and she loses, she'll deserves it.

</comment><comment><USER9> There are so many dirty things coming out about Clinton every day, it's hard to keep track. In a normal campaign cycle this would be huge news.

<comment><USER10> It depends if the Clinton campaign encouraged her or ignored her. It changes it a lot for me how Clinton actually responded to the emails. Those questions seemed kinda obvious so it doesn't look like it would've made any difference in the campaign but if she was actively trying to cheat then it's a big deal to me. It bothers me that the article doesn't really give context to the situation.

<comment><USER4> Read Wikileaks on this. The emails are DKIM validated, so the charges of modification are bogus (and I think they stopped floating that one).

Yes, it's hard to put it all into context, but there are several emails that give debate questions before the debates.

You're right that there was no good reason to cheat, but I've read the emails myself long before this article and they're damning on that point.

<comment><USER10> Ya, my main problem is I feel like I'm just being manipulated this election. Hillary supporters try to convince me that Trump is the devil and Trump supporters are trying to convince me that all Hillary has ever done is scheme against the American people

<comment><USER4> To some extent, they're both right.

Podesta's emails definitely show a lot of rotten things, loads of scheming, backstabbing everyone (especially Bernie). Nobody trusts each other and for very good reason. The scandals are bad, but one of the things I find the worst is just how much they _hate_ each other and the honest truth that they appear to spend all their time backstabbing. They've faked a ton of stories as well.

As for Trump, well, you know.

</comment></comment></comment></comment></comment><comment><USER4> Here's the other one they link to in passing, just for reference:

=====

[https://wikileaks.org/podesta- emails/emailid/38478](https://wikileaks.org/podesta-emails/emailid/38478)

Subject: One of the questions directed to HRC tomorrow is from a woman with a rash

Her family has lead poison and she will ask what, if anything, will Hillary do as president to help the ppl of Flint. Folks, I did a service project today. It's so tragic. And what's worse, some homes have not been tested and it's important to encourage seniors to also get tested. Sent from Donna's I Pad. Follow me on twitter @donnabrazile

=====

Reading /r/wikileaks has been fascinating this year. There are all sorts of things going on, like Tim Kaine having been assured of the VP nomination a rather long time ago and speculation that this was why he stepped aside so that Hillary could pass the top DNC spot over to DWS and effectively take control.

There were also emails showing how early they planned to backstab Bernie. One Bernie "supporter" appears to have doing it for the sole purpose of being in a position of drawing the Bernout vote back to Hillary afterwards. Not to mention how they planned to make people feel like he "won" something in the end:

"So if we "give" Bernie this in the Convention's rules committee, his people will think they've "won" something from the Party Establishment. And it functionally doesn't make any difference anyway. They win. We don't lose. Everyone is happy."

[https://www.wikileaks.org/podesta- emails/emailid/5423](https://www.wikileaks.org/podesta-emails/emailid/5423)

There's a good, long list of the Bernie/DNC-related emails here if you want more with links to the original emails.

[http://heavy.com/news/2016/07/wikileaks-emails-clinton- berni...](http://heavy.com/news/2016/07/wikileaks-emails-clinton-bernie-list- directory-photos-most-damaging-worst-rhode-island-delegate-fec-jvf/)

</comment><comment><USER11> I am not American, but really feel for you guys.

Here in Europe they advertise Trump as the Devil and Clinton as the best for the job etc.

Its very controversial, while I believe that Trump says things that no human being should be saying, you have Clinton on the other hand that seems like she should be in a pending trial for breaking the law.

It will be very hard for you to choose in between, I think though that whoever comes out to be the winner its not going to be a good outcome.

<comment><USER12> > they advertise Trump as the Devil

When all this blows over, the guys holding the bag will be the "reference" media.

The Clinton voters know how much they turned a blind eye.

The Trump voters know how much they smeared.

The amused (or horrified) onlookers will know what a worthless lot of liars they are.

Guarded prognosis, but probably "journalism" is dead.

</comment></comment><comment><USER13> Related thread, NYT article: [https://news.ycombinator.com/item?id=12840068](https://news.ycombinator.com/item?id=12840068)

</comment><comment><USER14> I'm not sure why this would be flagged and tagged dead, I vouched for it.

As a matter of respect for the HN medium, you don't flag articles you simply "don't like". That said, this seems like important and relevant discourse.

While this article is technically "Off-Topic" [1]; with all the discussion over YC's Peter Thiel supporting Trump, I'd expect something as black-and- white as this to be non-controversial.

[1] [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment><comment><USER15> It's becoming very clear that no matter who wins, we all lose. I can't possibly express enough disappointment that the American political process has co-opted the tagline from Alien vs. Predator.

<comment><USER16> No. Trump is much better than someone who will be arrested.

</comment></comment><comment><USER17> The article mentions two instances where Clinton received questions before a public appearance, yet in both appearances those questions weren't asked. I think we need some more evidence before pitchforks come out.

<comment><USER18> You are incorrect. From Bloomberg:

>A day before the March 6 debate sponsored by CNN in Flint, Brazile allegedly wrote Podesta and Jennifer Palmieri, the Clinton campaign's communications director, that a woman from the town "has lead poison and she will ask what, if anything, will Hillary do as president to help the ppl of Flint." During the town hall, Lee-Anne Walters, who had a son who had stopped growing and a daughter who lost her hair, asked Clinton and Vermont Senator Bernie Sanders, her primary rival, whether they would "make a personal promise" to make the removal of lead a requirement for public waters in their first 100 days in office, according to transcripts of the debate provided by CNN. Both did.

<comment><USER17> Sorry, I didn't read Bloomberg. I read the Washington Post article which is linked here.

I think it's also worth considering that given both candidates were talking to people in Flint, _of course_ they are thinking before hand about the problems in Flint and how they would address them. What else would they talk about?

<comment><USER4> The Washington Post is a very partisan source this election, given that they appear to have been things like holding illegal fundraisers with the DNC:

[http://heavy.com/news/2016/07/wikileaks-emails-clinton- berni...](http://heavy.com/news/2016/07/wikileaks-emails-clinton-bernie-list- directory-photos-most-damaging-worst-rhode-island-delegate-fec-jvf/3/)</comment></comment></comment></comment>


Screencast for Learning Python and Data Science - <AUTHOR> https://www.kickstarter.com/projects/127250310/pycast-python-and-data-science-screencasts

<comment><USER2> In all honesty, just watching the intro video kind of makes me feel like these videos aren't going to be interesting or engaging.</comment>


Ajax, Browsers, Running Out of Time - <AUTHOR> http://ajaxian.com/archives/ajax-browsers-running-out-of-time <comment><USER2> _"... Now I fear history may be repeating itself. Yesterday, I had Firefox 2 for linux crash 5 times, and IE7 for XP crash 7 times. The cause? Too many fat Ajax applications ... These are all long running applications that I keep open for most of the day. Then all of a sudden the Browser is gone ..."_

Firefox 2 (& 3) are pretty stable but they do hog RAM. At the moment my browser with 17 tabs open is chewing through 198MB.

_"... Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:18.104.22.168) Gecko/20071022 Ubuntu/7.10 (gutsy) Firefox/188.8.131.52 ..."_

So that's a problem. Why is the Fox, the lean browser so memory hungry?

The other problem is the rush to ship Javascript applications. The tools are cludgy, the language has problems and it's hard to learn to how to write lean, secure applications with Javascript, let alone write applications. But I wouldn't be too quick to write off this technology. There is a sniff of innovation in the air with the MS browser team re-instated and a new Javascript language spec is being thrashed out.

The next 5 years is going to be full of interesting leaps, instability and lots of opportunity to exploit ~ <http://www.aaronsw.com/weblog/001379>

</comment><comment><USER3> you mean to tell me a hack of client side javascript and server side XML isn't scaling very well? OH NO! but but but i went a web os!

the future is going to be the flex/air combo with cf or java midlevel support. or potentially mozilla prizm if they ever get it fixed. microsoft silverlight is basically flash circa 2005, but they can quickly ramp it up to be a flex/air competitor with a stroke of a finger. oh if only google would pump out more support for gears.</comment>