Address Sanitizer Internals
Going in depth into the Address Sanitizer internals.
How to read C type declarations (2003)
Even relatively new C programmers have no trouble reading simple C declarations such as
Pratt Parsers: Expression Parsing Made Easy (2011)
Every now and then, I stumble onto some algorithm or idea that’s so clever and such a perfect solution to a problem that I feel like I got smarter or gained a new superpower just by learning it. Heaps were one, just about the only thing I got out of my truncated CS education. I recently stumbled onto another: Pratt or…
APL at Volvo
Hercules is a system used by the Volvo Car Corporation (Volvo) for planning car production. Its main output is the monthly Master Production Schedule (MPS) – a detailed plan on how many cars are to be produced per market, factory and week during the following 13-15 months. Migrating such a comprehensive and vital…
Deno 2
Our next major version of Deno combines the simplicity, security, and performance of Deno 1 with full Node and npm backwards compatibility, and much more.
IntelliJ GitHub Plugin leaking credentials
A new security issue was discovered that affects the JetBrains GitHub plugin on the IntelliJ platform, which could lead to disclosure of access tokens to third-party sites. The issue affects all IntelliJ-based IDEs as of 2023.1 onwards that have the JetBrains GitHub plugin enabled and configured/in-use.
Just because you can doesn't mean you should: the <meter> element
A very frustrating brownie recipe illustrates why a semantic element may actally NOT be the right tool for the job.
Typesetting Engines: A Programmer's Perspective
Pros and cons for different typesetting engines from engineering perspective and why PPReseume chose LaTeX.
Lush: My favorite small programming language
I meant to write about this when I started my blog in 2009. Eventually Lush kind of faded out of my consciousness, as it was a lot easier to get work doing stuff in R or Matlab or whatever. The guy…
Extending Rust's Effect System
This is the transcript of my RustConf 2023 talk: "Extending Rust's Effect System", presented on September 13th 2023 in Albuquerque, New Mexico and streamed online.
Unprojecting text with ellipses (2016)
Using transformed ellipses to estimate perspective transformations of text.
Distributed Authorization
Using local data to answer authorization questions with Oso Cloud
GNU Artanis 1.0.0 Released
The first product-level modern Web framework of Scheme programming language.
Optimizers need a rethink
Thoughts on how compiler and database optimizers should evolve in the future, focusing on predictability and guarantees instead of smarts and heroics
Django REST framework 3.15.0
Django REST framework - Web APIs for Django
Gleam 1.2.0 release – Fault tolerant Gleam
News post: Gleam v1.2.0 released
Windows dynamic linking depends on the active code page
Windows paths have been WTF-16 -encoded for decades, but module names in the import tables of Portable Executable are octets. If a name contains values beyond ASCII — technically out of spec — then the dynamic linker must somehow decode those octets into Unicode in order to construct a lookup path. There are multiple…
OpenSSL bug exposed up to 255 bytes of client heap and existed since 2011
Silently sends up to 255 bytes of the client's heap to the server . The server must support NPN , and the heap data is encrypted in transit.
The Practical Guide to Scaling Django
Most Django scaling guides focus on theoretical maximums. But real scaling isn't about handling hypothetical millions of users - it's about systematically eliminating bottlenecks as you grow. Here's how to do it right, based on patterns that work in production.
How to colorize Game Boy games – Backgrounds
We get a closer-to-final look by applying custom palettes to the backgrounds.
Writes large correct programs (2008)
A good programmer is someone who can write large programs that have a high probability of being correct.
Executing Cron Scripts Reliably at Scale
Cron scripts are responsible for critical Slack functionality. They ensure reminders execute on time, email notifications are sent, and databases are cleaned up, among other things. Over the years, both the number of cron scripts and the amount of data these scripts process have increased. While generally these cron…
Go(lang): Robust generic functions on slices
Avoiding memory leaks in the slices package.
Desktop icons are surprisingly hard
I spent past three weeks working on refactoring and fixing legacy code…
Evolution of the ELF object file format
Updated in 2025-09. The ELF object file format is adopted by many UNIX-like operating systems. While I've previously delved into the control structures of ELF and its predecessors, tracing the historical evolution of ELF and its relationship with the System V ABI can be interesting in itself. The format consists of…
JEP 483: Ahead-of-Time Class Loading and Linking
Improve startup time by making the classes of an application instantly available, in a loaded and linked state, when the HotSpot Java Virtual Machine starts. Achieve this by monitoring the application during one run and storing the loaded and linked forms of all classes in a cache for use in subsequent runs. Lay a…
Building Bubbletea Programs
In the words of its authors Bubble Tea is a “powerful little TUI framework” for Go. It may be little but I found it had a steep learning curve before I could get truly comfortable with its power. I spent many a late night wrangling with broken layouts and unresponsive keys before learning the hard way where I had gone…