Houston Rockets general manager apologises for Hong Kong protest tweet - <AUTHOR> https://www.reuters.com/article/us-china-basketball-nba/chinese-businesses-broadcaster-punish-houston-rockets-over-managers-hk-protest-tweet-idUSKCN1WL04T <comment><USER2> Wait, a person expressed views in favour of democracy and felt he had to backtrack because of pressure from a dictatorship?

Here's how this works: we express views that anger dictatorships, and if there is even a minute chance that your business tanks because of it - then you were in the wrong market or had the wrong owners.

The right thing to do here for the NBA would be to stand behind this tweet. Corporations need to be constantly _trolling_ China. I'm talking megacorps marking the anniversaries of Tianmen, or calling Taiwan "the totally independent country of Taiwan" and so on.

<comment><USER3> The problem isn't with angering dictatorships, it's about angering a lot of ordinary Chinese mainlanders who have been convinced that the HK protesters are traitors.

This is a serious problem, because it's simply not possible to persuade them otherwise, because the channels to do so are censored by the Chinese government. It's a crazily scary issue. My family is half Chinese and my niece came over from China this summer. The only things she knew about the HK protests was that some violent anti-mainlander anarchists had protested against the use of the Chinese flag on some buildings. The vast majority of mainlanders have never even heard of the extradition law.

As a result mainland Chinese see any support for the HK protesters as being a direct attack against the identity, nationality and integrity of China and Chinese people. Foreigners being seen as interfering is seen as further proof that the HK protests are incited by foreigners and are an anti-Chinese plot so unless it's handled very carefully it can make the situation worse, not better.

It's tough, but I think the best approach, if you do want to express support for HK, is instead to focus on the Censorship of the issues by the Chinese government.

<comment><USER4> It's not a question of censorship. This is caused by the protesters themselves (at least some of them).

I'm in the UK and the Chinese people I know only need to watch the reporting on the BBC to be convinced that a lot of protesters are anti-China and potentially propped up by foreign forces: Violence, attacks on government buildings, attacks on the Chinese flag, flying foreign flags, calling on the Brits and Americans to intervene, etc.

The actions of these protesters have ensured that the Chinese government cannot do anything but standing firm.

I don't know what Chinese TVs show to the public on the mainland, but if they show what the BBC shows then the people can only be outraged and absolutely against the protesters.

The way these protesters behave has completely drowned any message regarding democracy, which the Chinese public might actually be receptive to, though indeed that would be censored by the media on the mainland. That's another reason not to hand the government the stick to beat them with.

<comment><USER3> >The actions of these protesters have ensured that the Chinese government cannot do anything but standing firm.

Standing firm on what though? Since hardly any Chinese people even know about the extradition law, what does standing firm on that achieve? It has zero relevance to the issue from a mainlander perspective, so conceding on it would have zero negative publicity impact. In fact none of the actual issues are visible to mainlanders at all.

<comment><USER4> The protests are no longer about the extradition law. It has been fully withdrawn.

The current violent (and often visibly anti-China) actions ensure that the mainland's public opinion fully supports the government in taking a tough and inflexible stance against the protesters as long as violence and disturbances continue.

The protesters should take a page from Gandhi's book: You couldn't fault him. In HK the government does not even need to try to fault the protesters...

<comment><USER5> You mean as long as PLA keeps planting undercover operatives amongst the protesters as agent provocateurs to incite the violence that's then used as an excuse for a 'harder' stance?

Please, ask me for sources. I have probably over a hundred unspinnable photos and videos collected from r/HongKong by now. New ones keep coming every day.

Here's an appetiser:

