New
The latest blog posts to take off on Hacker News. 14,540 posts.
Benchmarking Ruby 2.6 to 3.2
The yearly benchmarking Ruby post
I wrote a Ruby extension in Zig
Just my website. Some Elixir, some Ruby, some more exotic languages and general thoughts on tech.
All I want for Christmas is these seven TypeScript improvements
It's Christmastime and I've been happily working through this year's Advent of Code in Deno (look forward to a blog post in the new year). What with all the presents, it's a good time to think about what we'd most like to see from TypeScript in the new year. Here are my top seven feature requests for 2023. Yes, that's…
Win16 Retro Development
Several months ago I had a go at producing a high resolution 256-color driver for Windows 3.1. The effort was successful but is not yet complete. Along the way I re-learned many things I had forgotten, and learned several new ones. This blog entry is based on notes I made during development.
Challenging algorithms and data structures every programmer should try
Bored of algorithms? Here are my recommendations that are exciting, understandable, and sometimes even useful!
Nix and NixOS, my pain points
Posts and writings by Rémy Grünblatt 🍃
For Want of a JOIN
Once upon a time, I was on a small team tasked with building a data pipeline. On this team was someone we’ll call Bob, who was fresh out of grad school and hadn’t had much experience with software engineering, and no experience with SQL. As part of this data pipeline, Bob had to combine the data from two tables. JOIN…
The pocket guide to debugging
New zine: The Pocket Guide to Debugging
Avoid exception throwing in performance-sensitive code
There are various ways in software to handle error conditions. In C or Go, one returns error code. Other programming languages like C++ or Java prefer to throw exceptions. One benefit of using exceptions is that it keeps your code mostly clean since the error-handling code is often separate. It is debatable whether…
Programming as Play
I often want to program something just for fun without any expectations. But why? Well, a recent scientific paper investigated this idea of programming as play.
This year in LLVM
Towards the end of last year, I switched from working on PHP at JetBrains, to working on LLVM at Red Hat. While it was already under discussion beforehand, this catalyzed the creation of the PHP foundation , which now pays multiple people to work on PHP. Special thanks for this go to Roman Pronskiy, who did most of…
Signed distance functions in 46 lines of Python
A walkthrough of 46 lines of code that render a 3D ASCII donut using signed distance functions.
Boring Python: Code quality
This is the second in a series of posts I intend to write about how to build, deploy, and manage …
“Laws” of software estimation for complex work (2021)
Wrong estimates aren’t your fault, but they are definitely your problem
Implementing ‘strlen’ using SVE
In C, the length of a string in marked by a 0 byte at the end of the string. Thus to determine the length of the string, one must scan it, looking for the 0 byte. Recent ARM processors have a powerful instruction set (SVE) that is well suited for such problems. It allows you … Continue reading Implementing ‘strlen’…
Astronomical Calculations for Hard SF in Common Lisp
Hard SF worldbuilding with the HYG database, Dijkstra's algorithm, and Lisp.
GCC now includes Modula-2 and Rust. Do they work on OpenBSD?
Two new language frontends have been added to GCC : Modula-2 and Rust . I think this is great news on both accounts: having a Wirth language in GCC fills my childhood heart with joy (though I do wish GNU Pascal can one day be revived and mainlined, as Pascal was the first non- BASIC language I learned). And Rust…
A few new things in Emacs 29
Everybody with an Emacs blogs raves about Emacs 29 these days. Things like Eglot, tree-sitter, SQL support and the like. Well, this is all nice – more than nice, brilliant! – but let’s not forget a few minor advances which are coming with Emacs 29. Let me mention a few things that I especially like.
Structuring Clojure applications
Dmitri's blog about programming, Clojure, and software development
GNU/Linux shell related internals
What every SRE should know about GNU/Linux shell related internals: file descriptors, pipes, terminals, user sessions, process groups and daemons # Last updated: Oct 2025 Contents File descriptor and open file description Pipes Process groups, jobs and sessions Terminals and pseudoterminals Despite the era of…
Quite OK Image is now my favorite asset format
The Quite OK Image (QOI) format was announced late last year and finalized into a specification a month later. Initially dismissive, a revisit has shifted my opinion to impressed. The format hits a sweet spot in the trade-off space between complexity, speed, and compression ratio. Also considering its alpha channel…
SQLite internals: How the most-used database works
Explore SQLite Internals: How The World's Most Used Database Works by Abdur-Rahmaan Janhangeer. Deep dive into database internals, systems engineering, and advanced Python.
Copilot Internals
Hacky repo to see what the Copilot extension sends to the server
A Linux Evening
I love to have Linux as my main OS. For someone who spends most of his time programming, writing HTML, writing LaTeX, and browsing the net, it is nearly a perfect tool. Packages are one "apt install" away. Mounting my website is one sshfs away and with private key authentication I don't even have to type my password…
Native Reflection in Rust
Today, I’m releasing deflect , an implementation of reflection for Rust. Deflect can be used to recover the concrete types of trait objects, inspect the internal state of async generators, pretty-print arbitrary data, and much more.
XFCE 4.18
After almost two years of work, we are happy to announce the release of Xfce 4.18 !
IDN is crazy
IDN, International Domain Names, is the concept that lets us register and use international characters in domain names, and by international we of course mean characters outside of the ASCII range. Recently I have fought some battles against IDN and IDN decoding so I felt this urge to write a lot of words about it ……