Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 83 posts.
The CADT Model
In February 2003, a bunch of the outstanding bugs I'd reported against various GNOME programs over the previous couple of years were all closed as follows:
How To Become A Hacker
As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". Back in 1996 I noticed that there didn't seem to be any other FAQs or web documents that addressed…
"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".
(How to Write a (Lisp) Interpreter (in Python))
Why does this matter? As Steve Yegge said , "If you don't know how compilers work, then you don't know how computers work." Yegge describes 8 problems that can be solved with compilers (or equally well with interpreters, or with Yegge's typical heavy dosage of cynicism).
The Joel Test: 12 Steps to Better Code (2000; Still relevant?)
Have you ever heard of SEMA? It’s a fairly esoteric system for measuring how good a software team is. No, wait! Don’t follow that link! It will take you about six years just to understa…
How To Become A Hacker
As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". Back in 1996 I noticed that there didn't seem to be any other FAQs or web documents that addressed…
Implementing Regular Expressions
This page collects resources about implementing regular expression search efficiently.
Ask HN: How do you solve hard problems if you can't make incremental progress?
Ron Jeffries attempts to create a sudoku solver - here , here , here , here and here . (You really ought to read these articles. They are u...
Readme Driven Development
I hear a lot of talk these days about TDD and BDD and Extreme Programming and SCRUM and stand up meetings and all kinds of methodologies and techniques for developing better software, but it’s all irrelevant unless the software we’re building meets the needs of those that are using it. Let me put that another way. A…
The one true REST explanation
Leonard Richardson's model for understanding a RESTful architecture as steps in a maturity model. Levels are (1) resources, (2) HTTP verbs and return codes, and (3) hypertext controls.
TCCBOOT: TinyCC Boot Loader
TCCBOOT is only 138 KB big (uncompressed code) and it can compile and run a typical Linux kernel in less than 15 seconds on a 2.4 GHz Pentium 4.
The CRAPL: An academic-strength open source license
Generally, academic software is stapled together on a tight deadline; an expert user has to coerce it into running; and it's not pretty code. Academic code is about "proof of concept." These rough edges make academics reluctant to release their software. But, that doesn't mean they shouldn't.
steve yegge - effective-emacs
Effective Emacs Stevey's Drunken Blog Rants™ 10 Specific Ways to Improve Your Productivity With Emacs Emacs is the world's best text editor. It's not just the best for editing program source; it's the best for any kind of text-editing. Mastering Emacs will make you more effective at writing and
In Defense of Not-Invented-Here Syndrome (2001)
Time for a pop quiz. 1. Code Reuse is: a) Goodb) Bad 2. Reinventing the Wheel is: a) Goodb) Bad 3. The Not-Invented-Here Syndrome is: a) Goodb) Bad Of course, everybody knows that you should always…
How to hire a programmer to make your ideas happen
Derek Sivers official site. Thoughts on philosophy, culture, self-improvement. Author of Useful Not True, How to Live, Hell Yeah or No, Anything You Want.
Everyone Who Tried to Convince Me to Use Vim Was Wrong
A couple weeks ago, I took the plunge and switched to vim (MacVIM, to be precise). It wasn't the first time I tried to make the switch, and I had pretty much written it off entirely. Why? Because the past few times I tried switching to vim, I took
Common Misconceptions About Publishing
A while back I did a series of postings on the topic of Common Misconceptions About Publishing.
Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit
Oh, Steve, you do make me laugh, always. And it's so long between posts these days I hardly believed it when Safari hinted that there was some action over at Steve's. Thank you.
Scott Aaronson explains his $200k bet (8 Signs A Claimed P≠NP Proof Is Wrong)
As of this writing, Vinay Deolalikar still hasn’t retracted his P≠NP claim, but a clear consensus has emerged that the proof, as it stands, is fatally flawed. The first reason is that weR…
Coming Home to Vim
I'm a programmer. I work with text files for 6-12 hours every weekday so I care about the text editor I use. If switching to a different editor can increase my efficiency by even 10% it would save a good chunk of my time and let me get back to making cool things.
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…
Regular Expression Matching in the Wild
The first two articles in this series, “ Regular Expression Matching Can Be Simple And Fast ” and “ Regular Expression Matching: the Virtual Machine Approach ,” introduced the foundation of DFA-based and NFA-based regular expression matching. Both were based on toy implementations optimized for teaching the basic…
Prototypal Inheritance
Five years ago I wrote Classical Inheritance in JavaScript ( Chinese Italian Japanese ) . It showed that JavaScript is a class-free, prototypal language, and that it has sufficient expressive power to simulate a classical system. My programming style has evolved since then, as any good programmer's should. I have…
A Guide to Branching in Mercurial / Steve Losh
I've been hanging out in the #mercurial and #bitbucket channels on freenode a lot lately, and I've noticed a topic that comes up a lot is "how does Mercurial 's branching differ from git 's branching?"
Tabs versus Spaces
The last time the tabs-versus-spaces argument flared up in my presence, I wrote this. Gasoline for the fire? Maybe.