2025-07-03
A Higgs-bugson in the Linux Kernel
blog.janestreet.com/a-higgs-bugson-in-the-linux-kernelWe recently ran across a strange higgs-bugson that manifested itself in a critical system that stores and distributes the firm’s trading activity data, called Gord. (A higgs-bugson is a bug that is reported in practice but difficult to reproduce, named for the Higgs boson, a particle which was theorized in the 1960s but only found in 2013.) In this post I’ll walk you through the process I took to debug it. I tried to write down relevant details as they came up, so see if you can guess what the bug is while reading along.
2025-06-18
zb beta released
www.zombiezen.com/blog/2025/06/zb-beta-releasezb is a tool for reproducibly building software, similar to Bazel.
(See the comparison page if you’re curious to know the differences.)
When a software build process is reproducible,
it will produce the exact same output
when given the same inputs.
Reproducibility is a desirable property for a software build process to have:
it simplifies debugging,
it enables build speed-ups,
and it is essential for digital supply chain security.
However, reproducibility is a difficult goal to achieve.
2025-06-13
What I talk about when I talk about IRs
bernsteinbear.com/blog/irsI have a lot of thoughts about the design of compiler intermediate representations (IRs). In this post I’m going to try and communicate some of those ideas and why I think they are important.
2025-05-28
The Ingredients of a Productive Monorepo
blog.swgillespie.me/posts/monorepo-ingredients2025-04-29
No-engine gamedev using Odin + Raylib
zylinski.se/posts/no-engine-gamedev-using-odin-and-raylibGames can be made in many different ways. Many games are made using big, general purpose game engines such as Unity and Godot. I enjoy using the Odin Programming Language combined with Raylib.
Odin is a C-like programming language and Raylib is library for drawing graphics, checking input and playing sounds. So it’s just a program that uses a simple library, no engine!
There are no objectively best ways to create games.
2025-03-21
Life Altering Postgresql Patterns
mccue.dev/pages/3-11-25-life-altering-postgresql-patterns2025-01-21
Algebraic Effects for the Rest of Us
overreacted.io/algebraic-effects-for-the-rest-of-us2025-01-07
Write your own tiny programming system(s)!
d3s.mff.cuni.cz/teaching/nprg0772024-12-17
Using Nix to Try Tools
entropicthoughts.com/using-nix-to-try-tools2024-11-20
On "Safe" C++
izzys.casa/2024/11/on-safe-cxx2024-11-04
Writing secure Go code
jarosz.dev/article/writing-secure-go-codeSecurity testing starts with understanding vulnerabilities. The CVE website lists known software flaws. The OWASP Top Ten highlights common weaknesses. With this knowledge, we can improve our Go development. This article shows how to put in place robust practices. They are to: fuzz inputs, verify dependencies, and use static analysis tools (SAST).
2024-09-18
Typescript is surprisingly ok for compilers
matklad.github.io/2023/08/17/typescript-is-surprisingly-ok-for-compilers.html2024-08-28
There can't be only one
www.b-list.org/weblog/2024/aug/27/highlander-problemThere's a concept that I've heard called by a lot of different names, but my favorite name for it is …
2024-07-05
JavaScript-Free Sidenotes in Hugo
danilafe.com/blog/sidenotes2024-06-24
Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming
arxiv.org/abs/1908.05647Most functional languages rely on some garbage collection for automatic memory management. They usually eschew reference counting in favor of a tracing garbage collector, which has less bookkeeping overhead at runtime. On the other hand, having an exact reference count of each value can enable optimizations, such as destructive updates. We explore these optimization opportunities in the context of an eager, purely functional programming language. We propose a new mechanism for efficiently reclaiming memory used by nonshared values, reducing stress on the global memory allocator. We describe an approach for minimizing the number of reference counts updates using borrowed references and a heuristic for automatically inferring borrow annotations. We implemented all these techniques in a new compiler for an eager and purely functional programming language with support for multi-threading. Our preliminary experimental results demonstrate our approach is competitive and often outperforms state-of-the-art compilers.
2024-06-20
build2 | C/C++ Build Toolchain
build2.orgbuild2 is an open source (MIT), cross-platform build toolchain that aims to approximate Rust Cargo's convenience for developing and packaging C/C++ projects while providing more depth and flexibility, especially in the build system.