Why favor PostgreSQL over MariaDB/MySQL? - <AUTHOR> http://www.cybertec.at/why-favor-postgresql-over-mariadb-mysql/ <comment><USER4> The guy has deliberately changed a default setting (sql_mode) to make MariaDB/MySQL look worse. When someone pointed that out in the comments, he left it unresponded. Which is already telling something about PostgreSQL evangelism.

Speaking of comparing MySQL and PostgreSQL functionality, I've been spending some time recently on this very topic. Both are great databases with interesting and sometimes unique features. Here are some of the features PostgreSQL is missing as compared to MySQL:

\- synchronous multi-master cluster (Galera, Group Replication)

\- distributed in-memory grid with automatic sharding (NDB)

\- semi-synchronous replication (will be available in PostgreSQL 10)

\- built-in logical replication (will be available in PostgreSQL 10)

\- built-in event scheduler

\- clustered indexes

\- declarative partitioning (limited functionality will be available in PostgreSQL 10)

\- optimizer hints

\- optimizer tracing

\- efficient MVCC implementation that is unaffected by XID wraparound problems and VACUUM issues (see also Uber's report on moving from PostgreSQL to MySQL)

\- page-level compression

\- page-level encryption

\- page-level incremental backups

\- user variables

\- NoSQL client APIs (HandlerSocket, memcached protocol, X protocol)

\- virtual columns

\- ability to choose data page size on database creation

\- ability to specify column order when adding a new column with ALTER TABLE

\- write-optimized storage engines similar to MyRocks and TokuDB

All of that may seem small from a developer's standpoint. Those things, however, are huge for people who design and operate the busiest websites on the internet. Which is probably why MySQL still shines in that field.

<comment><USER5> Advanced replication strategies in MySQL and Oracle mostly cause hair loss and divorce. Everywhere I have worked that uses these databases eventually convinces itself that it needs futuristic replication technology and then goes on to suffer from outages and weird corruption. It turns out, distributed consistency is a hard problem. Oracle and MySQL both benefit monetarily from people assuming it will work and then activating it, only to find out a month or two later that it's a complicated problem that requires actual planning and oversight.

I think Postgres will be a better product when it incorporates similar functionality, but the implementations in MySQL and Oracle lie somewhere on the border between false advertising and reckless endangerment. I appreciate that Postgres not having it as two-lines of configuration sends a message that you are making a commitment. Nearly everything else in Postgres is set-it-and- forget-it. You really want to have a DBA if you're going to try to make replication work. When you read the docs on having a hot standby and how much of a commitment that is and sense yourself getting tired, you're starting to appreciate what you might be getting yourself into with single-master replication, let alone multi-master.

<comment><USER4> > Nearly everything else in Postgres is set-it-and-forget-it.

There are many people who would disagree with that. Talking to Uber engineers would probably be a good idea to dispel that myth.

<comment><USER6> Uber switched from MySQL used as relational database, to Postgres used as relational database, to MySQL used as key-value store.

Nobody is saying MySQL is a bad key-value store!

<comment><USER7> Is key-value store the most stable scalable architecture? Reddit, I believe, uses the same idea

<comment><USER5> To restate your other reply, key-value allows you to sweep consistency problems under the rug. What happens if two transactions try to update the same row? One of the transactions fails. What happens if two clients write different values to the same key in a multi-master key-value store? The last one in wins and the first write is just lost.

Many of the NoSQL databases have provisions for these situations so they can handle both writes but bubble the decision up to the application layer. CouchDB, for instance, will tell you you've got multiple versions and has a way for you to tell it how to resolve the conflict. CRDTs let you bake the logic in for handling a conflict. MySQL does not do any of that. If your database consists of "likes" and other low-value data like that, you may not care if you're losing data at some low rate. Reddit is in that situation, and the decision seems to work for them. But I don't think it generalizes to all situations.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is really about database semantics. If you think database semantics matter, you'll almost certainly prefer postgres.

A lot of people simply don't care about database semantics though. Possible reasons:

* They are more interested in a particular application (e.g. wordpress), and use whatever default database it seems to prefer.

* They are more interested in a particular framework/library (e.g. django), and use whatever database it seems to prefer.

* They don't see any reason a database should have interesting semantics, because it's just a place to stash data until you need it again.

* They really care about programming languages, but see SQL as a second-class citizen that looks archaic and is really just an obstacle to work around using cool language features.

I believe database semantics do matter. It's hard to make a single argument that will convince everyone, but here are a couple things to consider:

* SQL catches errors that may be impractical to catch even with haskell. For instance: you could have had a bug in the application three versions ago that lead to an inconsistent database state (e.g. a duplicated item ID), and you are just finding the bug now. SQL to the rescue: if the unique constraint exists, then you are fine, and the error would have been raised three versions ago before it ever got in the database.

* Few languages have anything that comes close to ROLLBACK. Erlang kind of does, in the sense that it's a mostly-functional language and a process crash mostly resets you to a good state. But the guarantees of ROLLBACK are much stronger and clearer. I believe this is actually why erlang never really took off widely -- a PHP script hitting the database is a better version of the same concept: the PHP code can crash, and that will cause a lost connection and a ROLLBACK in the database, getting you back to a known-good state and the other requests just continue working (security and other PHP jokes aside).

Rambling a bit, but I believe postgres really is the leader when it comes to database semantics, and I believe that is one of its most important contributions.

<comment><USER9> > I believe this is actually why erlang never really took off widely -- a PHP > script hitting the database is a better version of the same concept: the PHP > code can crash, and that will cause a lost connection and a ROLLBACK in the > database, getting you back to a known-good state and the other requests just > continue working (security and other PHP jokes aside).

Comparing Erlang to PHP + transactional DB is regrettable.

Firstly, Erlang's "let it crash" philosophy, together with its sophisticated supervisor/worker framework, aims for resilience in the face of failure due to bugs or bad data. A PHP script hitting a database __may __be a better design for a simple web application, but it is in no way superior to the Erlang /OTP ecosystem for Erlang's primary use case: soft real-time, highly concurrent, resilient and robust systems. It cannot reasonably be compared to a scripting language + DB, nor does it make any sense to.

Secondly, Erlang is also able to work with transactional databases, from its built-in Mnesia DBMS to Postgres and more. A more appropriate comparison would be between Erlang + DB vs PHP + DB, and then I think you will agree that Erlang would generally fare better than PHP in that case.

WhatsApp was built almost entirely in Erlang + Mnesia. I honestly don't think they could have done it in PHP + Postgres.

Finally, claiming that Erlang didn't take off because it lacked the transactional semantics of PHP + DB does not compute, because I never saw any claim that Erlang offers transactional DB semantics (unless it happens to be using a transactional DB).

<comment><USER10> I think you're right, but I also think that you're missing the point of the GP's argument.

Most people aren't building WhatsApp, they're building a CRUD app. And PHP has very Erlang-like "let it crash" semantics if you squint your eyes: one request causing havoc will not affect others at all, especially if you use a transaction to control DB side effects. Compare this to a NodeJS server that fully terminates when one request causes an uncaught exception and you'll see that PHP and Erlang have more in common, philosophically, than people like to admit.

So the way I read the GP is that despite its many safety guarantees, Erlang never got popular because PHP offers the most important of these guarantees in a more accessible way.

In fact, I know of no language that offers better crash resilience and isolation than PHP. I can run 100 shared hosting customers' shitty PHP code on a single Apache server and they'll have a seriously hard time making their bugs impact other customers. Try that with Erlang :-)

<comment><USER11> Hmmm.. Interesting. On the last point I disagree unless you are launching php process per request then you'll have to set mod_php or php_fpm recycling ridiculous high to cope with 100 customers and their shitty PHP code (or the shitty PHP code from the top 10 one-click solutions installed) leaking memory everywhere. On the isolation side the industry answer to this is nasty prop solutions like CloudLinux and other custom solutions where each customer essentially has a request pool (e.g 5 php-fpm waiting around under the uid of the user) - counter to most shitty PHP web hosting providers goal of density, 'lets keep this server lightly loaded for the highend packages - just put 5,000 account on it okay'. Typical PHP hosting is not pretty, they're about 10 years behind the times, cough cpanel.

<comment><USER10> Hah ok, I stand corrected :-)

I still wager it'd be even harder to host code from multiple customers on a single erlang VM though!

</comment></comment></comment></comment></comment><comment><USER12> We use Postgres over MariaDB/MySQL because of working CHECK constraints, Common Table Expressions, extension support, JSON support, custom types and its great documentation.

<comment><USER13> Which JSON features were lacking in Maria/MySQL?

<comment><USER14> All of them? PostgreSQL has kinda left everyone else in the dust in regards to JSON support.

<comment><USER15> [https://dev.mysql.com/doc/refman/5.7/en/json.html](https://dev.mysql.com/doc/refman/5.7/en/json.html)

<comment><USER14> I'm aware there is Json support in MySQL. But my point is that it's primitive when you compare feature sets of MySQL and PostgreSQL for json.

</comment></comment></comment></comment></comment><comment><USER16> There's an alarming list of behavior MySQL got negligently wrong at some point. That code is mostly still present (you can't prevent a client from enabling it!) and I have to assume some of the maintainers who thought it was reasonable are still involved.

And not everything on the list has a fix available. Off the top of my head, there are still broken storage engines that can't rollback, not all of them can be disabled, and STRICT_ALL_TABLES won't stop you from writing to them. Some foreign key constraints are supported while others are parsed and then _silently ignored_.

