When would you ever want bubblesort? (2023)
There are very few universal rules in software engineering, but there are are a lot of near-universal principles. Things like "prefer composition to...
The latest blog posts to take off on Hacker News. 14,537 posts.
There are very few universal rules in software engineering, but there are are a lot of near-universal principles. Things like "prefer composition to...
Common Lisp has good packaging tools, but they're different. Here we explain the what and how.
There's an old compiler-building tutorial that has become part of the field's lore: the Let's Build a Compiler series by Jack Crenshaw (published between 1988 and 1995).
Automatically erase memory to prevent secret leaks.
Django 6.0 was released today, starting another release cycle for the loved and long-lived Python web framework (now 20 years old!). It comes with a mosaic of new features, contributed to by many, some of which I am happy to have helped with. Below is my pick of highlights from the release notes.
Let’s get a few things out of the way before I go any further with this seemingly impertinent thought, because it’s nowhere near as snarky as it sounds.
I'm the kind of person who thinks about the design and implementation of hash tables. One design which I find particularly cute, and I think deserves a bit more publicity, is Robin Hood open-addressing with linear probing and power-of-two table size. If you're not familiar with hash table terminology, that might look…
Blog post
Agentic coding tools are dramatically reducing software development costs. Here's why 2026 is going to catch a lot of people off guard.
In the past two months or so, I spent some time making tiny GLSL demos. I wrote an article about the first one, Red Alp . There, I went into details about the whole process, so I recommend to check it out first if you're not familiar with the field.
Abdelhadi' blog
"Use the right tool" is nice in theory, but not when the tool acts a bit differently from machine to machine, and isn't always installed.
GitHub Actions has a package manager that ignores decades of supply chain security best practices: no lockfile, no integrity verification, no transitive pinning
Microservices work best as a polytree with clear dependencies and no cycles. Learn how this structure reduces complexity and makes systems easier to scale and maintain.
Is this clickbait? Not really. Is this the fault of the language or the compiler? Definitely not. Rather, it was part of a rushed migration. Sharing the lessons learned in the process.
How Mac applications evolved from a multitude of resources to a bundle formed from a standard layout of directories, and how they have come to be largely self-contained in macOS 26.
Perhaps the greatest surprise of the last two years was, for me, the realization that people not only care about compiling C to Rust (for obvious reasons, such as, ahem, memory safety) – they also care about compiling Rust to C! Wait, what?
How many CSS selectors and declarations do we need to produce the Fizz Buzz sequence? Of course we could do this with no CSS at all simply by placing the entire sequence as text in the HTML body. So to make the problem precise as well as to keep it interesting, we require that all text that appears in the Fizz Buzz…
First entry on completing Cheat Engine's tutorial without Cheat Engine
What do each of these languages value most?
In my previous post, I introduced the simp le programming language. Near the end of that post, I mentioned that the parser isn't very efficient.
Most books and courses introduce Linux through shell commands, leaving the kernel as a mysterious black box doing magic behind the scenes. In this post, we will run some experiments to demystify it: the Linux kernel is just a binary that you can build and run.
It helps, of course, that I still consider many of the people I worked with friends, and I know some of them even still read this blog. (Hi!)
When I took a look at the history of Quake binaries, they all made sense to me. quake.exe was the original release, able to run on DOS and Windows 95. Then came vquake.exe to support the hardware accelerated chip Vérité 1000. Later, glquake.exe generalized hardware acceleration to any vendor providing OpenGL drivers…
Jujutsu worktrees are very convenient! In git, worktrees are an old concept. The idea is that you can effectively work on your project in 2 different folders …
Since releasing 486Tang , I’ve been working on recreating the 8086 with a design that stays as faithful as possible to the original chip. That exploration naturally led me deep into the original 8086 microcode — extracted and disassembled by Andrew Jenner in 2020.
Pattern recognition can see through obfuscated code to find the right instruction
I felt like it should be possible to train a GPT-2 small level model on my own hardware using modern tools and open datasets from scratch. It was!