A tail calling interpreter for Python (already landed in CPython)
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 2,232 posts.
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
It's not about technology for its own sake. It's about being able to implement your ideas.
New paper: “Security Analysis of Pseudo-Random Number Generators with Input: /dev/random is not Robust, by Yevgeniy Dodis, David Pointcheval, Sylvain Ruhault, Damien Vergnaud, and Daniel Wichs. Abstract: A pseudo-random number generator (PRNG) is a deterministic algorithm that produces numbers whose distribution is…
I've been doing all of my real (paid) work on VMs / containers for a while now but when it comes to writing Java code...
This is the first article in a series dedicated to multiple dispatch - an advanced abstraction technique available to programmers out-of-the-box in some languages, and implementable in others. This first post in the series presents the technique and explains the problem it intends to solve. It uses C++ as the…
Kind people already sent donations that will make my childrens' lives easier, when I'm not there any more. Thank you enormously! :-)
Dithering is still a surprisingly applicable technique, not just for practical reasons (such as preparing a full-color image for output on a non-color printer), but for artistic reasons as well. Dithering also has applications in web design, where it is a useful technique for reducing images with high color counts to…
Sometimes I see unsourced, unclear, vaguely mystical claims about K being the fastest array language. It happens often enough that I'd like to write a long-form rebuttal to these, and a demand that the people who make these do more to justify them.
Real-Time Garbage Collection (RTGC) tests the limits of what we typically think is possible in production software. You might hear “Real-Time” and “Garbage Collection” together and think “If you truly need real-time guarantees, why would you use a garbage collected language?” or “How is real-time Garbage Collection…
Combobulate is a package that adds advanced structured editing and movement to many programming modes in Emacs. Here's how it works, and how it can enrich your editing experience in Emacs.
Cyrille Rossant,
Introduction to bin packing through a simple example of fitting boxes of candy inside a parcel.
For a while now, the Ruby community has become enamored in the latest new hotness, evented programming and Node.js. It's gone so far that I've heard a number of prominent Rubyists saying that JavaScript and Node.js are the only sane way to handle a number of
Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :)
Whenever people start talking about NP-Complete problems, or even NP problems, one of the first examples they reach for is the classic Traveling Salesperson Problem. TSP makes sense because it int...
Checked exceptions have always been a controversial feature of the Java language.
Nearly all of Go’s distinctive design decisions were aimed at making software engineering simpler and easier. We’ve said this often. The canonical reference is Rob Pike’s 2012 article, “ Go at Google: Language Design in the Service of Software Engineering .” But what is software engineering?
Overture to our small Lisp to x86-64 compiler
This is going to be long and rambling. If you're going to read it, you may want to wait until you're ill, and can't get out of bed, and your head is filled with cotton, and you're eating painkillers like they were candy. I don't want you to feel pain while reading. Being unconscious and having a speech synthesizer…
As a sort-of reverse birthday present I’ve decided to release one of my largest projects, in recent memory. This is the project that I’ve been alluding to for quite some time now :
Zeroing out a CPU register seems like the simplest and most basic operation imaginable, but in fact x86 CPUs contain a surprising amount of special logic to make this operation run smoothly. The mo…
A rewrite of this blog post with many new insights and updates appeared in Jan 2026
I've seen a lot of discussion of great programmers, usually centering on how to find them, but usually what people really want to know is how to become one. Since I'm widely considered to be a great programmer, I'll give some advice. First of all there's raw coding ability. For this, practice makes…
So many weird little demands on time, mostly spinning out of the Signal groups set up to counter ICE and now being used for general community stuff.