Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 3,470 posts.
Win32 Is the Only Stable ABI on Linux?
In the ELF format there are two ways of providing a hash table of symbols. DT_HASH and DT_GNU_HASH . The first one is part of SYSV generic ABI and is well documented and marked as mandatory. DT_GNU_HASH is a newer, smaller, and faster replacement that is not documented , implemented in a few places (Glibc, GNU ld…
Rewriting Reddit (2005)
2012 note: This article was first published in 2005. After it was published, Django launched a RemovingTheMagic project to address some of my criticisms (though personally I still find it unusable), web.py inspired FriendFeed’s tornado.web and Google’s gae.webapp and others (though I still prefer web.py), and this…
A Road to Common Lisp
I've gotten a bunch of emails asking for advice on how to learn Common Lisp in the present day. I decided to write down all the advice I've been giving through email and social media posts in the hopes that someone might find it useful.
Why Zig when there is already C++, D, and Rust?
If Zig code doesn’t look like it’s jumping away to call a function, then it isn’t. This means you can be sure that the following code calls only foo() and then bar() , and this is guaranteed without needing to know the types of anything:
Kill Math
The power to understand and predict the quantities of the world should not be restricted to those with a freakish knack for manipulating abstract symbols.
Git from the Bottom Up (2008)
Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.
Advantages of monolithic version control
Someone : Did you hear that Facebook/Google uses a giant monorepo? WTF! Me : Yeah! It's really convenient, don't you think? Someone : That's THE MOST RIDICULOUS THING I've ever heard. Don't FB and Google know what a terrible idea it is to put all your code in a single repo? Me : I think engineers at FB and Google are…
Alligator Eggs
In 2007, I met Philip Wadler at a conference, who mentioned to me that he wanted to teach lambda calculus to his eight-year-old children.
Tcl the Misunderstood (2006)
In an article recently linked from reddit entitled Tour de Babel you can read (among lots of other nonsense): Heck, people still use Tcl as an embedded interpreter, even though Python is far superior to Tcl in every conceivable way -- except, that is, for the frost thing.
Julia is awesome, but..
Here's a language that gives near-C performance that feels like Python or Ruby with optional type annotations (that you can feed to one of two static analysis tools ) that has good support for macros plus decent-ish support for FP, plus a lot more. What's not to like? I'm mostly not going to talk about how great Julia…
The Git Parable (building a Git-like system from the ground up)
Git is a simple, but extremely powerful system. Most people try to teach Git by demonstrating a few dozen commands and then yelling “tadaaaaa.” I believe this method is flawed. Such a treatment may leave you with the ability to use Git to perform simple tasks, but the Git commands will still feel like magical…
(An ((Even Better) Lisp) Interpreter (in Python))
The tokens #t and #f are the True and False literals, respectively. The single quote mark serves to quote the following expression. The syntax ' exp is completely equivalent to (quote exp ) . The backquote character ` is called quasiquote in Scheme; it is similar to ' except that within a quasiquoted expression, the…
Errors are values
Idioms and patterns for handling errors in Go.
Metaprogramming for madmen
This post is part of the series “Debris: Opening the box”. Okay, previous posts from this series aimed to actually convey useful technical information: assuming you actually want to wri…
Threading Macros Guide
Threading macros, also known as arrow macros, convert nested function calls into a linear flow of function calls, improving readability.
An argument against call/cc (2012)
Why a programming language should not offer a primitive to capture undelimited continuations (call/cc).
Programming's Dirtiest Little Secret
Wow, no comments? They must all be stuck on that bit about the "home row." Oh well... here's hoping some of those non-typists make it all the way through this piece.
ZSFA -- Rails Is A Ghetto (2007-12-31)
I’ve more or less kept my mouth shut about some of the dumb and plain evil stuff that goes on in the Rails community. As things would happen though I’d take notes, collect logs, and started writing this little essay. As soon as I was stable and didn’t need Ruby on Rails to survive I told myself I’d revamp my blog and…
Ditherpunk: The article I wish I had about monochrome image dithering
I always loved the visual aesthetic of dithering but never knew how it’s done. So I did some research. This article may contain traces of nostalgia and none of Lena.
Rider is now free for non-commercial use
Develop .NET, ASP.NET, MAUI, Blazor, and Azure applications – as well as games with Unity, Unreal Engine, and Godot – on Windows, macOS, and Linux.
Why I’m Leaving Elm
Why I can't use Elm, and can't recommend it to others.
Why SQLite Does Not Use Git
SQLite does not use the Git version control system. SQLite uses Fossil instead, which is a version control system that was specifically designed and written to support SQLite.
Why we created Julia - new language for fresh approach to technical computing
In short, because we are greedy....
Hacker's Guide to Neural Networks
Musings of a Computer Scientist.