Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,843 posts.
Perl 6's given: switch on steroids
Sometimes the best features of Perl — and even more so of Perl 6 — are found by asking yourself, “I wonder if this’ll work?” and then findin...
The Fargate Illusion
I’ve been building a Kubernetes based platform at $work now for almost a year, and I’ve become a bit of a Kubernetes apologist. It’s true, I think the technology is
Node 20 will be deprecated on GitHub Actions runners
Editor’s note (August 25, 2026): Updated the Node20 removal date to September 23rd, 2026. Editor’s note (February 25, 2026): Updated the migration date to June of 2026. Editor’s note (May…
Announcing the Qt Automotive Suite
Explore the Qt Blog for the latest insights on e.g. Qt Creator, your go-to source for cross-platform development tips and updates.
Tag Systems
I've tried to write a blog post on tag systems for years now. Literally years, I think I first started drafting it out in 2018 or so? The problem is that...
Lightweight API Design in Swift
This week, let’s take a look at a few core language features that enable us to design really lightweight APIs in Swift, and how we can use them to make a feature or system much more capable through the power of composition.
On calculating Fibonacci numbers in C
A few months ago Evan Miller wrote an essay called The Mathematical Hacker . While an interesting post he does make a mistake when he gives ...
GPL upgrades via section 14 proxy delegation
I am not a lawyer. This is provided solely for the purposes of general information and does not constitute legal advice, guidance, or counsel. No attorney-client relationship is established by the provision of this information, and no reliance should be placed on this information in lieu of seeking professional legal…
The Modern Observability Problem
The observability problem - Why is the system exhibiting this behaviour?
Building an AI agent inside a 7-year-old Rails monolith
We run a multi-tenant Rails application with sensitive data and layered authorization. In this post, I walk through how I added the first AI agent tool using RubyLLM, Pundit policies, and our existing Algolia search, without introducing a parallel system or loosening constraints.
Using the 5S Principle in Coding
A few years ago, I read The Toyota Way, driven by my curiosity about the origins of Agile software development. However, I became even more…
Reasons to choose PostgreSQL 9.6
PostgreSQL 9.6 was released a few days ago and it’s another huge milestone for the PostgreSQL community ! The release notes are way too long, so I’ve decided to pick up 6 big improvements that may change the way you will use PostgreSQL.
LittleJS is 2D and 3D now
LittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
Generalizing Support for Functional OOP in R
R has built-in support for two functional Object Oriented Programming (OOP) systems: S3 and S4, corresponding to the third and fourth version of the S language, respectively. The two systems are largely compatible; however, they are two fundamentally distinct systems, two systems for a user to understand, two systems…
Appending to a file from multiple processes
Suppose you have multiple processes appending output to the same file without explicit synchronization. These processes might be working in parallel on different parts of the same problem, or these might be threads blocked individually reading different external inputs. There are two concerns that come into play:
Coding Agent VMs on NixOS with Microvm.nix
I have come to appreciate coding agents to be valuable tools for working with computer program code in any capacity, such as learning about any program’s architecture, diagnosing bugs or developing proofs of concept. Depending on the use-case, reviewing each command the agent wants to run can get tedious and…
Cognitive Biases in Programming
As developers, we’re familiar with the various problems that interfere with our productivity. But often we overlook the broad picture. Some…
Tools I use: argparse builder
argparse builder is a web based graphical interface for quick creation of the argparse commandline switches for your python scripts.
Comet is dead, long live websockets
I've just had a chance to play with the implementation of websockets in Googles Chrome browser. This post started me off. After a small am...
Mono and WebAssembly – Updates on Static Compilation
As you may know we have been working on bringing Mono to the WebAssembly platform . As part of the effort we have been pursuing two strategies; one that uses the new Mono IL interpreter to run managed code at runtime, and one that uses full static (AOT) compilation to create one .wasm file that can be executed…
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’…
Writing docs well: why should a software engineer care?
Recently I gave a guest lecture in a graduate level software engineering course on the value of technical writing for software engineers. This post is a sort of rough transcript of my talk. I live-…