skysight-inc/HackerNews huggingface dataset:
Misspelled letters within the first twenty words of an otherwise-excellent article about letterfitting. :)
Say before wireless, you had to check your email over a wired connection. Someone patents the idea of checking email over radio waves. If multiple people came up with the same idea, and lodges the same patent within 6 months of one another, then it is not worthy of a patent.
Very cool. I am psyched to see games like this becoming popular. Heck, I would never have guessed my older sister to write a line of code in her life, but she saw Code Hero at PAX and started telling me about the cool programming stuff she learned!
Yes. To say people and the connections we build to them are what ultimately matters is an applause light. People and the connections we build to them are only means to the end of happiness.

That isn't cold or selfish. Surely we would all rather live in a world full of disconnected happy people than in a world full of (amicably) connected unhappy people?
Downvotes? Nothing I said here is the slightest bit controversial.
They use both.

"Last week, we launched a replacement for our Ruby-on-Rails front-end: a Java server we call Blender. We are pleased to announce that this change has produced a 3x drop in search latencies and will enable us to rapidly iterate on search features in the coming months."

http://engineering.twitter.com/2011/04/twitter-search-is-now...
agreed. jspaulding got it right although I can see nashequilibrium's skepticism as the US futures market is incredibly crowded (read: competitive, no free cookies).
Actually, TFA states they use a mix of both.
I work at Google :)
Do you think it's impossible for one language to be better than another?

If so, it's impossible for a language designer to do a good job, because it's impossible to improve a programming language.
Its called Django.
Python has a roughly equivalent MVC web framework called Django.

Ruby and Python as languages are not radically different in kind, but their respective developer communities have had different focuses, and as a consequence the library of tools are not identical.

