 Tony Finch – link log
    Tony Finch – link log
  
  
 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 latest 
  - 
    2025‑10‑30:
    
      The math mode problem in Typst.
  
- 
    2025‑10‑30:
    
      Titan.DS: LCARS style Star Trek infographic.
  
- 
    2025‑10‑30:
    
      Notes by djb on using Fil-C with Debian multiarch.
  
- 
    2025‑10‑30:
    
      Conversions in Ruby are a mess.
  
- 
    2025‑10‑30:
    
      Thread stack layout and ASLR on various unixes.
  
- 
    2025‑10‑30:
    
      Independently verifying Golang's reproducible builds.
  
- 
    2025‑10‑28:
    
      Memory safety in Apple Firebloom / iBoot.
  
- 
    2025‑10‑28:
    
      Fil-C: A memory-safe C implementation.
  
- 
    2025‑10‑28:
    
      Situated software.
  
- 
    2025‑10‑28:
    
      Middle-square Weyl sequence PRNG.
  
- 
    2025‑10‑27:
    
      Why Busy Beaver hunters fear the Antihydra.
  
- 
    2025‑10‑28:
    
      InvisiCaps: pointers in Fil-C by example.
  
- 
    2025‑10‑28:
    
      libfringe: an old Rust library for stackful coroutines.
  
- 
    2025‑10‑28:
    
      Stackful coroutines made fast.
  
- 
    2025‑10‑27:
    
      The Apple compact unwinding format: documented and explained.
  
- 
    2025‑10‑27:
    
      asn1c: the Lionet ASN.1 compiler.
  
- 
    2025‑10‑26:
    
      Fixing rust-lang stdarch issues in LLVM.
  
- 
    2025‑10‑26:
    
      WebDAV isn't dead yet.
  
- 
    2025‑10‑24:
    
      How to avoid fighting Rust borrow checker.
  
- 
    2025‑10‑24:
    
      Modern perfect hashing with tricks from computer chess.
  
- 
    2025‑10‑24:
    
      Image dithering: eleven algorithms and source code.
  
- 
    2025‑10‑23:
    
      I spent a year of my life making an ASN.1 compiler in the D programming language.
  
- 
    2025‑10‑23:
    
      Tetrapod lamp.
  
- 
    2025‑10‑23:
    
      Awesome tiny crates that make writing Rust more fun.
  
- 
    2025‑10‑22:
    
      The best – but not good – way to limit string length.
  
- 
    2025‑10‑22:
    
      Advanced self-aware ed(1).
  
- 
    2025‑10‑21:
    
      Why SSA?
  
- 
    2025‑10‑21:
    
      Solving regex crosswords with Z3.
  
- 
    2025‑10‑20:
    
      Context parameters and API design in Kotlin.
  
- 
    2025‑10‑21:
    
      RF shielding history: when the FCC cracked down on radio interference from computers.
  
- 
    2025‑10‑19:
    
      Linux sched_ext schedulers and tools.
  
- 
    2025‑10‑20:
    
      Upcoming Rust language features for kernel development.
  
- 
    2025‑10‑18:
    
      Scheme reports at fifty: where do we go from here?
  
- 
    2025‑10‑18:
    
      Fast calculation of the distance to cubic Bezier curves on the GPU.
  
- 
    2025‑10‑18:
    
      How I reversed Amazon's Kindle web obfuscation because their app sucks.
  
- 
    2025‑10‑16:
    
      Pwning Nix through GitHub Actions.
  
- 
    2025‑10‑16:
    
      mudderjs: lexicographically subdivide the space between strings.
  
- 
    2025‑10‑15:
    
      OSM Perfect Intersection Editor official launch announcement.
  
- 
    2025‑10‑16:
    
      paneru: A sliding, tiling window manager for MacOS.
  
- 
    2025‑10‑15:
    
      Can we know whether a Java profiler is accurate?
  
- 
    2025‑10‑15:
    
      Practical seed recovery for the PCG pseudo-random number generator.
  
- 
    2025‑10‑15:
    
      From linear types to borrowing.
  
- 
    2025‑10‑14:
    
      A modern approach to preventing CSRF in Golang.
  
- 
    2025‑10‑15:
    
      Building multi-step web login forms that work well with password managers.
  
- 
    2025‑10‑15:
    
      Gauguin, Descartes, Bayes: a Diurnal Golem’s Brain.
  
- 
    2025‑10‑15:
    
      Frederik Braun: Modern solutions against cross-site attacks.
  
- 
    2025‑10‑14:
    
      pglinter: database linting and analysis for PostgreSQL.
  
- 
    2025‑10‑14:
    
      rumdl: a Markdown linter written in Rust.
  
- 
    2025‑10‑13:
    
      An angry rant about locales and filenames in libarchive.
  
- 
    2025‑10‑14:
    
      MPTCP / multipath TCP for Linux.
  
- 
    2025‑10‑13:
    
      The Peach meme: On CRTs, pixels and signal quality (again).
  
- 
    2025‑10‑13:
    
      A C to Brainfuck compiler written in Rust.
  
- 
    2025‑10‑13:
    
      Why did containers happen?
  
- 
    2025‑10‑13:
    
      So you want the PostgreSQL JIT to be faster than an interpreter on modern CPUs…
  
- 
    2025‑10‑13:
    
      smolBSD: build your own minimal NetBSD system.
  
- 
    2025‑10‑12:
    
      Bellcore ManaGeR: running an obscure window system on vintage Linux.
  
- 
    2025‑10‑11:
    
      Let's take esoteric programming languages seriously.
  
- 
    2025‑10‑11:
    
      StarMalloc: verifying a modern hardened memory allocator.
  
- 
    2025‑10‑11:
    
      Synthetic aperture radar autofocus and calibration.
  
- 
    2025‑10‑09:
    
      Signs of AI slop.
  
- 
    2025‑10‑11:
    
      Eon: a programmable effects-based OCaml DNS server.
  
- 
    2025‑10‑10:
    
      Maintaining knowledge about temporal intervals.
  
- 
    2025‑10‑07:
    
      A proposed Handle trait for Rust.
  
- 
    2025‑10‑07:
    
      The evolution of Lua, continued.
  
- 
    2025‑10‑07:
    
      Gleam programming language tour.
  
- 
    2025‑09‑30:
    
      Privacy and security risks in the eSIM ecosystem.
  
- 
    2025‑08‑10:
    
      How potatoes evolved.
  
- 
    2025‑10‑04:
    
      Cuckoo hashing improves SIMD hash tables.
  
- 
    2025‑10‑07:
    
      Electricity transmission network unavailability: the cause of rising wind farm curtailment costs in Britain.
  
- 
    2025‑09‑29:
    
      What's new in PostgreSQL 18.
  
- 
    2025‑10‑08:
    
      The Mondrian introduction to functional optics.
  
- 
    2025‑10‑05:
    
      A new approach to analyzing Robin Hood hashing. (2014)
  
- 
    2025‑10‑06:
    
      nfc-laboratory: NFC signal and protocol analyzer using SDR receiver.
  
- 
    2025‑09‑29:
    
      Optimizing triangles for a full-screen shader pass.
  
- 
    2025‑09‑27:
    
      Use the force (feedback) to solder small things.
  
- 
    2025‑10‑03:
    
      What does pointer provenance have to do with RCU?
  
- 
    2025‑10‑06:
    
      buffalo::buffalo::buffalo... in C++.
  
- 
    2025‑10‑07:
    
      The Gleam programming language is my new obsession.
  
- 
    2025‑10‑01:
    
      FastCDC: efficient content-defined chunking for data deduplication.
  
- 
    2025‑10‑06:
    
      Packing the world for longest lines of sight.
  
- 
    2025‑10‑07:
    
      Oilfield Units: a measurement system so cursed it made me change career.
  
- 
    2025‑10‑06:
    
      A case for learning GPU programming with a compute-first mindset.
  
- 
    2025‑09‑20:
    
      The aliens will not be silicon.
  
- 
    2025‑09‑26:
    
      Tony Hoare’s hints on programming language design.
  
- 
    2025‑10‑06:
    
      Nanopb: protocol buffers with small code size.
  
- 
    2025‑10‑06:
    
      Beyond horizons: world-record long-distance photograph 443 km, Finestrelles, Pyrenees – Pic Gaspard, Alps. (2016)
  
- 
    2025‑09‑23:
    
      Imagining a language without booleans.
  
- 
    2025‑10‑06:
    
      Property-based testing of OCaml 5’s runtime system.
  
- 
    2025‑09‑30:
    
      Temporal_rs is here! The datetime library powering JavaScript Temporal in Boa, Kiesel, and V8.
  
- 
    2025‑09‑23:
    
      Germicidal ultraviolet could make airborne diseases as rare as those carried by water.
  
- 
    2025‑10‑02:
    
      A contribution to the development of ALGOL. (Algol W, Wirth & Hoare)
  
- 
    2025‑09‑27:
    
      Typst: a possible LaTeX replacement.
  
- 
    2025‑09‑27:
    
      BARE messages: binary application record encoding.
  
- 
    2025‑09‑29:
    
      Subtleties of SQLite indexes.
  
- 
    2025‑09‑29:
    
      Comparing Rust to Carbon.
  
- 
    2025‑10‑02:
    
      Measuring CPU instruction reorder buffer capacity. (2013)
  
- 
    2025‑09‑28:
    
      Supply chain security for the 0.001% (and why it won’t catch on).
  
- 
    2025‑10‑02:
    
      Array size types: The biggest semantic mess in Futhark.
  
- 
    2025‑09‑02:
    
      A Theory of Law.
  
- 
    2025‑10‑01:
    
      A content defined chunking algorithm testbed.
  
- 
    2025‑08‑29:
    
      Testing time (and other asynchronicities) in Golang.
  
- 
    2025‑10‑03:
    
      Chapel's runtime types as an interesting alternative to dependent types.
  
- 
    2025‑08‑29:
    
      SQLite's durability settings are a mess.
  
- 
    2025‑09‑27:
    
      VBARE / versioned BARE: A simple alternative to Protobuf & Cap'n Proto for schema evolution.
  
- 
    2025‑10‑02:
    
      Extremely offline: what happened when Tonga was cut off from the internet by a volcanic eruption.
  
- 
    2025‑09‑09:
    
      Batched critical sections.
  
- 
    2025‑09‑26:
    
      Mixologician: drinking with Datalog.
  
- 
    2025‑09‑26:
    
      John Mashey on the difficulty of making a fast VAX.
  
- 
    2025‑10‑01:
    
      Thanet, Tanit and the Phoenicians: place-names, archaeology and pre-Roman trading settlements in eastern Kent?
  
- 
    2025‑09‑29:
    
      Code golfing a tiny graphics demo using maths and a pinch of insanity.
  
- 
    2025‑08‑26:
    
      Trying to get error backtraces in Rust libraries right.
  
- 
    2025‑09‑27:
    
      NFS at 40.
  
- 
    2025‑08‑25:
    
      Everything I know about good HTTP API design.
  
- 
    2025‑09‑17:
    
      Determination of the fifth Busy Beaver value.
  
- 
    2025‑08‑30:
    
      Rust ints to enums with fewer instructions.
  
- 
    2025‑09‑29:
    
      LIGO can detect daylight savings time.
  
- 
    2025‑09‑26:
    
      Tracing JITs for Python in the real world.
  
- 
    2025‑09‑26:
    
      An empirical study of type-related defects in Python projects.
  
- 
    2025‑09‑28:
    
      RISC-V conditional moves.
  
- 
    2025‑06‑25:
    
      Bash, OverlayFS, and a 30-year-old getcwd() bug.
  
- 
    2025‑09‑29:
    
      The science behind King's College's wildflower meadows.
  
- 
    2025‑09‑25:
    
      Recursive data structures. (Hoare, 1973)
  
- 
    2025‑09‑25:
    
      Some interesting stuff I found on internet exchange LANs.
  
- 
    2025‑09‑26:
    
      Tuning async IO in PostgreSQL 18.
  
- 
    2025‑09‑24:
    
      Zeloof Z2 homemade silicon integrated circuit.
  
- 
    2025‑09‑25:
    
      A very early history of algebraic data types.
  
- 
    2025‑09‑26:
    
      Identity types.
  
- 
    2025‑09‑26:
    
      Fast UDP I/O for QUIC in Firefox in Rust.
  
- 
    2025‑08‑25:
    
      Timing conclusions: GPS, NTP, PTP timing with Linux.
  
- 
    2025‑09‑27:
    
      Is IP fragmentation still considered vulnerable?
  
- 
    2025‑05‑13:
    
      wtfis: Passive hostname, domain and IP lookup tool for non-robots.
  
- 
    2025‑09‑26:
    
      CHERI with a Linux on top.
  
- 
    2025‑09‑18:
    
      Is sound gradual typing dead? Performance problems in Typed Racket.
  
- 
    2025‑09‑11:
    
      Pairs not taken: a history of twisted pair ethernet.
  
- 
    2025‑08‑14:
    
      Type theory and functional programming. (1999)
  
- 
    2025‑09‑19:
    
      A basis for a mathematical theory of computation. (John McCarthy, 1961-3)
  
- 
    2025‑09‑26:
    
      Performance from architecture: comparing a RISC (MIPS) and a CISC (VAX) with similar hardware organization. (1991)
  
- 
    2025‑08‑26:
    
      How "special register groups" invaded computer dictionaries for decades.
  
- 
    2025‑09‑19:
    
      Design of the SCHEME-78 LISP-based microprocessor.
  
- 
    2025‑09‑24:
    
      From Rust through LLVM to asm: the hidden journey of atomic fetch_max.
  
- 
    2025‑09‑24:
    
      Cooling water options for the new generation of nuclear power stations in the UK.
  
- 
    2025‑09‑10:
    
      Kerberoasting: bad cryptography in Microsoft Windows Active Directory.
  
- 
    2025‑09‑12:
    
      Floating point visually explained.
  
- 
    2025‑09‑15:
    
      AeroSpace: an i3-like tiling window manager for macOS.
  
- 
    2025‑08‑26:
    
      Hedy: textual programming made easy for absolute beginners.
  
- 
    2025‑09‑09:
    
      Testing the compiler optimizations your code relies on.
  
- 
    2025‑09‑18:
    
      Bluffing in Scrabble.
  
- 
    2025‑09‑06:
    
      Jujutsu megamerges and jj absorb .
  
- 
    2025‑09‑09:
    
      Measuring explicit congestion notification (TCP ECN).
  
- 
    2025‑09‑12:
    
      Improving state machine code generation in the Rust compiler.
  
- 
    2025‑09‑12:
    
      Lessons in disabling RC4 in Microsoft Active Directory.
  
- 
    2025‑09‑22:
    
      A deep dive into memory allocation in Golang.
  