<comment><USER17> Maintainers often have a perspective that rates backward compatibility higher priority than an individual user would. Even if they have learned from previous mistakes in policy or implementation.

</comment></comment><comment><USER18> I've used Postgres for years because it's sane out of the box. I know you can configure MySQL to mitigate these issues and use InnoDB by default, but the mere presence of data-destroying features is a red flag to me.

I know I could put the logic in my application, but I like the certainty that comes with knowing what I put in is what I get out.

<comment><USER19> Yup. I like MariaDB for the syntax and it's very simple to make it more sane.

Of course, not ignoring warnings is SOP with mysql.

</comment></comment><comment><USER20> This conversation should go something like:

 _PostgreSQL has transactional DDL. MySQL does not._

...and the conversation is finished.

<comment><USER21> This is one of the many reasons I prefer postgres, but it's worth noting that even in postgres, there are some DDL statements that cannot be executed within a transaction. I can't remember the list, but they do exist - it's just a far smaller number compared to MySQL.

<comment><USER22> For example adding a value to an enum type: [https://www.postgresql.org/docs/9.6/static/sql- altertype.htm...](https://www.postgresql.org/docs/9.6/static/sql- altertype.html)

(This bit me recently, because our database migration framework (correctly) puts transactions around migrations, and PostgreSQL (correctly) fails with an error in the case you try to do an operation in a transaction which can't be done in a transaction. (I say correctly, as opposed to Oracle/MySQL which will silently do commits etc.))

<comment><USER23> I have been in this situation. I then wondered if it was indeed right for my database migration tool to forcibly wrap migrations in transactions and not let me override that behaviour.

</comment></comment></comment></comment><comment><USER24> I've long been a fan of PostgreSQL over MySQL.

I do recommend to read through the PGSQL manual (thick PDF file but you can work through the important parts in a week), it's a joy to read compared to the MySQL one.

</comment><comment><USER25> Postgres supports a sophisticated full text search featureset while mysql does not. Implementing full text search on Postgres is not that difficult and can prove to be a much cheaper alternative to Elastic Search up to a certain scale. This was a major reason for me to recently pick Postgres over any other storage technology.

<comment><USER26> ElasticSearch is open source and free.

And nothing is stopping you running it on a single node like PostgreSQL. It's also better in every aspect as a search engine.

<comment><USER27> It is also: another server to handle, another view of your data you have to manage, another point of failure and another security entry-point.

If you don't need all the functionality of ES you can go a long way with the Postgres fulltext search. Once you scale enough or if search is your core business ditch it and deploy a better solution like Elastic Search.

<comment><USER25> Exactly. When getting started initially, it can be a huge time savings to get your basic full text experience running in Postgres directly, if that's already your main storage DB. Setting up ES is not at all trivial for the average developer and can waste a lot of precious time too early in a product's lifecycle.

</comment></comment></comment></comment><comment><USER28> I use PostgreSQL but are not sure it was the right choice. In MySQL it is easy to set which collation to use for a query to get the correct order in the users language when using order by. In PostgreSQL it depends on the locales installed on the OS making it much harder to get a correct order by and requires more work when setting up the servers

<comment><USER21> For me this is the last major "missing piece" for postgres. MySQL's utf8mb4_unicode_ci makes it possible to order results containing a mix of any languages. With postgres you are forced to pick a single language. It's impossible to use postgres for a truly multi-language application, where you are presenting data in (for example) English, German and Chinese on the same UI.

Yes, MySQL's ordering of languages within unicode may be arbitrary, not necessarily very meaningful, and in some cases even "wrong" \- but at least you can do it, and the results are consistent and usable. Postgres is outright unusable in this scenario.

<comment><USER29> > MySQL's utf8mb4_unicode_ci makes it possible to order results containing a > mix of any languages. With postgres you are forced to pick a single > language. It's impossible to use postgres for a truly multi-language > application

That's not true.

<comment><USER21> If you know of a solution, please share. As far as I know, it is not possible to do multi-language unicode sorting in postgres. The idea being you have a utf8 column with some rows having English, while others have German, Chinese, Japanese, etc. Or an individual column containing mixed language, such as English and Chinese in a single string. And of course, the real deal - <USER2> consistent sort for all unicode points, including emotes and other non- language code points. In postgres you're stuck with a single-language collation such as en_US.utf8 - there's no multi-purpose "utf8" collation.

<comment><USER29>
        order by collkey(mixed_texts, 'root-u-co-search', true, 0, true)

</comment></comment></comment></comment></comment><comment><USER30> For me, personally, it was because, until very recently (July 2017) PostgreSQL had CTEs and window functions and MySQL did not. I worked on small/medium size apps so performance wasn't an issue and having these features made my life easier as a developer.

</comment><comment><USER31> In MariaDB 10.2 and MySQL 5.7 and above, this wouldn't happen. It's FUD. The sql_mode, and mysql/mariadb version is not specified.

This seems purposefully contrived; just another developer who throws their toys out of the pram, because they don't read the documentation and just expect software to work for them.

If anything the author has done nothing more than demonstrate ignorance, malice, or both.

When choosing a database, of any kind, you are choosing where to store precious data! Read the fine manual! MariaDB, MySQL, PostgreSQL, and even the likes of MongoDB offer so many diverse options and storage formats and retrieval options.

<comment><USER32> If you set up a database, the defaults should be sensible.

Any benchmark should always be done with the defaults, and so should any test.

He's testing the latest MariaDB that is available on his distro, 10.0

</comment></comment><comment><USER33> It's a very very serious downside for me that there are now two MySQL's (three if you count Amazon's Aurora), just like there are multiple Linuxes and two Pythons.

<comment><USER34> Isn't the number of pythons four? One for C, one for JVM, one for CLR and one in pure Rpython for the pure JIT code. Double them for python 2 and three. That makes it 8.

<comment><USER17> There are two (very closely related) languages. In principle implementations are compatible, whereas language version are explicitly incompatible by intention. I think that was clear from the parent.

</comment></comment></comment><comment><USER35> Having worked with MySQL for years these are all legitimate issues but, as other users have said, they can be managed via upgrades and settings.

Personally, I'm less interested in developer-oriented issues (which are well documented) and much more interested in how people feel they compare in terms of performance and scaling.

<comment><USER18> Until recently (~5 years I guess, possibly longer now) MySQL beat PostgreSQL in raw read performance and scalability - though you'd have to scale MySQL sooner. PostgreSQL has been better than MySQL for high-write workloads (thanks to MVCC, if you tune autovacuum properly) and for more complex queries as the query planner understands the storage layer.

Modern PostgreSQL has a much better story around horizontal scaling thanks to streaming replication and a lot of work from the Citus Data team. Query performance is greatly improved as well.

</comment></comment><comment><USER36> There will be any number of reasons to favor PostgreSQL over the DolphinDB and vice versa.

I have owned various on linux, aix, windows, sco-unix, vax from pick, rms, isams, 4gls dbs, ingres, informix, sybase, mssql, db2, oracle, solid, postgres, mysql to mongo, influx, and redis. I hate them all. I found mysql very slow, much slower than postgresql on equivalent datasets/queries. I had done evaluations before choosing an open-source db for a particular project.

And that really is the crux of the thing - comparing benchmarks is usually meaningless, some don't scale as well, some suit a different kind of application, some need to be distributed, some not, it really is on a case by case basis, what is good in one case is not always the case.

Perhaps stating the blindingly obvious for those getting very het up about evangelism...

</comment><comment><USER37> As time goes on this is become a less and less controversial opinion. There are still some specific use cases which favour competing RDBMS, but the majority of people who choose competitors at the moment is for reasons tangential to functionality and performance.

</comment><comment><USER38> SQL is SQL is SQL. I have no problems jumping between different flavours of SQL, however what defines my use of them in my _own_ projects is the toolsets I have for managing and maintaining databases.

Over the years, I have built up a collection of tools, drivers and utilities that just makes working with MySQL an absolute breeze across Windows and OS X. There are times that I want to use ODBC to dump a MySQL table or view into Excel/Access for a client, or copy data from a production system to a test system, or set up replication or do some performance reporting, and I like that I have tools set up which can do these things for me at literally the push of a button.

Sure I still use the CLI for MySQL a lot of the time, but nowadays, 75% of my time is spent in GUI tools of one sort or another.

If someone can give me an equivalent suite of these sorts of tools for Postgres that can let me be productive in short order, then I don't much care if the SELECT statement of one system is several milliseconds faster than the other. I don't deal with such huge volumes or mission criticality. I just want ease of management/maintenance.

<comment><USER39> Last I checked MariaDB doesn't support common table expressions which are part of the SQL standard published in 1999, nearly 20 years ago. Has this changed?

If SQL is SQL is SQL as you say, then I would say MariaDB doesn't support SQL.

<comment><USER40> Check again [https://mariadb.com/kb/en/the-mariadb- library/with/](https://mariadb.com/kb/en/the-mariadb-library/with/).

</comment></comment></comment><comment><USER41> Is it still true the MySQL cannot do migrations within transactions?

<comment><USER42> Still true

[https://dev.mysql.com/doc/refman/8.0/en/implicit- commit.html](https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html)

</comment></comment><comment><USER43> Not a technical argument but I have a hard time using MySQL knowing Oracle is behind. Some relevant recent posts:

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

Also I think it had it's time, great tool in the early days of web dev but not very professional, sure it was improved in recent years but why put so much energy in it instead of other projects like MariaDB or PostgreSQL before, especially now that it's owned by Oracle? I'm amazed by webdev discussing languages, frameworks and the best stack endlessly and then spawning a MySQL without thinking and looking at alternatives like it was 2004.

<comment><USER44> Are you sure the webdevs discussing every language and the webdevs spawning MySQL are the same people?

I mean, speaking purely about languages, there are lots of webdevs who just love PHP and will never consider an alternative to it, even if you make a persuasive argument that PHP is unsuited to the use case they're writing for. It's the same sort of "like it was 2004" mentality in a slightly different context. I actually wouldn't be surprised if that's what it is, because those are the M and P in the LAMP stack that everyone seems to have started learning at around that time.

I don't mean to pick on PHP here; it's just the one I see the most that has this property.

</comment></comment><comment><USER26> Not sure why this was posted. None of the issues occur in MySQL 8 and if you change the SQL mode to be more strict it doesn't occur in older versions.

If you are going to blog about how bad a particular technology is it surely makes sense to understand it first.

<comment><USER45> The company that wrote it is a Postgres consulting firm so take it with a grain of salt.

Kind of like an AngularJS consulting firm that took thousands of hours to become an expert in Angular writing an article about how horrible they determined ReactJS is after 3 hours with it.

Edit: With that said, I've been a mySQL user for years (decades?) and it does have some obvious short comings that PostgreSQL does not. I often times consider switching but the thing is that in 90% of my projects the database engine is not relevant.

<comment><USER46> For what it's worth, I have zero hours of experience with ReactJS and I still think it's horrible.

</comment></comment></comment><comment><USER47> TL;DR a couple of examples where pgsql doesn't silently coerse data values. How to choose one would be a worthwhile article. If someone has a reference to such, a link would be appreciated. The comments in the thread are great starters.

</comment><comment><USER48> How can the "set non-null column to null" MySQL not be fixed?

There is a warning, and possibly a new stricter mode that avoids it - <USER3> shouldn't this be a critical bug fix in all modes?

</comment><comment><USER49> Does MySQL have something like NOTIFY and LISTEN? What a great feature.

<comment><USER50> depends, it does not work well with replication

</comment></comment><comment><USER51> What are the good use cases for non-strict sql-mode in MySQL?

<comment><USER52> Running ancient crappy applications that rely on MySQL's bad behavior.

</comment></comment><comment><USER53> CHECK CONSTRAINTS

</comment><comment><USER54> Postgres has better license

</comment><comment><USER55> I _like_ the fact that MySQL is so light on features that it forces you to put more of the burden on your application.

With richer RDBMSes like Oracle, MSSQL, and Postgres, people tend to throw too many responsibilities on the DB--which is not so good in the one part of the system that depends on global locks.

That, and the article is kind of a half-truth when it comes to the MySQL warts. A big one he missed is the utf8_unicode vs utf8mb4_unicode fiasco, which is still a thing to the best of my knowledge...

<comment><USER42> The data should be handled by the database, especially when there might be many different applications accessing it. Think of microservices, maybe written in different languages and frameworks, plus some devops running queries by hand on the db.

The ability to stop modifications inside the db is the ultimate safeguard against data corruption. If you really value your data you should also implement validations with CHECK statements and not only in the application. Think about the database as another microservice worth its own logic.

<comment><USER55> You are correcting something I never said. MySQL has primary/foreign key checking, field validation, transactions, etc. I have nothing against RDBMSes. I like them!

I'm talking about not doing shit like XML parsing ([https://www.postgresql.org/docs/9.6/static/functions- xml.htm...](https://www.postgresql.org/docs/9.6/static/functions-xml.html)), or LDAP queries ([https://docs.oracle.com/cd/B10501_01/network.920/a96577/dbms...](https://docs.oracle.com/cd/B10501_01/network.920/a96577/dbmsldap.htm)) in the database. I don't think those things belong there.

Serves me right for leaving a blank on HN! People here just love to fill those with 'herp derp'.

<comment><USER32> XML parsing definitely belongs into a major database. There's a lot of legacy tools using XML databases, and supporting them is useful. (And they are not technically bad either)</comment></comment></comment></comment>


A kidney donor at 18 now regrets it - <AUTHOR> https://www.washingtonpost.com/national/health-science/at-18-years-old-he-donated-a-kidney-now-he-regrets-it/2016/09/30/cc9407d8-5ff9-11e6-8e45-477372e89d78_story.html <comment><AUTHOR> I admire the author's selflessness. At the same time, it seemed easier to be selfless as a teenager, probably for similar reasons for why it's easier to draft 18-year-olds than it is 28-year-olds. Given young persons willingness to sacrifice for the greater cause without realizing that life extends well past your 30s and 40s, I wonder if more shouldn't be done to let young donors think of the risks, so that their naïveté isn't something that the system takes advantage of.

The author's right to ask for better data and tracking of donors. That said, his current worries are likely to be heavily informed by selection bias:

> _Five years after the surgery, when I was 23 and getting ready to go to > medical school, I began working in a research lab that was looking at kidney > donors who had gone on to develop kidney failure. For that research, I > talked to more than 100 such donors. In some cases, the remaining kidneys > failed; in others, the organ became injured or developed cancer. The more I > learned, the more nervous I became about the logic of my decision at age 18 > to donate._

If you spend a lot of time talking only to donors where things have gone wrong, yeah, you'll be paranoid. Reminds me of being a cops reporter in which you strongly associate certain neighborhoods with shootings and murders because, professionally, those incidents are the only times you ever visit those neighborhoods.

<comment><USER2> >At the same time, it seemed easier to be selfless as a teenager, probably for similar reasons for why it's easier to draft 18-year-olds than it is 28-year- olds. Given young persons willingness to sacrifice for the greater cause without realizing that life extends well past your 30s and 40s

I totally agree, the biological basis of this is Pre-frontal Cortex development.

"The [prefrontal cortex] isn't fully developed and won't be until the person is 25 years old or so." [https://www.urmc.rochester.edu/encyclopedia/content.aspx?Con...](https://www.urmc.rochester.edu/encyclopedia/content.aspx?ContentTypeID=1&ContentID=3051)

"This brain region has been implicated in planning complex cognitive behavior, personality expression, decision making, and moderating social behaviour. The basic activity of this brain region is considered to be orchestration of thoughts and actions in accordance with internal goals." [https://en.wikipedia.org/wiki/Prefrontal_cortex](https://en.wikipedia.org/wiki/Prefrontal_cortex)

I can't understand any other context for drafting 18 year olds other than taking advantage of their youth and incomplete development, but avoiding Presentism and the comfort of Mutually Assured Destruction / Pax Americana, I can understand why when the cards are on the table and your entire society is at risk, why you must call all hands, young and old, into Total War a la WW1 or WW2.

As far as donations go, that's got to be a morally gray area as well for all the reasons you mention.

<comment><USER3> > I can't understand any other context for drafting 18 year olds other than > taking advantage of their youth and incomplete development

Physical fitness surely? Isn't 18 or 19 around the physical fitness peak? I'm guessing that people are on average are significantly stronger and more robust at 18 than they are at 28. I think the British Army has 26 as the limit for joining in the first place for officers at least.

Also people are married by 28. At 18 they're generally single and more able to deploy.

<comment><USER4> I'd say the peak strength must be 22-26, because 18-years-olds are really thin and lean (source: I love men ;)) – unless they've been practising musculation, but once again, if they practice musculation at 24, they'll be much bigger. But it takes well above 2 years to train a professional, so profesional recruitment takes them earlier. However, concerning draft followed by almost- immediate use on the battlefield, given this subjective data, it makes little sense to me, physically, to draft them so young.

<comment><USER5> It kinda depends on what kind of strength. For things where the athlete is rather lightweight/small and does some kind of fast/twitchy power moves you peak out somewhere before 30. But when all you need is pure strenght you have 30 to 40 year old world champions in many sports (you still have to start training when a lot younger to make it though) for example in power lifting where you have a lot of todays world champions born in the late 70s/early 80s.

One of the advantages (and disadvantages) of sending 18-20 year olds into battlefield is that if they die society spent less money/effort into teaching them some other valuable skill that would have been lost without getting the benefit out of it (due to the person being dead)

</comment></comment></comment></comment></comment><comment><USER6> Kidneys are amazing -- filtering blood, removing excess liquid, regulating blood pressure. And they're redundant! My brother lost one kidney in an accident that also left him paralyzed and with a slew of other problems. Recurring UTI and kidney infections took the other kidney a decade later. When he started on dialysis around 1988, the machine was the size of an Asteroids arcade game. It did half the job of a fist-sized kidney maybe half as well. A few years later, we had a home machine a bit smaller than Asteroids. In 1994, I gave him one of mine (kidneys, not arcade games).

The doctors said if the transplant lasted 10 years, we should be delighted, especially with all his post-accident reconfigured internals. My brother's quality-of-life improved immediately — at least he didn't have to be hooked up to a machine and stationary for several hours at a time. My quality of life was essentially unchanged. The transplant worked well for 22 years. Recurring infections -- kidney, liver, bedsores, staph/mercer -- eventually took their toll. I'm pretty sure I wouldn't have done it for "my stepfather's brother" or the like, but I'm glad I did what I could for my brother when I did. I was 23 at the time and now 46. I drink plenty of liquids. My GP's a nephrologist and I have kidney function tests as part of my annual bloodwork. Maybe I'll be pissed if shit goes wrong as I age. With hope I'm still glad I did what I could when I did. And, with hope, the redundancy remains very good.

</comment><comment><USER7> There are real risks in the actual donation, of course. And some lifelong things you need to worry about. It does affect treatment of other things. For example, if you happen to have a rotator cuff injury, you can't just take high doses of anti-inflammatory meds for a month. You have to do physical therapy and steroid injections. And, in our wonderful US healthcare system, you'll get near-zero aftercare beyond a few months worth of checkups. You'll have to advocate for yourself for later extra checks on your remaining kidney's health and often have to foot the bill yourself because your overpriced insurance will refuse to pay for it.

Source: Am a kidney donor living in the US that has experienced both of the above and several similar issues

<comment><USER8> Can you explain the part about injury recovery? Are you not allowed to take the medications because it would stress your kidney too much? (Also, do you mean NSAID drugs, or are there issues with pretty much all anti inflammatories?)

What are some of the things that you find yourself needing to advocate for yourself about? Isn't long term care just annual creatinine level tests (which looks like a simple blood draw)?

</comment></comment><comment><USER9> My physiology professor told our class to never donate, especially at our age group (18-23). His presentation included some of the complications listed in the article. However, his reasoning was straightforward: Assuming a long lifespan, if you are in the position with your only kidney failing, you're screwed.

He was speaking generally of course. Not every situation has an easy solution and Poulson took a noble route, albeit when he was young and not fully informed. I have heard med students suffering from slight paranoia because they learn all kinds of diseases and their symptoms (as another comment has stated). I wish all the best to Poulson.

<comment><USER10> Assuming a long lifespan, if you are in the position with your only heart failing, you're screwed.

<comment><USER11> So don't donate that, either.

</comment></comment></comment><comment><USER12> There's some down-thread armchair speculation about why humans have two kidneys. I found it interesting, but instead of conniving my own theory did some searching.

The gist of it is that nobody seems to know, but the most simple explanation is that lateral symmetry is common in general because it's more efficiently encoded in the DNA. The organs & structures that don't come in twos are the odd exceptions, not the other way around.

1\. [https://www.quora.com/Why-is-it-that-humans-(and-many- animal...](https://www.quora.com/Why-is-it-that-humans-\(and-many- animals\)-have-two-kidneys-but-only-one-liver)

2\. [https://www.reddit.com/r/askscience/comments/po4v6/why_did_w...](https://www.reddit.com/r/askscience/comments/po4v6/why_did_we_evolve_two_kidneys/)

<comment><USER13> Most probably the kidneys are vital enough yet inexpensive enough to allow a pair to exist. You do not get two hearts because that muscle is very expensive. Also because a vascular injury to a major artery will also end your life. Similar reason for the liver - too expensive and also easy to regenerate from a partial injury. The brain is well protected and partly redundant. Lungs are fully redundant and protected by the ribcage. Spleen is not critical enough, stomach can heal. The pancreas is probably an odd one.

</comment></comment><comment><USER14> This is going to rub a lot of people the wrong way as unethical, but the best way to incentivize organ donation is if the donors get paid a market price for the organ. The donor is giving up a valuable piece of their body, taking time and large medical risks in surgery, and likely reduced life expectancy.

If you walk through the current process, everyone in the donation gets paid -- doctors, nurses, hospital, pharma -- except the donor.

There are a number of advantages of donors getting paid:

1\. The supply market would increase dramatically. Thus many more people receiving organs who would have otherwise died waiting.

2\. Heirs to people who have died young, with healthy organs could get paid for donating their organs.

3\. Black markets would be dramatically reduced, since people in desperate need of an organ could pay in the open, rather than secretly paying a donor.

4\. People without money can legally open a Kickstarter to raise funds for an organ donation.

Note Iran has partially done this, and the results have been very positive [1].

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1819484/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1819484/)

<comment><USER15> A big issue with allowing organ markets is that impoverished people can practically be forced to sell their organs.

<comment><USER3> Yes, often welfare systems won't give you aid if you have assets such as cash or a home. Would your organs be considered assets?

<comment><USER16> I'm not sure if it was ever verified, but reminds me of this story from 2005 - [http://www.telegraph.co.uk/news/worldnews/europe/germany/148...](http://www.telegraph.co.uk/news/worldnews/europe/germany/1482371/If- you-dont-take-a-job-as-a-prostitute-we-can-stop-your-benefits.html)

<comment><USER17> At the risk of sounding bitter: it's from a UK "newspaper" and it concerns mainland Europe. You should assume the article needs additional proof, not just verification.

</comment></comment></comment></comment></comment><comment><USER18> This may be a dumb question, but why are previous kidney donors not given a free pass to the top of the recipient list if they have a problem with their remaining kidney?

<comment><USER19> ..... or get your kidney back when the person you donated it to dies

<comment><USER18> Not a doctor, but I'm guessing that it's hard to re-transplant one and you have to get the person to die the right way such that any donation is even possible.

</comment></comment></comment><comment><USER16> Every med student I know went through a hypochondriasis phase. I wonder what Poulson will think in a few years, once he is out of school.

<comment><USER20> That's really what this article seems to boil down to. There doesn't seem to be any concrete data that should lead a completely objective donor to worry. The issue is that the author is not completely objective (nobody is).

</comment></comment><comment><USER21> I wish they had included another option in the survey. What if you were given a lifetime of free health insurance in lieu of cash? This way, some organization (the govt, AMA, some independent trust) could create a large, insurable pool of all kidney donors. This scheme would work around the problem of moral hazard in both directions. On the Donor side, donors get a substantial financial reward but not in terms of cash. And if it's true that most kidney donors will live healthy lives on par with the general population, then this pool is no riskier to insure than any large company. In fact it might be a _lower_ risk pool than the general population because the process of selecting the donor candidate involves intensive medical checks. Basically kidney donors are likely to be a healthier sample of the general population than random selection.

On the recipient/govt side, you get better outcomes for a larger number of kidney patients (and thus save lots of money on very expensive Dialysis costs). Financially, recipients (or their insurance providers) can be charged enough to cover the insurance premiums on the pool of donors without encouraging a black-market of organ donations.

It's most likely a win for Insurance companies too since they have to foot a large part of the dialysis bill too.

</comment><comment><USER22> Honest question. It sounds like the recipient was older so if something were to happen to them (passing from old age, etc) would it be possible to move the kidney back? After all it would be a perfect match... still the same age as the donor, and as long as it hasn't been compromised in any way should still function well.

<comment><USER6> The organ has had x years in a foreign environment. The new host / donee has taken an ongoing regimen of anti-rejection drugs for the duration to prevent that foreign environment from being overly hostile. The organ is not particularly suitable for re-transplantation even back to the original host.

</comment></comment><comment><USER23> As a surgeon who is 48, I will say that on my transplant rotation ( I am not a transplant surgeon ) the theory of the safety of donation was in the Vietnam War era data that said that soldiers who lost a kidney from injury were at no increased risk of renal failure as the general public given similar risk factors. I know that if you have hypertension or diabetes, it is near impossible to donate a kidney as they have a high propensity to develop renal failure. I have not researched the literature about the war data, but that is what I was told.

<comment><USER24> That isn't really a fair comparison. There's a selection bias among kidney donors (they must pass some minimal health requirements) and are at a lower risk than the general population.

</comment></comment><comment><USER25> I suspect that this regret probably has quite a lot to do with the recipient being the stepfather's brother. I.e. not a blood relative; kind of distant.

<comment><USER26> Says who? I know many people personally who are closer to their step-families than they are to their blood families. Just because someone donated some of their DNA to produce you doesn't necessarily make them worthy of being family.

Or hell, what about adopted children?

</comment></comment><comment><USER27> " All-cause mortality, cardiovascular mortality, and end-stage renal disease (ESRD) was identified in 1901 individuals who donated a kidney during 1963 through 2007 with a median follow-up of 15.1 years. A control group of 32,621 potentially eligible kidney donors was selected, with a median follow-up of 24.9 years. Hazard ratio for all-cause death was significantly increased to 1.30 (95% confidence interval 1.11-1.52) for donors compared with controls. There was a significant corresponding increase in cardiovascular death to 1.40 (1.03-1.91), while the risk of ESRD was greatly and significantly increased to 11.38 (4.37-29.6). The overall incidence of ESRD among donors was 302 cases per million and might have been influenced by hereditary factors. Immunological renal disease was the cause of ESRD in the donors. Thus, kidney donors are at increased long-term risk for ESRD, cardiovascular, and all-cause mortality compared with a control group of non-donors who would have been eligible for donation." [https://www.ncbi.nlm.nih.gov/pubmed/24284516](https://www.ncbi.nlm.nih.gov/pubmed/24284516)

</comment><comment><USER28> Hmmm in hindsight this is logical, you got 2 kidneys of a certain size. Expected do 1 job together. And since biology doesn't like wastefulness (as it cost energy, room, and nutrients to maintain) the kidneys are dimensioned to a safe/good size. Now when you remove 1, the other one has to do twice the job. Possibly severely dipping under the safe size.

In short, redundancy != excess

</comment><comment><USER29> He's probably going to regret writing this article in ten years.

</comment><comment><USER30> Has the stepfather's brother with the new kidney not made the donor feel how valuable his gesture was?

</comment><comment><USER31> Wait, he's complaining cause there's a higher theoretical risk, even though he's experienced exactly zero consequences?

What is he writing about? "Sometimes something you do has potential future consequences." Sounds like life.

</comment><comment><USER32> Well, this article did a good job in scaring me off of donating any organs whatsoever. I currently disallow donating organs upon my death, because I think if I'm a known donor, the doctors might not try as hard to revive me. And now after this, I'm pretty certain I won't take any tests to determine if I'm compatible with anyone needing a kidney.

<comment><USER33> > I currently disallow donating organs upon my death, because I think if I'm a > known donor, the doctors might not try as hard to revive me.

Sorry, but that really is such a nonsensical argument I'm not sure if you're serious. Why would a doctor not want to revive you? So another doctor somewhere could save a patient? Why would that be preferable to saving your life there and then? Why would the doctor risk their own career for that?

I presume that if you're refusing to donate any organs after your death, you'd refuse one if you ever needed one (unless you're a huge hypocrite). In which case, surely scenario A is far less likely than scenario B?

</comment></comment><comment><USER34> I guess he's going to be careful with his diet and not drink.

</comment><comment><USER35> TL,DR: author voluntarily donated a kidney to his stepfather's brother, against the advice of much of his family. Years later, the recipient is doing fine but the author (on his way to becoming a doctor), has reviewed the risks of being a donor and now is nervous about the whole thing.

<comment><USER36> This is an accurate summary. One thing I'd like to add is that there was nothing that the receiver did that provoked the regret. I read this assuming that something happened that caused it to not be worth it.

While this is a good view on this situation, the article is basically a guy saying that his comfort and security to have a long life is more important than the other guy's life. So I assumed that the other guy had done something to bring this to light but that is not the case. The donator had simply researched more and decided he was nervous.

To be clear: His interest in being secure in his life is fine and expected and I'm not judging him by what I said.

<comment><USER35> _"...the article is basically a guy saying that his comfort and security to have a long life is more important than the other guy's life. So I assumed that the other guy had done something to bring this to light but that is not the case."_

This is how I went into the article as well. I expected seeing something about the recipient being a substance abuser or otherwise not careful with his gift, or some related drama. But it's really some light hypochondria and the recklessness of youth on display.

I don't begrudge his regret; I don't know if I would have donated in the first place if I had been in his shoes. I'm just not entirely convinced of the overall worth of the article.

<comment><AUTHOR> I thought the article has overall worth because it's an honest reflection about something we usually think of as a simple feel-good story. We pay attention to selfless deeds when they happen, but usually don't follow up with the aftermath. Apparently, according to the author, neither do hospitals, which means there's a lack of data to do more longitudinal study.

</comment></comment></comment></comment><comment><USER37> To be fair, there's lots of other organs in your body that are _already_ single points of failure. Regardless, there's probably a reason we evolved with two kidneys. My personal theory (i.e. I have no idea if there's any actual research on this hypothesis) is that before humans discovered cooking, agriculture, sanitation, etc., there were a lot more diseases and toxins and such in the food we ate, so the organs responsible for handling them were much more active than they are now. This is why you can get rid of your tonsils, appendix, a large fraction of your liver, and one of your kidneys and still be "fine".

(To reiterate, though, I don't know how much research there is to support this theory.)

<comment><USER38> Keep in mind that fish also have 2 kidneys and 1 liver.

(humans have much else in common with fish: [https://en.wikipedia.org/wiki/Chordate](https://en.wikipedia.org/wiki/Chordate) )

</comment></comment><comment><USER39> Reading these comments makes me believe the HN crowd no longer believes in human exceptionalism, something I believe fueled our predecessors into building mile long structures over bodies of water, landing on the moon, striving to colonize mars, and other giant leaps of technology. Makes me sad reading these comments.</comment>


The hard truths of climate change – by the numbers - <AUTHOR> https://www.nature.com/immersive/d41586-019-02711-4 <comment><USER2> The US is only 15% of total emissions. Even if we had 0 emissions, countries like China and India would still be ruining the planet.

The problem is that many ideas for curbing climate change will destroy the economy and other countries will just use that to their advantage, not caring about it at all, only to seize power.

This is why the Paris Accords need to have punishments involved for countries that pollute the planet with excess CO2 emissions.

<comment><USER3> That's not what the article says. In the article, US is second biggest co2 producer. if US had 0 emissions, that would make a big difference! Obviously, if China had 0 emissions, it would make a bigger difference, but India is 4th in this list, so shifting blame to China and India seems wrong and seeing their emissions and say "US having zero emissions wouldn't make a difference" seems defeatist.

Also, don't think this is a "they do, so I can also do" but rather what can we/you do to improve whatever would help.

> The problem is that many ideas for curbing climate change will destroy the > economy

Seems if your economy is depending on screwing the planet, probably it would be best for everyone if it did get destroyed. On one hand: working economy / broken planet and on the other hand: broken economy / working planet. I sure know what I would prefer.

<comment><USER2> Like I said, we need to have everyone working together. The planet doesn't care about fairness and China, India, and many other countries will continue to pollute unless they suffer some sort of consequence.

You would rather have poverty, death, and destruction now instead of coming up with a solution later? This is what would happen if we wiped out fossil fuels now.

...And countries like China wouldn't follow the same rules and their economy would be just fine.

I don't think I would want to live in your world.</comment></comment></comment>


Javascript vi clone for Google Docs - <AUTHOR> http://vianedit.appspot.com/

<comment><USER2> Hm. Cute idea, but I managed to immediately get my cursor stuck in the status bar with no way out... until I moused up and clicked in the upper part. Not ready for prime time, I think.

<comment><AUTHOR> It certainly does need a lot of work before it's ready for prime time. Most of the work has been making sure the basics work and that the design is easily extensible. I started working on it based on this post here:

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

I figured those who were interested in that idea might like to see or get engaged in the beginning stages. Of course, the idea has snowballed from an editor that can evaluate a subset of Javascript into a fully extensible editor.</comment></comment>


Comparing Mongo DB and Couch DB - <AUTHOR> http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB

<comment><USER2> "Generally, we find MongoDB to be a very good fit for building web infrastructure."

I strongly agree. I just went through a painful transition of our product from CouchDB onto MongoDB. It was a week or two of pain, but I had things isolated enough that it didn't hurt as badly as it could have.

Fundamentally, Couch was a pretty amazing piece of technology, and Damien Katz is coder's coder. But they want to make something that would act like a Lotus Notes client. I wanted a piece of web infrastructure.

</comment><comment><AUTHOR> I didn't know about the stale attribute for couchdb(mentioned in a comment in the article). I can see places where it will speed up things in our set up.

Also, Mongo DB is interesting and I have plans to evaluate it for our setup(batch reads and writes, no master-master replication requirement, but need master-slave replication, also need sharding rather desperately). Does anyone have any experience couchdb-lounge mentioned in the same comment?

</comment><comment><USER3> MongoDB appears to memory map its data: <http://blog.mongodb.org/post/137788967/32-bit-limitations>

This is fine on 64-bit CPUs, but less good on 32-bit dev boxes that people are probably using.

Very nice API, though.

</comment><comment><USER4> "Mongo uses (auto) sharding as our path to scalabity (sharding is in alpha)"

it's my understanding that mongo currently only shards primary key lookups, not queries. it'll be interesting to see how successful they are in grafting a full distributed layer over top of it. generally the merge layer kills you because you must query all nodes to support global indexes. that is not to say that its impossible.

mongo has some wacky stuff in the on-disk file format which is kind of interesting, too.

<comment><USER5> _generally the merge layer kills you because you must query all nodes to support global indexes. that is not to say that its impossible._

It's not that bad actually. PK lookups and range queries are rather easy because mongos (the sharding daemon) knows the shard layout and only queries nodes that hold data relevant to the query.

Other query types, especially joins, are much harder. But frankly, PK lookups and range queries go a long way for most applications.

The real effort is in making all this, especially the automatic shard rebalancing, not only reliable but absolutely bulletproof. That seems to be on mongo's roadmap and if they get there that would be a major selling point.

</comment></comment><comment><USER6> CouchDB seems to be kind of a weird and interesting beast. I feel like it's what you'd get if you optimized completely for elegance and didn't consider pragmatism.

When I look at the design I feel somewhat inspired, but not, exactly, to replicate it. It's odd.</comment>


IPv6 Address Unmasking via UPnP - <AUTHOR> https://blog.talosintelligence.com/2019/03/ipv6-unmasking-via-upnp.html <comment><USER2> It should be noted that there are two main protocols for mapping ports, UPnP and Port Control Protocol (or NAT-PMP, which is PCP version 0).

UPnP is _dramatically_ more complicated and has correspondingly more implementation bugs. If you need to have something enabled on your router for mapping ports, use Port Control Protocol and disable UPnP.

</comment><comment><USER3> It's been well known since it first existed that UPnP is a security nightmare. If anyone really wants to use it, extra care should be taken to ensure that it is never exposed beyond your LAN, although it's far better to just disable it entirely.

It's too much to expect non-techies to know this, but they really, really need to be informed about it.

<comment><USER4> Non-techies usually don't care about anything but convenience, informed or not.

</comment></comment><comment><USER5> I never realized an IPv6 likely contains the MAC address of the host, how did people not realized how terrible this design is.

<comment><USER6> IPv6 Privacy Extension as defined in RFC 4941 is commonly implemented and prevents this from being an issue.

<comment><USER3> "Prevents" is overstating this a bit. The IPv6 Privacy Extension is a hack that doesn't completely mitigate this sort of problem. It's just better than nothing, and is all we have.

<comment><USER6> How so?

With IPv4 you reveal the IP of your IP Masq/Nat router, which is often inside your home/business. It can be dynamic or static, but generally changes pretty slowly. There might be a single person behind that IP, or 100s.

With IPv6 your /64 is often inside your home/business. It can be dynamics or static, but generally changes pretty slowly. There might be a single person behind that /64, or 100s. Different outgoing connections see different IPv6 addresses, and they change over time (slowly).

Most importantly just like a mac address, the outgoing connections never use the IPv6 address based on mac address.

So how does the privacy extension not protect the privacy of users by hiding the mac address?

<comment><USER3> > So how does the privacy extension not protect the privacy of users by hiding > the mac address?

I never said it didn't. I stated that people overstate the protection the facility provides, not that it didn't provide protection.

The deficiencies of the privacy extensions have been discussed widely for years. A quick internet search will show the various criticisms and responses better than any reply I can make here will.

I should, however, clarify what I was trying to say -- I was not trying to say the privacy extensions aren't worthwhile. They're great, and people should use them!

What I was trying to say is that people often think of them as a panacea or a 100% solution. They aren't exactly that (what is?), and the nature of the design of the privacy extensions are such that they make other important network management activities more difficult.

My main criticism of PE (and it's not a showstopper sort of criticism) is that the extensions are hacky and it shows. They were thought up after-the-fact to try to mitigate a security mistake made in the original IPv6 protocol.

<comment><USER6> Sure, but the original parent was complaining about the mac address (not any larger privacy issues) and the PE does a good job of hiding the mac address and is enable by default in many common operating systems (Mac, Windows, Ubuntu, etc.)

</comment></comment></comment></comment></comment></comment><comment><USER7> Is there a way to gather the list of all domains/subdomains, etc? Because if they are servers, it is unlikely there isn't a dns entry against each of these ipv6.

Same question for reverse dns?

<comment><USER8> Most nameservers disallow zone transers (requesting the full zone file), preventing this. Additionally it's more and more common for IPs to have a fixed generic PTR that just describes the IP instead of the host, and for a lot of hosts to not even have dns records. (My last webapp never bothered with dns for the dozens of ephemeral webserver instances).

</comment></comment><comment> bee-boop-19 Is it possible to get a ELI5 version of the impact of this?

<comment><USER9> > This allows us to enumerate a particular subset of active IPv6 hosts which > can then be scanned.

So if you have turned off the firewall in your CPE, someone might heave an easier time scanning your network, without having to find your ip address from a http access log or using webrtc etc.

The property of scanning resitance due to address sparsity in IPv6 is not very strong (nor is it meant to be a security boundary) and there are many things like this that can go around it.

</comment></comment><comment><USER10> The question is, why is UPnP even needed on IPv6?

<comment><USER11> I assume to open the firewall. If you're going to run IPv6 at home, you probably want the firewall equivalent of NAT: Connections are allowed outbound, but not inbound unless on a specifically whitelisted IP/port.

<comment><USER3> You can continue to use NAT with IPv6. If/when I have to run IPv6 on my LAN, I plan on doing exactly that. I explicitly don't want outside connections to be made directly to arbitrary machines inside my LAN. I have a DMZ for a solid reason.

<comment><USER12> Almost nobody uses NAT with IPv6. There's not much reason to. You want a firewall, not NAT.

<comment><USER3> Well, a router more than a firewall. Either way, a mechanism to do this is essentially a NAT.

What I want is a single IP address that is exposed to the internet at large, which is serviced by various different servers behind the firewall depending on the ports. The outgoing traffic from these servers should be from the same single IP address.

That's a NAT in my book.

<comment><USER12> Technically, this is PAT: port address translation. Why do you want this?</comment></comment></comment></comment></comment></comment>


Cancer death rates are falling, five-year survival rates rising - <AUTHOR> https://ourworldindata.org/cancer-death-rates-are-falling-five-year-survival-rates-are-rising <comment><USER2> The article goes into this, but reminder that cancer survival rates must be carefully considered as a part of a bigger picture. In short, if cancer patients are surviving on average 5 more years than, say, X years ago, but cancer is at the same time being detected 5 years earlier, then the expected length of life for a cancer patient remains the same. This is well-understood phenomenon in cancer statistics but often glossed over in press pieces and not particularly well understood by the general public.

<comment><USER3> The detection has value itself. I'd much rather know now that I have a year to live today than a week to live in 51 weeks.

<comment><USER4> Someone I knew was diagnosed with lung cancer, spent a year in hospitals getting chemo, radiation, scans, etc and had lots of pills, against the side effects of the treatment, against pain, against the side effects of the pills. Then he died.

At the end he wished he had never been diagnosed, then he probably would have had a decent half year or so.

<comment><USER5> Sure, but you can't know whether treatment will work ahead of time. You could have a decent half year if you do nothing, or you could have a decent 20 years if the treatment works.

<comment><USER6> You can't _know_ , but that doesn't mean that you're completely in the dark. The doctors can provide you with _estimates_ regarding the chances having decent 20 years.

<comment><USER5> Of course. If you're going through radiation and chemo there's a good chance the Drs think it has a good chance of helping. Not always though.

</comment></comment></comment></comment></comment></comment><comment><USER7> Cancer represents a broad class of diseases (like "viral infection" is everything from common cold to HIV). If you or someone you know is diagnosed with cancer, and especially if it is later stage, please seriously consider comprehensive genomic profiling (CGP). CGP can help identify targeted therapies (and often clinical trials) which treat the specific genetic alterations or other factors in your disease.

I'd like to shamelessly plug the company I work for, Foundation Medicine ([https://www.foundationmedicine.com/](https://www.foundationmedicine.com/)) who is a leader in this area. Regardless of who you go with, please do CGP to learn more about your disease and the options you have.

<comment><USER8> Is there any reason not to do CGP preemptively?

<comment><USER9> Mutations can be divided to germline (~what you inherited, it's part of your normal dna, but it increases likelihood of getting cancer, for example by making dna self repair less effective, think Angelina Jolie) and somatic (random (?) mutations that enable unlimited growth, switch off cell death and so on and are only present in the tumor). There can be multiple mutation groups within a single tumor.

Preemptive testing is useful and done for people with history of early cancers in family but obviously can detect only germline mutations. Most of the targeted therapies target somatic mutations.

Some hospitals doing genomic testing share their data through AACR GENIE project

[https://www.aacr.org/Research/Research/Pages/aacr-project- ge...](https://www.aacr.org/Research/Research/Pages/aacr-project-genie.aspx)

</comment></comment></comment><comment><USER10> Stage Migration, otherwise known as, "The Will Roger's Phenomenon," is an important consideration.

Derived from a joke, "When the Okies left Oklahoma and moved to California, they raised the average intelligence level in both states."

When we move members of one set (undiagnosed) into another (diagnosed) it changes the values of both. In other words, if we diagnose people earlier, the entire diagnosed set appears to be living longer.

See this classic for more information: [https://www.nejm.org/doi/full/10.1056/NEJM198506203122504](https://www.nejm.org/doi/full/10.1056/NEJM198506203122504)

<comment><USER11> How does 5 years survival rate relate to cancer deaths?

Do people survive longer with cancer before eventually dying, or are more people cured?

<comment><USER10> We're not sure.

One interesting study on breast cancer patients receiving radiotherapy, found that local control was obtained but more women were eventually dying from heart failure from being in the radiation field. This essentially offset the gain. This couldn't be seen with 5 year survival rates. Now physicians are focused on protecting the heart and hopefully, eliminating cardiac toxicities.

That vignette just shows that 5y survival is a difficult metric and only shows a small piece of the picture. Others have rightly pointed out, stratification of data based on stage would be helpful. Improvement in 5 year survival of stage 4 patients, could be very meaningful.

Unfortunately, new treatments are adding months (on average) not years.

The best thing we (as a country) did, was wake up to the dangers of smoking. When per capita cancer diagnoses decline and survival rates remain steady (or improve), then we know more people are living longer.

<comment><USER12> My mother in law lived with breast cancer for ten years, and dropped dead of a heart attack in a dentist's waiting room. Radiation effect on coronary arteries may well have contributed.

<comment><USER10> I am sorry for your loss. It may very well may have been due to the radiotherapy. Left Breast cancer patients were at greatest risk. The Left Anterior Descending (LAD) has been identified as the "Organ At Risk."

We used to treat the heart as a parallel organ, like the lungs; damage a piece with no significant harm to the overall function. We've discovered that it may be a serial organ, like the spine; damage a piece and you impair the entire organ. Or in this case the LAD is a critical element.

The mechanism of action is believed to be accelerated atherosclerosis; hardening of the artery leading to blockage:

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4188157/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4188157/)

We now use breath hold techniques and completely spare the heart, but mistakes were made -- that only a long retrospective review of the data was able to reveal:

[https://www.nejm.org/doi/full/10.1056/NEJMoa1209825](https://www.nejm.org/doi/full/10.1056/NEJMoa1209825)

<comment><USER12> Thanks! I'll send those links to my daughter, who's in her residency right now.

</comment></comment></comment></comment></comment></comment><comment><USER13> Cancer really gives me shivers.

I can be hit by a car this evening and get killed. I can get a stroke in sleep and not wake up tomorrow morning. I could even be electrocuted by some stupid accident I make while tinkering with electronic components.

Somehow all those "types of death" are fine for me. They are accidents, bad luck, whatever. But they all come sudden.

Knowing that you are ill and will not get well again and can just "sit around" and wait till you die. That really hits me whenver I think about it.

Nevertheless I don't see a doctor regularly to do a checkup. I'm in my 30s, maybe I should start doing that.

<comment><USER14> I don't want to make you more nervous, but there are some car accidents that are not fatal but breaks so many things that you have a loooooong time to recovery with many operations and medical problems (perhaps you loose most of your liver?). I'm not sure if they are predictible fatal after a long time.

Some with heart or brain stroke. There are some variants between no stroke and fatal stroke.

<comment><USER13> Oh, I know, I know. I crashed with my motorcycle and had a concussion on my milt. Didn't think about it first but realized how bad it was, after doctors wouldn't let me go after four days in hospital.

There is lots of scary stuff out there, I'm aware of that. Maybe it's also about the "actio = reactio" thing in my head. Crash = you may die or be severly injured. Overweight might lead to strokes, ok. I can grasp all of those concepts and understand them.

But cancer can just come out of nowhere and it could kill you, although you did nothing wrong.

<comment><USER15> Yeah it was like that with my dad. He was super fit, didn't drink, probably worked too much but that was about it as far as vices. But all the same the cancer came and just swallowed him up. We tried everything but it was just the disease was totally indifferent to our efforts.

Before that experience I never really got what the big deal with cancer was. But when it clicked that it's basically your own cells evolving to destroy you: well it's pretty dark if you think about it.

</comment></comment></comment></comment><comment><USER16> Medical statistics is an entire field of study that has multiple disciplines. There are many controversies in this field.

Regarding how death rates are calculated, there are controversies in the field regarding how to best calculate from both a math and even a philosophical standpoint.

This article, which talks about the famous paper from 2015 that first noted the dramatic rise in suicide, covers the controversy well. Some of the best statisticians and researchers in med stats, who all are competent and mean well, simply cannot agree if the death rate has gone up or down [1].

[1] [https://www.thecut.com/2015/11/gender-controversy-over- white...](https://www.thecut.com/2015/11/gender-controversy-over-white- mortality.html)

<comment><USER2> As the old saying goes, "smoking is the leading cause of statistics."

</comment></comment><comment><USER17> A more comprehensive immunotherapy approach to cancer (which in my unqualified opinion is the real path to "cure") will probably require custom treatments specific to the patient's genome and cancer biochemistry/gene expression.

This does not match any sort of modern drug/device delivery method, which is all the corporate types want. It probably takes lots of labor and tests, not necessarily expensive, just not extremely profitable.

Which doesn't make me optimistic for its near term implementation.

Anyway, I've had a mother and three friends die of cancer. Basically, if the drugs and radiation failed, it was game over.

<comment><USER18> At some point we will be able to program the immune system to function like a smart bomb and kill most cancers. Some cancers may not be immunological targetable but might be druggable. Or druggable and later targetable.

</comment></comment><comment><USER19> Sad caners of the pancreas, lung, liver, esophasgus, stomach and brain are still pretty deadly.

</comment><comment><USER20> Great. But we need to tackle it at multiple levels, specifically prevention and not just treatment.

Furthermore, we need to develop a way of sustainable organ and blood availability. The only way I can see this happening is through synthetic/artificial means. What Organovo is doing is a good start, but they still need the matrix from an existing organ.

Here is what I see as ideal:

\- Around the time a baby is born (before or after, or both), some stem cells, DNA samples etc are collected.

\- We need a tech for storing those samples for decades, not years. Including a tech for "feeding" and growing them in a sustainable manner.

\- Then we need to have a way to differentiate organs out of them.

\- And be able to store working organs for decades, not years.

\- And a tech to artificially grow, maintain, and store blood.

\- And inject that person's immune system culture into those stored samples and organs on recurring basis. So that they are up-to-date with that person's immune system.

That means, if and when a person has organ failure, or is in need of blood, (s)he has the stuff ready from his/her own stash. No dependence on one another.

It's crazy and super-moonshot? yes. But it's a very realistic way forward. And it's a holy grail worth working towards.

<comment><USER21> >prevention and not just treatment.

Unfortunately, this conflicts with "the economy".

Many of us are getting paid to produce cancer-causing products, such as:

* processed foods (most of the things you buy in a supermarket)

* most shampoos, cosmetics, soaps, detergents, cleaning products, etc.

* paraffin candles

* cigarettes and alcohol

* components of all these products and the byproducts of their production

* not to mention shit done on industrial scale

* the air, if you live in a populated area

* and so on.

If you really want to reduce your and your family's chances of getting cancer, you're doing your research and doing a _lot_ of work to move away from the mainstream (which is still stuck in 1950's level of knowledge) on these habits, but most people are not, and just blindly trust the government and oversight bodies to protect them because it's "easier" and "cheaper" and "they wouldn't allow it to be sold if it was harmful". Years later: Surprise!

<comment><USER22> I'm thinking of ways to start groups of aquaponics to grow local and toxin free. Spending more time in the green is good, eating simple and fresh too.

The ~power of mainstream is high, it's not super easy to swim across the flow

<comment><USER21> No, it is not easy at all. And even in educated circles, your opinions will be in the minority, and cognitive dissonance will work against you too.

People _hate_ finding out that they're wrong, and nobody wants to admit that they've been poisoning themselves and their family for decades.

It's either that or cancer, though...

<comment><USER22> I think it's more fear of doubt than being wrong. I'm sure if you come with a ready made solution they won't resist nearly as much.

<comment><USER21> Unfortunately, there is no easy solution at this time...

</comment></comment></comment></comment></comment></comment><comment><USER23> Can someone explain what does the 0.67 prevalence number mean? That can't be 67%?

<comment><USER24> What 0.67 number? Are you refering to "The share of people with cancer (even when corrected for ageing) has been slowly increasing in recent decades. Global cancer prevalence has risen from 0.54 percent to 0.64 percent since 1990"?

Prevalence is the the share of people who are currently diagnosed with cancer. The link in the first sencence quoted ([https://ourworldindata.org/cancer#global-perspective-on- canc...](https://ourworldindata.org/cancer#global-perspective-on-cancer- prevalence)) gives more info.

<comment><USER23> Yes, sorry. That's what I meant, thanks.

</comment></comment></comment><comment><USER25> Obligatory reading before reading cancer statistics:

[https://slatestarcodex.com/2018/08/01/cancer-progress- much-m...](https://slatestarcodex.com/2018/08/01/cancer-progress-much-more- than-you-wanted-to-know/)

<comment><USER26> The article links to that very post.

</comment></comment><comment><USER27> I recently researched about cancer and realised that anti oxidants are said to prevent cancer. There was a study done in US, the Boston study or something like that, it said that excess dairy consumption is directly linked to cancer.

Green tea, green vegetables and any anti oxidant source prevents cancer.

<comment><USER28> > Green tea, green vegetables and any anti oxidant source prevents cancer.

That doesn't seem to be the case. They seem to have no effect:

[https://www.cancer.gov/about-cancer/causes- prevention/risk/d...](https://www.cancer.gov/about-cancer/causes- prevention/risk/diet/antioxidants-fact-sheet)

Or can possibly make it worse:

[https://www.scientificamerican.com/article/antioxidants- may-...](https://www.scientificamerican.com/article/antioxidants-may-make- cancer-worse/)

When Dr. Oz is turning on Antioxidants you know there's something there:

[https://www.doctoroz.com/article/can-antioxidants-cause- canc...](https://www.doctoroz.com/article/can-antioxidants-cause-cancer)

</comment></comment><comment><USER29> Though it may seem cliche' and overused, speaking as someone with a close relative that is affected:

FUCK CANCER

There is vigorous debate in these comments on the exact stats and what they really mean.

All the same, this is fantastic news. Slowly, we are beating back this evil.

</comment><comment><USER30> So what should one do today to minimize their early death from cancer risks? Do some kind of a genetic screening? Have periodic (annual?) checks for specific cancers?

<comment><USER31> Avoid getting too much sun (melanoma); reduce your read meat consumption (colon cancer); don't smoke, or quit if you currently do. Some studies have indicated that grilled meats can also increase the chance of risk. Other than that, pay attention to your body. My colon cancer indicated by bleeding that was not regarded by my GP as more than just a potential hemorrhoid. A year later a thoracic surgeon discovered a 5cm mass. I got lucky...

</comment></comment><comment><USER32> 5 year survival rate is just a single data point. It would be better to also look at 7 year and 10 year survival data. Is this available?

</comment><comment><USER33> I'm more interested in incidents of cancer among younger people. Is it rising or falling?

<comment><USER34> I believe the incidents of cancer for younger people are predicted to possibly rise in the future due to obesity becoming more of a liability as people age.

</comment></comment><comment><USER35> Why have uterine cancer survival rates fallen, anybody know?

<comment><USER9> Could it be because of the HPV vaccinations? That there are fewer more severe cases?</comment></comment>


Ask HN? From Vim to Sublime 2 - <AUTHOR>

I've been using non-vi editors all my career. Last 3 months I started using VI and find it really hard to switch to another editor. I love the customizations that VI has, love the macros, I don't think of editing as movement of the cursor, its now like writing except the first writing tells you how to edit the actual words.<p>So I noticed people lovin' on Sublime 2. So my question is: has anyone made the switch of VI -> ST2 or have people just liked the shiny interface but disliked the actual editing itself? <comment><USER2> Well if you like modal editing you can use sublime text 2's built in vi emulation. So if you donwload sublime text 2 (you can try it without buying it) and in the user settings have

        {
            "ignored_packages": []
        }

You can use vi style modal editing with most if not all of your usually vi commands.

<comment><AUTHOR> not happy there, its too quirky compared to real VI. That's the first thing I tried.

I really do miss using custom macros that do ',.' to swap between unit tests and production code. It feels forced.

<comment><USER2> Yeah I never found it very good either though the regular sublime has a lot of good stuff in it it is just hard to find and get used to. (Kind of like when you start using vi you don't do stuff the fastest way but the way you learned that can approximate it using x+i rather than c)

The best way I found to do it is to use the ctrl+shift+p (may be cmd+shift+p on mac) menu which has keybindings next to the names so you can find the keybinding if you forget it

You can do custom macros as well but those aren't seen in the menu but if you look for tutorials they are there, not quite the same as vi but workable.</comment></comment></comment>


Show HN:  Our startup Construct 2, how far we've come and lessons learnt so far - <AUTHOR>

We did a "Show HN post" 6 months back of our startup and we're very excited to show everyone how far we've come as well as the lessons we've learnt so far!  It's been a roller-coaster so far and we think there's lot more of the same to come!  We did apply for Ycombinator funding but got turned down :( But may re-apply soon :)
For those that don't know, our startup is called Scirra and we make Construct 2 which is an HTML5 game engine (http://www.scirra.com).  Our engine allows anyone to make HTML5 games without knowing any programming.
It's only me and my brother working on this and we're based in London.  This is our first startup, since we last posted we've:
- Fully documented the engine http://www.scirra.com/manual/1/construct-2
- Added a fully documented Javascript SDK to help attract programmers to use our engine
http://www.scirra.com/manual/15/sdk
- Added particle effects: http://www.scirra.com/labs/particles2/
- Added Box2D physics: http://www.scirra.com/arcade/addicting-example-games/36/html5-physics-rolling-platformer
- Added Gamepad support
- Export options for Appmobi and Phonegap
- Added webfont support
- Added publish to Chrome store
- Launched a 'Youtube style' HTML5 arcade (complete with game stats which is quite a popular feature!)  Project Blaze Zero is the most popular game on there so far: http://www.scirra.com/arcade/addicting-shooter-games/349/project-blaze-zero
- Received angel investment
- Grown to serving 100k uniques/200k visits/1.1m page views a month compares to 25k uniques/50k visits/340k page views in July (and still increasing fast)
- Served nearly 100k downloads of Construct 2
- Got our first print review in .NET magazine (current issue, check it out!  Page 26)
Lessons we've learnt so far are:
- Documentation is predictably boring to write, but incredibly important (like super important)
- Working from home can suck, normal sleep patterns are difficult to maintain
- It's hard to get on TechCrunch and probably not worth the bother
- Blogging is important, and most startups/companies do it wrong.  Writing about things people want to read is important (but a lot of startups just seem to use it as a news feed)
- Blogging can lead to unexpected and valuable connections
- Good web design/development is iterative.  You can't nail it on the head in one go (we've gone through about 3 designs, 1: http://web.archive.org/web/20110703070339/http://www.scirra.com/ 2:http://web.archive.org/web/20110716015112/http://www.scirra.com/ and 3:http://www.scirra.com)
- Customers love it when you email them back in under 10 minutes
- Engaging with people who comment about things you write/your product on social networks is important
- It's hard to get Twitter followers (we're still figuring out how to run our Twitter really)
- Akismet is amazing
- If people dispute you on Paypal you should resign yourself to the fact you can't win
- Engaging small audiences most people avoid can be valuable: http://www.hackforums.net/showthread.php?tid=2148782
- Working out custom advertising deals with small websites is the best way to go
- Having a supportive community is an amazing motivator
- Accounting isn't fun and we'd rather just pay someone else to do it for us
- It's super fun and totally worth it :) (generally!)
We've got so much planned as well, but just hardly enough time to do it all! <comment><USER2> Congratulations! Y Combinator missed out on a good thing here but you are strongly positioned for another run at it, I'd say. With the recent Game Closure funding, HTML5 gaming is proving to be an _incredibly_ hot space.

 _It's only me and my brother working on this and we're based in London._

As you may (or may not!) know, I run HTML5 Weekly and a few other newsletters and have mentioned Scirra's work from time to time. And.. I obviously didn't do my research till the other day when I discovered how (with respect) "small" you are. Your company's image and all of the projects you do make you guys look about 10x bigger than you are - so well done on that.

 _It's hard to get Twitter followers (we're still figuring out how to run our Twitter really)_

You have to make hard, long term decisions when it comes to Twitter. From what I see, you're mostly focused on responding to people (good), mentioning your own blog posts and releases, and then retweeting occasional HTML5 gamdev related stuff.

What you're missing is the "secret sauce" it takes to become a thought leader (hate the term or not, it means something ;-)). Retweets are, sadly, a _bad_ way to build an audience, whereas tweets of your own work well.

The trick, then, is to rig up something like Buffer and load it up every few days with tweets relating to ideas and technologies you want to push (Guy Kawasaki is a total master at this, BTW.) Become known as THE account to follow in the HTML5 game development space, perhaps.

 _Accounting isn't fun and we'd rather just pay someone else to do it for us_

Right, but you really have to be careful here, especially being in the UK and primarily, I'm assuming, selling to the US. It introduces a number of complexities, especially when you get into VAT, and you either need a super clued up accountant or to keep your own careful eye on what's happening. Perhaps in 20 years most accountants and tax men will know the Internet well ;-)

 _If people dispute you on Paypal you should resign yourself to the fact you can't win_

Unless you're sending out physical product, having a no quibble refund policy/guarantee will make you a lot more $ than it loses you. In my experience, at least.

 _Got our first print review in .NET magazine_

Did you actively pursue that or did they find you?

<comment><AUTHOR> Hey Peter!

Thanks for reading that huge ugly block of text, HN isn't the best way to post lists like that :)

That's cool you run HTML5 weekly, I just subscribed! And it's great that someone like you has already heard of us. If you ever want to ask more questions about us or what we do please feel free to drop me an email at any time (tom at our website domain dot com).

Interesting to know we look bigger to you than we are!

Twitter is important to us, already with our meagre presence it's one of our top referrers so we definitely need to pay it more attention. I'll have a dig through Guy Kawasaki's account and see if I can learn anything.

With accounting we made sure we got a good chartered one from a trustworthy referral. I generally read up a fair amount of detail for everything so I get a general picture of what's going on, including VAT. I was ambitious at first, buying a thick textbook on it and doing some exercises but it wasn't long before I realised my attention and time was being diverted away from the more important things. Ignoring any money they save you because they are more skilled, the time they save in my opinion is worth every penny even if you're cash strapped. Also the risk of making a mistake sounds like it could be an expensive one from what I read.

With .NET it stemmed from a blog post I wrote about issues using MP3 in HTML5. Here's the original post (note that following blog posts correct a couple of errors in regards to Flash): [http://www.scirra.com/blog/64/why-you-shouldnt- use-mp3-in-yo...](http://www.scirra.com/blog/64/why-you-shouldnt-use-mp3-in- your-html5-games)

I then noticed that .NET did a small snippet on their website about that article: [http://www.netmagazine.com/news/startup-argues-dont-use- mp3-...](http://www.netmagazine.com/news/startup-argues-dont-use-mp3-audio- html5-games-111657)

So I saw this as an opportunity to contact them by email and tell them about our startup. Didn't hear anything back but then a couple of months later a reporter got in touch with us saying the editorial team sent him an email mentioning us as a possible product to review. (Ashley also has a 3 page article coming out regarding HTML5 audio in the next issue as well which we are excited about!)

This is one of the unexpected connections I mentioned in the original post that stem from popular blog posts.

Thanks again for your comments really appreciate it! We're incredibly excited about HTML5 and think our timing is pretty good to position ourselves nicely.

</comment></comment><comment><USER3> What made you decide to make an offline tool? Do you find it's easier for people to use and collaborate with? Do your customers use source control?

Do people actually purchase your "business"-class license? Have people made over $5000 USD in revenue using your tool?

<comment><AUTHOR> Hi! Thanks for the questions.

Ashley decided to go for a Windows offline tool as this is his second engine. The first was Construct Classic (open source). When embarking on Construct 2 he felt it was better to stick with the skills he knew best. Also we weren't sure a year or so ago if the web could handle a complex app like a game engine. Construct 2 has hundreds of thousands of lines of code in it and there aren't many web apps of that complexity in the wild and we couldn't find any at that time that offered the responsiveness we enjoy in a Windows native app.

People do purchase business licenses yes, it's required for registered businesses and individuals who make over $5k USD. I don't know if many users have made over $5k, (but some individuals have purchased our business license). I suspect not as it's still quite early for HTML5 and we haven't yet added as much monetisation opportunities as we plan to.

<comment><USER3> Interesting, thanks for the response!

</comment></comment></comment><comment><USER4> What database are you using for the game analytics and what structure?

<comment><AUTHOR> Are you referring to the stats for each game in our arcade?

If so, the database is SQL Server 2008 R2 Enterprise. We store every single play of the game in a fully normalised format. The space requirements for this even with hundreds of thousands/millions of records is very small.

Each games chart data surprisingly takes a very short amount of time to output even if we are talking 40k+ records. However the various counters we have are quite slow to work out. Therefore all the stats are cached and they update for each game every couple of hours or so.

It's important we cache this, one of our most popular games: [http://www.scirra.com/arcade/addicting-shooter- games/349/pro...](http://www.scirra.com/arcade/addicting-shooter- games/349/project-blaze-zero)

Had 25k plays in 24 hours which would have ground the server to a halt at that time had we not cached the stats.

As it currently stands the server doesn't really ever break a sweat (we did upgrade server as well) so we're happy how things are for now!</comment></comment>