Ruby on Rails became popular because people were dissatisfied with the way that web development was being done, and DHH is very good at marketing/propaganda. Ruby on Rails has had a substantive effect on the way that web development is done, and there have been numerous attempts in other languages (that didn't already have a framework like Django) to recreate the things that Ruby programmers enjoy with Rails (CakePHP and Grails come to mind immediately).
What classes are you in? The labs for my OS class seem to usually take on the order of 20 solid hours per week and my school requires at least 5 classes per semester.
Very true. Twitter may have had a lot of scaling trouble, but that didn't necessarily mean moving everything onto the JVM was necessary to 'make it scale'. It was just sensible to pick a language that would prevent problems in future.
How are readers supposed to approach this piece? The tone reminds me of Morpheus from The Matrix. I know we live in the age of "tl;dr", but the formatting demonstrates the piece's assertion that "Less, for the sake of less, is not more."

I should probably regard it as a poem of sorts, but as a series of assertions it basically tells us that in order to advance the state of the art (which has come so far that things once thought impossible feel simple) we must be willing to spend a lot of effort solving hard problems. The rest of the piece tries so hard at profundity that it ends up being mundane.
Did you skip the bit in the article where they mentioned the faster Ruby VM they built, before moving to JVM?

http://engineering.twitter.com/2011/03/building-faster-ruby-...
Malware Tools Get Smarter To Nab Financial Data
This is a terrible summary. The post was about limiting the amount of time you allow yourself to work in order to maximize productivity during work time.
That must be nice if all you are doing is being a student. I on the other hand don't even get off work till 6. Home by 7, then dinner. If I'm lucky I sit down to study at 8. Lets face it, you really don't realize how good you have it as a student, but your advice isn't terribly useful to the rest of us now in the work force also trying to continue to learn/enhabce/keep up.

tldr: student life has a lot of freedom and perks over working a job, nanananana.
Operating Systems Help Us Limit Harm From Failures
Java isn't sexy any more. You use Java because your problems are, and so it doesn't matter to anyone.
It's open source in the sense that the source is available. It's not open-source in the sense of being a community project. As for Javascript vs Java, Javascript has come a long way. Recent JS engines are pretty fast. Not to say that it can't be tricky to maintain a large base of JS code, but that's a different debate.

I for one am looking forward to it, though the lack of apps compared to the other two dominant ecosystems will be a problem.
All Mozilla phone APIs are being standardized. Some already are. None are intended to be Mozilla-specific.

You can track the implementation here: https://wiki.mozilla.org/WebAPI
This happened to me too; the alarm went off at both 7 am and 8 am instead of just 8.
While it's true that not everyone can afford the "best" that money can buy, whatever that means, picking the best quality whenever possible is quite the opposite of materialism. I associate materialism with superficiality and waste. None of the things you mentioned here were chosen merely to satisfy some status seeking urge. And because these things didn't need to be constantly replaced because they soon broke or went out of style, the people who chose them likely spent less time thinking about what to buy ("materialism" in your view) and more time doing what matters to them.

I agree with you only to the extent that people are important and so are the connections we build with them. What I don't get is your argument against appreciating a fine set of cutlery or a well-made wallet when these things were specifically designed to make the lives of people who use them a little better. Well-made things let people live their lives more fully. Dustin Curtis clearly enjoyed his time abroad because he didn't have to worry about his backpack exploding during his travels (a lesson I learned the hard way). Steve Jobs spent months picking a washing machine so he wouldn't have to worry about ruining clothes or wasting water. Clearly that freed up time for SJ to do plenty of other things.
Hah. I'd put it more like: Java is a platform for building frameworks for implementing interpreters for XML-based DSLs.
It's enough of a problem that bundler was written. Of course Bundler sorts the problem out pretty well so... Hell averted :P
argumentum ad novitam
You're making it sound like Ruby is a terrible language that's either much worse than Python or completely redundant with it. I simply don't think that's the case.
Machine Learning and Databases (both graduate level courses), plus Physics (electrostatics and magnetism) and Differential Equations.

My school has three trimesters instead of two semesters, so we have 3 terms of 4 classes each.
no, I didn't skip it, and I can only guess that either they considered they wasted to many resources for such a "small" performance gain or didn't have people with enough skill in the right areas to keep going this direction. But no, I don't know all the details and steps of Twitter's switch and my experience is in the Python ecosystem but I think lots of things are similar...
hmmm that sounds interesting... maybe i can get tweets or facebook updates and somehow track how social media may or may not affect stock price movements
I'm currently working for two startups and a research lab. My day is just the reverse of yours. Most of my evening/nights are spent doing work for my jobs.
If your software is Twitter, then you're constantly rewriting the stack anyway just to keep up, and switching to different languages, frameworks, technologies, and tools component-by-component is often the best way to do that.
Obvious flame bait. Please don't post this garbage on HN.
It's not primarily about the size of traffic, but the ability or inability to cache. At work we serve a ton of traffic with MRI ruby and 3 small VMs. Most requests are served by varnish and never hit the ruby stack. Most people do a terrible job at caching (edit: I'm not saying that twitter is bad at caching).
It's time to pack up and go home if you are going to straw man Github and Heroku as being popular merely because they are novelties or fads.
It seems to me that he is arguing that languages do not have a total ordering. As such, novices will argue that a language is strictly better than another, when a broader perspective will reveal that this is only true for some use cases.

The "no free lunch" theorem would indicate to me that there is no ultimate language, merely languages that are better for common (to you) use cases.
argumentum ad populum
This may be myopic or off-base, but I feel like JFK had two big advantages with the space program that helped make it happen:

1. His constituents were terrified of the Soviet space program dropping something nasty on their heads, and didn't want to be behind the curve in that arena.
2. His assassination effectively canonized the program. (I think he'd argue my terming that an "advantage.") Cutting it after his death would have been political suicide. Where space exploration often has the same inherent challenge as nuclear power–specifically that the length of any serious endeavor will span several presidents, congresses, senates, to say nothing of economic cycles, (see CxP)–the Apollo program, despite being 2.2% of all federal outlays, had broad support.

There were numerous other factors, but I think those two played a big part in its success.
Maybe it's hard to build something like rails and get the details right? It's like asking why PC makers don't do a better job at copying apple.
Herb Sutter Live: VC++ C++11 Conformance, isocpp.org, Standard C++ Foundation
The invention is about cheaper hydrogen production + wastewater treatment. The original paper http://www.suttonfruit.com/pics/urea_electrolysis.pdf

They use nickel catalyst in the process and achieve 36% cheaper hydrogen production than water electrolysis. I don't know if the results explicitly means that it could be used as a sustainable power source. The original article doesn't mention that. The main point is cheaper way of producing hydrogen fuel while denitrificating waste water.
The linked blog post discusses it, but I want to highly recommend "The Paradox of Choice" by Barry Schwartz [1]. He discusses psychological research showing why maximizing--attempting to have the best of everything--actually leads us to be less happy with our choices, not more.

Seek quality, sure--but decide what's "good enough," and stop looking when you find it.

[1] http://www.amazon.com/Paradox-Choice-Why-More-Less/dp/006000...
That's not what he's saying at all! The "wise programmer" uses the right tool for the job because it IS a better tool for the job. In the same way, we'll continue to see an increase of programming languages, as opposed to a consolidation, as computing advances and languages improve.
http://en.wikipedia.org/wiki/Category:Project_management_sof...

http://en.wikipedia.org/wiki/Category:Cloud_platforms
I can't speak for him/her but it seems to me the point is that computer languages, while being all-purpose, are products of countless conscious design decisions of their creators. And thus by the nature of design, tradeoffs are inevitable.

So I think the (even just sometimes) discussion of "good language" should be limited to the context of purpose and goal of the said language, which is similar to "choosing the right language for the task".
Twitter is hugely write intensive and needs realtime data, so their caching needs are probably vastly different from yours.
Well, there's pretty much no response he can give to that then.

Unless of course, you work in the marketing department or clean the buildings?
It's called Play! Framework on the Java/Scala land. You got the benefits of both, ease of development and performance/scalability.
Even though that wasn't the main point of this post, that's probably the best part because it's super easy to follow and the benefits come immediately if it works for you.
GNOME (et al): Rotting In Threes
> No, it's a designer with an interest in all design.

Thank you. I've been trying to make the same point, but with far too many words!
As someone who was early stage at a startup, I appreciate the reminder to stop and smell the roses. As someone who's been grinding for four years now, it's easy to forget how far you've come.
Apple Stock Sinks as Profits and Products Are Questioned
"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, YouTube.com.

There are many dynamic user driven sites which have scaled well (far less downtime than Twitter) without switching to static compilation.
<!-- insert *evil grin* here -->
That was my point. Their caching needs are vastly different from almost everyone!
But if the second design is the better design theory has any impact, Twitter would have done better to build the second design with Ruby.
The only Gem hell I know of is when using distro packaged gems. They tend to do weird crap like changing dependencies or backport fixes instead of packaging the new version.

There are things more funny to do than solve bugs introduced by a backported patch.
I'm not necessarily disagreeing with you (static typed languages are going to be faster on the JVM), but JRuby - partially with the help of invokedynamic, added in Java 7 - has come a long way performance-wise since Twitter began their rewrite.

I wonder if they would have done anything different, had JRuby been where it is now?
http://news.ycombinator.com/threads?id=philwelch
"Take a jurisdiction like Chicago which is known for voter fraud and high turnout among the dead. "

An unproven case of a small number (<100) of possibly fraudulent votes in an election more than 60 years ago, and still going on about it as if it happens every election, and orders of magnitude worse.
Python's culture heavily encourages explicit, consistent code while Ruby's culture is a lot more flexible in that respect. Rails makes many assumptions by default and has an API that is based on clever coding for the sake of maximizing productivity. That stuff would likely not fly in the Python community.
You can argue that YouTube is less dynamic than Twitter.
When a user posts a message on Twitter, that message has to be pushed to all the users that follow that user and so every user has a personalized stream of incoming tweets that has to be updated, not in realtime, but with small latency nonetheless.

Also, Twitter doesn't have Google's infrastructure.

In regards to "static compilation", that's not the important bit, but rather the performance of the virtual machine. The JVM, at its core, is not working with static types. The bytecode itself is free of static types, except for when you want to invoke a method, in which case you need a concrete name for the type for which you invoke that method ... this is because the actual method that gets called is not known, being dispatched based on "this", so you need some kind of lookup strategy and therefore the conventions that Java uses for that lookup are hardcoded in the bytecode. However, invokeDynamic from JDK 7 allows the developer to override that lookup strategy, allowing one complete dynamic freedom at the bytecode level, with good performance characteristics.

The real issue is the JVM versus the reference implementations of Ruby/Python. The JVM is the most advanced mainstream VM (for server-side loads at least).

Unfortunately for Facebook, they didn't have a Charles Oliver Nutter to implement a kickass PHP implementation on top of the JVM - not that it's something feasible, because PHP as a language depends a lot on a multitude of C-based extensions. The more pure a language is (in common usage), the easier it is to port to other platforms. Alternative Python implementations (read Jython, IronPython) have failed because if you want to port Python, you also have to port popular libraries such as NumPy. Which is why the PyPy project is allocating good resources towards that, because otherwise nobody would use it.
First Potential Habitable Exoplanet in a Six-Planet Star System
>Life is too short to buy forks more than once.

Any half-decent cutlery lasts a very long time.
The most famous opinion from Jacobellis, however, was Justice Potter Stewart's concurrence, holding that the Constitution protected all obscenity except "hard-core pornography." Stewart wrote, "I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description; and perhaps I could never succeed in intelligibly doing so. But I know it when I see it, and the motion picture involved in this case is not that."
I'm guessing OP is a lot smarter than me, because I need a lot more time than that to barely understand any of my coursework.
What Dustin wrote was a succinct way to say that crappy wallets do exist, that he did research the problems. It's a blog about his own satisfaction, not a product review.
For Scott Hanselman
"The Best" that Dustin describes isn't built for "us".

It doesn't even represent the highest of form and/or function. Merely the exhaustion of research into the topic.

It's easy to be stuck in one field and obsessing over the smallest details, but I agree that it's good to branch out and see what obsession is happening in other fields. (In particular, consumer products). Although, remixing those ideas can get messy (see: Skeuomorphism).
That hasn't been true for well over a year, probably a year and a half now. Running apps don't use CPU, default apps (now) don't often have services anyways so. yeah
This is the best article I've read on UI design in a while, thank you for sharing! Lately I've come across a number of blogs and articles drawing comparisons between the work by early Disney animators and Imagineers and modern UI/UX design. I think those principles translate well to web and mobile -- we are taking taking users "on a ride" after all. It's nice to see the animation principles explained so thoroughly here.
If I was visited by a copy of myself I would probably slob my own knob and bang myself.
It's 11:14 pm my time, and I just got done with work. Legitimate, not-procrastinating, i-work-in-the-startup-salt-mines, since I began this morning...work.

I'm now faced with either getting a little more sleep, getting to read a book series I started recently, trying to get some of my russian studies done, or maybe actually learning something about programming today.

I think I developed more as a person when I was working a 9-5. I never even got to experience the freedom of academics, because I couldn't afford to go to college.

Fuck it, I'll read another article about monad transformers and then pass out.
Your use of the word 'conservative' is ill-advised, both technically and rhetorically. Free-market Economics is rooted in [l]iberal traditions in the first instance, not conservative (see: repeal of the corn laws)[1]; and in the second: Modern [L]iberals (ie, interventionists) require near-perfect rationality as an operating behavioural assumption, ex-ante. Not to be pedantic, but this is an important point. [L]iberal economists are part of the Orthodoxy. Non-orthodox behavioural assumptions[1] are (arguably) quite problematic to an Orthodox interventionist. This is glossed over because it threatens the 'myth of expertise' that is required to politically implement a such an ideology. This is not a partisian point, but one of history and terminology.

______________

[1] http://en.wikipedia.org/wiki/Corn_Laws.

[2] In particular, bounded rationality and opportunism.

edits: clarity
This is a stupid article
I do not think the continuum of language can be mapped along one dimension when considering individuals. Constant development of languages, patterns, and idioms are global manifestations of individual frustrations.

Ideally, every person would have their own programming language (or culture), grown from their own personal experiences and desires. In that case, a qualifier for a good language is one that most easily allows expression of new languages or cultures at the individual level.

For a language designer, this could be an impossible problem due to the unique learning models of each individual. Their best hope may be in attracting those whose mental models have some overlap with their own.
> Illegitimi non carborundum

... is a mock-Latin aphorism meaning "Don't let the bastards grind you down", and the first line of an unofficial school song Ten Thousand Men of Harvard, the most frequently played Fight song of the Harvard Marching Band (where presumably PG picked it up).

Source: http://en.wikipedia.org/wiki/Illegitimi_non_carborundum
I don't think pushing tweets to every user is a scalable approach. It would seem more sensible to read rather than push tweets associated with a user. I don't know about Twitter's infrastructure, but storing more than 1 copy of the same data wouldn't make that much sense.
I don't understand what value do you see in Dustin's article. It doesn't deserve to be on the front-page.
This is spot on.

To elaborate a bit, Rails tended to have a lot more generated code (the fabled "magic") that really sped up development of your standard CRUD apps. As far as I can tell, this was fairly novel in web development. Django didn't really have a focus on that, you spent a little (lot?) more time configuring. It's better now though.

Of course, at the complete opposite of the spectrum, you have very minimalist stuff like Flask (Python) or Sinatra (Ruby) which is doesn't include a lot of bells and whistles. You'll have to import your own ORM, templating, etc...
With the UK tax figures for several companies including apple, where they only paid approx 2.5% in tax because most of the revenue recognition occurs in Ireland where they pay cheaper corporation tax, I guess this will have an impact for revenues for several companies going forward. Google are already in a dispute with France over this, and I would expect these tax loopholes to close int he future as Austerity hits the EU and each country looking for ways to boost tax income.
This is why I insist people to work on a robust stack from ground up, so it will be less painful in the long run. This is not to say that you shouldn't build a prototype in Rails to get everything up and running as quickly as possible and worry about scaling later, but, it is just my opinion that if you invest the time and effort in working with a robust stack (for example Scala+Lift), your investment will pay you off in the long run.

I've always admired rails for its flexibility and its enormous productivity boost, but all my serious applications are coded in Lift. I for one believe in "develop and forget", because I'd like to call myself a business guy than a programmer, though I'm deep into both. I like to spend more time expanding/marketing my business than worry about scaling it. But that's just my perspective.

JVM is terribly under-estimated and I realized this when I got started with Lift+Scala. Scala is a very powerful language and requires a totally different mindset (=functional). And Lift is fairly complex for those wishing to get started with it and has poor documentation, despite being a 5-year old Framework. But once you understand it fully (somehow), there's no looking back. Lift provides so many things out of the box, especially related to security (unlike PLay!), so it's kind of a trade-off you have to choose between. Even if you compare all the benchmarks, most of the JVM-based languages like Scala outperform even something like GO! (Ok, that's not fair, since GO is fairly new)

If you're interested in Scala, Coursera has a course on it by the creator of Scala himself (Martin Odersky).
And this one: http://news.ycombinator.com/item?id=2536186
Matz is not a threading guy