[https://i.redd.it/0o2411874tj31.jpg](https://i.redd.it/0o2411874tj31.jpg)

<comment><USER4> Right, all those hundreds, if not more of people are all undercover operatives and without them the protests would have stopped long ago. It was them who stormed the LegCo... This is not serious.

<comment><USER3> Proof that government agents are fomenting and inciting the violence "isn't serious"?

<comment><USER4> Trying to discard and ignore all the violent actions, and actions that look very anti-China by claiming that they are "fomented" by the government is not serious.

One day we read an interview with a guy who took part in the storming of the LegCo and everybody here is in awe before its determination. The next, someone criticise violent actions and you guys claim that they are by government' agents provocateurs...

And every day I can watch BBC reporters following violent protests from within.

There is nothing wrong with admitting that some forms of protest are hurting the cause of democracy.

<comment><USER5> What would you suggest the people of HK should do instead to defend their democracy? Stop protesting, pretend nothing ever happened, keep CCP puppet Carrie Lam in power and wait for more CCP encroachment?

We already know how that turns out.

[https://en.wikipedia.org/wiki/Causeway_Bay_Books_disappearan...](https://en.wikipedia.org/wiki/Causeway_Bay_Books_disappearances)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> A true Rockets fan in China: [https://twitter.com/rachel_cheung1/status/118113022981048729...](https://twitter.com/rachel_cheung1/status/1181130229810487297)

<comment><USER6> The picture of him in confinement is horrifying.

</comment></comment><comment><USER7> If a guy who has earned a GM's salary for years can't stick by his guns regarding free speech before the dollar then maybe nobody can.

</comment><comment><USER8> > "Fight for freedom, stand with Hong Kong" -> "I was merely voicing one > thought, based on one interpretation, of one complicated event," he said, > adding that he had since heard and considered other perspectives.

Unless I hear those "other perspectives", I'll simply assume he was exposed to pressure, not reason.

<comment><USER9> Exposed to the perspectives of how much money he personally stood to gain/lose on the outcome of the NBA's deals with China.

</comment></comment><comment><USER10> China is a huge market for the NBA, and it could disappear in a tweet.

[https://www.si.com/nba/2019/10/07/daryl-morey-rockets- china-...](https://www.si.com/nba/2019/10/07/daryl-morey-rockets-china-hong- kong-basketball)

Now that China is the second largest economy, it has a lot of global influence.

<comment><USER11> > it has a lot of global influence

It only has influence if we give it influence, through crushing dissent like this. The NBA is complicit in the destruction of democracy and the ethnic cleansing of a religious minority; don't forget that.

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

<comment><AUTHOR> Thanks. I couldn't read the WSJ article (paywall) so submitted the reuters article here.

<comment><USER12> When I google the WSJ article URL, and click the link from the search results, I don't get a paywall.

</comment></comment></comment><comment><USER13> It seems that the latest South Park episode was once again timely.

</comment><comment><USER14> Could you imagine the NBA making players apologize for posting Tweets criticizing Trump? Remember when LeBron and others wore "I Can't Breathe" t-shirts and Adam Silver supported them?

Teams & players should be taking a strong stand here to support one of their own, but this really shows that there is a $$$ value for everything, including freedom of speech and expression.

Economic threats from a foreign government should be treated the same as military ones. I'm sure Rockets games will be back on air in an instant if US sanctions expand to completely block NBA broadcasting in China, player visas and sports apparel manufacturing.

<comment><USER15> And that's why I will never watch another game and seek to keep any spending out of those traitors' hands.

</comment></comment><comment><USER16> Capitalism's democracy.</comment>


We Need a Black Zuckerberg - <AUTHOR> http://www.washingtonpost.com/blogs/innovations/post/we-need-a-black-mark-zuckerberg/2011/06/24/AGWXYHjH_blog.html

<comment><USER2> There are a lot of visible minority founders. When I go to startup events all over the North America, I feel like Custer...holy cow look at all those ####ing Indians. :)

Note I am of Indian decent myself so I can say that. :)</comment>


Web Framework Benchmarks - Round 8 - <AUTHOR> http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json <comment><USER2> It's interesting to compare what the code looks like.

CPPSP (C++ Server Pages) which is putting up ridiculous numbers... here is the Single Query test:

[https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/cpoll_cppsp/www/db)

It's quite different from the more typical implementations, where they all sort of look the same...

(Go) [https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/go/src/hello/hello.go)

(NodeJS) [https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/nodejs/hello.js)

(Gemini) [https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/gemini/Source/hello/home/handler/HelloHandler.java)

Also interesting to compare it to C# / HttpListener... which would benefit from moving all the framework code out into a separate library;

(C#/HTTP.sys) [https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/HttpListener/HttpListener/Program.cs)

</comment><comment><USER3> Interesting observation regarding the differences between the EC2 and i7 results: the platforms at the top of the EC2 benchmarks are generally MongoDB+async io java, while the ones at the top of the i7 results are MySQL+heavily threaded (go, servlet, openresty). I think it's a pretty interesting result because it shows how much your choice of available hardware has on which platform would be best - and it's not a small difference either.

If you're going for an EC2/digital ocean setup with a lot of small instances, then you want to go with something like vert.x or node or whatever - while if you are deploying directly onto bare metal high core/ram servers, you'd be better off with something that is better at handling high thread counts - something like Golang.

<comment><USER4> Go has low number of threads, usually a number of your cores or close to it. Goroutines are not threads.

<comment><USER3> If you have 8 cores, you'll get 8 threads and all your requests will be nicely distributed across the cores. This is why Go is up near the top for the i7 benchmarks. On the EC2 ones, there are far fewer cores, so the overhead of distributing them is much more pronounced. As you add more cores, you'd probably see Go pull further ahead of some of the competition. However if you're only ever going to be running Go on small instances as many people do, this advantage is actually a hindrance because of the added overhead. Not that it's necessarily a big issue or anything, it's just interesting to consider.

The point I was making is that your actual hardware and workload can turn this benchmark on its head. You may naively think you are upgrading performance by switching to a different framework/language, yet if you don't understand why each platform is getting the numbers it does you might end up rewriting your app and actually decreasing performance because of your server hardware.

</comment></comment></comment><comment><AUTHOR> I've been following these for most of the rounds, and Go has been improving impressively. Whether that's because of improvements in the language itself or a more zealous crowd sending pull requests, I don't know, but it made me want to try go, so I did. It's not as comforting as the scripting (PHP, Python, JS) languages I'm used to. Having no REPL and having to think about types takes a bit more getting used to than I thought (arrays vs slices/maps, and having no REPL). I find having a quick build script (mine's in vim) so you can compile+run and go back to the code quickly helps a lot. Also, [http://play.golang.org/](http://play.golang.org/) isn't too shabby either.

It would be fun to see this project ([https://github.com/TechEmpower/FrameworkBenchmarks](https://github.com/TechEmpower/FrameworkBenchmarks)) become more and more popular, with formidable developers squeezing out performance from their framework of choice.

<comment><USER5> Yeah but I'm kind of confused as it's my understanding Go is not a web framework so much as a language. Is this just testing how fast Go can print out the string "{message: 'Hello World'}"? Or are they testing a specific component/library in Go? I mean obviously having a language just spit out a line is going to be faster than having a fully blown framework such as Rails work through all of the query parsing, view building, etc. so it doesn't seem like a very fair or useful comparison.

<comment><USER6> It's included, alongside Go frameworks, for the same reason PHP/Ruby/ASP.NET are included -- so that you can see how much overhead the frameworks are adding compared to a minimal implementation in the language they're built on. The code behind every benchmark is available under the source code tab up top. The Go benchmark is using some JSON library, not just printing a string.

</comment></comment></comment><comment><USER7> In the past I've noticed posters on HN picking on Rails by lazily linking to these benchmarks but click over to the average latency tab and Rails looks pretty solid with an average response latency of 1.8 ms, which is not at the very top but far better than Django, which is a comparable framework and is near the bottom of the average latency table.

If anything to me this data confirms that Rails is an amazing tool because not only do you get to develop quickly, but you also get pretty good average latency (or at least the potential depending on what you add to your app in terms of 3rd party libraries). And what Rails isn't good at is throughput, which is almost never a problem for an early stage company.

Working at a startup it's a huge success if I ever have to handle a lot of connections to my app, but today and everyday, I want fast response times on a page load.

<comment><USER8> as bhauer pointed out, 500's are counted in those latency figures. If you look at the error count column, rails does miserably in everything but the "single query" test, which is not a common use case.

<comment><USER9> That looks a lot like an error in the test setup to me, it seems the rails example hasn't been updated for a while.

<comment><USER10> I was shocked by the rails results, and the massive number of errors, so I looked into it a little.

The setup they're using is an nginx serving 8 unicorn workers with a backlog of 256. They then throw requests at that with a concurrency of 20. DB pool is 256 too. It seems to me quite likely that the unicorn queue fills up very quickly and it starts rejecting requests, which could be an error. It's hard to see how a maximum of 8 workers would ever get close to the 256 available DB connections.

At first glance the unicorn setup is totally inadequate for the amount of traffic being thrown at it. The first thing to do would be massively increase both the number of workers and the backlog, otherwise this almost instantly turns into an overflowing request queue and literally millions of errors.

There's no denying, though, that this kind of request flood is not exactly rails' strong point and if you're expecting massive numbers of fairly simple requests you're probably better off with something else.

</comment></comment></comment></comment><comment><USER11> HHVM and Dart seem to be the two new fast performers in town showing impressive performance in some tests. JS has been falling off the charts compared to some of the first rounds, but still a good option performance- wise. C# keeps sucking badly. I miss Nimrod/Jester, I always wanted to see it in the top 10.

<comment><USER12> > C# keeps sucking badly

I wonder why, the Fortune 500 sites we have built are handling the load quite well.

<comment><USER13> These benchmark tests for C# are run against MySQL or PostgreSQL on Linux. In the Fortune 500 setup you're probably connecting to SQL Server or Oracle in the back end for which Microsoft and DB vendors have optimized OLE-DB drivers.

That, and JSON serialization on .Net using default MS serializer is super slow. Everyone uses JSON.NET or another faster serializer in the real world.

<comment><USER14> We have SQL Server tests but they were not included in this round. They were last in Round 7 and we'll include them again in Round 9. Here is SQL Server in Round 7:

[http://www.techempower.com/benchmarks/#section=data-r7&hw=i7...](http://www.techempower.com/benchmarks/#section=data-r7&hw=i7&test=db&b=2)

Also, we have a JSON.NET test implementation thanks to community contribution. It's test #138 and named "aspnet-jsonnet" as seen on the following chart of C# tests:

[http://www.techempower.com/benchmarks/#section=data-r8&hw=i7...](http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json&l=2)

<comment><USER15> Why weren't the SQL Server tests included? Technical limitation, something else?

<comment><USER14> Just time. We were already two weeks late on Round 8 due to a host of other issues. We'd like to do one round per month if we can get our routine ironed out.

We'll make it a priority to get them run in Round 9.

<comment><USER16> Please don't be annoyed by my following comment as I appreciate your effort and like the benchmarks very much (as a hacker - as project leader I'd prefer the "enterprise frameworks" to perform much better :-) ): You should really avoid publishing incomplete benchmarks. They don't do justice to both, the left out and the included.

<comment><USER17> > You should really avoid publishing incomplete benchmarks.

If we had followed that advice, there never would have been a round 1. I was so uncomfortable with the idea that we'd be publishing surely-flawed benchmarks of frameworks we didn't really understand that I requested to be taken off the project (prior to round 1). It was only after seeing the post- round-1 discussions and the flood of pull requests that I realized I was wrong.

These benchmarks are always going to have flaws. I think it is better for us to regularly publish our best attempt than to try for perfection.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> These results are tempting me to do my next project in a modern lightweight Java framework. No Hibernate, bloated frameworks of yore, or weird complex build and dependency management. Play is ruled out - it's Scala (Java is a second-class citizen in Play).

Maybe something that ties together things like ebean ORM, Jetty, Jersey, Jackson, Guice. Dropwizard is the right idea, but is geared towards building REST backends.

Any suggestions on a pure Java framework that has critical mass and would fit the bill?

<comment><USER18> Following up on my own question, there doesn't appear to be any that quite fit the bill right now, if we define the ideal framework as having the following characteristics:

* Java as a first-class citizen

* Strong core of basic web app functionality

* REST and Search engine friendly URLs

* Action oriented – basic framework for routes, MVC etc

* Stateless

* Good documentation, active community

If we look at action frameworks only:

* Play 2: Great except it's Scala. Ruled out.

* Spring MVC: Spring is bloated old-school Java with Hibernate. Out.

* Stripes: hasn't had a commit in over a year… which is unfortunate because it looks interesting. Out.

* Spark: appears to be a one-person project. Out.

* Google Sitebricks – ditto

* Ninja: Ditto

<comment><USER19> Grails? You just uninstall the GORM/Hibernate plugin. Controllers have to be written in Groovy, but everything else can be Java.

<comment><USER20> When Grails developers talk about the minimum Groovy that must be used instead of Java in their Grails code, it doesnt paint much of a picture for Groovy's future. I've heard Gradle devs want to add Scala as an optional build language in Gradle 2, but is Grails thinking about moving away from Groovy as well?

</comment></comment></comment></comment><comment><USER21> I like the benchmark and I appreciate the work that was put into, but Erlang is missing again.

If you don't even consider Erlang you won't miss it. But if you know it has some strengths for this kind of job and you don't mind the syntax, you'd like to see it compared to other solutions.

<comment><USER22> I have heard that string operations (and I thus suspect JSON parsing too) is slower on Erlang. Maybe it is not included as it was not built for raw speed but rather stability, hotswapping code etc?

<comment><USER21> Erlang was included in round 6 of the benchmark.

<comment><USER22> Ah thanks, under Cowboy and Elli.

</comment></comment></comment></comment><comment><USER23> None of these numbers are significant! Give me something that tries hundreds if not thousands or tens of thousands of simultaneous requests. Then we have a real benchmark that will probably push a lot of these over the edge in terms of mean latency and especially tail/peak latency.

<comment><USER24> There have been a group of us -- consistently pushing for exactly this. The maintainers of the benchmark are exceptional resistant to this idea... [https://github.com/TechEmpower/FrameworkBenchmarks/issues/49](https://github.com/TechEmpower/FrameworkBenchmarks/issues/49) ... [https://github.com/TechEmpower/FrameworkBenchmarks/issues/36](https://github.com/TechEmpower/FrameworkBenchmarks/issues/36) ... [https://github.com/TechEmpower/FrameworkBenchmarks/issues/48](https://github.com/TechEmpower/FrameworkBenchmarks/issues/48) ... there are even more issues asking for concurrency increase, just search for concurrency.

It it silly that such an rich and awesome set of benchmarks never pushes on concurrency, one of the major points of failure "in the wild" \-- more common as you become the go-between for your users and some set of APIs -- users stack up on one side, waiting connections stack up on the other.

<comment><USER14> There is a very simple reason for this: we do not yet have a test that is designed to include idling. One of the future test types [1], number 12 on the list, is designed to allow the request to idle while waiting on an external service.

Until we have such a test type, there is no value in exercising higher concurrency levels. Outside of a few frameworks that have systemic difficulty utilizing all available CPU cores, all tests are fully CPU saturated by the existing tests.

With that condition, additional concurrency would only stress-test servers' inbound request queue capacity and cause some with shorter queues to generate 500 responses. Even at our 256 concurrency (maximum for all but the plaintext test), many servers' request queues are tapped out and they cope with this by responding with 500s.

The existing tests are all about processing requests as quickly as possible and moving onto the next request. When we have a future test type that by design allows requests to idle for a period of time, higher concurrency levels will be necessary to fully saturate the CPU.

Presently, the Plaintext test spans to higher concurrency levels because the workload is utterly trivial and some frameworks are _not_ CPU constrained at 256 concurrency on our i7 hardware. As for the EC2 instances, their much smaller CPU capacity means the higher-concurrency tests are fairly moot. If you switch to the data-table for Plaintext, you can see that the higher concurrency levels are roughly equivalent to 256 concurrency on EC2.

For example, jetty-servlet on EC2 m1.large:

          256 concurrency:  51,418
        1,024 concurrency:  44,615
        4,096 concurrency:  49,903
       16,384 concurrency:  50,117

The EC2 m1.large virtual CPU cores are saturated at all tested concurrency levels.

jetty-servlet on i7:

          256 concurrency: 320,543
        1,024 concurrency: 396,285
        4,096 concurrency: 432,456
       16,384 concurrency: 448,947

The i7 CPU cores are not saturated at 256 concurrency, and reach saturation at 16,384 concurrency.

We are not against high-concurrency tests; we are just not interested in high- concurrency tests where they would add no value. We're trying to find _where the maximum capacity of frameworks is_ , not _how frameworks behave after they reach maximum capacity_. We know that they tend to send 500s after they reach maximum capacity. That's not very interesting.

All that said, once we have an environment set up that can do continuous running of the tests, I'll be more amenable to a wider variety of test variables (such as higher concurrency for already CPU-saturated test types) because the amount of time to execute a full run will no longer matter as much.

[1] [https://github.com/TechEmpower/FrameworkBenchmarks/issues/13...](https://github.com/TechEmpower/FrameworkBenchmarks/issues/133)

<comment><USER24> Don't get me wrong, I am only annoyed because of the wonderful job you guys do... it seems like such a glaring omission... because IMHO, it is where stuff often actually "falls apart" in real life... and is some of the most useful information you can possibly have.

The "trapped between APIs" scenario is one of the concurrency stressing ones, as is slow clients with large content, as is websockets. As you tests show, A LOT of frameworks do a damned fine job with serving lots of requests quickly -- I think concurrency is a far more interesting differentiator.

Glad to see that most of what I want is "on the list": 11, 12, 15, 19. Would be nice to see an additional "slow clients" test with large content -- where the limit is how fast the clients can receive server data... meaning, the limit on the server is how many clients they can stack up and handle concurrently.

<comment><USER14> Great! Please feel free to join in the discussion about future test types on the GitHub issue if you want!

Based on your comment and some others, I am presently thinking we'll want to bump up the priority of adding new tests in the upcoming rounds. Tentatively, getting the caching test in is low-hanging fruit and may be next up. But the external API test is probably next after that.

</comment></comment></comment></comment></comment><comment><USER25> This is a fascinating round for WFB, with drastically different results from round 7. I'm impressed with the strides Go has made, and also quite impressed with JRuby. I know the banking app Simple chose it as its language/runtime of choice, and they seem to leverage it well.

I'd still like to see a good showing from Django, maybe using uWSGI + Nginx. I might submit a pull request and see if I can't get that included in the next round. Gunicorn is great and incredibly easy to set up, but pales in comparison to other platforms when it comes to raw speed.

<comment><USER26> As far as Django goes, there hasn't been much tuning in general[0]. The only thing I see them doing is template caching. At the least they should be running 1.6 with persistent DB connections. Beyond that they have a lot of middleware enabled that isn't being used.

[0][https://github.com/TechEmpower/FrameworkBenchmarks/tree/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/django)

</comment></comment><comment><USER27> I'd love to see how many lines of code each test required, but it's probably impossible to do in a fair way

edit: I meant in the chart, at a glance

<comment><USER14> In fact, we have some work in progress on that front, along with the number of commits to the test implementation directory. Combined, these will give a rough idea of code length and the amount of community input/review each test has received.

<comment><USER27> Thank you for your work, it's really interesting

</comment></comment></comment><comment><USER28> I'm rather surprised to see rack-jruby up as high as it was. I discounted ruby as an option for a very high performance http service, but I guess I'd be wrong to do that. Don't get me wrong, I love ruby and I use it every day. I just didn't expect to see it in the top performance contenders list.

<comment><USER14> That is principally thanks to TorqBox, the codename for Torquebox 3, which is built on Undertow. Undertow is the web server that is scrapping with Netty and Vert.x on the plaintext tests.

Also note that the particular Rack test that performs very well is running a very small amount of Ruby code. Thanks to these improvements, however, _rails- jruby_ now consistently tops _rails-ruby_ , if only by a small amount.

See more on TorqBox: [http://torquebox.org/news/2013/12/04/torquebox-next- generati...](http://torquebox.org/news/2013/12/04/torquebox-next-generation/)

</comment></comment><comment><USER29> What always impresses me and leaves impression, is just how fast raw PHP is. At times it seems PHP has been obsoleted by new platforms, but benchmarks like these make a case for it's use. Especially because it is really easy for beginners to pick this up.

<comment><USER30> The first PHP result for the JSON test comes in at 31.7% of the performance of the top performer. PHP also occupies the bottom 3 worst slots.

<comment><USER31> That's disappointing. One thing PHP _should_ be really good at is serializing/deserializing JSON.

</comment></comment></comment><comment><USER32> I know benchmarks should be taken with a pinch of salt, but by round 5 I was totally into Scala (Scalatra), trying to write my own framework, so I could get better bang for buck from my EC2 instances, which to be honest, aren't cheap when compared to say, Digital Ocean.

Around round 6 of these benchmarks, I ditched Scala altogether (and also my framework).The reason I ditched Scala was not because of it's performance, etc. But it was because I was the only developer in my company who knew and learnt Scala after reading a couple of books (one was around 800 pages). Obviously, I needed a language that any other developer should have no problem taking over, and Scala developers are 1)expensive 2)not easy to find. Also, Slick (the database interacting code for Scala by Typesafe) wasn't mature yet.

For this reason, around Round 6, I started writing my own framework in GoLang and used it internally as an 'auxiliary framework'. I will explain more about this framework soon soon. In my company, we have about a handful of backend programmers and a couple of frontend devs. I found that GoLang was much much easier to teach my programmers, than say I could teach Scala. Please note - Scala is a brilliant functional programming language, but if you are thinking switching from Ruby/Python/etc would be easy, then you are wrong.

Now, we have a workflow that allows us to deliver as quickly as possible, but without missing out on performance - We write our entire V1 in Rails. We implement all the UI/frontend related code and then port it to our GoLang framework. We have an internal generator where we just feed our rails app, and the code for our framework is just 'ported'/generated on the fly based on our framework and we just deploy it. So far, our productivity is slightly lost while handling the type conversions, bugs, etc. But it's totally worth it. Go outperforms Rails by a huge margin. I noticed that using something like Puma helps a lot, but it still is no way comparable to our GoLang framework.

As for our framework, it's just pretty simple - Just organize all the files as you would in a Rails application (Models/Views/Controllers/Config) and everything just works without much performance hiccups. We use Gorilla components for stuff like routing and cookies. The rest of the stuff is slightly adapted from other frameworks (like Martini).

All in all, I love the ability to have JVM like performance with the productivity of Ruby with a language like GoLang. And this round 8 benchmark is nothing short of impressive. If you haven't tried GoLang yet, you should try writing your own framework, not only do you learn about all the trade-offs for the 'magic' that rails makes under the hood, you also learn about some new stuff and thus become a better programmer.

I think GoLang is pretty impressive if someone as average as me can even write a framework like Rails, except for better performance. Give it a try, people, you won't be disappointed.

<comment><USER33> The language is called "Go", not "GoLang". Just pointing this out, not because I'm trying to be smart or anything -- it just irks me to read "GoLang".

<comment><USER34> You get into the habit of calling it golang because googling for "go" issues isn't very useful. Golang is the nickname that is (or at least was last time I did something in go) what the community tends to use for SO and blog posts. Its sort of become the language's unofficial name.

Its really frustrating that a search engine company would use such an unsearchable name for a new product.

<comment><USER35> > what the community tends to use for SO and blog posts

As a tag in the tag section, not as a name in prose.

</comment></comment></comment></comment><comment><USER36> Looks like erlang frameworks are not represented...

<comment><USER37> We have been having trouble with Erlang frameworks since before Round 7. Unfortunately, I was still getting up to speed and improving the suite mostly for Round 7/8 and did not get to fix this yet. I do have it topping my todo list for round 9, with the hope being to get them all back in and working soon.

</comment></comment><comment><USER38> Cppsp (top of the i7 charts) is some mad science

[http://xa.us.to/cppsp/index.cppsp](http://xa.us.to/cppsp/index.cppsp)

</comment><comment><USER39> I started a conversation in #python on freenode and people were a bit outraged by the way frameworks are compared. Some open Database connections and never close them (example: GO) and others open and close DB connections for every request (example: flask). The guys at techempowered should review every pull request and check if it is implemented in a fair way.

</comment><comment><USER40> I find the JSON benchmark misleading a bit. I posted this before, but I'll say it again: JSON serialization in Go is slow (2.5x slower than Node.js for example [1]). The web server, however, is very fast. When they measure webserver+json, Go wins because of its webserver, not because it serializes JSON faster. If you want to parse a lot of JSON objects with 1 request (or 1 script), or if you have a large JSON object to parse, Node.js will outperform Go.

That said, I rewrote my app in Go and I'm very happy with the performance, stability and testability. The recently announced go 'cover' tool is very useful and a breeze to use.

[1] Here are my benchmarks: [https://docs.google.com/spreadsheet/ccc?key=0AhlslT1P32MzdGR...](https://docs.google.com/spreadsheet/ccc?key=0AhlslT1P32MzdGREdGl1X0pHWmU0d2xLcHNjbE9Yc0E&usp=drive_web#gid=0) (includes codepad.org links to the source for each benchmark)

<comment><USER41> I optimized the Go JSON serialization in Go 1.2. See [https://code.google.com/p/go/source/detail?r=5a51d54e34bb](https://code.google.com/p/go/source/detail?r=5a51d54e34bb) ... it went from 30% to 500% faster. It uses much less stack space now, so the hot stack splits are no longer an issue (also Go defaults to 8KB stacks for new goroutines now).

</comment></comment><comment><USER42> Regarding symfony2 at the bottom - I submitted a simple pull request to try and fix some issues with the setup, but it's been sitting and sitting there...

[https://github.com/TechEmpower/FrameworkBenchmarks/pull/650](https://github.com/TechEmpower/FrameworkBenchmarks/pull/650)

<comment><USER14> Hi mmucklo. We'll get that merged in for Round 9!

</comment></comment><comment><USER43> Benchmarks are fun but I'll stick with rails and its simple ways of letting you cache data.

I'm ok with getting out the door response times of 8-15ms while serving 20,000 unique hits a day on a $5/month VPS. The server does not even break a sweat too and it's doing more than serving the app too.

<comment><USER44> What kind of response times do you get on a cache miss though?

<comment><USER43> 80ms-350ms is normal under typical traffic conditions. It depends on the complexity of the page.

That's still not terrible though and it could easily improve by massive amounts with a stronger server. I have not gone crazy with profiling either. Just using fairly basic cache blocks when applicable.

</comment></comment></comment><comment><USER45> It's amazing how well a young language like Dart and its frameworks performs in the multi-query benchmarks. There's still so much more optimization to go; at this stage it feels optimistically like the sky is the limit!

</comment><comment><USER46> Whats up with the number of Rails errors?

</comment><comment><USER47> Anybody could explain what gemini is ? I've been on the eclipse project home, and i really don't see the link with a web framework benchmark.

<comment><USER48> Gemini is the private Java framework Techempower uses on their client projects. I believe questions regarding its performance relative to various open source and enterprise JVM frameworks inspired the first Techempower benchmarks.

[http://www.techempower.com/blog/2013/03/28/frameworks- round-...](http://www.techempower.com/blog/2013/03/28/frameworks- round-1/#section=questions)

</comment></comment><comment><USER49> Am I the only one shocked to see Grails beat Spring? I mean, I think it's awesome, but part of me wonders if something went awry in the Spring code. I know a last minute (breaking) change kept Grails out of Round 7, so perhaps whatever that was made a big impact.

<comment><USER50> Spring has dropped quite dramatically in most of the tests, I wonder what changed.

<comment><USER14> The following was the last notable PR processed for Spring: [https://github.com/TechEmpower/FrameworkBenchmarks/pull/606](https://github.com/TechEmpower/FrameworkBenchmarks/pull/606)

</comment></comment></comment><comment><USER51> Interesting to see go moving up there.

Curious - any reason why you guys don't have ASP.NET tests in Windows with SQL Server? I fiddled with the filters and found none.

Update: Never mind. I see it now. You don't have Windows tests on EC2.

</comment><comment><USER52> I'm curious why ServiceStack.net has fall out so badly, since their own benchmarks shows a lot higher performance than ASP.NET web applications.

</comment><comment><USER53> I cannot find Flask in the list. Any specific reason?

<comment><USER54> The submitters didn't create a JSON test, but all the other tests are present. Switch to the Plaintext test to see Flask.

</comment></comment><comment><USER55> dumb question: are we sure these things are doing the same thing?

AFAICT some of the larger frameworks by default do a bunch of stuff (csrf and ip spoof checks, session management, etag generation based on content etc) that simpler solutions don't, but this things can usually be turned off.

<comment><USER56> Exactly the same things? No, of course not. The non-framework code is the same, but the framework specific code (and features/functions) is going to be very very different. A lot of pull requests have been sent that turn off certain features (like unnecessary django middleware).

Barebones frameworks of the same language are generally going to out perform heavier frameworks. Feature count/matrixes are not taken into consideration for these benchmarks.

<comment><USER55> I'm sorry, I do not understand how this was obvious, I'll see if I can send pull requests.

Of course barebones platforms will be faster, but doing unnecessary work is a different thing.

<comment><USER56> It's more obvious if you read the blog posts linked to each of the rounds (but not this one), since they describe some of the changes that were made to each framework test to bring them closer to parity.

</comment></comment></comment></comment><comment><USER57> I'm curious as to why Finagle has 0's across the board for everything.

</comment><comment><USER58> I'm really surprised with ASP.NET/C# results :-S

<comment><USER59> Also note that those tests have tons of errors, so they're probably not representative.

</comment></comment><comment><USER60> Why is Python doing so much worse than PHP?

</comment><comment><USER61> which version of go is used?

<comment><USER62> Go 1.2rc3

</comment></comment><comment><USER63> i'm interested in who is financing this benchmarks. really sorry, but for me it looks like a new way of doing seo marketing

<comment><USER14> This comment makes me dream of putting together an Indiegogo campaign for the project so that we can stop using our workstations and finally get some proper 10 gigabit Ethernet hardware. It sure would be nice if the JSON and Plaintext tests weren't network-limited.</comment></comment>


Ask HN: Which other large tech companies should Yahoo buy? - <AUTHOR>

Let's fantasize, which we properties should the large tech (Google, Facebook, Microsoft, Amazon) companies buy next? Yahoo is on a buying spree and will do many more, so the competitors should prepare as well. Yelp? Viber? Pinterest? Path?
From the mega deals, either Apple, Microsoft or Google should try to buy Facebook and not settle for Twitter.
On enterprise front, there is potential for someone to start acquiring many smaller B2B tools and integrate just their salesforces, while keeping the services independent. <comment><USER2> Hindsight bias: they should buy more chinese / asian e-commerce sites (like Alibaba).

</comment><comment><USER3> It should buy Yahoo.</comment>


Ask HN: Think Obama would approve a wireless network cloud owned by the people? - <AUTHOR>

I'm talking about storage space, wireless receivers in every home. Wireless receivers for every individual. Data centers in every community for local storage of bit torrents.
With a $700 Billion stimulus package, we could hire 1,000 of the best engineers in the world. We could open source the software.  We could spend lots on hardware prototypes.
We could wirelessly enable nearly 50,000 miles of railroad, 20,000 miles of interstate. Build out a local CDN for every community of 10,000 or more. All wirelessly.  The wired infrastructure could be used for Fiber, there's lots of fiber.
Why should we leave something so important as knowledge in the hands of a few gate keepers?
Imagine how much we could learn if all the public research in the world, funded by public dollars was in the hands of the public?  All that data.  All those aggregates.
We could do a /lot/ of work and I can't help but think our productivity would improve and we'd innovate more just because we have more knowledge available to us.
We wouldn't even need $700 Billion.  Imagine what you could do with just $10 Million.
With $10 million you could find enough people to design a robotic rail system that would exchange spent servers or disks.  You could build remote monitoring stations. It could all be automated.
The people own the network, so they could maintain a relay in their homes or their communities.  How many people would /volunteer/ for something like this if the funds were there to complete the project?
Something like this is bigger than any one country. It's for all of us here on the Internet and all of those who aren't on it yet.  It should integrate with televisions and emergency broadcast systems.
It could be really really good and it would be a real /investment/ in our country and our world. <comment><USER2> That would be _awesome_. If only those with the dough felt the same way...

Granted, there are hurdles -- concern for theft, infrastructure for loss/repair/upgrades, etc. But it would be incredibly exciting nonetheless.

<comment><AUTHOR> Well, I think if we can keep "bad" people inside prisons, then surely we can keep "bad" people outside a solid concrete block with no windows and nothing inside that is really useful outside.

We don't worry about people stealing a chunk of sidewalk for example. They do steal signs and road equipment and reprogram emergency signs, etc.

But if we look around the world, the benevolence that arises from innovative products is almost always greater than the destruction it causes. Nuclear War vs. Nuclear Energy for example.

This would be a project as owned and loved by the people as Hoover Dam or the Interstate System or Golden Gate Bridge. A wireless cloud built by the people, for the people, has the potential to make our lives better, collectively, than any of those indivdual projects. In comparison, those projects benefitted relatively few in the big scheme of things, but a public cloud would benefit all and we would make sure it would by providing access for all.

I think at this point, our ability to provide the technology services is increasing faster than producers' ability to fill it up. There is enough content already to entertain most of us for many, many lifetimes. We could record every second of our life on two video cameras every second we are alive and still have plenty of space left over...</comment></comment>


Hacking Education - <AUTHOR> http://www.unionsquareventures.com/2009/05/hacking_education.html

<comment><USER2> Here's a question for you guys: If there was an easy platform to teach others, do you think there would be enough collective interest in putting together lessons/courses on programming?

We at www.nixty.com are building out this platform and there are obvious areas where there will be pick up (homeschooling, skill development [ie., photoshop] etc.), but for a while now I've been wondering if hackers would actually collaborate and create a sort of Hackers U.

There is a guy who frequently posts/links on HN to different lessons on learning python and other languages. I think that is great, so it is nice to see some initial movement in this area.

<comment><USER3> I think that's the idea behind answers.com ask.com and instructables.com and wikipedia. People have a lot of free time, hackers included. I think a central hub where senior hackers can teach younger hackers is a noble and profitable idea.

So receiving content for free will be the easy part.

The hard part will be sorting through the 50 entries for how to start programming in Python and the 5000 entries for best text editors to use.

<comment><USER2> Yes, there definitely has to be an integral community moderated system, so that the best content rises.

<comment><USER3> incidentally, isn't that Joel Spolsky's Stack Overflow?? Although the emphasis on SO is answering questions, as opposed to instruction material on how to learn a certain technology.

</comment></comment></comment></comment><comment><USER4> For what it's worth, Squidoo is about to release a feature which makes it very easy to create the kind of lens that Brad links to at the top of the post. So far I've made lenses like this on three conferences by hand:

<http://www.squidoo.com/hacking_education>

<http://www.squidoo.com/the99percent>

<http://www.squidoo.com/blogwell-ny-2009>

They each took 3+ hours, but with the new module it should be quick and easy. The conference organizers love these things, so once the new module launches if there are any conferences you want to go to then let me know and I'll try to get you in for free if you agree to make one for them. I think we'll run it like wikinews where you have to make one or two good quality ones and then we'll give you a press pass. (I still need to run this by the Squidoo staff again, so no promises, but I'll try.)

Of course you won't be able to submit them to the HN queue because Squidoo lenses are still banned, but such is life.

</comment><comment><USER5> A real education involves playful tinkering. The example of the AMV creator brings this to like. Also, I really only grokked Assembly Language after I discovered Core Wars.

<comment><USER3> Thanks for introducing me to Core Wars! Always wanted to learn assembly, so an abstracted version in a game format is exactly what I need to get started!

Any such initiatives for Lisp.....?

<comment><USER5> Look up Koza's work with Genetic Algorithms. There are lots of little "game worlds" about the same complexity as Core Wars.

</comment></comment></comment><comment><USER6> Here is the related post from yesterday: <http://news.ycombinator.com/item?id=607234></comment>


Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors (1991) [pdf] - <AUTHOR> https://www.cs.rice.edu/~johnmc/papers/tocs91.pdf <comment><AUTHOR> I find it quite impressive how MCS and ticket locks are still very relevant techniques; and not actually that widely used...</comment>


Interviewstreet powers Department of Labor's Equalpayapp challenge - <AUTHOR> http://equalpayapp.interviewstreet.com

<comment><USER2> Hi all. I am competing to the challenge. The interviestreet team is setting up Amazon EC2 virtual machines for the partecipants; I gave them my pubkey, but the thing looks somehow broken (couldn't login to my instance). Apart logging bots, nobody's on #codesprint (freenode), and the organizers aren't answering mails (yet). Anybody in the same situation?

EDIT: just got a reply from the organizers, I am now fully connected to the contest. +1 for support (sorry I panicked a bit quickly)</comment>


Going to TechCrunch Disrupt NY This Weekend? Find Your APIs with API Harmony - <AUTHOR> http://www.apiful.io/intro/2016/05/06/api-harmony-hackathon.html <comment><USER2> I only need one API for TechCrunch: [https://apiharmony- open.mybluemix.net/apis/550ad2f16170695ca...](https://apiharmony- open.mybluemix.net/apis/550ad2f16170695ca40b0000)</comment>


Show HN: Intelligent news summaries - <AUTHOR> http://www.klipperapp.com

<comment><USER2> Not bad, but you should hire a good ui designer.. this all is a pain. Also, when I look at item summary ([http://klipperapp.com/#item=2b6701a481a877ee59abc40cfb9f9f61](http://klipperapp.com/#item=2b6701a481a877ee59abc40cfb9f9f61)) - there are no breaks and paragraphs.. Very hard to read.

Other thing is speed. I guess that you're fetching feeds for every user request. You should think about caching and return precached results only or server will die with big amount of visitors.

<comment><USER3> What's the best way to hire a UI guy/gal to jazz up a site? Where to find them?

<comment><USER4> You can look on [https://dribbble.com/](https://dribbble.com/) . They have a 'search by skills' feature here [https://dribbble.com/skills](https://dribbble.com/skills)

</comment></comment></comment><comment><USER5> Kinda looks like this: [https://news.ycombinator.com/item?id=6790511](https://news.ycombinator.com/item?id=6790511)

<comment><USER6> Sure, there have been a few apps and new algos in this space over the recent times. Though, we firmly feel that we have something that performs better and potentially open to more improvements due to the underlying algo!</comment></comment>


Free mobile app analytics & demographics from Quantcast - <AUTHOR> https://www.quantcast.com/inside-quantcast/2013/08/quantcast-introduces-audience-demographics-for-mobile-apps/

<comment><USER2> Nice. Goodreads data: [https://www.quantcast.com/p-0dUe_kJAjvkoY](https://www.quantcast.com/p-0dUe_kJAjvkoY)

</comment><comment><USER3> How does this differ from what Flurry provides?

<comment><USER4> Quantcast is a direct measurement provider for more accurate mobile app demographics and provides six categories of demographic segments: Household composition, Income, ethnicity and education, while Flurry has only age, gender and interests.

</comment></comment><comment><USER5> Very cool!</comment>


Why Johnny can't code - <AUTHOR> http://www.salon.com/technology/feature/2006/09/14/basic <comment><USER2> Article has many valid points, but pushes them too far, as such articles are prone to do.

1) True, today's kids don't have the fly by the seat of your pants relationship to programming (I distinctly remember a book called "What You can do with 1K", the Sinclair Z-80 had 1K of memory!). However they have other, powerful tools. Consider processing, Alice (<http://www.alice.org/>), and, of course Scratch, among many others.

2) I agree more with the points about hardware: today's kids have less of a relationship with the hardware, I feel. But there are many cheap and powerful kits (Arduino, Beagle, etc.) that can change that.

3) The WWII techie guys that are mentioned probably lamented in _their_ time that the kids don't understand technical stuff anymore but just do BASIC coding.

<comment><USER3> I disagree that kids these days are spoiled by large platforms. I've been a member of the TI graphing calculator programming community for nearly ten years now, and some of the people I work with are probably the best assembly hackers you'll ever meet.

We have two main platforms we work with: the z80 series (TI-73/81/82/83/85/86 numbered calculators) and the 68k series calculators (TI-89/92 numbered calculators). Z80-based calculators run on the fabled z80 processor, the very same 8-bit ZiLOG processor from 1976 with 64k of address space that ran inside the Sinclair ZX Spectrum.

People have written car racing simulators (<http://www.ticalc.org/archives/files/fileinfo/391/39185.html>), and run assembly code in otherwise inaccessible platforms using buffer overruns they had to type in _by hand_ ([http://www.ticalc.org/archives/news/articles/14/145/145220.h...](http://www.ticalc.org/archives/news/articles/14/145/145220.html)). We factored all of TI's operating system signing keys, something you may have heard of (<http://news.ycombinator.com/item?id=909990>). Some other people reverse-engineered an undocumented USB controller and wrote a nearly complete USB stack for it, including support for flash drives ([http://www.ticalc.org/archives/news/articles/13/139/139572.h...](http://www.ticalc.org/archives/news/articles/13/139/139572.html)).

These devices have a BASIC variant installed on them, which gives students a taste of what it's like to see your work running quickly. I first learned to program on a graphing calculator; it's great to start out because you can write code and run it right away on the school bus.

The community doesn't move incredibly fast, as it's fairly small. But walk into any high school in America, and you'll find someone playing Breakout on their TI-83+. Somewhere in that high school there's going to be someone, perhaps one in a hundred, who has written a BASIC program. A fraction of these will want to learn how to write assembly programs, because they want a first- person shooter on their calculator ([http://www.ticalc.org/archives/news/articles/14/143/143227.h...](http://www.ticalc.org/archives/news/articles/14/143/143227.html)). And then they'll wind up shoving PAL out the linkport of the thing ([http://www.ticalc.org/archives/news/articles/14/143/143122.h...](http://www.ticalc.org/archives/news/articles/14/143/143122.html)).

Disclosures: I'm a ticalc.org staff member. Many of these people are my friends. I was one of the people TI sent a DMCA notice to about the signing keys. Right now I'm working on a calculator-hosted calculator emulator (<http://github.com/chronomex/680>).

</comment></comment><comment><USER4> I think that kids have been finding their own ways into programming.

I used to play Warcraft III, a game that has players play on precreated levels with each other which came with a pretty open level editor. My first 'coding' experience was here, with a checklist of possible 'events', 'conditions' and 'actions', that acted as functions for my levels. My own interest came with my excitement in playing my own level in my favorite game. I think that kids will find their own way into programming following other computer related interests.

<comment><USER5> I think this is a really good point, and the game mod tools have only become more sophisticated. Have you by any chance seen Tetris recreated inside of the StarCraft 2 level editor? <http://www.youtube.com/watch?v=gO2kZ6e9JUI>

I can only imagine how popular a video game modding class would be in school.

</comment></comment><comment><USER6> I thought this quote was amusingly relevant.

 _"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."_ \- Edsger Wybe Dijkstra

<comment><USER7> Ha, ha, ha. This has an element of truth to it, but does that mean we can't get kids into programming? Or can they learn C/Perl/etc at the same way?

I got started in basic, then assembly, C, Ada, Java, etc... So there is hope, or maybe I am a lost cause.

</comment></comment><comment><USER8> Python. Sure, it's not meant to be a "learning language", however, one can simply ignore the "hard" stuff (e.g. classes, separate modules), and focus on the easy stuff (e.g. the fact that it is executable pseudocode)

</comment><comment><USER9> I understand what the author is trying to convey, but the world has moved on. Given that it has, BASIC has been replaced with other technologies.

Personally, my wife and I take our children education into our own hands and CS has been part of all of there curriculum.

For the girls we use Alice <http://www.alice.org/kelleher/storytelling/> and for the boys we use Mindstorm <http://mindstorms.lego.com/en-us/Default.aspx> , they are as successful, if not more successful at providing a simple yet compelling programming environment that make the children want to embrace them. As well, Flash is a good environment that can give a kid training wheels while they learn ever increasing complexity.

<comment><USER10> At what age do you think Alice and Mindstorm are usable? The main thing that catches my attention on Alice is it is targeted at High School or College level, but the article talks about his 11 year old son.

Where are the programming tools for 6 to 8 year olds?

(I started in BASIC that early, but then again I was programming C by 11, so I'm probably an exception...)

</comment></comment><comment><USER11> A Linux workstation is a programming utopia so far beyond what I imagined when I was a teen.

I loved BASIC on the C64 too, but later on, I was looking at spending $350 to buy a C compiler for my Amiga back in 1991. I learned what I could of AmigaShell, ARexx, and AmigaVision, but it was a bit limited. These days, you can be writing C, C++, Python, C#, JavaScript, PHP, Flash/ActionScript and so on for free.

In Linux or MacOS, most of these are preinstalled. As far as I know, Windows comes with no programming tools installed, other than a browser, and that is indeed a major oversight.

</comment><comment><USER12> I remember teaching myself some BASIC in late primary / early high school. But I passed on studying it properly because the computer course at high school was notoriously weighted towards masses of work and poor input into the end of school results [1]. So I missed the boat to bigger and better languages (for now at least).

Actually, on reflection that's not entirely true. In the past few years I've found work-related opportunities to teach myself some basic HTML. And iirc, the canonical 'How to become a Hacker' document [2] encourages the use of HTML as just what the OP is asking for - a basic language that teaches kids how things fit together. Sure, it's more complicated than BASIC, but in the Facebook era being the kid at (primary) school who can build his own webpage is perhaps not dissimilar to me being the kid at school who could build games with curse words in them.

No Commodore 64 required.

[1] My state's school system weighed the grades you received in any course against the overall skills of that course cohort when compared to the rest of the state on a standardised test. So I received much higher results from taking Drama (full of very smart kids at my school) than I would have taking IPT (full of average students, and harder workload). No comment on which cohort may now be more successful, but that was the choice at the time. [2] <http://catb.org/~esr/faqs/hacker-howto.html>

</comment><comment><USER13> Who cares that you boot up to BASIC. Kids can now make a website and share it with THE PLANET.

However, if anything is hurting the desire to code it is not modern OS but the move of the gaming industry toward consoles. With PC games kids can get in to games they love and with actual code extend them and again, share them with the planet. They won't be doing this if they're spending their day playing XBOX games instead of PC games.

</comment><comment><USER14> Perhaps nowadays kids progress: HTML -> JavaScript -> PHP?

What is missing from programming languages nowadays is a really easy way to do graphics and games. But at least HTML and JS give you fast feedback, where each line you write has a visual result. (And yes, HTML is not a programming language, but it is a great starting point.)

What I miss are the books and magazines with code listings, which I patiently typed in. :)

<comment><USER11> I agree, the web is a much more rich programming environment than BASIC ever was or will be. It's high level, quick to pick up, rewarding, and can be as simple or complex as you want to make it.

I reckon the code blogs have replaced the books and magazines, and I GUESS if you don't want to download a file or cut and paste you can type it in!

</comment></comment><comment><USER15> Here is a recent HN discussion of the same article: <http://news.ycombinator.com/item?id=1448424>

</comment><comment><USER16> I'd like to point out that a BASIC interpreter sufficient for his needs could be written with fewer LOC than the article.

I learned on BASIC myself, but it's just so tedious. If I had to guide kids on programming today, I'd look at scheme or smalltalk. Probably the latter first.

<comment><USER17> I've never used it, but Squeak is a Smalltalk designed for precisely this use case: an emphasis on quick graphical feedback and learning by the young.

<http://www.squeak.org/About/>

<comment><USER16> Yeah, it was the one I was thinking of myself. The last time I used it, however, the graphics just looked _old_. Maybe it was just all the colors :-)

</comment></comment></comment><comment><USER18> Every Mac has Python, shell scripting, JavaScript, etc. Windows has shell scripting too.

Johnny has it way easier today than in 1983, let me assure you. Johnny has the Web. Johnny needs to get off my d*mn lawn.

</comment><comment><USER19> If your on Windows, just install AutoIt. It has the BASIC syntax and you can even do cool things like make the computer beep or open the optical drive with one easy command. Good intro language.</comment>


Fixing an old iPod and Cupertino's repairability problem - <AUTHOR> http://asselinpaul.calepin.co/fixing-an-old-ipod-and-cupertinos-repairability-problem.html

<comment><USER2> Apple's goal is to make sleek, elegant, easy to use products. Repairability hurts every one of those goals. Products that are easy to repair have to make concessions to allow users to access the innards with ordinary tools. Apple won't stand for those concessions.

<comment><AUTHOR> well I believe this is not true. Smart product design can be both. iPod Video is a sleek device yet not too hard to open. Why did Apple move to pentalobe screws? To make it harder for us people to reapir the products. It's a mentality and stating that this hurts the design of a device is simply an excuse for this. I'd like to know how ease of repair makes a product harder to use? If we look at the newer HP all-in-one, we can see that they are well designed sleek and easy to use, yet they get 10/10 for repairability on iFixit.

I hope that this is constructive criticism as my aim is not to provoque you. We're all friends here.</comment></comment>


A 23M-year record of low atmospheric carbon dioxide [pdf] - <AUTHOR> https://pubs.geoscienceworld.org/geology/article-pdf/doi/10.1130/G47681.1/5051437/g47681.pdf <comment><AUTHOR> From abstract:

These data suggest present-day CO2 (412 ppmv) exceeds the highest levels that Earth experienced at least since the Miocene, further highlighting the present-day disruption of long-established CO2 trends within Earth's atmosphere.</comment>


Http 2.0 specs - September 2013 - <AUTHOR> http://http2.github.io/http2-spec/

<comment><USER2> I see all the arguments for a need to optimize HTTP, but by going binary and increasing the complexity like we're seeing here, I think we lose something valuable.

A huge part of what I know I owe to tinkering with protocols in the late 90ies. Being able to send an Email using Telnet on port 25 was one hell of an eye-opener to me. But even today - being able to quickly debug a HTTP thing using telnet is incredibly handy.

Yeah. 1.1 will remain and with it some of the debugability. But then what you are deubgging quickly is not what browsers are going to see. Yes. You can add more tools to the mix to help you, but I still think we lose something (quite like going to a binary syslog format, btw).

Is the speed increase to gain from HTTP/2.0 really worth the loss of discoverability and the increase of complexity? It's my feeling that the connections are getting faster more quickly than optimizing HTTP would gain us.

If HTTP over TCP is inefficient, can't we try to "fix" TCP? Yeah - that'll be really hard, but so will be to get the Upgrade-header to work in order to do HTTP/2.0 over port 80. Too much stuff is interfering with HTTP these days (maybe also a result of the high readability of the current protocol - I don't know).

I wonder whether these aspects are part of the discussion currently happening or whether this feeling of mine is just an effect of me getting old.

<comment><USER3> It's not that involved to decode a standard binary protocol. At least not involved enough to justify keeping every single user on the web on a less efficient implementation only to facilitate casual debugging with plain text tools.

I'd compare that to gziping your logs and using zgrep and zcat and z<tool>. Sure it's a bit more involved but it's definitely worth the savings to gzip everything.</comment></comment>


Ask HN: Which browser do you use for development? - <AUTHOR> Which browser along with what plugins/extensions do you use for your web development environment?<p>And regarding the browser, do you consider it the superior option? Or is it the plugins/extensions that cause you to use it? <comment><USER2> I mainly use Chrome (technically Chromium) when developing web pages, but I verify functionality works with Firefox. While the built-in developer tools are about equal, in Chrome it's much easier to enable/disable request logging. In Firefox you have to jump to a different settings pane which is a pain.

However, I use Firefox for non-development because it uses less RAM, and at the time (a few years ago) Adblock Plus blocked ads in Firefox before the page loaded, but in Chrome it only blocked them after the page loaded. I use uBlock Origin with Firefox now, but adblocking may have improved with Chrome since I last tested it.

</comment><comment><USER3> I use Chrome most of the time. It's devtools just can't be beat at the moment.

I'm excited to hear Mozilla is getting back on modernizing Firefox though. It'll be nice to have options again.

</comment><comment><USER4> I use Chrome. Here i can be sure to always have support for cutting-edge web standards, the developer tools are amazing and for anything else i have a great extension-ecosystem.</comment>


Apple admits to using child labour to build iPhone x (2017) - <AUTHOR> https://www.channelnews.com.au/apple-admits-to-using-child-labour-to-build-iphone-x/ <comment><USER2> > child labour

> The UK Financial Times reported said that students, aged between 17-19, were > being forced by their school to participate in the internship.</comment>


Nerdy Boys, Fat Girls, and Access to Sex - <AUTHOR> https://medium.com/@SexCoachSarah/nerdy-boys-fat-girls-and-access-to-sex-a4893f13a61a <comment><USER2> I disagree that nerd fears are different than fat girl fears. The article lists the following as fat girl fears:

>fear of being (physically) unattractive and fear of unemotional relationships (often linked with a third element — fear of being assertive).

These are usually the same fears that nerds have. Nerds are afraid of being assertive because from their experiences in the past, being assertive gets them mocked or shut down. Nerds are constantly reminded how they are physically unattractive. The article mentions physical inadequacy but this is really just the same as physical unattractiveness.

>If you believe that you're physically inadequate and therefore you might fail in approaching a potential dating partner, the disappointed emotions that can arise from that are precisely the kind that would have gotten your ass handed to you when you were younger. The entire process could open you to ridicule (think the famous quote about men being afraid that women will laugh at them) and so you don't even try. You stay stuck.

I think the article fails to acknowledge here that nerdy men do actually approach women and women actually do laugh at them. The problem isn't a lack of approaching, it's a lack of attractiveness. For unattractive nerdy men, it's not just a "belief" that they are unattractive, they actually are unattractive.

<comment><USER3> There is also the fear of "nerdy" (or just insecure) men of coming across as creepy, or inappropriate, or harassing. As a result, they are not assertive enough. It's more than just fear of being rejected.

I don't think this has an exact equivalent for women - while women can also be afraid of coming on too strong, I think the fear behind it is different.

(Also, many confident men seem to be entirely devoid of this kind of fear, and as a result unfortunately really act creepily or become "pick-up-artists"... but that is a different topic.)

</comment></comment><comment><USER4> the article includes some interesting insights but doesnt develop on them IMO.

Women seem to own the social kingdom well men own the financial/corporate/professional one _generally_. Just as in the workforce women can be passed over with equal qualifications for a job, men of equal "attractiveness" have a much more difficult time getting sex. Obviously, industry and society vary but i think this is the same issue: societal roles.

Feminism in its new age way seems to demand equality in the workforce, inequality here IMO stems from historical roles. I think woman have as much trouble breaking into top roles as men do on getting an attractive date on tinder.

I see these roles changing and the anecdotal evidence suggests this but we will see.

</comment><comment><USER5> Pretty roundabout way of saying that unattractive people feel worthless because they don't have as much value to bring to dating because people don't want to have sex with them.

Past that trivially obvious statement, I'm not sure what the greater insight is supposed to be.

<comment><USER6> I don't think that's the thrust of the article. The perspective here seems to be a Marxian interpretation of attractiveness as the "socially necessary labor" that confers its value in the relationship economy, rather than something that's correlated with utility.</comment></comment>


E3: Microsoft's next Xbox: 8K graphics, SSD storage, and ray-tracing for 2020 - <AUTHOR> https://www.theverge.com/2019/6/9/18656608/microsoft-new-xbox-hardware-specs-price-release-date-e3-2019 <comment><USER3> 8k gaming? At 120 fps?

They should try to get games running at 120 fps on ultra settings at 1440p before 4k. Leave 8k to the next generation or maybe the one beyond that. Even the most powerful desktop GPUs struggle with 4k.

An RTX 2080 Ti gets 43 fps in AC Odyssey at 4k, 51 in AC Unity, 82 in Battlefield 1, 49 in Shadow of the Tomb Raider, 63 in The Witcher 3 etc.[0]

The numbers will change depending in who's benchmarking them, but they're not going to change much. This is the fastest GPU you can get right now and it costs over a thousand dollars, yet it still can't run many games at 4k 60 fps. It even struggles at 1440p in some. Yet this press announcement says that in a year to a year and a half there will be a console that will cost half as much as this GPU and it will bring many times higher graphical performance? I find it hard to believe.

[0] [https://www.eurogamer.net/articles/digitalfoundry-2019-05-07...](https://www.eurogamer.net/articles/digitalfoundry-2019-05-07-nvidia- geforce-rtx-2080-ti-benchmarks-7001)

<comment><USER4> I find this kind of comment strange in a community of self professed hackers :)

8k 120fps HDR is just the specification of the hardware. The hardware supports an 8k framebuffer and can output it to the display at 120fps. Whether or not you will choose to do that depends on what you are trying to achieve with the available GPU cycles. It's exactly the same on current consoles (and PC really). Maybe Forza 19 will choose to render simpler graphics at 8k 120fps, but Witcher 5 will decide to run at 4k but use raytracing and dynamic global illumination (these games may or may not exist :).

There are games that run at 4k/60 with HDR on XBox One X (I worked on one), and there are games that choose not to in order to do something a bit more advanced.

No one is saying that all games will run at 8k/120, just as no one is saying that all games will run at 8k/60 on the RTX 2080 Ti even though its possible to do.

<comment><USER5> In theory I can run with 120 miles/hour but my muscles limit me to 10 miles/hour. So how fast can I run?

<comment><USER6> I think your tendons would explode from forces of acceleration at some fraction well below 120mph.

</comment></comment></comment></comment><comment><USER7> It's amusing that both the Xbox and PS5 stories are leading with "8K gaming", which is of course empty Big Number nonsense that's not going to materialize in real games.

I remember being a wide-eyed teenager that would get hyped up into a fever pitch by this kind of game system marketing.

<comment><USER8> Even if it did, do people want 8k? I haven't been pining for more than 1080p with my Xbox.

Why isn't HDR color moving very fast? I feel like I'd rather have more color resolution than spatial resolution given the choice...

<comment><USER9> > Why isn't HDR color moving very fast?

My theory on tech adoption is that the advantages of some new piece of tech have to be _immediately_ obvious to the average person and to such a large degree that they would actually care. E.g.:

* Records -> Tapes: smaller, portable.

* Tapes -> CDs: obvious sound quality improvements, never degrades, don't have to rewind/fast-forward.

* CDs -> iPod et al: "you can carry hundreds of CDs in your pocket."

* VHS -> DVD: just say "it does for movies what CDs did for music" and that's all it takes to convince someone of the benefits.

* DVD -> Blu-ray: now it gets a little dicier. Yeah it's an obvious jump in quality but a lot of people just don't care.

* Blu-ray -> UHD (just the resolution aspect): the average consumer isn't the most discriminating in terms of source quality, and even to someone who really cares it can be a bit tough to tell the difference (talking about movie transfers here, in particular). Generally the biggest benefit I've found here when going from Blu-ray to UHD is when the movie's existing Blu-ray transfer is 10+ years old and just terrible. The fact that the studio simply did a new scan is what brings out the improvement, and it would look pretty damn good on Blu-ray (just look at any Blu-ray sourced from a 4K scan).

* SDR -> HDR: "the colors are better, man." Forget trying to sell this to your average consumer, even if they notice they won't care.

4K -> 8K? It's really out there as far as diminishing returns goes. It's not going to be embraced in any meaningful way by the average consumer. It'll be ubiquitous simply because hardware manufactures are eventually going to make nothing but 8K TVs, but the average person probably won't be able to tell it from 4K, perhaps even 1080p.

<comment><USER10> This is true even outside video tech. To gain adoption a product doesn't just need to be better. It needs to be so much better that it's worth the effort of adoption.

That's why every "Facebook killer" dies on the vine. They just aren't better enough.

That's why every Bitcoin killer fails to displace Bitcoin as number 1.

Etc

</comment></comment></comment></comment><comment><USER11> > "We're using the SSD as virtual RAM"

Swap file as a selling point, hmm? If you're leading with that, that makes me a little nervous for the rest of the "innovations."

Similarly, I laughed out loud when one of the talking heads in the video said "the SSD and the solid state drive." Okay then.

<comment><USER12> This may be a reference to texture streaming. While I've never developed for consoles, I do know that texture streaming on desktop & mobile can be challenging.

Being able to mmap a texture directly from ssd (as if it were RAM), with the hardware & os taking care of all the details, could be a big deal for developers.

Edit: To get a sense of how challenging this can be, see this recent talk from GDC for texture streaming in Titanfall 2: [https://www.youtube.com/watch?v=4BuvKotqpWo](https://www.youtube.com/watch?v=4BuvKotqpWo) . Literally all of this complexity would go away if you could mmap textures directly from disk and let the gpu handle it.

<comment><USER13> To my ears, this sounds very similar to what AMD's "Vega" cards provided for high-end compute. The "High Bandwidth Cache Controller" allows datasets outside of the GPU's memory to be accessed in a transparent way.

I can't find a decent technical article at the moment, but here's a link to the "Radeon SSG," a $7k graphics card that ships with 2TB of solid-state storage attached, designed to be used to process absolutely massive datasets as though they were in RAM: [https://www.amd.com/en/products/professional- graphics/radeon...](https://www.amd.com/en/products/professional- graphics/radeon-pro-ssg)

</comment></comment></comment><comment><USER14> Maybe they mean some kind of software ram disk? Whatever it is it sounds like gold plated 90s marketing.

... fog lifts from stage

... a huge screen with flashing, strobing lights emerge with diffused 90s font writing ...

Some kinda music roars and the writing on screen is undiffused instantly revealing

"SOLID SATE DRIVE POWERED VIRTUAL RAM"

<comment><USER15> I read that as implying that the SSD is part of the standard memory hierarchy, byte-addressable and not requiring a filesystem. No need to load assets: just create pointers into the SSD's address space. Sort of a modern version of the ROM on an NES cartridge.

I could, of course, be _way_ off.

<comment><USER16> That's very unlikely and probably a bad idea anyway since NAND latency is too high.

<comment><USER17> Sounds like a perfect application for Micron/Intel's (yet to be widely commercialized) 3D XPoint[1] :) Although I find it highly unlikely a new Xbox would be the place to debut the technology.

Regardless, claimed latency is between DRAM and NAND, so I wonder if it would be performant enough for a gaming use case. To mikeash's point, 3D XPoint is byte-addressable, so perhaps it's possible...

[1] [https://www.micron.com/products/advanced- solutions/3d-xpoint...](https://www.micron.com/products/advanced- solutions/3d-xpoint-technology)

<comment><USER18> 3D Xpoint has been commercially available for years under the Optane brand name. It's much more expensive than NAND (16 and 32GB NVMe drives available for ~$2/GB) but a smallish amount in the Xbox acting as some sort of cache seems at least semi-plausible and would fit with the "next generation SSD" and "virtual RAM" statements.

</comment></comment></comment></comment></comment><comment><USER19> Hard to believe a gaming company in 2019 puts out promo material, even (especially?) marketing hype material, about their vision for the future of gaming, and never once even utters the words virtual reality.

<comment><USER20> Virtual Reality or even game streaming, which I feel is going to change the gaming scene if they can pull it off.

Having played VR games, I totally believe this will transform a huge segment of games. Not all, but a huge swath of casual players.

<comment><USER21> Streaming is a tough cookie because it's so reliant on the end user's ISP behaving nicely with advertised speeds. I was a beta tester for google's streaming project with assassins creed odyssey, and even though I had a gigabit connection the game occasionally had to drop framerate. If even a wired gigabit connection wasn't reliable enough, I can't imagine how terrible the experience would be if you had a more modest internet package.

However, it would be sweet if LAN streaming took off. The Xbox becomes something you just plug into the wall in a nook somewhere in your house, and streams to every screen you own on the wifi network; phone, tv, laptop, whatever you have. That seems a little more tangible to me than expecting ISPs to walk the talk with internet speeds.

</comment></comment></comment><comment><USER22> actually -- the most interesing gaming innovations that I watch for are from Nintendo. I found the Wii console and Switch to be truly innovative. Whereas I feel Sony and Microsoft just seem to be adding more muscle every iteration.

</comment><comment><USER23> Excited about the new Xbox. I've had my classic Xbox One for a while now and still enjoy playing it.

This promo video though, I hate to generalise but I didn't find anyone's excitement believable at all.

<comment><USER24> They are prob PC gamers anyway. What hardcore gamer mains consoles?

<comment><USER21> People who want to hand someone off craiglist $150 for the entire console vs. dropping serious cash on marked up GPU to play the same triple A games.

</comment></comment></comment><comment><USER25> Any idea how they're supporting ray-tracing? Haven't seen any details on AMD's answer to Nvidia's ray-tracing cores, but I presume it'll be part of RDNA, whatever that is, and use Microsoft DXR.

<comment><USER26> RTX is not necessary for RayTracing, AMD with Crytek made a demo ("Noir") of realtime ray-tracing.

But still, I hope AMD will standardize a core non-proprietary Vulkan API for ray-tracing unlike the RTX close proprietary Nvidia-only prefixed RTX for Vulkan extension.

A bit off topic, but it's sad to see so few people raising against Nvidia- monopoly closed & proprietary CUDA, Optix, RTX, etc. this is the equivalent of Flash, Vendor Prefixed Web (-apple-, -ms-, -webkit-,...) or AMP but for computer graphic

</comment></comment><comment><USER27> As much as the skepticism around their ability to truly do 8k 120hz (of which I am equally skeptic), and the technologies that have been in PC gaming for a while - but please don't forget the benefits this brings.

As we saw with the 4k console push, it helped expand the 4k TV market, and particularly 4k media content.

I'm all for pushing hardware manufacturers, developers and content creators to think more about high resolution and high refresh as something expected - <USER2> just something to strive towards.

So as much as I doubt there will be much 8k or high refresh content available - I'm glad we have two big companies in Sony and Microsoft helping drive that push. Kudos to them.

</comment><comment><USER28> By 8K they meant the display resolution will be 8K, but the scene will be rendered at 2K and upsampled?

Even a 2080 Ti has trouble rendering 4K with raytracing...

</comment><comment><USER29> Just a reminder, before we get too excited: this is the definition of vapourware. We haven't seen _anything_.

</comment><comment><USER30> It's a pity they ditched Kinnect, that killed it for me.</comment>


Don't Underestimate the Market Power of the 50 Crowd - <AUTHOR> https://hbr.org/2020/01/dont-underestimate-the-market-power-of-the-50-crowd <comment><USER2> Agree! And we see similar ageism in tech. A 40+ year old dev working 35 hrs/week is easily worth 2x young guns cranking 60 hours/week.

But alas... here we are.

</comment><comment><USER3> Spot on!</comment>


All 300-plus languages spoken in American homes - <AUTHOR> http://qz.com/541479/all-300-plus-languages-spoken-in-american-homes-and-the-number-of-people-who-speak-them/ <comment><USER2> A number of those languages are not in mutually exclusive categories. Take Chinese, for instance, we have Mandarin and Cantonese listed separately while having another category called Chinese.

As a Cushite, I also know we do not have a language called Cushite. What we have, instead, are Somali, Oromo and other similar but not mutually intelligible languages.

Also, we do not have a language called Sudanese - it should have been Arabic, I believe.</comment>


Better than AdSense for some? Hosted job boards. - <AUTHOR> http://www.jobamatic.com I ran into this in the process of posting a job on a particularly targeted site. Seems like a good idea for some people, and I think they're right that ads in general are often viewed negatively, but job ads maybe a positive.<p>It looks like they handle everything including payment processing and take a 50% cut for their effort. Seems more than fair for their apparent target audience. <comment><AUTHOR> I ran into this in the process of posting a job on a particularly targeted site. Seems like a good idea for some people, and I think they're right that ads in general are often viewed negatively, but job ads maybe a positive.

It looks like they handle everything including payment processing and take a 50% cut for their effort. Seems more than fair for their apparent target audience.

</comment><comment><USER3> Got half way through the signup process before finding out it was only for the US :(

Would be nice if this information was listed somewhere earlier.

</comment><comment><USER4> I just installed wpjobads to our Wordpress blog which doesn't have the 50% cut but was a $50 license. Our site gets 50k PV in a localized niche and we are hoping to charge at least 10-25$ per ad.

<comment><USER5> If it really is a niche site, I would charge much more for an ad.

<comment><AUTHOR> Nearly useless single data point:

I just stopped in my tracks today posting an ad on a site that wanted $99. Had they asked $25 I would've gone ahead.

I have no idea what their readership is like, and I didn't care enough to bother figuring out if it was worth it. I was willing to chuck $25 without thinking about it if for no other reason than to support the site. $99 - <USER2> me - was beyond what I felt like wasting today.

<comment><USER5> Fair enough, but I think people often don't realize how much more a niche audience is worth over an unqualified, general interest audience.</comment></comment></comment></comment>


Google Code Jam 2011 - <AUTHOR> http://code.google.com/codejam

<comment><USER2> Worst timing ever: final year exams.

But I'll look at it during June, as a set of exercises.

<comment><USER3> Think I may have downvoted you, sorry about that -- on iPhone.

But, anytime during May or June will run into final conflicts, not just early May. So, early May is as good a time as any.

<comment><USER2> What about July and August though? Yes, they are the most "summery" months but if you want to participate you participate. :)

(no worries for the downvote)

</comment></comment></comment><comment><USER4> Excellent, this should be great practice for interview-type algo problems and just applied algo problem solving in general. Good timing, as I am making my nth attempt at going through an algo book and getting this shit down. :-)

</comment><comment><USER5> I'd forgotten about that, thanks for posting!</comment>


Ask HN: How do you take breaks from work without really wasting that time? - <AUTHOR>

<comment><USER2> Taking brakes in an reasonable amount isn't wasting time.

Scan some blogs or your Google reader. Just make sure you don't get stuck. I just sort through some "have to do anyway" boring stuff, sorting out blogs or other news for stuff worth reading later or sorting my email.</comment>


Banning anonymous social media accounts will do more harm than good - <AUTHOR> https://www.theguardian.com/commentisfree/2018/sep/25/angela-rayner-social-media-online-abuse-labour-party <comment><USER2> The only way I use any social media is by using fake information. We all make mistakes. I want to be forgotten.</comment>


CPython migration to GitHub scheduled for today - <AUTHOR> https://mail.python.org/pipermail/python-dev/2017-February/147341.html <comment><USER2> I really dislike the trend of open-source software centralising around GitHub. It's slowly becoming a single point of failure in the ecosystem, and it's closed and corporate software. One day it's going to fail. And we'll be left with a plethora of people who don't know how to patch a file or attach a diff to an email. Sad. Is it really that hard to set up Trac or sth.?

<comment><USER3> But git _itself_ is decentralized. Even if software projects are centralized around GitHub, many people (including myself) prefer the command line where possible, which is essentially universal and not hard to pick up at all. In a worst case scenario the entire project could be preserved with history and exported.

And you really think people might not be able to attach a _diff_ to an email? I just don't see this dystopian future. For what it's worth I use GitHub but have essentially no brand loyalty to it.

<comment><USER4> Yeah that's exactly how I feel. I've used all three (gitlab, bitbucket, and github).

If the OP is that worried about github going down, just add a pushurl in .git/config to another host and that solves the problem.

<comment><USER5> It doesn't solve the problem. I still can't see the PRs and comments stored in github.

</comment></comment></comment></comment><comment><AUTHOR> Background info:

[https://snarky.ca/the-history-behind-the-decision-to-move- py...](https://snarky.ca/the-history-behind-the-decision-to-move-python-to- github/)

<comment><USER6> Thank you for posting.

(The link is a very detailed blog post about why this migration is happening, and what alternatives to GitHub were considered).

</comment></comment><comment><USER7> It's a shame they didn't pick a solution like RhodeCode(which is written in Python) at that point.

Afair it was because at the time decision was beeing made it wasn't open source, as it is now.

<comment><USER8> Brett Cannon's blog post ([https://snarky.ca/the-history-behind-the-decision- to-move-py...](https://snarky.ca/the-history-behind-the-decision-to-move- python-to-github/)) has been linked a bit and covers the general areas like the social aspects but your remark about open-source hit what I think is a fairly important point in the section about volunteer time:

"The second lesson I learned was about the dedication of volunteers. When the decision was made to switch to JIRA, one of the key attractions of that platform was that Atlassian was going to be hosting our instance and providing direct support (they were very involved in their proposal). But when the community started to protest over the idea of a closed-source, Java application I publicly said if we could get enough volunteers to manage our own Roundup instance then I would relent to using Roundup. There was actually a decent number of people who stepped forward, so we switched (the FSF offered to help put the call out for volunteers but in the end I didn't take them up on the offer as my own personal call seemed to bring enough volunteers forward). But what ended up happening is nearly none of those volunteers stuck around. At this point we have Ezio Melotti and R. David Murray to thank -- both core developers -- for keeping our issue tracker up an running and Upfront Systems for hosting it. This experience taught me that the people you can really count on are those that put the effort into the proposals themselves and those with a proven track record. While people who come out of nowhere have good intentions, that doesn't guarantee they will actually follow through (which I honestly should have known based on my experience from the Python core sprints at PyCon where people used to regularly come to tackle a big problem, get part way to a solution, swear they will finish when they get home, and then never be heard from again)."

That's not a slight on anyone but just an acknowledgement that there's no shortcut for ops. Moving the core Python repo to GitHub outsources that to a fairly large company's primary business and is staffed accordingly. For a project without major corporate support not having to manage a complex service is a big selling point.

<comment><USER9> > For a project without major corporate support not having to manage a complex > service is a big selling point.

This was the best part of your post, which finally convinced me this was a good idea.

<comment><USER10> It may also interest you that Kallithea, an open source fork of the GPLv3 release of RhodeCode and member project of the Software Freedom Conservancy, was in the running at some point. From the same blog post:

"... PEP 474 ... Nick proposed moving to Kallithea ... Nick Coghlan subsequently saying he would rather back GitLab over Kallithea (due to maturity issues of the projects) ..."

[https://kallithea-scm.org/](https://kallithea-scm.org/)

</comment></comment></comment></comment><comment><USER11> More notable to me, last I checked Python was still using Mercurial. Are they also switching to git today or did I miss that migration?

<comment><USER12> Yes, they do switch to git today.

</comment></comment><comment><USER13> I wish Ruby would do this. And Mozilla/Firefox.

I think it would yield a lot of community contributions and developer engagement.

</comment><comment><USER14> Are the migrating only the code, or the issue tracker as well?

<comment><USER15> Just the code and pull requests. Not the issue tracker.

<comment><USER2> How come? The pull requests are handled as issues in Github, AFAIK.

<comment><USER16> They can be used independently.

</comment></comment></comment></comment><comment><USER12> Migration PEP:

[https://www.python.org/dev/peps/pep-0512/](https://www.python.org/dev/peps/pep-0512/)

<comment><USER5> The PEP mentions that they'll be using a linear git history (no merges), but doesn't explain any of the reasons or perceived advantages of doing so. I found this pretty curious because (1) PEPs tend to explain why a decision is made, much like an RFC would (2) it's the really odd choice to make.

<comment><USER17> The important part is not for it to be linear, it's to have each PR squashed. Linearity is just a consequence:

> People preferred having a single commit representing a single change instead > of having a set of unrelated commits lead to a merge commit that represented > a single change.

<comment><USER5> That justifies squashing inside a PR, but not making it linear. Commits might be coherently separated, eg:

Commit 1: Add a user model Commit 2: Add migrations for user model Commit 3: Implement endpoints for users

Squashing them is pointless, and mixing them into a linear history really adds no value.

I do agree with squashing commits than cancel each other out inside a branch.

</comment></comment></comment></comment><comment><USER18> So much top level metadata now... .git / .github, .bzrignore, 4 mercurial files and travis.yml.

</comment><comment><USER19> 83 forks already.

<comment><USER20> There's a lot of people who fork who really shouldn't be who use it like the "star" function.</comment></comment>


No One Knows the Exact Year of the Largest Volcanic Eruption of Our Age - <AUTHOR> https://www.atlasobscura.com/articles/when-did-thera-eruption-happen <comment><USER2> Another extremely large eruption from a more recent time. As for whether or not it's larger, Wikipedia seems to indicate it would win in a trump card contest?

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

<comment><USER3> > of which 30 km3 (7.2 cu mi) was ejected in a few minutes

I'm struggling to imagine what that even looks like... 30 ___cubic_ __(!!!) km of Earth being ejected into the atmosphere in 'a few minutes' is incredible.

<comment><USER4> Which is apparently about 50% the size of Mt. Everest. [1][2] Imagine taking half of Everest, sticking rockets on the bottom, and trying to launch it into the stratosphere. That is making my brain explode a little bit.

[1] [https://www.google.com/search?q=mt+everest+volume&oq=mt+ever...](https://www.google.com/search?q=mt+everest+volume&oq=mt+everest+volume)

[2] [https://www.google.com/search?q=2.1+trillion+cubic+feet+to+c...](https://www.google.com/search?q=2.1+trillion+cubic+feet+to+cubic+km&oq=2.1+trillion+cubic+feet+to+cubic+km)

<comment><USER5> On the other side volcanoes have an earth-sized engine

</comment></comment></comment></comment><comment><USER6> Are there any serious attempts about taking precautions against global catastrophic mass extinction events? How would a startup like this function? We know quite a few reasons why humanity can be wiped out tomorrow -- even though extremely unlikely. Are we doing anything about it?

<comment><USER7> Check out the Svalbard Global Seed Vault[1]. There are other seed vaults around the world as well (although some have been affected by wars- see what happened to the International Center for Agricultural Research and Dry Areas in Syria).

[1]: [https://en.wikipedia.org/wiki/Svalbard_Global_Seed_Vault](https://en.wikipedia.org/wiki/Svalbard_Global_Seed_Vault)</comment></comment>