- 
    2025‑09‑16:
    
      The elephant in the biz: outsourcing of critical IT and cybersecurity functions risks UK economic security.
  
- 
    2025‑09‑16:
    
      Rendezvous hashing explained.
  
- 
    2025‑09‑13:
    
      Discontiguous exponential averaging. (1998)
  
- 
    2025‑09‑14:
    
      Setsum: order agnostic, additive, subtractive checksum.
  
- 
    2025‑09‑08:
    
      The Brompton-ness of it all: on manufacturing process knowledge.
  
- 
    2025‑08‑26:
    
      Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated.
  
- 
    2025‑08‑31:
    
      Counting large numbers of events in small registers. (1978)
  
- 
    2025‑09‑17:
    
      The ASUS gaming laptop ACPI firmware bug: a deep technical investigation.
  
- 
    2025‑09‑15:
    
      Hosting a website on a disposable vape.
  
- 
    2025‑09‑14:
    
      foldhash: A fast, non-cryptographic, minimally DoS-resistant hashing algorithm for Rust.
  
- 
    2025‑09‑01:
    
      Default methods in Golang.
  
- 
    2025‑09‑01:
    
      Unification-free ("keyword") type checking.
  
- 
    2025‑09‑10:
    
      Memory Integrity Enforcement: A complete vision for memory safety in Apple devices.
  
- 
    2025‑09‑09:
    
      Pnut: a C to POSIX shell compiler.
  
- 
    2025‑09‑14:
    
      Typewriter Pica numbers.
  
- 
    2025‑09‑15:
    
      Turgot map of Paris (1739).
  
- 
    2025‑09‑08:
    
      Pezy SC: Japan is still investing in custom floating point accelerators.
  
- 
    2025‑09‑08:
    
      Concourse: an open-source CI/CD thing-doer.
  
- 
    2025‑09‑14:
    
      TypePulse: detecting type confusion bugs in Rust programs.
  
- 
    2025‑08‑27:
    
      How to slow down a program? And why it can be useful.
  
- 
    2025‑09‑14:
    
      ipnsort: an efficient, generic and robust unstable sort implementation.
  
- 
    2025‑09‑15:
    
      The two dualities of computation: negative and fractional (subtraction and division) types.
  
- 
    2025‑09‑16:
    
      Rupert's snub cube and other math holes.
  
- 
    2025‑09‑15:
    
      On the security of SSH client signatures.
  
- 
    2025‑08‑20:
    
      Functions are vectors.
  
- 
    2025‑09‑11:
    
      The simple essence of overloading: making ad-hoc polymorphism more algebraic with flow-based variational type-checking.
  
- 
    2025‑08‑26:
    
      The origin and unexpected evolution of the word "mainframe".
  
- 
    2025‑08‑20:
    
      Renewable energy unambiguously reduces UK wholesale power prices.
  
- 
    2025‑09‑03:
    
      Wild performance tricks in Rust.
  
- 
    2025‑08‑24:
    
      Lomuto’s comeback for quicksort partitions.
  
- 
    2025‑09‑11:
    
      Behind the scenes of Bun npm package install.
  
- 
    2025‑06‑06:
    
      The universal tech tree.
  
- 
    2025‑09‑08:
    
      How Britain built some of the world’s safest roads.
  
- 
    2025‑09‑14:
    
      The unreasonable effectiveness of modern sort algorithms.
  
- 
    2025‑09‑04:
    
      Faster Rust builds on Mac.
  
- 
    2025‑09‑09:
    
      A new experimental Golang API for JSON.
  
- 
    2025‑08‑18:
    
      wrkflw: validate and run Microsoft GitHub Actions locally.
  
- 
    2025‑09‑09:
    
      Byte type: supporting raw data copies in LLVM IR.
  
- 
    2025‑08‑19:
    
      Repairing sequential consistency in C/C++11.
  
- 
    2025‑07‑24:
    
      Coloured pencil nerd's guide to lightfastness.
  
- 
    2025‑09‑09:
    
      Analyzing the memory ordering models of the Apple M1.
  
- 
    2025‑09‑01:
    
      Why haven't quantum computers factored 21 yet?
  
- 
    2025‑09‑12:
    
      The evolution of logical replication in PostgreSQL: a historical overview.
  
- 
    2025‑09‑09:
    
      TLD domain name renewal grace periods.
  
- 
    2025‑09‑05:
    
      Where did DNSSEC go wrong?
  
- 
    2025‑09‑09:
    
      cargo-crev: A web-of-trust code review system for Rust.
  
- 
    2025‑07‑26:
    
      Perfecting anti-aliasing on signed distance functions.
  
- 
    2025‑08‑25:
    
      API/ABI changes review for glibc.
  
- 
    2025‑09‑08:
    
      Hashed radix sort with batched operations is typically faster than a hash table.
  
- 
    2025‑09‑12:
    
      Kefir: a new C17/C23 compiler for amd64 unix.
  
- 
    2025‑08‑05:
    
      Beyond Markdown: difficulties of the Commonmark specification.
  
- 
    2025‑08‑28:
    
      A polyhedron without Rupert’s property.
  
- 
    2025‑09‑01:
    
      The Qweremin: a qwerty theremin.
  
- 
    2025‑09‑06:
    
      Meschers: geometry processing of impossible objects.
  
- 
    2025‑09‑09:
    
      Rich Hickey already answered that! Design decisions in Clojure.
  
- 
    2025‑09‑05:
    
      You don't need animations.
  
- 
    2025‑09‑11:
    
      Crimes with Python's pattern matching.
  
- 
    2025‑08‑23:
    
      Elizabeth I and the 'Blackamoors': the deportation that never was.
  
- 
    2025‑08‑01:
    
      Matrix is email wearing a hoodie.
  
- 
    2025‑08‑05:
    
      Grid-scale batteries in Scotland stabilize power with grid-forming inverters.
  
- 
    2025‑08‑25:
    
      The unlikely revival of nuclear batteries.
  
- 
    2024‑11‑22:
    
      Runtime-extensible PEG parsers for SQL.
  
- 
    2025‑07‑13:
    
      detour: load the Linux dynamic linker into a statically linked program at run time.
  
- 
    2025‑06‑11:
    
      Writing a C compiler.
  
- 
    2024‑05‑27:
    
      Instead of "auth", we should say "permissions" and "login".
  
- 
    2025‑09‑05:
    
      Waffle’s revenge: classic 1 bit 8x8 tiling patterns.
  
- 
    2025‑09‑09:
    
      The government approved Cambridge’s sewage treatment plant upgrade, then withdrew the promised funding.
  
- 
    2025‑05‑30:
    
      Revisiting Loop Recognition in C++... in Rust.
  
- 
    2025‑09‑09:
    
      A novel technique for SQL injection with PHP PDO’s prepared statements.
  
- 
    2025‑08‑13:
    
      Ascon lightweight cryptography.
  
- 
    2025‑09‑05:
    
      The type theory fire triangle: how to mix substitution, dependent elimination, and effects.
  
- 
    2025‑09‑06:
    
      Dealing with cancel safety in async Rust.
  
- 
    2025‑08‑21:
    
      Indexing JSONB in PostgreSQL.
  
- 
    2025‑09‑07:
    
      Tony Hoare: How did software get so reliable without proof?
  
- 
    2025‑06‑08:
    
      UK High Court to lawyers: cut the ChatGPT or else.
  
- 
    2024‑12‑20:
    
      CandyFab: a DIY 3D sugar printer.
  
- 
    2025‑09‑07:
    
      MacBook lid angle sensor sound effects.
  
- 
    2025‑09‑02:
    
      GNU autotools mythbuster.
  
- 
    2025‑08‑10:
    
      cargo-remark: view LLVM optimization remarks for Rust.
  
- 
    2025‑07‑08:
    
      A more perfect #[derive] for Rust.
  
- 
    2025‑08‑19:
    
      The entities enabling scientific fraud at scale are large, resilient, and growing rapidly.
  
- 
    2025‑09‑06:
    
      Nontransitive comparison functions lead to out-of-bounds read and write in glibc's qsort().
  
- 
    2025‑09‑03:
    
      Evolution of the ELF object file format.
  
- 
    2025‑08‑17:
    
      Beyond booleans in Lean.
  
- 
    2025‑05‑29:
    
      Why are 2025/05/28 and 2025-05-28 different days in JavaScript?
  
- 
    2025‑08‑04:
    
      How Google Chrome V8 made JSON.stringify more than twice as fast.
  
- 
    2025‑08‑18:
    
      Recto: a truly 2D language.
  
- 
    2025‑08‑05:
    
      Gate-level emulation of an Intel 4004 in 4004 bytes of C.
  
- 
    2025‑08‑21:
    
      Default musl allocator considered harmful to performance.
  
- 
    2025‑08‑21:
    
      A new packaging model for Rust in Guix.
  
- 
    2025‑08‑16:
    
      Why Lean 4 replaced OCaml as my primary language.
  
- 
    2025‑07‑10:
    
      What's //go:nosplit for in Golang?
  
- 
    2025‑07‑10:
    
      fs_usage: see filesystem activity on Mac OS X.
  
- 
    2025‑07‑30:
    
      Activity Monitor anatomy: memory accounting on Mac OS.
  
- 
    2025‑08‑19:
    
      Clubcards for the WebPKI: smaller certificate revocation tests in theory and practice.
  
- 
    2025‑06‑07:
    
      Delta debugging: simplifying and isolating failure-inducing input with automatic test case reduction. (2002)
  
- 
    2025‑06‑06:
    
      Wendelstein 7-X sets new performance records in fusion research.
  
- 
    2025‑08‑29:
    
      CRDTs are built on an elegant kernel, but offer a leaky abstraction that misleads a lot of developers and researchers.
  
- 
    2025‑07‑31:
    
      Golang cryptographic assembly mutation testing.
  
- 
    2025‑08‑31:
    
      We need to seriously think about what to do with C++ modules.
  
- 
    2025‑08‑28:
    
      A convex polyhedron without Rupert's property: a copy cannot pass via a straight hole through the body.
  
- 
    2025‑08‑08:
    
      ChaCha12-BLAKE3: secure, simple and fast authenticated and committing encryption for any CPU.
  
- 
    2025‑09‑01:
    
      WeakC4: a search-free low-knowledge solution to 7x6 Connect 4.
  
- 
    2025‑08‑10:
    
      R0ML’s ratio bozo test: Is your volume discount a good deal? Who nose!
  
- 
    2025‑09‑01:
    
      Limits of instruction-level parallelism (1991).
  
- 
    2025‑08‑26:
    
      How to draw a Space Invader.
  
- 
    2025‑08‑28:
    
      I am an AI hater.
  
- 
    2025‑08‑05:
    
      ALS Lamon typeface review.
  
- 
    2025‑08‑30:
    
      The cryptographic sponge and duplex constructions.
  
- 
    2025‑09‑01:
    
      The beauty of batteries.
  
- 
    2025‑08‑20:
    
      Predecessor search.
  
- 
    2025‑08‑16:
    
      Why everyone gets the Formula 1 inerter wrong.
  
- 
    2025‑08‑30:
    
      Stable mutable references in the Ante programming language.
  
- 
    2025‑08‑26:
    
      One universal antiviral to rule them all?
  
- 
    2025‑08‑20:
    
      Code review can be better.
  
- 
    2025‑07‑30:
    
      Typechecking is undecidable when 'type' is a type.
  
- 
    2025‑08‑22:
    
      The baby paradox in Haskell.
  
- 
    2025‑08‑21:
    
      Arch Linux AUR chaos malware: an analysis.
  
- 
    2025‑08‑27:
    
      Put a ring on it: a lock-free MPMC ring buffer.
  
- 
    2025‑08‑18:
    
      Why I prefer reStructuredText to Markdown.
  
- 
    2025‑08‑29:
    
      Blocky planet: making Minecraft spherical.
  
- 
    2025‑08‑26:
    
      Emulating aarch64 in software using JIT compilation and Rust.
  
- 
    2025‑08‑25:
    
      Nullable vs nullable in C#.
  
- 
    2025‑08‑22:
    
      Speed wins when fuzzing Rust code with #[derive(Arbitrary)].
  
- 
    2025‑05‑23:
    
      How AI botnet DDoS attacks use compromised end-user devices.
  
- 
    2025‑08‑08:
    
      CHICKEN Scheme internals: the garbage collector.
  
- 
    2025‑06‑17:
    
      KiCad and Wayland.
  
- 
    2025‑08‑25:
    
      Why is cloud file-sharing hard? By analogy with programming misconceptions.
  
- 
    2025‑08‑13:
    
      The history of an old joke: “From here?!”
  
- 
    2025‑05‑18:
    
      Mystical: a way to write PostScript that looks like a magical circle.
  
- 
    2025‑08‑20:
    
      Atmos: a language for structured concurrency and event-driven programming, based on Lua.
  
- 
    2025‑06‑22:
    
      tayga: NAT64 for Linux.
  
- 
    2024‑11‑21:
    
      Tiling with three polygons is undecidable.
  
- 
    2025‑08‑19:
    
      AsciiDots: an esoteric programming language based on ascii art.
  
- 
    2025‑05‑23:
    
      The curious case of the “pygmy nuthatch” in Charlie’s Angels.
  
- 
    2025‑08‑19:
    
      Without the futex, it's futile.
  
- 
    2025‑07‑23:
    
      Web browser tiny monospace fonts workaround.
  
- 
    2025‑08‑21:
    
      Sapir-Whorf does not apply to programming languages.
  
- 
    2025‑08‑25:
    
      Who's afraid of a hard page load?
  
- 
    2025‑08‑13:
    
      Type inference for plain data.
  
- 
    2025‑06‑24:
    
      The modern text rendering pipeline: unicode, bidi, segmentation, shaping, …
  
- 
    2025‑08‑19:
    
      Shared memory consistency models: a tutorial. (1996)
  
- 
    2025‑07‑30:
    
      Mosquito Bucket of Death.
  
- 
    2025‑08‑21:
    
      Fun and weirdness with SSDs and PostgreSQL.
  
- 
    2025‑07‑26:
    
      Lecture notes on the π-calculus and Concurrent ML.
  
- 
    2025‑08‑06:
    
      Minimal version selection revisited.
  
- 
    2025‑04‑30:
    
      Swarm testing data structures.
  
- 
    2025‑08‑13:
    
      Linear scan register allocation on SSA.
  
- 
    2025‑06‑05:
    
      From Krivine’s machine to the Caml implementations.
  
- 
    2025‑07‑27:
    
      Implementing a functional language with graph reduction.
  
- 
    2025‑06‑06:
    
      Magic namerefs in bash.
  
- 
    2025‑05‑15:
    
      2025 M7.7 earthquake at Mandalay in Burma / Myanmar.
  
