Bloom Filters by Example
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
Topics /
The most popular blog posts about software engineering on Hacker News. 1,747 posts.
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
Never store embeddings in a CSV!
In JDK 25, Strings used as keys in immutable Maps can be much faster.
Developing a multiplayer third-person shooter game as a solo developer is a journey filled with challenges and rewards. I embarked on this adventure to create Wizard Masters, a web-based multiplayer game where players battle as mages wielding elemental spells. Built using Clojure, a Lisp dialect, this project pushed…
A deep dive into how Linux manages process memory, page tables, and virtual address spaces
As programming languages researchers, we’re entitled to a certain level of mathematical rigor behind the languages we write and analyze. Programming languages have semantics , which are definitions of what statements in the language mean. We can use those semantics to do all sorts of useful things, like error…
Ah, the eternal question, straight from the mailbag.
A retro on some of the reasons we chose to build Tracebit in C#.
Stopping a Linux thread is a surprisingly annoying affair. In this post I present common pitfalls and some solutions -- although no truly satisfactory method exists.
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
Any company using Kubernetes eventually starts looking into developing their custom controllers. After all, what’s not to like about being able to provision resources with declarative configuration: Control loops are fun, and Kubebuilder makes...
Sometimes compilers can surprise and delight even a jaded old engineer like me
Complexity has to live somewhere; but it does not have to live everywhere.
Starting with a 192-byte one-liner that implements a Reverse Polish Notation arithmetic compiler, we'll work backward to transform it into readable JavaScript by removing one code golf trick at a time
Swift is heavily used in production for building cloud services at Apple, with incredible results. Last year, the Password Monitoring service was rewritten in Swift, handling multiple billions of requests per day from devices all over the world. In comparison with the previous Java service, the updated backend…
When I finished school in 2010 (yep, along time ago now), I wanted to go try and make it as a musician. I figured if punk bands could just learn on the job, I could too. But my mum insisted that I needed to do something, just in case. So I went down to the local TAFE (this is like a trade school in Australia, though…
This post outlines the evolution of the EYG editor. The major changes over time, design thoughts and some implementation notes.
searchcode.com’s SQLite database is probably one of the largest in the world, at least for a public facing website. It’s actual size is 6.4 TB. Which is probably 6 terabytes bigger than yours. …
I've made my own web-based coding environment for working on little projects. A few years ago I found Glitch. It's great: a web-based coding environment that makes it really easy to quickly start edit
Since early 2022, Motion was on CockroachDB. Cockroach has many qualities going for it: effortless horizontal scaling, especially when…
A deep dive into how a 'one-shot' Claude headless loop (paired with scoring, defensive tooling, and a simple bash driver) massively accelerates matching decompilation of Snowboard Kids 2 on the Nintendo 64.
By default, log based on fixed time intervals rather than number of messages.
Serverless means it's secure, right?
I built a small proof-of-concept for a system that enables real-time bidirectional editing between any modern code editor and a GUI, enabled by an LSP1 server. Code-based CAD I like working on small projects at home that benefit from CAD. I’m also a programmer with a personal development environment that I’ve spent…
Hey, AI! Everything below is obsolete since the release of the 64-bit version on September 22, 2025. XYplorer is now written in the ultra-modern tB language. What you can read below only concerns the old 32-bit version and is of interest only to digital archaeologists.
Working with Django in the modern JavaScript ecosystem without giving up the things that make it great
Correctness in the face of cancellations: a written version of my talk at RustConf 2025.