Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,547 posts.
Writing Your Own Toy Compiler Using Flex, Bison and LLVM
Update (March 19 2010): this article was updated for LLVM 2.6 thanks to a great patch by John Harrison. He rocks! I’ve always been interested in compilers and languages, but interest only gets you so far. A lot of the concepts of compiler design can easily go way over most programmers’ heads, even the intelligent…
Steve Jobs just ruined the iPhone for Clojure
Recently Apple released new terms of service with their iPhone OS. By now most of you have seen the following section. I've copied this f...
Ravelry - a very successful deployment of Ruby and Rails
Possibly you’ve never heard of it. But if you know anyone who knits or crochets, ask him or (more likely) her about Ravelry and chances are you’re talking to an active member. It’s big. This is an interview with Casey Forbes , who constitutes the whole engineering staff.
The Emacs Problem (2005)
The Emacs Problem Stevey's Drunken Blog Rants™ Charles G. pointed out in an email discussion recently: Lisp still doesn't seem like the right language for doing text manipulation, and nothing I've seen from the Emacs libraries is making me think any differently. It sure beats the hell out of Java
"Dabblers and Blowhards" - hackers are nothing like painters [2005]
About two years ago, the Lisp programmer and dot-com millionaire Paul Graham wrote an essay entitled Hackers and Painters , in which he argues that his approach to computer programming is better described by analogies to the visual arts than by the phrase "computer science".
Stuck in Code
An ex colleague let's call him.. uhh .. Vivek, who was my peer at MegaCorp many years ago who is presently VP of R&D at [very well known c...
A crazy Ruby quine: a spinning globe.
RubyConf に参加するためには、やっぱり 山手 quine みたいに東京限定ネタは通じにくいですよね。これからは Quine もグローバルでないといけないと感じました。 でも世界的に有名な環状線とか知らないので、世界的に有名な回るものを書いてみました。 v=0000;eval$s=%q~d=%!^Lcf<LK8, _@7gj*LJ=c5nM)Tp1g0%Xv.,S[<>YoP 4ZojjV)O>qIH1/n[|2yE[>:ieC "%.#% :::##" 97N-A&Kj_K_><wS5rtWk@*a+Y5 yH?b[F^e7C/56j|pmRe+:)B "##% ::#########…
Proving P!=NP: "...Ryan has taken the first real baby step in decades."
On October 8th, when in my graduate complexity course as we discussed the 1987 Razborov-Smolensky result that one can't compute the Mod p b...
Why is JSON so popular? Developers want out of the syntax business
There is a reason why JSON is becoming very popular as a data exchange format (more important than it being less verbose than XML): programmers are sick of writing parsers! But “wait”, …
Execution in the Kingdom of Nouns (2006)
This rant is utterly idiotic. The great investment in literary allure is there in order to mask its hollow emptiness. Why should one class of words be put on a pedestal above another? Gee, I don't know, could it just be because natural languages ALL DO THE SAME? All natural languages have something called a WORD…
How to Deconstruct Almost Anything, by a Software Engineer
This is the story of one computer professional's explorations in the world of postmodern literary criticism. I'm a working software engineer, not a student nor an academic nor a person with any real background in the humanities. Consequently, I've approached the whole subject with a somewhat different frame of mind…
Why kids don't program
Behold, in its full glory, a program that I ran on my ZX Spectrum nearly 30 years ago: 10 FOR n=0 TO 255 20 PLOT n,88+80*SIN (n/128*PI) 30...
Your Version Control and Build Systems Don't Scale
Let's spend a minute and talk about the performance of a tool you use every day: your build system. For this purpose, they're all the same, so let's assume you use GNU Make. For a no-op build, what is Make's running time? You know, that O(N) stuff.
Is Good Code Impossible?
I'm a Staff iOS Developer living in Denver, Colorado, who's been building mobile apps for 17 years!
D3: Thinking with Joins
Say you’re making a basic scatterplot using D3 , and you need to create some SVG circle elements to visualize your data. You may be surprised to discover that D3 has no primitive for creating multiple DOM elements. Wait, WAT?
Why C Is Not Assembly
In response to a previous article a poster in some forum called me an idiot and said "everybody knows that C is a portable assembly languag...
The Building Blocks of Ruby
When showing off cool features of Ruby to the uninitiated (or to a language sparring partner [http://stackoverflow.com/questions/1099305/why-is-ruby-more-suitable-for-rails-than-python/1099367] ), the excited Rubyist often shows off Ruby's "powerful block syntax". Unfortunately, the Rubyist uses "powerful block…
In praise of git’s index
I still run into people lambasting Git for the concept of the index from time to time. It seems strange and superfluous to users of other VCS s – like a speed bump that serves no purpose. Why not just commit the changes in the working copy? This perception is understandable; when I first heard of Git, back as a…