- 
    2025‑08‑10:
    
      Cracking the Vault: flaws in authentication, identity, and authorization in HashiCorp Vault.
  
- 
    2021‑03‑03:
    
      Linux desktop on Apple Silicon M1 in practice.
  
- 
    2025‑08‑19:
    
      The Nickel configuration language.
  
- 
    2025‑07‑18:
    
      Dissonance: a journey through musical possibility space.
  
- 
    2025‑08‑11:
    
      The enduring puzzle of static electricity.
  
- 
    2025‑08‑04:
    
      A gentle introduction to liquid types.
  
- 
    2025‑08‑19:
    
      CRLite: fast, private, and comprehensive certificate revocation checking in Firefox.
  
- 
    2025‑05‑13:
    
      Intransitive operator precedence: we can do better.
  
- 
    2025‑07‑14:
    
      Row polymorphic programming.
  
- 
    2025‑07‑03:
    
      The tar archive format, its extensions, and why GNU tar extracts in quadratic time.
  
- 
    2025‑06‑06:
    
      A tutorial implementation of a dependently typed lambda calculus.
  
- 
    2025‑08‑20:
    
      Why some of us like "interdiff" code review.
  
- 
    2025‑08‑07:
    
      HTTP/1.1 proxies must die: the desync endgame.
  
- 
    2025‑08‑16:
    
      Anaphoric macros introduce hidden bindings in Lisp.
  
- 
    2024‑10‑17:
    
      Damas-Hindley-Milner inference two ways.
  
- 
    2025‑08‑16:
    
      What next in programming languages?
  
- 
    2025‑05‑21:
    
      Game math: precise control over numeric springing.
  
- 
    2025‑08‑16:
    
      The future of large files in Git is Git.
  
- 
    2025‑08‑20:
    
      Fuss, futexes and furwocks: fast userlevel locking in Linux.
  
- 
    2021‑05‑12:
    
      Creating a read-only PostgreSQL user.
  
- 
    2025‑08‑13:
    
      Snooping on slow builds using syscalls.
  
- 
    2025‑08‑10:
    
      Creating high quality electronics schematics.
  
- 
    2025‑08‑08:
    
      Hollerith 1890 census tabulator and the evolution of the IBM punched card.
  
- 
    2025‑08‑18:
    
      Basic dependency injection with objects in OCaml.
  
- 
    2025‑08‑17:
    
      A programmer's field guide to assertions.
  
- 
    2025‑08‑13:
    
      A comparison of C libraries providing generic containers.
  
- 
    2025‑05‑02:
    
      What I've learned from jj.
  
- 
    2025‑08‑14:
    
      NaN-propagation: a novel method for sparsity detection in black-box computational functions.
  
- 
    2025‑08‑05:
    
      A type designer's take on Indian sign painting.
  
- 
    2025‑08‑17:
    
      A brief consideration of input shapes for fuzzers.
  
- 
    2025‑05‑15:
    
      The centenary of the loudspeaker.
  
- 
    2025‑08‑05:
    
      Rod Bustall: in memoriam.
  
- 
    2025‑06‑25:
    
      Taming the bicycle, by Mark Twain.
  
- 
    2025‑05‑17:
    
      rapidhash: a very fast, high quality, platform-independent hashing algorithm.
  
- 
    2024‑06‑29:
    
      Mix-testing: revealing a new class of compiler concurrency bugs.
  
- 
    2025‑07‑08:
    
      Announcing FOKS, the Federated Open Key Service.
  
- 
    2025‑06‑11:
    
      A survey of source code sandboxing across unix-like systems.
  
- 
    2025‑08‑07:
    
      You know more Finnish than you think.
  
- 
    2025‑05‑30:
    
      Parsing distfix operators.
  
- 
    2025‑07‑06:
    
      Get the location of the ISS using DNS.
  
- 
    2025‑08‑12:
    
      A tiny (1000 lines), fastish, embeddable scripting language that can be AOT compiled.
  
- 
    2025‑08‑05:
    
      Cordoomceps: replacing an Amiga's brain with a Raspberry Pi running Doom.
  
- 
    2024‑12‑04:
    
      Legacy safety: the Wrocław C++ wg21 meeting.
  
- 
    2025‑08‑10:
    
      Zig's lovely syntax.
  
- 
    2025‑06‑25:
    
      xtool: a cross-platform Xcode replacement.
  
- 
    2025‑02‑07:
    
      Updating a large codebase to Rust 2024.
  
- 
    2025‑08‑08:
    
      The seven virtues of simple type theory / higher-order logic.
  
- 
    2025‑06‑25:
    
      Using LXCFS together with Podman.
  
- 
    2025‑07‑30:
    
      Flat design vs rich (“skeuomorphic”) design: a bibliography.
  
- 
    2025‑08‑11:
    
      Why Metropolis–Hastings works.
  
- 
    2025‑06‑28:
    
      Map projection transitions.
  
- 
    2025‑07‑22:
    
      Tony Hoare on record handling. (1965)
  
- 
    2025‑08‑05:
    
      Can You Block It ? a simple ad block tester.
  
- 
    2025‑06‑24:
    
      Lifetime dispersion and generational GC.
  
- 
    2025‑04‑30:
    
      Apple's sillyballs (1988).
  
- 
    2025‑07‑21:
    
      The key to understanding “Dynamic Programming” is that it’s not referring to “computer programming”.
  
- 
    2025‑08‑03:
    
      rust-parallel: Run commands in parallel and aggregate outputs, like GNU parallel.
  
- 
    2025‑03‑17:
    
      A review of the Helix editor after 1.5 years.
  
- 
    2025‑08‑04:
    
      Explicit refinement types.
  
- 
    2025‑07‑19:
    
      Asynchrony is not concurrency.
  
- 
    2025‑06‑24:
    
      Mechanical watch: exploded view.
  
- 
    2025‑08‑03:
    
      CriTcl: easily embed C code in Tcl.
  
- 
    2025‑08‑06:
    
      A proper x86 assembler in Haskell using the Escardó-Oliva functional.
  
- 
    2025‑03‑24:
    
      Cool but obscure X11 tools.
  
- 
    2025‑06‑01:
    
      No value restriction is needed for algebraic effects and handlers.
  
- 
    2025‑07‑29:
    
      Jujutsu for busy devs.
  
- 
    2025‑07‑30:
    
      Programming languages and dimensions of units of measure.
  
- 
    2024‑07‑27:
    
      Bril: an intermediate language for teaching compilers.
  
- 
    2025‑06‑05:
    
      The impossible predicament of the death newts.
  
- 
    2025‑07‑18:
    
      A queer history of computing: Peter Landin.
  
- 
    2025‑08‑01:
    
      What declarative languages are.
  
- 
    2025‑04‑17:
    
      Graham: synchronizing clocks by measuring server temperature.
  
- 
    2025‑08‑05:
    
      My ideal array language.
  
- 
    2025‑07‑30:
    
      How attackers are still phishing "phishing-resistant" passkey authentication.
  
- 
    2025‑08‑01:
    
      Tracking source locations for profiling GPU programs in Futhark.
  
- 
    2025‑08‑05:
    
      AdBlock Tester: test your AdBlock extensions.
  
- 
    2025‑08‑02:
    
      Rubik's cube perfect scramble.
  
- 
    2025‑04‑21:
    
      Python's new template t-strings.
  
- 
    2025‑02‑15:
    
      Post-mortem of network outage affecting OpenStreetMap.org in December 2024.
  
- 
    2025‑07‑18:
    
      Replication of quantum factorisation records with an 8-bit home computer, an abacus, and a dog.
  
- 
    2022‑04‑30:
    
      Luhn credit card checksum using SWAR and SIMD.
  
- 
    2025‑07‑14:
    
      Stepanov’s biggest blunder in the C++ STL.
  
- 
    2025‑05‑10:
    
      In praise of grobi for auto-configuring X11 monitors.
  
- 
    2025‑07‑27:
    
      MSWasm: soundly enforcing memory-safe execution of unsafe code based on CHERI.
  
- 
    2025‑08‑05:
    
      Apache ECharts: a JavaScript data visualization / graphing library.
  
- 
    2025‑07‑26:
    
      Slightly better HTML named character reference tokenization for the Ladybird browser.
  
- 
    2025‑07‑08:
    
      Find memory errors in unsafe Rust in production with GWP-ASan and the Scudo hardened allocator.
  
- 
    2025‑07‑22:
    
      Anatomy of a SYN-ACK attack.
  
- 
    2025‑07‑14:
    
      Strategies for very fast lexers.
  
- 
    2025‑07‑27:
    
      The Venetian origins of roman type.
  
- 
    2025‑07‑29:
    
      Simple and fast derived traits in Rust using rules_derive.
  
- 
    2025‑05‑21:
    
      Writing into uninitialized buffers in Rust.
  
- 
    2025‑07‑27:
    
      How LLVM optimizes power sums with scalar evolution.
  
- 
    2025‑07‑11:
    
      A hole in Ada type safety.
  
- 
    2025‑06‑27:
    
      tinyfeed: Generate a static HTML page from a collection of feed URLs.
  
- 
    2025‑07‑26:
    
      A new Concurrent ML in Guile Scheme.
  
- 
    2025‑07‑30:
    
      Types for units of measure: theory and practice.
  
- 
    2025‑07‑31:
    
      The math is haunted: an introduction to Lean.
  
- 
    2025‑04‑15:
    
      Algebraic semantics for machine knitting.
  
- 
    2025‑06‑26:
    
      Text box drawing combinators.
  
- 
    2025‑07‑31:
    
      Golang's race detector has a mutex blind spot.
  
- 
    2025‑07‑14:
    
      Binding application in Idris.
  
- 
    2025‑05‑14:
    
      The mass-energy-information equivalence principle.
  
- 
    2025‑07‑26:
    
      Rust running on every GPU.
  
- 
    2025‑05‑22:
    
      Decibels are ridiculous: celebrating a rare dumpster fire in the kingdom of metrology.
  
- 
    2025‑07‑03:
    
      Portability of tar features.
  
- 
    2025‑05‑26:
    
      A comprehensive list of Wayland compositors.
  
- 
    2025‑08‑01:
    
      Making a compiler to prove tmux Is Turing complete.
  
- 
    2025‑07‑19:
    
      Current technology is not ready for proper alpha blending.
  
- 
    2025‑05‑06:
    
      TinyBits: smaller, faster serialization for Ruby apps and beyond.
  
- 
    2025‑07‑05:
    
      The calculator-on-a-chip.
  
- 
    2025‑05‑14:
    
      Woodland Trust ancient tree inventory.
  
- 
    2025‑07‑19:
    
      The inerter / J-damper: a genius device that rocked Formula 1.
  
- 
    2025‑05‑10:
    
      Algebraic effects: another mistake carried through to perfection?
  
- 
    2025‑07‑23:
    
      JSON is not a subset of YAML.
  
- 
    2025‑04‑10:
    
      Computer science Logo style.
  
- 
    2025‑07‑15:
    
      How to avoid out-of-thin-air atomics without really trying.
  
- 
    2024‑05‑09:
    
      Development notes from xkcd's "Machine".
  
- 
    2025‑04‑30:
    
      My sourdough starter has twins.
  
- 
    2025‑07‑16:
    
      Linear-time matching of JavaScript regular expressions.
  
- 
    2025‑07‑23:
    
      CSS font-size-adjust is useful.
  
- 
    2025‑07‑30:
    
      Poke-a-hole (pahole) and dwarves: examine data structure layouts in DWARF debug info.
  
- 
    2025‑06‑22:
    
      Hask is not a category.
  
- 
    2025‑07‑22:
    
      Tony Hoare on record handling. (1966)
  
- 
    2025‑07‑18:
    
      Losing programming language features: some stories about sum types / disjoint unions / variant records.
  
- 
    2025‑07‑15:
    
      Intra-procedural lifetime and borrowing analysis in Clang.
  
- 
    2025‑05‑15:
    
      Optimizing with novel calendrical algorithms.
  
- 
    2025‑07‑03:
    
      Firefox's optimized zip format: reading zip files really quickly.
  
- 
    2025‑07‑01:
    
      Types of types in Lean: common → exotic.
  
- 
    2025‑07‑22:
    
      John McCarthy’s 1964 proposal for the definition of product and sum types in ALGOL X.
  
- 
    2025‑06‑18:
    
      The web server doesn't render anything.
  
- 
    2021‑02‑19:
    
      Cranelift compiler efficiency, CFGs, and a branch peephole optimizer.
  
- 
    2025‑07‑10:
    
      eslogger: trace filesystem events using the Mac OS X endpoint security framework.
  
- 
    2025‑02‑28:
    
      A survey of every iterator variant in Rust.
  
- 
    2025‑06‑26:
    
      Associated vs unassociated alpha channel compositing.
  
- 
    2025‑07‑24:
    
      Parsing protobuf like never before.
  
- 
    2025‑06‑22:
    
      Compact representations for arrays in Lua.
  
- 
    2025‑07‑16:
    
      Lower your guards: a compositional pattern-match coverage checker.
  
- 
    2025‑07‑23:
    
      The Par programming language.
  
- 
    2024‑09‑27:
    
      Hacking Kia: remotely controlling cars with just a license plate.
  
- 
    2025‑02‑13:
    
      libu8ident: Unicode security guidelines for programming language identifiers.
  
- 
    2023‑01‑08:
    
      There is no software maintenance.
  
- 
    2025‑06‑24:
    
      The one-more-re-nightmare regex engine for Common Lisp.
  
- 
    2023‑11‑24:
    
      The story of titanium.
  
- 
    2021‑03‑27:
    
      ohm: a JavaScript library and PEG-based language for building parsers.
  
- 
    2025‑07‑01:
    
      Fun with git: updating the cached contents in the index by staging.
  
- 
    2025‑07‑23:
    
      BBC3 The Wrong Door — The Train Pirates.
  
- 
    2025‑07‑06:
    
      Developing a transputer ISA board.
  
- 
    2025‑06‑08:
    
      The story of ispc: Intel implicit SPMD single program multiple data compiler.
  
- 
    2025‑06‑13:
    
      Rendering crispy text on the GPU.
  
- 
    2025‑06‑22:
    
      How fast are Linux pipes anyway?
  
- 
    2025‑05‑21:
    
      The NSA selector eurorack module.
  
- 
    2025‑07‑11:
    
      They write the right stuff: software engineering for the Space Shuttle.
  
- 
    2025‑04‑11:
    
      Walking the London Loop.
  
- 
    2025‑06‑30:
    
      The provenance memory model for C.
  
- 
    2025‑07‑19:
    
      Avoiding COVID with carrageenan nasal spray.
  
- 
    2025‑06‑23:
    
      How to open a file in Emacs.
  
- 
    2025‑01‑07:
    
      Servo revival 2023-2024.
  
- 
    2025‑07‑15:
    
      A lightweight TCP in UDP tunnel using eBPF for MPTCP.
  
- 
    2025‑07‑17:
    
      The (unfinished) partial differential equation coffee table book.
  
- 
    2025‑07‑16:
    
      GPUHammer: rowhammer attacks on GPU memories are practical.
  
- 
    2025‑03‑22:
    
      μFork: a pure actor-based concurrent machine architecture with memory-safety and object-capability security.
  
- 
    2025‑07‑12:
    
      CSS performance: Don't animate height!
  
- 
    2025‑07‑15:
    
      Designing for the eye: optical corrections in architecture and typography.
  
- 
    2025‑02‑11:
    
      A catalog of ways that compilers generate SSA.
  
- 
    2023‑04‑27:
    
      Bringing runtime index checks to compile time in Rust.
  
- 
    2025‑05‑10:
    
      Kernighan's lever.
  
- 
    2025‑07‑10:
    
      Optimizing a simple expression parser in Rust.
  
- 
    2025‑01‑03:
    
      Remote reboots with encrypted disks on Arch Linux.
  
- 
    2025‑06‑06:
    
      yeri: JavaScript library for graphing timeseries data into an SVG.
  
- 
    2025‑04‑17:
    
      RE#: high performance derivative-based regex matching with intersection, complement, and lookarounds.
  
- 
    2024‑12‑17:
    
      Golang's weird little iterators.
  
- 
    2025‑07‑02:
    
      Chess grandmasters do not burn 6000 calories per day.
  
- 
    2025‑05‑27:
    
      Square theory and unparalleled misalignments in American-style crosswords.
  
- 
    2025‑03‑26:
    
      Succinct data structures.
  
- 
    2025‑07‑15:
    
      Adding lookbehinds to Rust’s regex crate.
  
- 
    2025‑07‑18:
    
      Dana Scott on the lambda calculus, then and now.
  
- 
    2025‑06‑11:
    
      Modern minimal perfect hashing: a survey.
  
- 
    2025‑06‑27:
    
      Structuring arrays with algebraic shapes.
  
- 
    2025‑07‑10:
    
      PostgreSQL LISTEN/NOTIFY does not scale.
  
- 
    2025‑02‑28:
    
      Historic tale construction kit: make your own Bayeux tapestry.
  
- 
    2025‑04‑04:
    
      Some pitfalls of safe Rust.
  
- 
    2025‑02‑13:
    
      Building a hyper-personalized seach engine that isn't very good.
  
- 
    2025‑07‑11:
    
      Faking a JPEG to feed to an abusive web crawler.
  
- 
    2025‑06‑05:
    
      Unix, Plan 9, and the lurking SmallTalk.
  
- 
    2023‑06‑22:
    
      An epicyclic clock.
  
- 
    2021‑03‑20:
    
      The design of forms in government departments.
  
- 
    2025‑01‑22:
    
      Guided by the beauty of our test suite: snapchot texting, fuzz testing, and panic freedom in Rust.
  
- 
    2025‑06‑24:
    
      Forbidden secrets of ancient X11 scaling technology revealed!
  
- 
    2025‑06‑22:
    
      Nearley.js: a toolkit for parsers written in JavaScript.
  
- 
    2025‑05‑31:
    
      Dynamic witnesses for static type errors in OCaml, or, ill-typed programs usually go wrong.
  
- 
    2025‑04‑14:
    
      Unlocking sudoku's secrets with graph theory and abstract algebra.
  
- 
    2025‑04‑12:
    
      Molecules with silly or unusual names.
  
- 
    2025‑04‑30:
    
      NIST F4 caesium fountain atomic cock joins elite group that keeps the world on time.
  
- 
    2025‑04‑23:
    
      Exploiting undefined behavior in C/C++ programs for optimization: a study on the performance impact.
  
- 
    2025‑05‑16:
    
      Rustls server-side performance.
  
- 
    2025‑06‑24:
    
      Bazel’s original sins.
  
- 
    2025‑06‑18:
    
      fx: view and process JSON with JavaScript on the command line.
  
- 
    2025‑07‑06:
    
      Speed up Magit on MacOS by using git from Homebrew.
  
- 
    2025‑07‑08:
    
      PostgreSQL replication slots: preventing WAL bloat and other production issues.
  
- 
    2025‑07‑12:
    
      A new Finnish flavor of feline coat coloration, “salmiak”.
  
- 
    2025‑01‑10:
    
      Soldering the Tektronix way.
  
- 
    2025‑01‑14:
    
      Phil Rogaway on radical computer science.
  
- 
    2025‑04‑15:
    
      Getting started with the W65C832 FPGA core, a 32 bit extended 6502.
  
- 
    2024‑05‑06:
    
      Re-implementing the Nix protocol in Rust.
  
- 
    2022‑11‑09:
    
      Rain of Fire Falling: The crash of American Airlines flight 191.
  
- 
    2025‑07‑08:
    
      svg-term-cli: animated terminal sessions using SVG and CSS.
  
- 
    2024‑11‑23:
    
      gofumpt: a stricter gofmt.
  
- 
    2022‑12‑26:
    
      Performance of memory reclamation for lockless synchronization.
  
- 
    2025‑01‑10:
    
      SIMD in Rust: you do not need multithreading to do more than one thing at a time.
  
- 
    2025‑06‑25:
    
      Reading NFC passport chips in Linux.
  
- 
    2025‑06‑06:
    
      Sharing everything I could understand about gradient noise / Perlin noise.
  
- 
    2025‑05‑29:
    
      Bootstrapping HTTP/1.1, HTTP/2, and HTTP/3.
  
- 
    2025‑06‑01:
    
      The Story of Mel, annotated.
  
- 
    2025‑05‑26:
    
      Client rate throttling in the Heroku platform API Ruby gem.
  
- 
    2025‑06‑11:
    
      Idris 2: quantitative type theory in practice.
  
- 
    2025‑06‑18:
    
      Type inference zoo.
  
- 
    2025‑04‑12:
    
      Weird architectures weren't supported to begin with.
  
- 
    2025‑07‑08:
    
      Emacs which-key vs Embark for help on prefix keymaps.
  
- 
    2025‑05‑30:
    
      Parsing mixfix operators.
  
- 
    2021‑03‑19:
    
      A Mind Is Born: 256 byte Commodore 64 demo.
  
- 
    2025‑04‑15:
    
      What the hell Is a target triple?
  
- 
    2025‑06‑16:
    
      Critical analysis of the Meshtastic protocol.
  
- 
    2025‑07‑05:
    
      The ITTAGE indirect branch predictor.
  
- 
    2025‑05‑06:
    
      What is my fuzzer doing? How to get coverage of Rust code.
  
- 
    2025‑07‑08:
    
      SIMD.info: searchable reference for C intrinsics.
  
- 
    2025‑06‑05:
    
      Picking uncontested private IP subnets with usage data.
  
- 
    2025‑06‑18:
    
      The plight of the misunderstood atomic memory ordering.
  
- 
    2025‑05‑31:
    
      Mel's Loop: a comprehensive guide to The Story of Mel.
  
- 
    2025‑02‑05:
    
      Mach-O linking and loading tricks.
  
- 
    2025‑05‑14:
    
      ZJIT has been merged into Ruby.
  
- 
    2025‑06‑17:
    
      Nasal sprays for covid prophylaxis.
  
- 
    2024‑05‑28:
    
      Statistical shortcomings in standard math libraries, and how to fix them.
  
- 
    2021‑06‑17:
    
      Exploring ways to make async Rust easier.
  
- 
    2025‑05‑29:
    
      Making openat(2) and friends more useful in OpenBSD.
  
- 
    2025‑02‑15:
    
      Taichi: high-performance parallel programming in Python.
  
- 
    2025‑06‑14:
    
      Lambda calculus cooked N ways: Benchmarks for capture-avoiding substitution.
  
- 
    2025‑06‑04:
    
      AMEN: Church numeral addition, multiplication, exponentiation, and nothing are a complete combinator basis.
  
- 
    2025‑06‑08:
    
      Making sense of atomic acquire-release semantics.
  
- 
    2025‑05‑29:
    
      Programming = proving? The Curry-Howard correspondence today.
  
- 
    2025‑06‑02:
    
      Efficient manipulation of binary data using pattern matching.
  
- 
    2025‑05‑17:
    
      Structured combinators for efficient graph reduction.
  
- 
    2025‑06‑19:
    
      The missing 11th of the month.
  
- 
    2025‑03‑31:
    
      A brief history of Erlang’s BEAM compiler.
  
- 
    2025‑05‑18:
    
      Fortran for C programmers.
  
- 
    2025‑06‑05:
    
      Vectorized interpreters: mass rapid transit for programming languages.
  
- 
    2025‑06‑30:
    
      Building accurate postal address matching systems.
  
- 
    2024‑07‑05:
    
      I Have No Constructor, and I Must Initialize.
  
- 
    2025‑06‑25:
    
      A new 3rd edition PNG spec was just released!
  
- 
    2025‑05‑27:
    
      Using otel to emit and view debug traces from Golang command-line tools.
  
- 
    2025‑05‑07:
    
      Tantacrul on Finale: how music software dies. (video)
  
- 
    2025‑06‑30:
    
      Booleans are a trap.
  
- 
    2024‑11‑25:
    
      The SLAX scripting language: an alternative syntax for XSLT.
  
- 
    2025‑06‑06:
    
      Recovering control flow structures from Java bytecode without CFGs.
  
- 
    2025‑06‑24:
    
      Programming parallel computers.
  
- 
    2025‑07‑01:
    
      Parsing layout, or: Haskell's syntax is a mess.
  
- 
    2025‑06‑16:
    
      Roadmap towards the redefinition of the second.
  
- 
    2025‑06‑30:
    
      That boolean should probably be something else.
  
- 
    2025‑05‑27:
    
      BGP handling bug causes widespread internet routing instability.
  
- 
    2024‑10‑22:
    
      Use test data that looks like data.
  
- 
    2025‑06‑02:
    
      When do pattern match compilation heuristics matter?
  
- 
    2025‑06‑03:
    
      Where did C++ <random> go wrong?
  
- 
    2025‑05‑27:
    
      Relocation generation in assemblers.
  
- 
    2025‑05‑02:
    
      POSIX shell and utilities quick reference.
  
- 
    2025‑03‑25:
    
      The Prospero challenge.
  
- 
    2025‑06‑03:
    
      From Prometheus to RRDtool graphs.
  
- 
    2025‑05‑16:
    
      I don't like NumPy.
  
- 
    2021‑11‑12:
    
      Three cases against IF NOT EXISTS / IF EXISTS in PostgreSQL DDL.
  
- 
    2025‑06‑06:
    
      How common is multiple invention?
  
- 
    2025‑06‑17:
    
      The saga of phkmalloc. 
  
- 
    2025‑04‑08:
    
      netbird: Connect your devices into a WireGuard overlay network with SSO, MFA and granular access controls.
  
- 
    2025‑03‑30:
    
      Let's create a Tree-sitter grammar.
  
- 
    2025‑06‑19:
    
      Elliptic curves as art.
  
- 
    2024‑12‑17:
    
      UK Online Safety Act Notes for small sites.
  
- 
    2025‑05‑20:
    
      A Python frozenset interpretation of dependent type theory.
  
- 
    2024‑07‑25:
    
      strlcpy and how CPUs can defy common sense.
  
- 
    2025‑06‑07:
    
      cdimage: A tool for burning visible pictures on a compact disc.
  
- 
    2025‑05‑13:
    
      Writing that can change how you think about programming languages.
  
- 
    2025‑06‑22:
    
      Basic facts about GPUs.
  
- 
    2025‑05‑26:
    
      Ironies of automation. (1983)
  
- 
    2025‑05‑14:
    
      The database row that did and didn't exist according to Django.
  
- 
    2025‑01‑25:
    
      Why the north of England is poor.
  
- 
    2025‑06‑05:
    
      The IELR(1) algorithm for generating minimal LR(1) parser tables for non-LR(1) grammars with conflict resolution.
  
- 
    2025‑06‑12:
    
      The Epic Verse calculus: a core calculus for functional logic programming.
  
- 
    2025‑05‑26:
    
      Against Curry-Howard mysticism.
  
- 
    2025‑06‑23:
    
      Making emacs tramp go brrrr.
  
- 
    2024‑11‑06:
    
      The Manchester Compiler Compiler and CPL: reflections of a user 50 years on.
  
- 
    2025‑01‑13:
    
      Why is my Chumby’s CPU usage always 100%?
  
- 
    2025‑04‑13:
    
      10 years of pomological watercolors.
  
- 
    2021‑02‑18:
    
      ECFiber: building a fibre-to-the-premises network in rural Vermont.
  
- 
    2024‑08‑11:
    
      Trolltech's Qt documentation process.
  
- 
    2025‑04‑25:
    
      Bluefishjs: composing diagrams in with declarative relations.
  
- 
    2025‑05‑16:
    
      Heron: modern hardware graph reduction.
  
- 
    2025‑03‑18:
    
      Portable dynamically linked packages on Linux.
  
- 
    2025‑04‑09:
    
      I Got Plenty o’ Nuttin’: linear dependent types.
  
- 
    2025‑06‑18:
    
      A collection of articles about retries.
  
- 
    2025‑02‑16:
    
      Arithmetic with continued fractions. 
  
- 
    2025‑06‑23:
    
      BNFGen: a random text generator based on context-free grammars
  
- 
    2025‑05‑21:
    
      Staged compilation with two-level type theory.
  
- 
    2025‑04‑30:
    
      autosetup: a Tcl-based build environment "autoconfigurator".
  
- 
    2025‑02‑14:
    
      Homemade polarimetric synthetic aperture radar drone.
  
- 
    2025‑03‑22:
    
      HAFLANG: hardware acceleration of functional languages.
  
- 
    2025‑04‑25:
    
      Bluefishjs: a diagram drawing framework for JavaScript.
  
- 
    2025‑03‑29:
    
      A language server protocol (LSP) implementation for PostgreSQL.
  
- 
    2025‑01‑05:
    
      Reliable system call interception with Linux seccomp.
  
- 
    2023‑08‑04:
    
      The joys of UNIX keyboards.
  
- 
    2024‑12‑13:
    
      Thoughts on hashing in Rust.
  
- 
    2025‑06‑12:
    
      A multivalued language with a dependent type system. (A precursor to Epic Verse.)
  
- 
    2025‑03‑30:
    
      Towards fearless SIMD in Rust, 7 years later.
  
- 
    2025‑01‑28:
    
      A retrospective on SCCS, the Source Code Control System.
  
- 
    2025‑04‑12:
    
      Why is there a "small house" in IBM's code page 437?
  
- 
    2025‑05‑22:
    
      Blazingly fast™ type class resolution with a trie.
  
- 
    2025‑05‑15:
    
      Fixing the traffic jam in the science of technology safety.
  
- 
    2025‑06‑10:
    
      Dependent types and program equivalence.
  
- 
    2025‑02‑08:
    
      Fend: an arbitrary-precision unit-aware calculator.
  
- 
    2025‑06‑03:
    
      What's higher-order about so-called higher-order references?
  
- 
    2025‑05‑02:
    
      Optimizing programs written in Guile Scheme.
  
- 
    2025‑03‑24:
    
      faer: a general-purpose linear algebra library for Rust.
  
- 
    2024‑12‑26:
    
      Rewriting the Ruby parser.
  
- 
    2025‑05‑21:
    
      Dependent types at work in Agda.
  
- 
    2025‑04‑08:
    
      On the complexity and performance of parsing with derivatives.
  
- 
    2025‑03‑21:
    
      I want a good parallel computer.
  
- 
    2025‑05‑15:
    
      A Rust API inspired by Python, powered by Serde.
  
- 
    2025‑06‑08:
    
      Simulating time with square-root space.
  
- 
    2023‑05‑07:
    
      Deploying IPv6-mostly access networks.
  
- 
    2024‑09‑21:
    
      Boolean blindness.
  
- 
    2025‑04‑12:
    
      awe: A compiler for the Algol W programming language.
  
- 
    2025‑04‑01:
    
      Electron band structure in germanium, my ass.
  
- 
    2025‑06‑18:
    
      Posit floating point numbers: thin triangles and other tricks.
  
- 
    2025‑01‑11:
    
      Jef Raskin: Intuitive equals familiar. (1994)
  
- 
    2025‑02‑27:
    
      Efficient communication and collection with compact normal forms in Haskell.
  
- 
    2025‑06‑02:
    
      Pattern matching and exhaustiveness checking algorithms implemented in Rust.
  
- 
    2025‑03‑14:
    
      HashChain: a family of very fast factor-based sublinear exact-matching string search algorithms.
  
- 
    2024‑10‑08:
    
      Eidophor: 1950's space age video projection technology. (video)
  
- 
    2025‑05‑26:
    
      Microsoft Windows Registry attack surface analysis.
  
- 
    2025‑03‑13:
    
      Triangle of power notation: exponents roots and logarithms.
  
- 
    2025‑05‑31:
    
      Toxic Origins, Toxic Decisions: bias in CEO selection towards risk-taking, analysed using polluted Superfund sites.
  
- 
    2025‑04‑11:
    
      Situated software.
  
- 
    2025‑06‑05:
    
      IELR(1): practical LR(1) parser tables for non-LR(1) grammars with conflict resolution.
  
- 
    2025‑03‑07:
    
      JA4+: a suite of network fingerprinting standards.
  
- 
    2025‑05‑09:
    
      Static interpretation of higher-order modules in Futhark: functional GPU programming in the large.
  
- 
    2025‑04‑25:
    
      Logarithms of algebraic data types for property-based testing.
  
- 
    2024‑09‑22:
    
      The sorry state of Java deserialization.
  
- 
    2025‑06‑06:
    
      Implementing dependent types in pi-forall.
  
- 
    2025‑06‑13:
    
      jemalloc postmortem.
  
- 
    2025‑04‑23:
    
      What is cosh(List(Bool))? Or beyond algebra: analysis of data types.
  
- 
    2025‑05‑05:
    
      Helmdar: 3D scanning Brooklyn on rollerblades.
  
- 
    2025‑02‑11:
    
      Elementary functions NOT following the IEEE 754 floating-point standard.
  
- 
    2025‑04‑11:
    
      London Cycle Orbital: peaceful cycling at London's margins.
  
- 
    2025‑01‑25:
    
      The invalid 68030 instruction that accidentally allowed the Mac Classic II to successfully boot up.
  
- 
    2025‑05‑16:
    
      Lock-free Rust: how to build a rollercoaster while it’s on fire.
  
- 
    2024‑10‑10:
    
      What is systems programming, really?
  
- 
    2021‑06‑22:
    
      Exploit a binary with sigreturn oriented programming (SROP).
  
- 
    2025‑05‑15:
    
      Diagnosing a double-free concurrency bug in Rust's unbounded channels.
  
- 
    2025‑04‑23:
    
      PiDP-11 and other replicas of old computers.
  
- 
    2021‑08‑29:
    
      Postgres extensions in Rust.
  
- 
    2025‑04‑04:
    
      The crisis of zombie social science.
  
- 
    2025‑03‑21:
    
      MySQL transactions per second vs fsyncs per second.
  
- 
    2025‑05‑17:
    
      CHERIoT: the last ten years.
  
- 
    2025‑05‑16:
    
      Initialization in C++ is seriously bonkers. 
  
- 
    2025‑03‑23:
    
      gif320: A GIF viewer for DEC VT320 terminals.
  
- 
    2025‑04‑14:
    
      Clowns to the left of me, jokers to the right: dissecting and dividing algebraic data structures.
  
- 
    2025‑06‑04:
    
      Distance-based ISA for efficient register renaming.
  
- 
    2024‑10‑12:
    
      Exploring Typst, a new typesetting system similar to LaTeX.
  
- 
    2025‑06‑01:
    
      Tools built on tree-sitter's concrete syntax trees.
  
- 
    2025‑06‑08:
    
      Weaponizing dependabot: confused deputy pwn request at its finest.
  
- 
    2025‑01‑16:
    
      ai.robots.txt: A list of AI agents and robots to block.
  
- 
    2025‑04‑11:
    
      The yaml document from hell.
  
- 
    2024‑10‑12:
    
      Ki: wireless power for kitchen appliances. (video)
  
- 
    2025‑05‑16:
    
      Reservoir sampling: who discovered Algorithm R?
  
- 
    2024‑10‑28:
    
      EBCDIC is incompatible with GDPR.
  
- 
    2024‑11‑10:
    
      Histogramming bytes with positional popcount, GF2P8AFFINEQB edition.
  
- 
    2025‑06‑03:
    
      How to take the inverse of a type.
  
- 
    2025‑05‑18:
    
      PostgreSQL lock conflicts quick reference.
  
- 
    2025‑05‑25:
    
      Bidirectional typing.
  
- 
    2025‑05‑15:
    
      A leap year check in three instructions.
  
- 
    2025‑05‑11:
    
      Alan Kay did not invent object-oriented programming.
  
- 
    2025‑04‑29:
    
      Syntactic musings on match expressions in Rust.
  
- 
    2025‑06‑06:
    
      Hokusai Moyo Gafu: an album of dyeing patterns.
  
- 
    2025‑06‑03:
    
      Zero-cost 'tagless initial' in Rust with GADT-style enums.
  
- 
    2025‑05‑31:
    
      Precision Clock Mk IV.
  
- 
    2025‑03‑13:
    
      Nanowar Of Steel - HelloWorld.java
  
- 
    2024‑11‑02:
    
      The ATS programming language: unleashing the potential of types and templates!
  
- 
    2023‑11‑19:
    
      A simple ray tracer written in the meson.build language.
  
- 
    2025‑06‑04:
    
      DejaGNU (2011)
  
- 
    2025‑02‑13:
    
      On Jujutsu and Magit.
  
- 
    2024‑05‑28:
    
      aa-56: an astronomical ephemeris calculator program. 
  
- 
    2025‑05‑23:
    
      That fractal that's been up on my wall for 12 years.
  
- 
    2025‑05‑01:
    
      roons: modular marble logic.
  
- 
    2025‑05‑22:
    
      Designing APIs for humans: Stripe object IDs.
  
- 
    2025‑04‑27:
    
      Silent bugs matter: a study of compiler-introduced security bugs.
  
- 
    2025‑03‑28:
    
      Wasm SpecTec has been adopted.
  
- 
    2025‑05‑30:
    
      Implementation of dependent types.
  
- 
    2025‑04‑11:
    
      Why do AI company logos look like arseholes?
  
- 
    2025‑03‑15:
    
      Displaying Korean text efficiently.
  
- 
    2021‑05‑23:
    
      Faster remainder by multiplication, with applications to compilers and software libraries.
  
- 
    2025‑05‑17:
    
      Don’t use ISO/IEC 14977 Extended Backus-Naur Form (EBNF).
  
- 
    2025‑04‑06:
    
      When should a Java JIT compiler expand garbage collection barriers?
  
- 
    2025‑05‑15:
    
      Crossness pumping station: seduced by symmetry.
  
- 
    2025‑03‑22:
    
      SKIM: The implementation of functional languages using custom hardware.
  
- 
    2025‑05‑12:
    
      De Bruijn's combinatorics.
  
- 
    2025‑04‑13:
    
      Dijkstra on mathematical notation.
  
- 
    2025‑04‑02:
    
      Gerrit, GitButler, and Jujutsu projects collaborating on a change-id commit footer.
  
- 
    2024‑12‑15:
    
      Prequal: Load is not what you should balance.
  
- 
    2025‑05‑17:
    
      MicroHs: Haskell implemented with combinators by Lennart Augustsson.
  
- 
    2025‑02‑22:
    
      How to write mathematics. (1973)
  
- 
    2025‑05‑31:
    
      Beating the kCTF PoW with AVX512IFMA for $51k.
  
- 
    2023‑10‑05:
    
      Surety: The world’s oldest blockchain has been hiding in the New York Times since 1995.
  
- 
    2025‑02‑27:
    
      But can DOOM run it? Programming satan’s computer.
  
- 
    2025‑05‑15:
    
      10 years of stable Rust: an infrastructure story.
  
- 
    2025‑05‑14:
    
      The first year of free-threaded Python.
  
- 
    2025‑01‑16:
    
      Is Wasm Memory64 actually worth using?
  
- 
    2023‑12‑05:
    
      Behind the scenes of Rust string formatting and format_args!().
  
- 
    2024‑04‑25:
    
      Why does Windows use backslash as its path separator?
  
- 
    2025‑05‑24:
    
      There is no Diffie-Hellman but elliptic curve Diffie-Hellman.
  
- 
    2025‑05‑08:
    
      Implement your programming language twice.
  
- 
    2025‑04‑18:
    
      Dissolving the Fermi paradox.
  
- 
    2025‑05‑21:
    
      The magic of software; or, what makes a good engineer also makes a good engineering organization.
  
- 
    2025‑05‑06:
    
      A formulae-as-type notion of control: classical logic and call/cc in Scheme.
  
- 
    2025‑05‑22:
    
      Gradients are the new intervals for signed distance function evaluation.
  
- 
    2025‑05‑22:
    
      Violating memory safety with Haskell's value restriction.
  
- 
    2025‑05‑26:
    
      Type-level bounded recursion in Rust.
  
- 
    2025‑05‑17:
    
      O2 VoLTE: locating any customer with a phone call.
  
- 
    2025‑03‑31:
    
      comrak: a CommonMark and GFM compatible Markdown parser and renderer in Rust.
  
- 
    2025‑05‑05:
    
      On the design of compact elastic binary trees (cebtree).
  
- 
    2024‑04‑09:
    
      How I tripped over the Debian weak keys vulnerability.
  
- 
    2023‑07‑17:
    
      Why specs matter.
  
- 
    2025‑05‑29:
    
      ΠΣ: dependent types without the sugar.
  
- 
    2023‑09‑19:
    
      build123d: A Python CAD programming library.
  
- 
    2025‑01‑10:
    
      Bad Apple but it's 6,500 regexes that I search for in vim.
  
- 
    2025‑05‑05:
    
      Archers did not volley fire.
  
- 
    2024‑12‑20:
    
      “Twelfth Night Till Candlemas: the story of a forty-year book-quest and of its remarkable ending.
  
- 
    2025‑03‑31:
    
      LALRPOP: a parser generator for Rust.
  
- 
    2024‑10‑20:
    
      Jujutsu (jj), a git compatible version control system.
  
- 
    2025‑04‑06:
    
      How to sync anything.
  
- 
    2025‑04‑18:
    
      Sneak peek: A new ASN.1 API for Python.
  
- 
    2025‑02‑02:
    
      Parametric subtyping for structural parametric polymorphism.
  
- 
    2025‑04‑27:
    
      DIY book lamp: simple electronics meets paper craft.
  
- 
    2024‑08‑15:
    
      A non-uniform quasirandom number generator for games.
  
- 
    2025‑03‑11:
    
      Backyard cyanide from the cherry laurel.
  
- 
    2025‑04‑29:
    
      Let's Debug figures out why you can’t issue a certificate with Let's Encrypt.
  
- 
    2025‑04‑18:
    
      Squiggle: a simple programming language for intuitive probabilistic estimation.
  
- 
    2023‑08‑23:
    
      XTerm control sequences.
  
- 
    2025‑04‑09:
    
      facet: type reflection, serialization, deserialization — know the shape of your types in Rust.
  
- 
    2025‑03‑12:
    
      Representing type lattices compactly.
  
- 
    2025‑04‑18:
    
      Decomposing transactional systems.
  
- 
    2025‑03‑28:
    
      Specifying Wasm with SpecTec.
  
- 
    2025‑05‑22:
    
      Fast allocations in Ruby 3.5.
  
- 
    2025‑05‑14:
    
      Preventing outages with pkill's new --require-handler flag.
  
- 
    2025‑03‑11:
    
      Far-UVC: germicidal ultraviolet light can inactivate a wide range of pathogens with minimal effects on human tissues.
  
- 
    2025‑01‑30:
    
      Scaling the Let’s Encrypt rate limits to prepare for a billion active TLS certificates.
  
- 
    2025‑05‑12:
    
      Load-store conflicts.
  
- 
    2024‑07‑26:
    
      Why does the chromaticity diagram look like that?
  
- 
    2024‑08‑28:
    
      Examples of MVC for the Web.
  
- 
    2025‑05‑06:
    
      A continuation-passing evaluation semantics for classical proofs. 
  
- 
    2025‑02‑20:
    
      TRAVERTINE: CVE-2025-24118 safe memory reclamation race in the XNU Mac OS kernel.
  
- 
    2025‑02‑25:
    
      How core git developers configure git.
  
- 
    2025‑04‑26:
    
      Venera 8 Kosmos 482 descent craft reentry forecasts.
  
- 
    2025‑05‑19:
    
      Modular type classes.
  
- 
    2021‑06‑12:
    
      PubSub and RPC with dynamic types in Rust.
  
- 
    2025‑05‑17:
    
      Japan's IC cards are weird and wonderful.
  
- 
    2025‑04‑26:
    
      Visibly pushdown languages: between regular and context-free.
  
- 
    2024‑08‑04:
    
      Programming mantras are proverbs.
  
- 
    2024‑05‑17:
    
      Existential types in Rust.
  
- 
    2025‑05‑10:
    
      Castle Kellmore 2.5D rendering on the PlayDate handheld game console.
  
- 
    2023‑01‑21:
    
      RP2040 DMA is Turing complete.
  
- 
    2025‑02‑14:
    
      TeX and Typst layout models.
  
- 
    2025‑05‑02:
    
      Elm property-based test case distributions.
  
- 
    2025‑05‑22:
    
      Violating memory safety with Haskell's value restriction.
  
- 
    2025‑05‑16:
    
      From Haskell to a new structured combinator processor for graph reduction in hardware.
  
- 
    2025‑03‑26:
    
      Pi Pico Rx: a crystal radio for the digital age?
  
- 
    2025‑05‑16:
    
      Pallene: a statically typed ahead-of-time compiled sister language to Lua, with a focus on performance.
  
- 
    2024‑11‑24:
    
      Mark–Scavenge garbage collection: waiting for the trash to take itself out.
  
- 
    2025‑03‑30:
    
      Learn CSS layout the pedantic way.
  
- 
    2025‑02‑28:
    
      It's the latency, stupid!
  
- 
    2024‑11‑24:
    
      Anatomy of a thunk leak in Haskell.
  
- 
    2025‑05‑15:
    
      How did REST come to mean the opposite of REST?
  
- 
    2021‑03‑19:
    
      A bestiary of mathematical functions for systems designers.
  
- 
    2025‑05‑17:
    
      The programming language that never was.
  
- 
    2025‑01‑25:
    
      Proper decoupling practices, and why you should leave 100nF behind.
  
- 
    2021‑02‑14:
    
      Julia 1.6: what has changed since Julia 1.0?
  
- 
    2025‑03‑25:
    
      On the ignorability of attributes in C++.
  
- 
    2025‑04‑15:
    
      Two years of Rust.
  
- 
    2024‑09‑01:
    
      Raspberry Pi boot optimization: 3.5 sec to Linux userspace code.
  
- 
    2025‑05‑16:
    
      Cloaca: a concurrent hardware garbage collector for non-strict functional languages.
  
- 
    2025‑04‑16:
    
      Atomicless concurrency.
  
- 
    2025‑04‑30:
    
      A collection of quotes on the design of notation as a tool of thought.
  
- 
    2025‑05‑17:
    
      Programming in Martin-Lof's type theory: an introduction. (1990)
  
- 
    2025‑03‑05:
    
      Encoding Hangeul, Koreas writing system.
  
- 
    2025‑02‑11:
    
      Optimal bounds for open addressed hash tables without reordering.
  
- 
    2024‑12‑04:
    
      SQL OFFSET is worse than keyset pagination.
  
- 
    2025‑03‑09:
    
      Efficient communication and garbage collection in Haskell with compact normal forms.
  
- 
    2025‑04‑23:
    
      Detecting if an expression is constant in C.
  
- 
    2025‑02‑26:
    
      The miserable state of cellular modems and mobile network operators.
  
- 
    2025‑05‑13:
    
      YamlScriot: YAML done wisely.
  
- 
    2025‑03‑30:
    
      Hacker laws, theories, principles, and patterns that developers will find useful.
  
- 
    2022‑05‑25:
    
      How I think about C99 strict aliasing rules.
  
- 
    2025‑02‑10:
    
      Dazed and Confused: a large-scale real-world user study of reCAPTCHAv2.
  
- 
    2023‑03‑07:
    
      HVM: higher-order virtual machine, a massively parallel, optimal functional runtime in Rust.
  
- 
    2024‑09‑07:
    
      gRPC: the ugly parts.
  
- 
    2025‑04‑25:
    
      setenv() isn't threadsafe and even safe Rust didn't save us.
  
- 
    2021‑03‑12:
    
      Factoring in gravitomagnetism could do away with dark matter.
  
- 
    2024‑06‑03:
    
      {fmt}: a modern C++ string formatting library.
  
- 
    2025‑05‑07:
    
      The state of SSL/TLS stacks.
  
- 
    2025‑05‑01:
    
      verb: Emacs org mode HTTP client.
  
- 
    2025‑05‑02:
    
      Adaptive hashing in SBCL.
  
- 
    2025‑05‑10:
    
      Stacking lookup tables in a lexer generator.
  
- 
    2025‑04‑15:
    
      The .su ccTLD might be safe after all.
  
- 
    2025‑04‑18:
    
      Marching Events: What does iCalendar have to do with ray marching?
  
- 
    2024‑10‑30:
    
      Lessons learned from a successful Rust rewrite.
  
- 
    2021‑12‑05:
    
      Why is it hard to automatically suggest what index to create?
  
- 
    2024‑10‑27:
    
      A comparison of the C# and Rust borrow checkers.
  
- 
    2025‑03‑04:
    
      Eradicating trivial vulnerabilities, at scale.
  
- 
    2025‑02‑11:
    
      The `satisfies` operator in TypeScript.
  
- 
    2025‑03‑13:
    
      When is "this trait can be implemented" part of the trait's public API? Sealed traits in Rust with cargo-semver-checks.
  
- 
    2025‑03‑29:
    
      Compiler construction textbook by Niklaus Wirth.
  
- 
    2022‑10‑05:
    
      Memories: Edinburgh ML to Standard ML.
  
- 
    2025‑04‑30:
    
      BBC 1 logo 1985: a computer originated world.
  
- 
    2025‑03‑16:
    
      Performance of Git's new bundle-uri.
  
- 
    2025‑04‑26:
    
      Parallel ./configure
  
- 
    2025‑04‑10:
    
      Practical UNIX manuals with mdoc: structure, style, and composition.
  
- 
    2025‑05‑10:
    
      Beating the fastest lexer generator in Rust.
  
- 
    2025‑05‑06:
    
      Propositions as types.
  
- 
    2024‑11‑10:
    
      Ferranti punched tape codes, including Flexowriter. (1961)
  
- 
    2025‑01‑09:
    
      Rethinking errors, warnings, and lints.
  
- 
    2024‑09‑11:
    
      A short guide to the copyright wars.
  
- 
    2024‑08‑14:
    
      The soul of maintaining a new machine: communities of practice among Xerox photocopier repair engineers.
  
- 
    2025‑04‑16:
    
      Learning rate: What does it mean for a technology (such as solar power) to follow Wright’s Law?
  
- 
    2023‑12‑03:
    
      fastgron: make JSON greppable, super fast!
  
- 
    2025‑04‑15:
    
      Sunlight: a certificate transparency implementation built for scalability, ease of operation, and reduced cost.
  
- 
    2025‑04‑04:
    
      On JavaScript's weirdness.
  
- 
    2025‑04‑14:
    
      Flat origami is Turing complete.
  
- 
    2025‑03‑06:
    
      The Combined Cipher Machine, 1942-1962.
  
- 
    2023‑08‑20:
    
      VIK: an FPC interface for connecting keyboard modules.
  
- 
    2025‑03‑23:
    
      browse-at-remote: browse remote code forges with emacs.
  
- 
    2025‑04‑07:
    
      A rough survey of compilation, recompilation, and compile-time evaluation.
  
- 
    2024‑08‑21:
    
      Which social media sites support which meta tags?
  
- 
    2024‑07‑04:
    
      Sans-IO: The secret to effective Rust for network services.
  
- 
    2024‑03‑31:
    
      Changes to `u128`/`i128` layout in Rust.
  
- 
    2021‑04‑06:
    
      Directory entry says what? Current Gopher type field  types.
  
- 
    2025‑05‑02:
    
      Designing type inference for high quality type errors.
  
- 
    2021‑10‑16:
    
      Hunting down a C memory leak in a Go program.
  
- 
    2024‑11‑04:
    
      IAU standards of fundamental astronomy.
  
- 
    2025‑01‑23:
    
      Why PostgreSQL major version upgrades are hard.
  
- 
    2023‑01‑08:
    
      djot: a light markup syntax.
  
- 
    2025‑05‑02:
    
      The one ring problem: abstraction and our quest for power.
  
- 
    2024‑12‑26:
    
      SpiNNaker: a million-core ARM machine. (2011)
  
- 
    2025‑04‑27:
    
      Technical debt as theory building and practice.
  
- 
    2024‑10‑09:
    
      50 years of database queries.
  
- 
    2024‑06‑29:
    
      ChatGPT is bullshit.
  
- 
    2024‑05‑19:
    
      polyfill-glibc: patch Linux executables for compatibility with older glibc.
  
- 
    2025‑05‑04:
    
      Pixels in Islamic art: square Kufic calligraphy.
  
- 
    2024‑06‑04:
    
      You will regret using natural keys.
  
- 
    2025‑04‑15:
    
      Fun with -fsanitize=undefined and Picolibc.
  
- 
    2021‑10‑16:
    
      Stored procedure OUT parameters in PostgreSQL 14.
  
- 
    2025‑01‑03:
    
      Can PostgreSQL use this index, please?
  
- 
    2023‑08‑31:
    
      Co-dfns: High-performance, reliable, and parallel APL.
  
- 
    2025‑04‑23:
    
      Danglepoise raise/lower dining table lights.
  
- 
    2025‑02‑06:
    
      Three basic rules of safety hygiene in Rust.
  
- 
    2024‑07‑04:
    
      Beating NumPy's matrix multiplication in 150 lines of C.
  
- 
    2024‑10‑28:
    
      Don’t implement unification by recursion.
  
- 
    2025‑04‑08:
    
      Obituary for Doug Lenat’s Cyc, the greatest monument to logical AGI.
  
- 
    2025‑04‑10:
    
      A discipline of error handling.
  
- 
    2024‑04‑10:
    
      A memory of the nineteen-nineties, by Teller.
  
- 
    2024‑11‑01:
    
      Control characters in ASCII and Unicode.
  
- 
    2024‑10‑24:
    
      A free, open source IPv6 textbook.
  
- 
    2025‑03‑31:
    
      WALI: WebAssembly with thin Linux kernel interfaces.
  
- 
    2025‑02‑28:
    
      The Fibrovisor: a display made from a tat shop fibre-optic wand.
  
- 
    2024‑12‑23:
    
      A worked example of copy-and-patch compilation.
  
- 
    2022‑07‑30:
    
      Welcome to the anthropocene: the age of human die-offs.
  
- 
    2025‑04‑25:
    
      The Bayeux Tapestry with knobs on: what do its 93 penises tell us?
  
- 
    2025‑03‑24:
    
      CSS animation with offset-path.
  
- 
    2024‑09‑05:
    
      Why eager languages don't have products and lazy languages don't have sums.
  
- 
    2024‑08‑17:
    
      Replace Docker Compose with systemd, podman, and quadlet.
  
- 
    2024‑11‑02:
    
      Breaking CityHash64, MurmurHash2/3, wyhash, and more...
  
- 
    2022‑05‑01:
    
      Uncurled: everything Daniel Sternberg learned about running and maintaining Open Source projects for three decades.
  
- 
    2025‑04‑18:
    
      Exacerbating cross-site scripting: the iframe sandwich.
  
- 
    2025‑03‑27:
    
      The Verilog preprocessor: force for `good and `evil
  
- 
    2024‑12‑29:
    
      SEninja: symbolic execution plugin for Binary Ninja.
  
- 
    2021‑09‑08:
    
      Rust programs written entirely in Rust, without libc.
  
- 
    2021‑09‑30:
    
      Always-on processor magic: how “Find My” works while iPhone is powered off.
  
- 
    2025‑02‑16:
    
      CPL elementary programming manual.
  
- 
    2022‑01‑08:
    
      Dr Russell Barkley’s 30 essential ideas everybody needs to know about ADHD. (YouTube)
  
- 
    2024‑12‑12:
    
      Century-scale storage: If you had to store something for 100 years, how would you do it? 
  
- 
    2025‑04‑23:
    
      Does using Rust really make DNS name decompression safer?
  
- 
    2023‑10‑03:
    
      ARMv8 instruction set overview.
  
- 
    2023‑01‑29:
    
      Stonebraker: one size fits none: everything you learned in your DBMS class is wrong. (video)
  
- 
    2025‑04‑17:
    
      The halting problem is a terrible example of NP-harder.
  
- 
    2025‑04‑17:
    
      An iOS dlsym() PAC calculation bug.
  
- 
    2025‑04‑19:
    
      Breaking down multipart parsers: file upload validation bypass.
  
- 
    2025‑03‑22:
    
      A critical bibliography about the pirate site LibGen.
  
- 
    2025‑01‑23:
    
      See a PostgreSQL query, byte by byte, over TLS.
  
- 
    2024‑12‑04:
    
      Macros in the Dart programming language.
  
- 
    2025‑03‑28:
    
      Better Binary Quantization (BBQ) in Lucene and Elasticsearch.
  
- 
    2025‑04‑19:
    
      15,000 lines of verified cryptography now in Python.
  
- 
    2025‑01‑03:
    
      The Intel Alder Lake SHLX anomaly.
  
- 
    2025‑01‑20:
    
      The "35-cent" Commodore 64 softmodem.
  
- 
    2025‑04‑15:
    
      A cautionary tale about continuity in constructive solid geometry.
  
- 
    2025‑04‑18:
    
      Probabilistic programming: doing statistics using the tools of computer science. 
  
- 
    2021‑03‑19:
    
      Fuzzing TLS certificates from their ASN.1 grammar.
  
- 
    2025‑01‑24:
    
      Compile-time speed analysis of compiler frameworks for database query compilation.
  
- 
    2022‑01‑27:
    
      Two reasons Kubernetes is so complex.
  
- 
    2021‑05‑01:
    
      Internal combustion engine.
  
- 
    2024‑12‑23:
    
      My colleague Julius.
  
- 
    2024‑10‑03:
    
      Birth of the Bazel.
  
- 
    2024‑03‑08:
    
      You're wrong about the climate of tidally-locked planets.
  
- 
    2024‑04‑27:
    
      TOTP key URI format.
  
- 
    2024‑12‑05:
    
      Bicameral, not homoiconic.
  
- 
    2021‑08‑10:
    
      Three fundamental flaws of SIMD.
  
- 
    2025‑01‑18:
    
      Hands-on graphics with the NetBSD console.
  
- 
    2024‑05‑12:
    
      International meteor organization / international fireball program: amateur data collection of meteor events.
  
- 
    2024‑11‑01:
    
      Memento filter: a fast, dynamic, and robust range filter.
  
- 
    2021‑10‑12:
    
      Reproducible builds for Debian: a big step forward.
  
- 
    2025‑01‑04:
    
      Common Package Specification: a year closer to standard C++ dependency management.
  
- 
    2025‑02‑25:
    
      Proving a stupid sort algorithm with Dafny.
  
- 
    2025‑01‑30:
    
      A home built pipe organ.
  
- 
    2024‑06‑28:
    
      Misconceptions about static analysis of loops in C.
  
- 
    2024‑12‑26:
    
      Reads causing writes in PostgreSQL.
  
- 
    2024‑06‑19:
    
      How Vannevar Bush engineered the 20th century.
  
- 
    2025‑04‑18:
    
      NIST uncertainty machine.
  
- 
    2024‑09‑23:
    
      A Dieter Rams inspired iPhone bedside dock.
  
- 
    2022‑11‑20:
    
      Inside C++ boost::unordered_flat_map.
  
- 
    2024‑04‑09:
    
      Mac OS Grand Central Dispatch as a Rust async runtime.
  
- 
    2022‑01‑24:
    
      11 pivotal moments in the history of timekeeping.
  
- 
    2025‑04‑20:
    
      Things Zig comptime won't do.
  
- 
    2021‑05‑04:
    
      How to solve the hardest logic puzzle ever.
  
- 
    2024‑09‑06:
    
      Async Rust can be a pleasure to work with (without Send + Sync + 'static).
  
- 
    2021‑12‑05:
    
      Votes for children! Why we should lower the voting age to six.
  
- 
    2025‑02‑16:
    
      Unexpected uses of the GF2P8AFFINEQB bit matrix multiply instruction.
  
- 
    2021‑05‑03:
    
      Simple as in SNMP.
  
- 
    2022‑08‑03:
    
      jlibtool: A replacement for libtool written in C.
  
- 
    2025‑03‑20:
    
      Fear and loathing of the English passive.
  
- 
    2024‑10‑10:
    
      A modest proposal: C++ resyntaxed. (1996)
  
- 
    2025‑02‑14:
    
      Switching on strings in Zig.
  
- 
    2025‑01‑21:
    
      The hunt for EINVAL in embedded Rust.
  
- 
    2025‑01‑22:
    
      Mercator: Extreme.
  
- 
    2024‑12‑01:
    
      Why do we call it "boilerplate code?"
  
- 
    2023‑07‑28:
    
      The future of Clang-based tooling.
  
- 
    2023‑05‑31:
    
      Modern CPUs have a backstage cast of support cores.
  
- 
    2025‑04‑03:
    
      How Java got the generics it has, or, how I learned to stop worrying and love type erasure.
  
- 
    2024‑11‑20:
    
      Railroad time in the USA started on 18 November 1883.
  
- 
    2024‑10‑24:
    
      Linking directly to text fragments in web pages.
  
- 
    2025‑04‑11:
    
      What do bodies think about?
  
- 
    2024‑10‑24:
    
      Flatter wait-free hazard pointers.
  
- 
    2025‑03‑25:
    
      Database protocols are underwhelming.
  
- 
    2024‑05‑26:
    
      Hurl: an exceptional programming language.
  
- 
    2025‑03‑26:
    
      An epic treatise on error models for systems programming languages.
  
- 
    2023‑09‑30:
    
      SnapperGPS 2: a printed circuit board design for a snapshot GNSS receiver.
  
- 
    2021‑09‑21:
    
      Taming Golang’s memory usage.
  
- 
    2022‑12‑09:
    
      Using bitmaps to perform range queries.
  
- 
    2024‑05‑06:
    
      Pair your compilers at the ABI café.
  
- 
    2025‑03‑22:
    
      Imberbus: a classic bus service across the Salisbury Plain to the lost village of Imber.
  
- 
    2025‑02‑04:
    
      A developer’s philosophy.
  
- 
    2025‑04‑12:
    
      WebRTC for the curious.
  
- 
    2021‑10‑25:
    
      A prototype original iPod.
  
- 
    2025‑01‑20:
    
      Automatic server reloading on change in Rust with listenfd and systemfd.
  
- 
    2025‑02‑16:
    
      Spin: formal verification of multi-threaded code.
  
- 
    2024‑11‑13:
    
      Using portable SIMD in stable Rust.
  
- 
    2024‑12‑15:
    
      PopSec: how not to blow up a pipeline.
  
- 
    2024‑11‑19:
    
      The thing about the Kobayashi Maru.
  
- 
    2025‑04‑11:
    
      What is algebraic about algebraic effects and handlers?
  
- 
    2025‑02‑17:
    
      0+0 > 0: C++ thread-local storage performance.
  
- 
    2024‑11‑08:
    
      The history of Standard ML ideas, principles, culture.
  
- 
    2021‑05‑03:
    
      What3Words: flaws in the algorithm.
  
- 
    2025‑01‑22:
    
      The London Underground is too hot, but it’s not an easy fix.
  
- 
    2022‑10‑18:
    
      Designing systematic colour schemes.
  
- 
    2025‑02‑07:
    
      Numbat: A statically typed programming language for scientific computations with first class support for physical dimensions and units of measure.
  
- 
    2024‑02‑03:
    
      A 3D mouse with 3D printed flexures and PCB coils.
  
- 
    2024‑12‑30:
    
      Adjust your sett: a tartan editor.
  
- 
    2025‑03‑27:
    
      RSS/Atom feed best practise.
  
- 
    2021‑08‑27:
    
      High performance correctly rounded math libraries for 32-bit floating point.
  
- 
    2025‑03‑31:
    
      sharun: run dynamically linked ELF binaries everywhere.
  
- 
    2024‑08‑16:
    
      How to write seemingly unhygienic and referentially opaque macros with Scheme syntax-rules.
  
- 
    2025‑01‑22:
    
      How to unlock LUKS using Dropbear SSH keys remotely in Linux.
  
- 
    2025‑03‑18:
    
      y-cruncher: a multi-threaded Pi program.
  
- 
    2024‑07‑26:
    
      Please stop calling databases CP or AP.
  
- 
    2022‑08‑05:
    
      C23 is coming: here's what's on the menu.
  
- 
    2025‑03‑11:
    
      Owi: performant parallel symbolic execution made easy with OCaml and WebAssembly.
  
- 
    2025‑02‑02:
    
      Hollywood: split a computer console into multiple panes of genuine technical melodrama.
  
- 
    2025‑03‑26:
    
      Build better Golang release binaries.
  
- 
    2021‑03‑05:
    
      The Black Death: marmots and Mongols?
  
- 
    2024‑08‑30:
    
      Bubble sort is not robust either.
  
- 
    2025‑03‑01:
    
      A dictionary of affixes: the building blocks of English.
  
- 
    2025‑03‑31:
    
      Policy for the distribution of ISO publications and the protection of ISO’s copyright: ISO POCOSA 2012.
  
- 
    2024‑09‑19:
    
      Ruby-SAML pwned by XML signature wrapping attacks.
  
- 
    2023‑12‑04:
    
      Wayland isn't going to save the Linux desktop.
  
- 
    2025‑01‑04:
    
      The state of Garnet in 2025.
  
- 
    2025‑03‑31:
    
      Incremental zero-config code navigation using stack graphs with tree-sitter at GitHub.
  
- 
    2024‑12‑04:
    
      Keyset cursors, not offsets, for pagination with PostgreSQL.
  
- 
    2024‑04‑29:
    
      Thorium nucleus excited with laser: a breakthrough after decades.
  
- 
    2024‑10‑03:
    
      Less htmx is more.
  
- 
    2021‑09‑14:
    
      Understanding pg_repack: what can go wrong, and how to avoid it.
  
- 
    2025‑01‑19:
    
      Hasochism: the pleasure and pain of dependently typed haskell programming.
  
- 
    2024‑11‑03:
    
      Rhombus: Racket’s new spin on macros without all the Scheme/Lisp parentheses.
  
- 
    2025‑03‑23:
    
      Carl Linnaeus's note-taking innovations.
  
- 
    2024‑11‑10:
    
      RISC-V vector extension overview.
  
- 
    2025‑03‑12:
    
      Constant-time code: the pessimist’s case.
  
- 
    2024‑11‑01:
    
      What is the point of an online conference?
  
- 
    2025‑03‑14:
    
      PAM unixsock.
  
- 
    2024‑11‑21:
    
      pv: pipe viewer progress bar.
  
- 
    2024‑03‑10:
    
      Learning lessons from the cyber-attack: British Library cyber incident review.
  
- 
    2024‑10‑25:
    
      A map of every road sign in the Netherlands.
  
- 
    2024‑11‑21:
    
      TIL: Some surprising code execution sources in bash.
  
- 
    2025‑01‑07:
    
      Building ultra long range TOSLINK.
  
- 
    2024‑06‑22:
    
      Overlays get ignored.
  
- 
    2024‑07‑16:
    
      Ethicswishing
  
- 
    2025‑03‑09:
    
      Performance of returning errors vs. exceptions in Go and C++.
  
- 
    2025‑01‑13:
    
      Underrated ways to change the world.
  
- 
    2025‑01‑25:
    
      World's first MIDI shellcode: remote code execution on a synthesizer.
  
- 
    2024‑12‑12:
    
      The Jujutsu version control system.
  
- 
    2022‑11‑18:
    
      Hardening unused mail domains.
  
- 
    2024‑10‑02:
    
      The fastest mutexes: Cosmopolitan libc and nsync.
  
- 
    2021‑06‑21:
    
      Finding the bottom turtle: bootstrapping from source.
  
- 
    2021‑08‑03:
    
      Working around a case where the PostgreSQL planner is "not very smart".
  
- 
    2025‑03‑28:
    
      Xee: a modern XPath and XSLT engine in Rust.
  
- 
    2024‑10‑18:
    
      ugrapheme: Unicode extended grapheme clusters in nanoseconds with Python.
  
- 
    2025‑03‑12:
    
      On the state of coherence in the land of type classes.
  
- 
    2021‑02‑18:
    
      50 years of text games - 1977: Zork.
  
- 
    2024‑10‑30:
    
      Five or ten new proofs of the Pythagorean theorem.
  
- 
    2024‑12‑19:
    
      IPtables interactive diagram.
  
- 
    2024‑11‑12:
    
      What does f(x) mean in C++?
  
- 
    2021‑08‑10:
    
      Ultra-processed foods, diet quality, and health using the NOVA classification system
  
- 
    2025‑03‑31:
    
      There’s white stuff growing on your cheese that isn’t mold.
  
- 
    2024‑11‑07:
    
      Userland disk I/O.
  
- 
    2025‑02‑16:
    
      Gaussian random number generators.
  
- 
    2023‑05‑09:
    
      OmniPaxos: replicated state machine and consistent distributed log in Rust.
  
- 
    2024‑09‑11:
    
      We spent $20 and accidentally became the admins of .MOBI
  
- 
    2025‑02‑13:
    
      A fast 6502 code generator.
  
- 
    2022‑10‑14:
    
      Algorithms for modern hardware.
  
- 
    2025‑02‑08:
    
      Turner, Bird, O’Neill, and the sieve of Eratosthenes.
  
- 
    2024‑11‑19:
    
      Adding Apple’s 🌐 globe key to a QMK-powered keyboard.
  
- 
    2021‑11‑18:
    
      A simple, possibly correct, LR parser for C11.
  
- 
    2025‑02‑08:
    
      Colossus: the first large-scale electronic computer.
  
- 
    2024‑09‑23:
    
      KGT (Kate’s grammar tool): BNF dialect converter and railroad diagram generator.
  
- 
    2024‑06‑25:
    
      The magic of participatory randomness.
  
- 
    2025‑03‑09:
    
      Keep calm and panic: performance of errors in Golang.
  
- 
    2025‑02‑27:
    
      macOS tips and tricks.
  
- 
    2024‑07‑11:
    
      tview: a Golang terminal UI library with rich, interactive widgets.
  
- 
    2021‑06‑12:
    
      Designing Rust client bindings for REST APIs.
  
- 
    2024‑12‑21:
    
      The ugly truth about Spotify is finally revealed.
  
- 
    2024‑06‑18:
    
      Box plots are the better default choice for visualizing performance.
  
- 
    2024‑12‑05:
    
      The tragedy of Stafford Beer.
  
- 
    2025‑02‑03:
    
      Pinning down "Future is not Send" errors in async Rust.
  
- 
    2024‑08‑19:
    
      Don't repeat yourself and the strong law of small numbers.
  
- 
    2024‑11‑02:
    
      Strachey’s general purpose macrogenerator.
  
- 
    2024‑04‑23:
    
      A photo album of space age consumer electronics.
  
- 
    2025‑01‑16:
    
      The mess that is handling structure arguments and returns in LLVM.
  
- 
    2024‑05‑28:
    
      Your web API shouldn't redirect HTTP to HTTPS.
  
- 
    2025‑01‑16:
    
      COW vs BEEF: busting the biggest etymology myth in linguistic history.
  
- 
    2024‑10‑25:
    
      Bit twiddle hack: insert a 0 bit in the middle of a value.
  
- 
    2025‑03‑22:
    
      Brotli compression for the web.
  
- 
    2023‑12‑03:
    
      Monocypher 4: the clean break.
  
- 
    2021‑06‑20:
    
      Is Julia really fast?
  
- 
    2025‑01‑05:
    
      Don't clobber the frame pointer when writing asm for Golang.
  
- 
    2024‑08‑29:
    
      Kahan’s lecture notes on the status of the IEEE Standard 754 for binary floating-point arithmetic.
  
- 
    2025‑01‑31:
    
      Why is unauthenticated encryption insecure?
  
- 
    2025‑03‑16:
    
      Extracting content from an LCP “protected” ePub.
  
- 
    2025‑02‑22:
    
      Neut: a functional programming language with static memory management.
  
- 
    2023‑07‑29:
    
      Why is c the symbol for the speed of light?
  
- 
    2023‑07‑30:
    
      Serverless functions post-mortem.
  
- 
    2025‑01‑04:
    
      UltraLogLog: a practical and more space-efficient alternative to HyperLogLog for approximate distinct counting.
  
- 
    2025‑02‑14:
    
      Intensional Joy: a concatenative account of internal structure.
  
- 
    2025‑01‑13:
    
      The missing JIT tier for SQL query compilers.
  
- 
    2022‑09‑07:
    
      Wasmtime 1.0: a look at performance.
  
- 
    2021‑02‑18:
    
      Local privilege escalation exploit in Ubuntu apport crash handler.
  
- 
    2024‑04‑29:
    
      Principles for keyboard layouts.
  
- 
    2024‑06‑29:
    
      Programming advice I’d give to myself 15 years ago.
  
- 
    2021‑03‑12:
    
      Routing the technical interview.
  
- 
    2025‑01‑25:
    
      Advent of code 2024 in the BQN array programming language.
  
- 
    2023‑05‑23:
    
      How to include Git version information in a Golang binary.
  
- 
    2024‑10‑18:
    
      Understanding DNS resolution on Linux and Kubernetes.
  
- 
    2025‑01‑12:
    
      exec-path-from-shell: Make Emacs use the $PATH set in your shell.
  
- 
    2023‑02‑01:
    
      Surprises in the Rust JSON ecosystem.
  
- 
    2024‑10‑30:
    
      ANSI C89
  
- 
    2024‑10‑05:
    
      PostScript 1.0: a code study.
  
- 
    2025‑03‑21:
    
      Shaarli: personal, minimalist, super-fast, database free, bookmarking service.
  
- 
    2024‑06‑07:
    
      Leopard-free programming.
  
- 
    2021‑07‑05:
    
      The rise and fall of the OLAP cube.
  
- 
    2023‑11‑05:
    
      Ungrammar in Go and resilient parsing.
  
- 
    2025‑01‑14:
    
      Phil Rogaway on radical computer science.
  
- 
    2025‑01‑23:
    
      The mythical IO-bound Ruby on Rails app.
  
- 
    2024‑12‑03:
    
      Filtered sampling from sorted values with randomized binary search.
  
- 
    2025‑02‑09:
    
      blip: A tool for seeing your Internet latency.
  
- 
    2025‑02‑08:
    
      Tips for mathematical handwriting.
  
- 
    2025‑02‑15:
    
      Gorton: The hardest working font in Manhattan.
  
- 
    2025‑01‑11:
    
      Building Bauble: interactive signed distance functions with WebGL.
  
- 
    2024‑05‑09:
    
      datatype99: algebraic data types for C99.
  
- 
    2021‑05‑25:
    
      The unwritten contract of solid state drives.
  
- 
    2024‑11‑21:
    
      DBSP: automatic incremental view maintenance for rich query languages.
  
- 
    2025‑02‑09:
    
      Getting the type of a template argument as string in C++ without RTTI.
  
- 
    2025‑03‑14:
    
      Hash Chain: efficient exact online string search / matching through linked weak factors.
  
- 
    2024‑05‑29:
    
      Rhodes must fall: The legacy of Cecil Rhodes in the University of Oxford.
  
- 
    2024‑11‑17:
    
      Urban Machine: robotics and AI to reclaim lumber for reuse.
  
- 
    2023‑03‑15:
    
      Youtube2Webpage, if you much better from text than from videos.
  
- 
    2024‑06‑06:
    
      TPM GPIO fail: how bad OEM firmware ruins TPM security.
  
- 
    2021‑11‑09:
    
      Driftwood: know if private keys are sensitive.
  
- 
    2021‑02‑20:
    
      Siag: a spreadsheet based on X and Scheme in a grid.
  
- 
    2023‑12‑26:
    
      rscss: a reasonable system for CSS stylesheet structure.
  
- 
    2025‑02‑04:
    
      Delilah: Alan Turing’s secret wartime voice encryption project.
  
- 
    2024‑01‑02:
    
      LLM generated code is like particleboard.
  
- 
    2025‑01‑22:
    
      get_secrets: Negotiate symmetric secrets between two remote peers using mTLS secret exporter.
  
- 
    2023‑10‑21:
    
      Electromechanical refreshable Braille module.
  
- 
    2023‑12‑27:
    
      How America turned the tide in the cockroach wars.
  
- 
    2024‑11‑16:
    
      Nixie tubes.
  
- 
    2024‑08‑10:
    
      Rust on the RP2350.
  
- 
    2021‑02‑20:
    
      Reading with E-ink.
  
- 
    2025‑01‑06:
    
      Collatzeral damage: bitwise and proof foolish.
  
- 
    2021‑07‑05:
    
      The Turbo-Encabulator in Industry. (1944)
  
- 
    2023‑12‑31:
    
      How I forked SteamOS for my living room PC.
  
- 
    2025‑01‑13:
    
      Doug Lenat's source code for AM and EURISKO.
  
- 
    2021‑03‑18:
    
      The Nokia N900: the future that wasn’t.
  
- 
    2024‑06‑09:
    
      Ultrasonic investigations in shopping centres.
  
- 
    2021‑03‑26:
    
      The magical applications of zero-sized types in Rust.
  
- 
    2024‑11‑23:
    
      Why am I writing a JavaScript toolchain in Zig?
  
- 
    2021‑10‑19:
    
      Optimizations enabled by -ffast-math.
  
- 
    2025‑02‑27:
    
      Can Doom run it? Adding with NAND gates in Doom.
  
- 
    2025‑01‑06:
    
      Cray 1 supercomputer performance comparisons with home computers.
  
- 
    2025‑02‑28:
    
      Notes: long-form comments in GHC.
  
- 
    2023‑08‑21:
    
      Flex without the flex: bending FR4 PCBs.
  
- 
    2025‑03‑09:
    
      Performance of the Python 3.14 tail-call interpreter.
  
- 
    2021‑04‑04:
    
      Almquist shell (ash) variants.
  
- 
    2021‑10‑03:
    
      Fixing a Mac SE/30 to run A/UX.
  
- 
    2024‑10‑24:
    
      A line map for Milano's trams in TeX.
  
- 
    2024‑06‑13:
    
      Crafting an interpreter with Rust.
  
- 
    2025‑02‑08:
    
      From hours to 360ms: over-engineering a puzzle solution.
  
- 
    2024‑09‑26:
    
      Major leap for nuclear clock paves way for ultraprecise timekeeping.
  
- 
    2024‑11‑01:
    
      Unicode codepoints that expand or contract when case is changed in UTF-8.
  
- 
    2025‑02‑04:
    
      Notes on type layouts and ABIs in Rust.
  
- 
    2024‑07‑04:
    
      nq: a command line job queue utility.
  
- 
    2025‑01‑19:
    
      The surprising struggle to get a UNIX epoch time from a UTC string in C or C++.
  
- 
    2025‑02‑07:
    
      PolySubML: A simple ML-like language with subtyping, polymorphism, higher rank types, and global type inference.
  
- 
    2022‑05‑01:
    
      Sophie Wilson on the future of microprocessors. (YouTube)
  
- 
    2025‑02‑14:
    
      Type safe variadic printf in Idris.
  
- 
    2025‑01‑09:
    
      WorstFit: hidden transformations in Windows character sets.
  
- 
    2024‑12‑31:
    
      Optimizing static search trees in Rust.
  
- 
    2024‑09‑23:
    
      IO-Lite: a unified I/O buffering and caching system. (1999)
  
- 
    2024‑05‑15:
    
      Sir, there's a cat in your mirror dimension.
  
- 
    2021‑05‑28:
    
      The last days of Tokyo's Nakagin capsule tower.
  
- 
    2024‑01‑31:
    
      A homemade telephone exchange for rotary dial phones.
  
- 
    2024‑11‑19:
    
      In loving memory of the square checkbox.
  
- 
    2024‑06‑26:
    
      The many faces of undefined in JavaScript.
  
- 
    2024‑04‑04:
    
      CHERIoT and supply chain security.
  
- 
    2025‑02‑04:
    
      Decorator JITs: Python as a DSL.
  
- 
    2024‑12‑11:
    
      Making memcpy(NULL, NULL, 0) well-defined.
  
- 
    2024‑12‑21:
    
      Stacked error handling for large Rust projects.
  
- 
    2024‑11‑21:
    
      Handling cookies is a minefield.
  
- 
    2023‑05‑28:
    
      The silent (r)evolution of SAT.
  
- 
    2023‑12‑17:
    
      Lessons from implementing the Hurl programming language.
  
- 
    2025‑01‑12:
    
      Why I chose Common Lisp.
  
- 
    2021‑11‑24:
    
      Google cloud load balancer outage report.
  
- 
    2021‑02‑16:
    
      Arranging invisible icons in quadratic time.
  
- 
    2021‑07‑30:
    
      The Inter font family.
  
- 
    2024‑12‑25:
    
      When Unisys tried to cash in on GIF by charging royalties.
  
- 
    2024‑11‑11:
    
      Row major vs. column major arrays, row vectors vs. column vectors.
  
- 
    2021‑02‑27:
    
      10 software engineering laws everybody loves to ignore.
  
- 
    2025‑03‑02:
    
      Hardware discovery: ACPI and Device Tree.
  
- 
    2025‑01‑04:
    
      FIFO queues are all you need for cache eviction.
  
- 
    2022‑11‑10:
    
      Anatomy of a scalable software transactional memory.
  
- 
    2024‑11‑20:
    
      Type safety back and forth.
  
- 
    2024‑11‑27:
    
      A collective of nouns.
  
- 
    2024‑10‑20:
    
      Responsive TOC leader lines with CSS.
  
- 
    2021‑02‑20:
    
      The beigeness, or how to kill people with bad writing: the Scott Alexander method.
  
- 
    2021‑08‑29:
    
      Caches, modes, and unstable systems.
  
- 
    2025‑02‑15:
    
      Unofficial Jepsen test of Patroni, a PostgreSQL high availability solution.
  
- 
    2025‑01‑10:
    
      Peter Kirstein describes how Britain got its first Internet connection.
  
- 
    2021‑04‑01:
    
      pg_auto_failover: PostgreSQL extension and service for automated failover and high-availability.
  
- 
    2025‑02‑01:
    
      Enabling Touch ID for sudo on macOS, before and after Sonoma.
  
- 
    2025‑02‑27:
    
      Socrates is a state machine: sans IO with async Rust.
  
- 
    2024‑11‑20:
    
      Ghosts of departed proofs. (functional pearl)
  
- 
    2025‑01‑09:
    
      dnsclay: DNS UPDATE/AXFR/NOTIFY to many custom DNS operator APIs gateway
  
- 
    2024‑10‑20:
    
      Using Euro coins as standard weights.
  
- 
    2024‑10‑01:
    
      Implementing virtual system calls with vDSO.
  
- 
    2022‑10‑04:
    
      What color is your markup?
  
- 
    2021‑12‑22:
    
      34 at 34 for v5.34: Modern Perl features for Perl’s birthday.
  
- 
    2025‑02‑28:
    
      How CouchDB prevents data corruption with fsync.
  
- 
    2024‑10‑23:
    
      Our optimizers need a rethink.
  
- 
    2025‑01‑11:
    
      Rewrite it in Rust: a computational physics case study.
  
- 
    2025‑01‑20:
    
      Hash function design, SMHasher and Goodhart's Law.
  
- 
    2021‑06‑04:
    
      Post Office Trial: Marshall spells it out in a speech to University of Law.
  
- 
    2022‑10‑08:
    
      I have come to bury the BIOS, not to open it: The need for holistic systems.
  
- 
    2025‑02‑20:
    
      A tail calling interpreter for Python, and other musttail updates.
  
- 
    2024‑10‑06:
    
      A fast revese linear scan register allocator for Cranelift.
  
- 
    2024‑12‑30:
    
      Concurrent cycle collection for Scheme in Rust.
  
- 
    2023‑08‑22:
    
      Normalcy bias: it's not cool to overreact.
  
- 
    2024‑06‑29:
    
      Devops: the funeral.
  
- 
    2025‑02‑06:
    
      Thoughts after months of using Zig.
  
- 
    2024‑10‑21:
    
      A multithread concurrency cost hierarchy.
  
- 
    2021‑03‑04:
    
      Bitsquatting windows.com.
  
- 
    2024‑08‑27:
    
      Using dtrace on MacOS with SIP enabled.
  
- 
    2025‑02‑16:
    
      Program logics à la carte.
  
- 
    2021‑04‑29:
    
      Move constructors in Rust: is it possible?
  
- 
    2022‑12‑04:
    
      Leaving the basement: scaling up Mastodon at Hachyderm.
  
- 
    2025‑02‑07:
    
      Profiling in production with function call traces.
  
- 
    2023‑12‑11:
    
      How many lines of C it takes to execute a + b in Python.
  
- 
    2024‑11‑11:
    
      The CVM cardinality estimation algorithm.
  
- 
    2024‑04‑10:
    
      Steve Klabnik's Jujutsu tutorial.
  
- 
    2021‑08‑12:
    
      ZeroVer: 0-based versioning.
  
- 
    2024‑11‑11:
    
      Far too many ways to wait on a child process with a timeout.
  
- 
    2025‑02‑15:
    
      Gorton recreations.
  
- 
    2024‑04‑18:
    
      Formal mechanised semantics of CHERI C: capabilities, undefined behaviour, and provenance.
  
- 
    2025‑02‑17:
    
      How does Ada's memory safety compare with Rust’s?
  
- 
    2024‑10‑01:
    
      Kurt Vonnegut’s chess-like game GHQ.
  
- 
    2021‑05‑29:
    
      Really advanced Typescript types.
  
- 
    2024‑06‑15:
    
      Pitfalls of PostgreSQL logical decoding.
  
- 
    2024‑10‑21:
    
      The network is reliable? An informal survey of real-world communications failures.
  
- 
    2024‑06‑02:
    
      For want of a relative path to ld.so
  
- 
    2024‑09‑07:
    
      PERQ
  
- 
    2024‑12‑22:
    
      Blender USD scene import is accidentally quadratic.
  
- 
    2023‑12‑28:
    
      The heart of a language server.
  
- 
    2024‑12‑28:
    
      On Ada's dependent types, and its types as a whole.
  
- 
    2021‑08‑10:
    
      A security analysis of STARTTLS in email protocols.
  
- 
    2022‑01‑09:
    
      SSH agent restriction.
  
- 
    2025‑01‑08:
    
      Fidget: a library for representing implicit surfaces.
  
- 
    2023‑05‑29:
    
      Writing to the macOS clipboard the hard way.
  
- 
    2025‑01‑22:
    
      Compiler fuzzing in continuous integration: a case study on Dafny.
  
- 
    2025‑01‑17:
    
      Get a random selection of lines in a file using reservoir sampling in Rust.
  
- 
    2025‑02‑05:
    
      The Sudoku affair.
  
- 
    2024‑09‑24:
    
      A busy beaver Collatz coincidence.
  
- 
    2024‑11‑27:
    
      The capacitor that Apple soldered incorrectly at the factory in the Macintosh LC III.
  
- 
    2025‑02‑02:
    
      Introducing sealed capability types for CHERIoT.
  
- 
    2024‑10‑12:
    
      The ultimate conditional pattern matching syntax.
  
- 
    2023‑01‑06:
    
      A practical comparison of build and test speed between C++ and Rust.
  
- 
    2025‑01‑31:
    
      Byte queue limits for Linux network drivers.
  
- 
    2025‑01‑05:
    
      D2: declarative diagramming, implemented in Golang.
  
- 
    2024‑12‑04:
    
      Francis Crick’s central dogma of genetics is not a "dogma," and it has never been broken.
  
- 
    2024‑11‑09:
    
      Algol 68: a retrospective.
  
- 
    2024‑10‑05:
    
      The solid-state register allocator.
  
- 
    2025‑02‑02:
    
      Conway's law: how do committees invent?
  
- 
    2025‑01‑16:
    
      ipcc-downloader: download iOS cellular carrier profiles.
  
- 
    2025‑02‑16:
    
      Small-data computing: Hans-J Boehm’s correct calculator arithmetic.