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 2026 latest
-
2026‑09‑06:
Debian Code Search: Fast TurboPFor with Golang SIMD.
-
2026‑09‑05:
Liquid types. (2008)
-
2026‑09‑05:
Exploring Mojo’s raw pointer type.
-
2026‑09‑05:
Decompiler Explorer.
-
2026‑09‑04:
A preview of the future Intel architecture documentation.
-
2026‑09‑03:
The Revo programming language.
-
2026‑09‑03:
What's in the Emacs newcomers-presets theme?
-
2026‑09‑02:
Implementing FMA and finding bugs in C and Rust standard libraries.
-
2026‑09‑02:
New things for regular expressions in PostgreSQL: pg_tre and pg_re2.
-
2026‑09‑02:
Solving the flat cube.
-
2026‑09‑01:
Wasmi 2.0: engineering of the fastest wasm interpreters.
-
2026‑09‑01:
At the heart of the Snow/Leavis ‘two cultures’ clash.
-
2026‑09‑01:
Empty intervals are valid intervals.
-
2026‑08‑31:
Prela: a better SQL in 11 lines of code.
-
2026‑08‑30:
A one-handed clock on the hyperbolic plane.
-
2026‑08‑28:
Curvature Beziers: improving on a timeless recipe.
-
2026‑08‑28:
The cursed computer iceberg.
-
2026‑08‑28:
Hilariously fast volume computation with the divergence theorem.
-
2026‑08‑28:
Zero-cost 'tagless initial' in Rust with GADT-style enums.
-
2026‑08‑28:
How I made rustdoc 33% faster in one week.
-
2026‑08‑27:
ARM weak memory consistency vs TSO on Apple Silicon: what is it good for?
-
2026‑08‑27:
Symmetries in boolean scans with APL.
-
2026‑08‑27:
Sloc cloc and code (scc) 4.0: finding the files that need the most attention.
-
2026‑08‑27:
mold: a massively parallel linker.
-
2026‑08‑25:
The Sync Heap: delete first, ask questions later.
-
2026‑08‑24:
The changing role of finite-state model checking.
-
2026‑08‑23:
An introduction to canvas in Emacs.
-
2026‑08‑23:
nss-userhosts: a name service switch module allowing unprivileged users to have their own hosts files.
-
2026‑08‑23:
The figure of the earth: global geodesy in the mid-20th C.
-
2026‑08‑22:
Principles of dependent type theory.
-
2026‑08‑22:
CSS: the bomb inside your inbox.
-
2026‑08‑22:
GPU offload in Rust: portable, safe, and fast.
-
2026‑08‑22:
Emacs arbitrary code execution on file open, again.
-
2026‑08‑22:
Compile-time improvements in LLVM 23.
-
2026‑08‑21:
Enabling the next-generation trait solver on nightly Rust.
-
2026‑08‑21:
Rust Glancer: an LSP built with a focus on low memory usage.
-
2026‑08‑21:
I accidentally logged hundreds of thousands of phone calls to military bases: unmaintained delegations under e164.arpa.
-
2026‑08‑20:
LEGO color wheels (and why build a grid instead).
-
2026‑08‑20:
The smell of rain: how Aussie scientists invented a new word in 1964.
-
2026‑08‑20:
Double-double: 31 decimal digits of precision without leaving the FPU.
-
2026‑08‑20:
Why compiling Rust to Wasm is slow.
-
2026‑08‑18:
A preview of DuckDB v2.0
-
2026‑08‑18:
Accurate int/float colour conversions.
-
2026‑08‑17:
A faster way to calculate the day of the week.
-
2026‑08‑16:
Protecting the Rust standard library from accidental breakage with cargo-semver-checks.
-
2026‑08‑14:
RISC-V: they should have known better.
-
2026‑08‑14:
Speeding up (small) Ruby hashes with SWAR.
-
2026‑08‑14:
rustc_codegen_jvm: compile Rust to Java bytecode and runnable JARs.
-
2026‑08‑14:
Computing graph dominators.
-
2026‑08‑13:
The mathematical beauty of hyperbezier curves.
-
2026‑08‑12:
Additional publications in mathematics by Jeremy L. Martin.
-
2026‑08‑12:
Rust fearless_simd v0.7: 64-bit integers, improved generics, SSE2, and upcoming v1.0.
-
2026‑08‑12:
Why shrunk JPEGs look different in Firefox and Chrome.
-
2026‑08‑12:
Ruminating about mutable value semantics.
-
2026‑08‑12:
Implementation strategies for mutable value semantics.
-
2026‑08‑12:
How do you run a steam locomotive without fire?
-
2026‑08‑11:
The fastest double-to-string algorithm you’ve never heard of.
-
2026‑08‑11:
Euclidean affine functions and their application to calendar algorithms.
-
2026‑08‑11:
CPU jitter entropy random number generator.
-
2026‑08‑10:
Line breaks in Python and Unicode.
-
2026‑08‑10:
Moving integer division to floating-point is trivial.
-
2026‑08‑08:
Farewell etaoin shrdlu: the end of the Linotype at the New York Times.
-
2026‑08‑08:
OpenSSH key structure guide.
-
2026‑08‑06:
Shrinking Ruby hashes.
-
2026‑08‑05:
Faster than Ninja.
-
2026‑08‑05:
Nehir: a scrolling tiling window manager for macOS.
-
2026‑08‑05:
How Internet fighting works.
-
2026‑08‑05:
The Generativity Pattern in Rust.
-
2026‑08‑04:
Don't stop early: Case-folding source code at memory speed.
-
2026‑08‑04:
Designing a query system for a Rust compiler.
-
2026‑08‑04:
A revised Haskell 2010 language report.
-
2026‑08‑04:
The Lyon Amendment to the Lancaster Consensus: Perl’s toolchain version support policy.
-
2026‑08‑04:
BorrowSanitizer: a dynamic analysis tool for detecting Rust-specific aliasing bugs in multi-language applications.
-
2026‑08‑04:
Soppo: Golang with the features it's missing.
-
2026‑08‑04:
Lisette: Rust syntax, Go runtime.
-
2026‑08‑03:
Twenty years of Pandoc.
-
2026‑08‑03:
Celebrating 45 years of Kermit with the first new C-Kermit release in 15 years.
-
2026‑08‑03:
Splint: annotation-assisted lightweight static checking for C. (2004)
-
2026‑08‑03:
Full flattening of nested data parallelism.
-
2026‑08‑02:
C’s sizeof is surprisingly difficult to parse.
-
2026‑08‑02:
The Semantic Web, syllogism, and worldview. (2003)
-
2026‑08‑01:
Special Relativity Boot Camp: A geometry-first introduction to Special Relativity for advanced undergraduate and beginning graduate students.
-
2026‑08‑01:
getopt() but friendlier.
-
2026‑08‑01:
Vienna Standard Mean Ocean Water for metrology.
-
2026‑07‑31:
Why Casper forked Rust’s rand crate.
-
2026‑07‑31:
Post-quantum TLS certificates.
-
2026‑07‑31:
Correlated RNG in games.
-
2026‑07‑31:
Histogram vs empirical cumulative distribution function (eCDF) for dataviz.
-
2026‑07‑31:
Progress toward compiling Rust in the Linux kernel with gccrs.
-
2026‑07‑30:
Britain’s glass famine in WWI.
-
2026‑07‑29:
First CHERIoT silicon!
-
2026‑07‑28:
A fast path for decoding fixed-length lists in Parquet.
-
2026‑07‑28:
Query cycles: A Rust compiler murder mystery.
-
2026‑07‑28:
Existential types on a leash in Haskell.
-
2026‑07‑28:
Documentation and analysis of the Linux random number generator.
-
2026‑07‑28:
The mean means nothing: data visualization to debug a latency problem.
-
2026‑07‑28:
issetugid() sadness.
-
2026‑07‑27:
Colossus: the computers that helped win World War II.
-
2026‑07‑26:
The myth of the 'waterfall' SDLC.
-
2026‑07‑25:
Watching Golang's new garbage collector move through the heap.
-
2026‑07‑25:
ALP: adaptive lossless floating-point compression.
-
2026‑07‑25:
The perils of parsing `auto` type inference declarations in C23.
-
2026‑07‑25:
SIMD within a bignum in pure Python.
-
2026‑07‑25:
Fast synthesis of basic oscillators.
-
2026‑07‑24:
SIMD-friendly algorithms for substring searching.
-
2026‑07‑23:
Are emoji allowed in XMPP addresses?
-
2026‑07‑23:
Unicode variation selector 15 and text vs emoji presentation styles.
-
2026‑07‑22:
ECC and DDR5 RAM.
-
2026‑07‑22:
Rewriting the Futhark type checker.
-
2026‑07‑22:
Hardening Rust code for production.
-
2026‑07‑21:
git --end-of-options and command injection vulnerabilities.
-
2026‑07‑21:
Linux kernel will support $ORIGIN, sort of, for relocatable ELF dynamic linkers.
-
2026‑07‑21:
GitHub suddenly rejected my SSH key (the fix was a .pub file?!)
-
2026‑07‑21:
Why I stopped “creating content”.
-
2026‑07‑21:
Rust for Morello ARM CHERI: always-on memory safety, even in unsafe code.
-
2026‑07‑20:
Tech ain't that deep - and that's a problem.
-
2026‑07‑20:
Meta garbage collection: using OCaml's GC to GC Rust tree borrows.
-
2026‑07‑19:
Linn Rekursiv: The computer at the bottom of a canal.
-
2026‑07‑17:
Qalculate time hacks.
-
2026‑07‑17:
Qalculate hacks.
-
2026‑07‑17:
Earth rotation records spur October vote to avert negative leap second.
-
2026‑07‑16:
How the Roc compiler’s Rust-to-Zig rewrite is going.
-
2026‑07‑16:
inkwell: It's a New Kind of Wrapper for Exposing LLVM in safe Rust.
-
2026‑07‑15:
An overview of language features and implementation tasks that contribute towards the goal of adding dependent types to Haskell.
-
2026‑07‑14:
Native inotify in FreeBSD.
-
2026‑07‑14:
whatcable: what can each USB-C cable plugged into your Mac actually do?
-
2026‑07‑14:
Jurassic Park computers in excruciating detail.
-
2026‑07‑14:
6× faster batched binary search in Rust.
-
2026‑07‑13:
Intel underestimates fsin error bounds by 1.3 quintillion.
-
2026‑07‑12:
The tech of ‘Terminator 2’: an oral history.
-
2026‑07‑12:
reaction: A daemon that scans program outputs for repeated patterns, and takes action, faster than fail2ban.
-
2026‑07‑10:
An update on residential proxies and the web scraper situation.
-
2026‑07‑08:
Unicode's transliteration rules are Turing complete.
-
2026‑07‑08:
Computational balloon twisting: the theory of balloon polyhedra.
-
2026‑07‑07:
Mechanized type inference for record concatenation as in Nix.
-
2026‑07‑07:
Digital show and tell: how digital audio signals really behave in the real world.
-
2026‑07‑07:
Your Rust service isn't leaking: when do glibc / jemalloc / mimalloc call munmap()?
-
2026‑07‑06:
LOAD "PL/CBMBASIC",8,1: Commodore 64 BASIC for PostgreSQL.
-
2026‑07‑06:
A Mandelbrot set renderer written in BSD make.
-
2026‑07‑06:
Fully in-place functional programming with Koka.
-
2026‑07‑06:
CO2 helps viruses stay alive longer in the air.
-
2026‑07‑05:
A floating point option shield to check for sensible C compiler configurations.
-
2026‑07‑05:
Embedding information in permutations with Lehmer codes.
-
2026‑07‑02:
On ditching Vagrant: VMs with KVM and virsh on Debian.
-
2026‑07‑02:
Low-level Haskell: The cursed way to emulate inline assembly in Haskell/GHC, or how to return multiple values from a foreign function.
-
2026‑07‑02:
The physics of memory: can JavaScript ECS?
-
2026‑07‑01:
Proving the fundamental theorem of arithmetic in Agda.
-
2026‑06‑30:
The economics of Starlink and SpaceX.
-
2026‑06‑30:
An arbitrary-palette positional dithering algorithm.
-
2026‑06‑29:
WATaBoy: JIT-ing Game Boy instructions to Wasm beats a native interpreter.
-
2026‑06‑29:
Towards efficient matching of regexes with backreferences using register set automata.
-
2026‑06‑28:
flap: a deterministic parser with fused lexing.
-
2026‑06‑28:
Question: Is matching fixed regexes with back-references in P?
-
2026‑06‑28:
Prism: an impure functional language with typed effects.
-
2026‑06‑28:
Perceus: garbage free reference counting with reuse.
-
2026‑06‑27:
What data access pattern is as slow as possible?
-
2026‑06‑27:
Shard your locks: benchmarking 6 Golang cache designs.
-
2026‑06‑26:
PicoPCMCIA: an RP2350-based multi-peripheral board.
-
2026‑06‑26:
swsim: A software SIM card.
-
2026‑06‑25:
mlibc: a fukk-featured portable C standard library
-
2026‑06‑25:
Ending respiratory infections.
-
2026‑06‑25:
LuaJIT 3.0 proposed syntax extensions.
-
2026‑06‑25:
Zig @bitCast semantics and LLVM backend improvements.
-
2026‑06‑24:
Record type inference for dummies.
-
2026‑06‑24:
Performance of wasm runtimes in 2026.
-
2026‑06‑23:
agitjo: manage Forgejo PRs with AGit-Flow in Emacs.
-
2026‑06‑22:
The Glorious Revolution and the causes of the industrial revolution.
-
2026‑06‑22:
Russia's nuclear-powered 'Skyfall' missile is dirty and dangerous.
-
2026‑06‑21:
The inspection paradox is everywhere.
-
2026‑06‑20:
Time-weighted averages for request latency and MTTR.
-
2026‑06‑20:
Safe SIMD in Rust, even on the inside.
-
2026‑06‑18:
offset_of!(slice) in Rust.
-
2026‑06‑16:
zlib-rs in Firefox and an Intel CPU hardware bug.
-
2026‑06‑16:
Pinning down a hardware bug in Intel 13th/14th gen CPUs.
-
2026‑06‑16:
Rust async task local variables from scratch.
-
2026‑06‑15:
Darts, dice, and coins: sampling from a discrete distribution.
-
2026‑06‑14:
Every single outfit in Hackers.
-
2026‑06‑13:
The APLR(1) algorithm for compact LR(1) parsers is simpler and more capable than IELR(1).
-
2026‑06‑13:
FLEW: fully emulated WiFi on Bluetooth hardware.
-
2026‑06‑12:
Brute-force SSH attacks in the wild and how to stop them.
-
2026‑06‑12:
Factoring "short-sleeve" zero-heavy RSA keys with polynomials.
-
2026‑06‑11:
An interactive introduction to the terrific experience of rendering Arabic typography and its technical debt.
-
2026‑06‑11:
Justification in Arabic typesetting.
-
2026‑06‑11:
Life before main in Rust.
-
2026‑06‑11:
Chili peppers of the world: cultivars, species, and heat.
-
2026‑06‑11:
Learning a regular language by inferring a DFA with the TTT algorithm.
-
2026‑06‑11:
merman: Mermaid.js, but browserless, in Rust.
-
2026‑06‑10:
Debootstrapping without archeology: stacked implementations in Camlboot.
-
2026‑06‑10:
How building an HTML-first site doubled our users overnight.
-
2026‑06‑09:
Random flat datacenter networks at Amazon.
-
2026‑06‑09:
Blocking an AS (or similar) with cidr-aggregator.
-
2026‑06‑09:
RNG: flat datacenter networks at Amazon.
-
2026‑06‑09:
CSS: the unavoidable bad parts.
-
2026‑06‑07:
TARS: tiny automatic recycling system, a prototype desktop injection moulding machine.
-
2026‑06‑05:
Centrality in the DNS.
-
2026‑06‑05:
Chasing Lightning: detecting, characterizing, and identifying a powerful space-based GNSS interference source.
-
2026‑06‑04:
Stumpalo: a faster bump allocator for Rust.
-
2026‑06‑04:
Debris with telemetry: cybersecurity and Kessler syndrome.
-
2026‑06‑04:
Safe made easy: single ownership is (not) optional.
-
2026‑06‑04:
A survey of inlining heuristics.
-
2026‑06‑04:
Floating-point error handling in C++: what actually works?
-
2026‑06‑04:
The design principles of the Elixir type system.
-
2026‑06‑03:
A post-quantum future for Let's Encrypt.
-
2026‑06‑03:
“Sum Ergo Demonstro” RP2350 demo explained.
-
2026‑06‑02:
iddqd maps with keys borrowed from values: the hardest kind of unsafe Rust.
-
2026‑06‑02:
Current Rothko: the weather as an abstract expressionist painting.
-
2026‑06‑02:
A structure-aware fuzzing experiment in Rust.
-
2026‑06‑02:
Stealing from biologists to compile Haskell faster.
-
2026‑06‑01:
The dirt that refused to die: CO2 emissions from sterilized soil.
-
2026‑06‑01:
Willis Lamm's traffic light collection.
-
2026‑06‑01:
Should you normalize RGB values by 255 or 256?
-
2026‑05‑30:
The rise and fall of the rocky mountain locust.
-
2026‑05‑29:
bijou64: a fast canonical variable-length integer encoding.
-
2026‑05‑29:
The origin of quorum systems in distributed computing.
-
2026‑05‑29:
Lunacy: a Lua JIT written in Rust.
-
2026‑05‑29:
Yocto vs Debian for building embedded Linux systems.
-
2026‑05‑29:
Erasing existential types in Rust.
-
2026‑05‑29:
The geometry of superior athletic performance.
-
2026‑05‑28:
ACME CAA extensions to become mandatory.
-
2026‑05‑28:
Using GCC's nested functions with wide pointers and no trampolines.
-
2026‑05‑28:
Creusot helps you prove your Rust code is correct.
-
2026‑05‑27:
Deciphering a business card raytracer. (2013)
-
2026‑05‑27:
Verilog: Back to the building blocks’ building blocks.
-
2026‑05‑26:
mvm: a fast bytecode interpreter for Golang.
-
2026‑05‑25:
From AFSK to Goertzel: demodulating packet radio.
-
2026‑05‑25:
slimcc: C23 compiler with C2y/GNU extensions for x86-64 Linux/BSD, written in C99.
-
2026‑05‑25:
Scoped error in Rust.
-
2026‑05‑25:
antcc: a little C compiler.
-
2026‑05‑25:
kefir: a C17/C23 compiler.
-
2026‑05‑25:
On C extensions, portability, and alternative compilers.
-
2026‑05‑24:
50 hours to draw some lines.
-
2026‑05‑24:
The fourth independent assessment of UK climate risk.
-
2026‑05‑23:
The meaning of doing mathematics.
-
2026‑05‑23:
Jira is Turing complete.
-
2026‑05‑23:
Highest random weight rendezvous hashing in Elixir.
-
2026‑05‑23:
Inside SPy: language semantics for a statically-typed compiled variant of Python.
-
2026‑05‑23:
A new suite of modern tools for editing and publishing IETF RFCs.
-
2026‑05‑22:
How AI companies use malware proxies to mount DDoS attacks on web sites.
-
2026‑05‑22:
Project Hail Mary stellar navigation chart.
-
2026‑05‑21:
Open access to standards documents.
-
2026‑05‑20:
A revolution in mathematics? What really happened a century ago and why it matters today (2012).
-
2026‑05‑20:
Emacs after Magit.
-
2026‑05‑19:
Spork: A posix_spawn you can use as a fork.
-
2026‑05‑18:
Text for proofing fonts: a farewell to the quick brown fox.
-
2026‑05‑16:
Bear generates a compilation database for clang tooling.
-
2026‑05‑16:
ccls: a C/C++/Objective-C language server protocol implementation derived from cquery.
-
2026‑05‑15:
A simple Daikon-style runtime invariant miner for Python.
-
2026‑05‑15:
5× faster fast_blur in image-rs.
-
2026‑05‑15:
Building a clock from salvaged vacuum fluorescent displays.
-
2026‑05‑15:
Bidirectional typechecking that does not stop.
-
2026‑05‑15:
C++26 shipped a SIMD library nobody asked for.
-
2026‑05‑14:
20 °C: a short history of the standard reference temperature for industrial dimensional measurements.
-
2026‑05‑14:
The age of the amplifier.
-
2026‑05‑14:
So you want to deploy Falcon / FN-DSA for small post-quantum signatures…
-
2026‑05‑13:
A field manual for Deutsche Bahn.
-
2026‑05‑13:
Self-contained Linux applications with lone lisp.
-
2026‑05‑13:
Cost of enum-to-string: C++26 reflection vs the old ways.
-
2026‑05‑13:
Partial static single information form in compilers.
-
2026‑05‑12:
gosentry: fuzz golang with LibAFL.
-
2026‑05‑11:
Making cross-platform SIMD code pleasant.
-
2026‑05‑09:
ACME CA comparison.
-
2026‑05‑09:
Notes on using GNU Emacs Tramp in an unusual shell environment.
-
2026‑05‑09:
The react2shell story: a remote code execution vulnerability affecting next.js.
-
2026‑05‑09:
Hacking time: spoofing “atomic” radio time broadcasts with audio harmonics.
-
2026‑05‑08:
Stop MITM on the first SSH connection with cloud-init.
-
2026‑05‑07:
(Un)portable defer in C.
-
2026‑05‑07:
Potential consequences of using PostgreSQL as a job queue.
-
2026‑05‑05:
Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/ac/ax/be/bn)
-
2026‑05‑05:
A bidirectional typechecking puzzle in the Grace programming language.
-
2026‑05‑05:
The problem with counterfeit people. (paywall)
-
2026‑05‑05:
Why every organization should make it easy to report security flaws.
-
2026‑05‑04:
Async Rust never left the MVP state.
-
2026‑05‑04:
Broadcasting GPS on the local network.
-
2026‑05‑03:
What went into the machine and what came out: single-line fonts and engraving.
-
2026‑05‑03:
QuickHeap: a fast priority queue.
-
2026‑05‑02:
Servers with personality.
-
2026‑05‑02:
Why does it take so long to release black fan versions?
-
2026‑05‑02:
Stackless preprocessor coroutines for gamedev in ~200 lines of C++.
-
2026‑05‑02:
Utopian Scholastic
-
2026‑05‑01:
Wasted wind power in Britain.
-
2026‑05‑01:
New copy of Caedmon’s Hymn, the earliest poem in Old English, discovered by Trinity researchers in Rome.
-
2026‑04‑30:
A grounded conceptual model for ownership types in Rust.
-
2026‑04‑30:
Specialization in stable Rust.
-
2026‑04‑30:
Your Rust clippy config should be stricter.
-
2026‑04‑29:
FastCGI: 30 years old and still the better protocol for reverse proxies.
-
2026‑04‑29:
Cross-site scripting vulnerabilities lead to a RIPE NCC RPKI exploit chain.
-
2026‑04‑29:
The inside story of Terry Pratchett's Discworld, by those who knew him.
-
2026‑04‑29:
Withnail's Coat & I.
-
2026‑04‑28:
X.400 addresses are ugly.
-
2026‑04‑28:
Height hunt: a quest to find and visit every possible low bridge / height restriction sign in the UK.
-
2026‑04‑27:
The woes of sanitizing SVGs.
-
2026‑04‑27:
Is email confidential in transit yet?
-
2026‑04‑27:
From milliseconds to 26 nanoseconds: how a $20 eBay SFP module beat my entire NTP setup.
-
2026‑04‑26:
The fastest Linux timestamps.
-
2026‑04‑26:
The world’s most complex machine: ASML and EUV photolithography.
-
2026‑04‑25:
Removing the AUICGP instruction from CHERIoT RISC V.
-
2026‑04‑25:
The longest train journey in the EU.
-
2026‑04‑23:
Jumping into cold water can stop your heart.
-
2026‑04‑23:
Gecko: a fast GLR parser with automatic syntax error recovery.
-
2026‑04‑23:
Borrow-checking without type-checking.
-
2026‑04‑23:
Cryptographic right answers: post quantum and Rust edition.
-
2026‑04‑22:
An algorithmic reconstruction of normalisation by evaluation.
-
2026‑04‑22:
Garbage collection and the edge of safe Rust.
-
2026‑04‑22:
Garbage collection without unsafe code in Rust.
-
2026‑04‑21:
Using QUIC backscatter to infer hypergiant deployment configurations.
-
2026‑04‑21:
Performance of the Wren programming language.
-
2026‑04‑20:
Jujutsu / jj megamerges for fun and profit.
-
2026‑04‑20:
ggsql: A SQL extension for declarative data visualisation based on the Grammar of Graphics.
-
2026‑04‑20:
vega-lite: a high-level grammar of interactive graphics in JavaScript.
-
2026‑04‑20:
Plotnine: grammar of graphics for Python.
-
2026‑04‑19:
Verus is a tool for verifying the correctness of code written in Rust.
-
2026‑04‑19:
Generating random numbers using C++ standard library: the problems.
-
2026‑04‑18:
Towards trust in Emacs.
-
2026‑04‑18:
Running modern code on a 1960s UNIVAC computer via a RISC V emulator.
-
2026‑04‑17:
A simplified model of Fil-C.
-
2026‑04‑17:
Designing the Transport typeface: Margaret Calvert on the making of Britain’s road signs.
-
2026‑04‑17:
Practical antiforgery in software design.
-
2026‑04‑17:
Reflections on 30 years of HPC programming: so many hardware advances, so little adoption of new languages.
-
2026‑04‑16:
Fixing DNS tail latency with a 5-line config and a 50-line function.
-
2026‑04‑16:
Let sleeping CPUs lie: S0ix.
-
2026‑04‑16:
Rationale for the design of the Ada programming language.
-
2026‑04‑15:
The becquerel as an SI unit for request rate.
-
2026‑04‑15:
Retrofitting JIT compilers into C interpreters with ykllvm.
-
2026‑04‑15:
Uses for nested promises in JavaScript.
-
2026‑04‑15:
What really happened in Y2K?
-
2026‑04‑14:
It's OK to compare floating point numbers for equality.
-
2026‑04‑14:
Rust should have stable tail calls.
-
2026‑04‑14:
Leibniz on binary.
-
2026‑04‑14:
The secrets of the shinkansen.
-
2026‑04‑14:
memstop: delay process start until memory is available.
-
2026‑04‑13:
usand: minimal unshare(1)-based sandbox.
-
2026‑04‑13:
Running Ada Lovelace’s program to calculate Bernoulli numbers.
-
2026‑04‑13:
Debloat your async Rust.
-
2026‑04‑13:
gutd: eBPF WireGuard traffic obfuscator.
-
2026‑04‑12:
Mark’s magic multiply: Xh3sfx RISC V extension for accelerated software floating point.
-
2026‑04‑12:
Ronja: optical point-to-point data link with 1.4km range and 10Mbps full duplex data rate.
-
2026‑04‑12:
Bring back idiomatic design.
-
2026‑04‑12:
Brocards for vulnerability triage.
-
2026‑04‑11:
Investigating split locks on amd64.
-
2026‑04‑11:
Git fixup is magic (and Magit is too).
-
2026‑04‑10:
Deterministic primality testing for limited bit width.
-
2026‑04‑10:
The acyclic e-graph: Cranelift's mid-end optimizer.
-
2026‑04‑10:
Supply chain nightmare: How Rust will be attacked and what we can do to mitigate the inevitable.
-
2026‑04‑10:
Callgraph analysis in Ferrocene for denying unvalidated Rust library functions.
-
2026‑04‑10:
Instant space switching on macOS with a keyboard shortcut.
-
2026‑04‑09:
Incremental lambda calculus.
-
2026‑04‑09:
Why would you want a 64 bit microprocessor, especially in a personal system? (1991)
-
2026‑04‑08:
Rust borrow checking surprises.
-
2026‑04‑08:
All the industrial design files for Keychron keyboards and mice.
-
2026‑04‑08:
Some better defaults for Emacs.
-
2026‑04‑08:
Audio reactive LED strips are diabolically hard.
-
2026‑04‑08:
1SubML: plan vs reality.
-
2026‑04‑07:
Stealing from the best Emacs configs.
-
2026‑04‑07:
HTML for people.
-
2026‑04‑07:
Optimising a pipelined RISC-V core: from naive pipeline to near-superscalar performance.
-
2026‑04‑06:
Factoring is not a good benchmark to track Q-day.
-
2026‑04‑06:
A cryptography engineer’s perspective on quantum computing timelines
-
2026‑04‑06:
Stamp it! All programs must report their version.
-
2026‑04‑05:
A tail-call interpreter in (nightly) Rust.
-
2026‑04‑05:
Roogle: a Rust API search engine.
-
2026‑04‑04:
IBM announces strategic collaboration with ARM to shape the future of mainframes.
-
2026‑04‑04:
Hardware-accelerated arm64 KVM guests on s390.
-
2026‑04‑03:
A brief history of instant coffee.
-
2026‑04‑03:
landdown: simple sandboxing for shell scripts.
-
2026‑04‑03:
The 1SubML programming language.
-
2026‑04‑02:
pgenie: Type-safe PostgreSQL client code generator.
-
2026‑04‑01:
Rust’s dynamically-sized types are just polymorphically compiled generics.
-
2026‑03‑30:
Async Rust in three parts.
-
2026‑03‑29:
Somebody’s watching me: adventures in cellular location services.
-
2026‑03‑29:
Towards scalable dataframe systems.
-
2026‑03‑29:
What category theory teaches us about dataframes.
-
2026‑03‑28:
On the enshittification of Audre Lorde: "the master's tools" in tech discourse.
-
2026‑03‑28:
NIST SP 800-81r3: secure domain name system (DNS) deployment guide.
-
2026‑03‑27:
bigoish: test the empirical computational complexity of algorithms in Rust.
-
2026‑03‑27:
jaq: A jq clone focussed on correctness, speed, and simplicity.
-
2026‑03‑27:
jsongrep is faster than {jq, jmespath, jsonpath-rust, jql}
-
2026‑03‑27:
Why so many industrial control rooms were seafoam green.
-
2026‑03‑26:
Final analysis of 2025 Iberian blackout: electrical grid operating policies left Spain at risk.
-
2026‑03‑26:
Developing a minimally HashDoS resistant, yet quickly reversible integer hash for V8.
-
2026‑03‑25:
The metaverse: Neal Stephenson’s prodigal brainchild.
-
2026‑03‑25:
Addressing global removal race in Wayland.
-
2026‑03‑24:
Golang naming conventions: a practical guide.
-
2026‑03‑24:
The why and what of the CIDR Report.
-
2026‑03‑24:
When upserts don't update but still write: debugging PostgreSQL WAL activity.
-
2026‑03‑24:
Performance implications of AArch64 atomics.
-
2026‑03‑24:
iss: instant space switcher for macOS.
-
2026‑03‑23:
From error-handling to structured concurrency.
-
2026‑03‑23:
PostgreSQL query cancellation / Ctrl-C in psql is insecure.
-
2026‑03‑22:
Let's see an ARM NEON SIMD CSV parser.
-
2026‑03‑22:
I hate programming Wayland applications.
-
2026‑03‑22:
Manyana: a demo using a CRDT for version control.
-
2026‑03‑22:
A case against curried functions.
-
2026‑03‑22:
The three pillars of JavaScript bloat.
-
2026‑03‑21:
A visual guide to DNA sequencing.
-
2026‑03‑21:
Looking at Unity finally made me understand the point of C++ coroutines.
-
2026‑03‑21:
noq: iroh’s general purpose QUIC implementation with multipath and NAT traversal support.
-
2026‑03‑21:
arXiv, declares independence from Cornell.
-
2026‑03‑21:
An effect notation based on with-clauses and blocks.
-
2026‑03‑21:
C bit-field pitfalls.
-
2026‑03‑20:
Verilator: open-source SystemVerilog simulator and lint system.
-
2026‑03‑20:
BIO: the Bao I/O coprocessor.
-
2026‑03‑19:
Monuses and heaps.
-
2026‑03‑19:
No semicolons needed: a survey of programming language syntaxes.
-
2026‑03‑18:
Accessing hardware in Rust.
-
2026‑03‑18:
Seeing types where others don't: static type inference for jq.
-
2026‑03‑18:
Bertrand Meyer remembers Tony Hoare.
-
2026‑03‑17:
A tale about fixing eBPF spinlock issues in the Linux kernel.
-
2026‑03‑17:
All longest regex matches in linear time is possible.
-
2026‑03‑16:
Reviewing large changes with Jujutsu.
-
2026‑03‑15:
One hundred curl graphs.
-
2026‑03‑15:
Separating the Wayland compositor and window manager in River.
-
2026‑03‑14:
A preview of Coalton 0.2, a statically-typed Lisp.
-
2026‑03‑14:
In search of Banksy.
-
2026‑03‑14:
Running gVisor on Raspberry Pi 5: a kernel configuration adventure.
-
2026‑03‑13:
How to use storytelling to fit inline assembly into Rust.
-
2026‑03‑13:
The best darn grid shader (yet).
-
2026‑03‑12:
How far can you go with only internet exchange route servers?
-
2026‑03‑12:
SSL/TLS and PKI history.
-
2026‑03‑12:
Just a drop in the bucket / the mother of all grease fires.
-
2026‑03‑12:
Emacs internals: tagged union, tagged pointer, and poor man's inheritance.
-
2026‑03‑12:
3D rendering periodic spaces with signed distance functions.
-
2026‑03‑12:
Lowdown can translate markdown to an mdoc manpage.
-
2026‑03‑12:
Parametricity, or comptime is bonkers.
-
2026‑03‑12:
The state of Rust memory allocators in 2026.
-
2026‑03‑11:
pg_plan_advice: plan stability and user planner control for PostgreSQL?
-
2026‑03‑11:
Code reviews do find bugs.
-
2026‑03‑11:
U+237C ⍼ RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW is a symbol for azimuth.
-
2026‑03‑10:
TCXO failure analysis.
-
2026‑03‑10:
Rebasing in Magit.
-
2026‑03‑10:
I don’t know what is Apple’s endgame for the Fn/Globe key, and I’m not sure Apple knows either.
-
2026‑03‑10:
Too much color: how many decimal places do you need?
-
2026‑03‑10:
Jim Roskind’s C and C++ grammars.
-
2026‑03‑09:
Linux internals: how /proc/self/mem writes to unwritable memory.
-
2026‑03‑09:
Price-checking zerocopy's zero cost Rust abstractions.
-
2026‑03‑09:
Post-quantum cryptography beyond TLS.
-
2026‑03‑09:
mXSS: mutation cross-site scripting explained.
-
2026‑03‑09:
System failure: Why governments must learn to think differently.
-
2026‑03‑09:
WebPKI and you.
-
2026‑03‑08:
Symbolic derivatives of regular expressions and the Rust rewrite of resharp.
-
2026‑03‑08:
How to recalculate a spreadsheet.
-
2026‑03‑07:
Pushing and pulling: three reactivity algorithms.
-
2026‑03‑07:
--usage: a specification for CLIs.
-
2026‑03‑05:
Pony networking, take two.
-
2026‑03‑05:
wgsl-rs: Rust as a shader language.
-
2026‑03‑04:
The one science reform we can all agree on, but we're too cowardly to do.
-
2026‑03‑04:
Faster C software with dynamic CPU feature detection and IFUNC.
-
2026‑03‑04:
Never snooze a future in async Rust.
-
2026‑03‑04:
“Personal Data”: more than a definition, a quasi-constitutional stake in EU law in the era of the Digital Omnibus.
-
2026‑03‑04:
Linux signalfd is useless.
-
2026‑03‑04:
pg_jitter: lighter-weight multi-backend JIT for PostgreSQL.
-
2026‑03‑04:
RTL.WTF: read the web like Right-to-Left readers do.
-
2026‑03‑03:
Lilaq: advanced data visualization in Typst.
-
2026‑03‑03:
Simple screw and nut dispensers.
-
2026‑03‑03:
Arm's Cortex X925: reaching desktop performance.
-
2026‑03‑03:
British Rail settlement plan barcode specs.
-
2026‑03‑03:
Debugging reproducible build issues in Rust.
-
2026‑03‑02:
What 127.5 million forms can tell you about the state of front-end regex input validation on the Web.
-
2026‑03‑02:
The real cost of random I/O in PostgreSQL.
-
2026‑02‑28:
UKI: unified kernel images for booting Linux from UEFI.
-
2026‑02‑28:
Io: possibly the simplest practical programming notation. (1989)
-
2026‑02‑27:
Surface-stable fractal dithering.
-
2026‑02‑27:
Ordered dithering with arbitrary or irregular colour palettes.
-
2026‑02‑27:
maiao: Gerrit-style stacked PR management for GitHub from the command line.
-
2026‑02‑26:
snakes.run: rendering 100M pixels a second over ssh.
-
2026‑02‑26:
Making wasm a first-class language on the web.
-
2026‑02‑26:
How a side project got banned from the internet: Google safe browsing hates 302 redirects.
-
2026‑02‑26:
soft-serve: a self-hostable git ssh server for the command line.
-
2026‑02‑25:
Takata airbag scandal: the most expensive design flaw in history.
-
2026‑02‑25:
Turing completeness of GNU find: from mkdir-assisted loops to standalone computation.
-
2026‑02‑25:
yabai: A tiling window manager for macOS based on binary space partitioning.
-
2026‑02‑25:
pdfpc: A presenter console with multi-monitor support for PDF files.
-
2026‑02‑25:
PCB rework and repair guide.
-
2026‑02‑24:
Reduced the size of Golang binaries by up to 77%.
-
2026‑02‑23:
The mushroom making people hallucinate dozens of tiny humans.
-
2026‑02‑23:
Cursed engineering: jumping randomly through CSV files without hurting yourself.
-
2026‑02‑23:
HTTP headers that tell syndication feed fetchers how soon to come back.
-
2026‑02‑23:
Using the new bridges of FreeBSD 15.
-
2026‑02‑23:
Using nsnotifyd with a PowerDNS secondary.
-
2026‑02‑23:
FLOE (Fast Lightweight Online Encryption): random-access authenticated encryption with key commitment.
-
2026‑02‑23:
Matt Gray hacked car charging to work with his e-bike. (YouTube)
-
2026‑02‑22:
A history of the four-colour theorem, 1852–1976, for its 50th anniversary.
-
2026‑02‑22:
HTTP/3 on FreeBSD: Getting QUIC Working with nginx in a Bastille Jail.
-
2026‑02‑21:
DUMPLING: fine-grained differential JavaScript engine fuzzing.
-
2026‑02‑21:
Control shopping trolley wheel locks with your Phone!
-
2026‑02‑21:
IPv6 address assignment.
-
2026‑02‑20:
Compendium: an strace-like x86 Linux syscall tracer in Rust.
-
2026‑02‑20:
Banish: a declarative DSL embedded in Rust, for defining rule-based state machines.
-
2026‑02‑20:
Read the undocumented mems accelerometer on Apple Silicon MacBooks via IOkit HID.
-
2026‑02‑19:
The perils of ISBN.
-
2026‑02‑19:
Linux CVE assignment process.
-
2026‑02‑19:
An update on upki: TLS certificate revocation checking with CRLite in Rust.
-
2026‑02‑19:
CHERIoT Rust status update #0.
-
2026‑02‑17:
Oral history of Robert P. Colwell, Intel Pentium / IA32 lead architect.
-
2026‑02‑17:
How a single character typo led to RCE in Firefox.
-
2026‑02‑17:
Fast sorting networks, branchless by design.
-
2026‑02‑16:
ACME, a brief history of a protocol which has changed Internet security.
-
2026‑02‑15:
Towards fearless macros.
-
2026‑02‑15:
Rendering the visible spectrum.
-
2026‑02‑14:
Floppy Disks: the best TV remote for kids.
-
2026‑02‑14:
Writing C with indent-based syntax similar to CoffeeScript or Python, via Guile.
-
2026‑02‑13:
Evolving Git for the next decade.
-
2026‑02‑13:
The many flavours of ignore files.
-
2026‑02‑13:
The missing call-assign operator.
-
2026‑02‑12:
A history of copper mining and refinement.
-
2026‑02‑12:
A brief history of barbed wire fence telephone networks.
-
2026‑02‑12:
How David Kindersley’s serifs lost the road war but won the streets.
-
2026‑02‑12:
That British mid-century signage font is called “Festive”.
-
2026‑02‑12:
Technical issues of separation in function cells and value cells: Lisp-1 vs Lisp-2.
-
2026‑02‑11:
Majutsu! An Emacs interface for Jujutsu / jj, like Magit.
-
2026‑02‑11:
cysqlite: a new SQLite driver for Python.
-
2026‑02‑10:
Hylo: a systems programming language all in on value semantics and generic programming.
-
2026‑02‑09:
All the views: the longest lines of sight on Earth.
-
2026‑02‑09:
Modern CI is too complex and misdirected.
-
2026‑02‑09:
Against fancy ligatures in programming fonts.
-
2026‑02‑09:
JSONata: a JSON query and transformation language.
-
2026‑02‑08:
AEQuery: Apple Events command line query tool without AppleScript.
-
2026‑02‑08:
pred_recdec: Predicated LL / recursive descent parser / grammar interpreter in Rust.
-
2026‑02‑07:
Arcan-A12: Weaving a different web.
-
2026‑02‑07:
Arcan Explained: A browser for different webs.
-
2026‑02‑07:
emacs-tramp-rpc: high-performance TRAMP backend using MsgPack-RPC.
-
2026‑02‑07:
System time, clocks, and their syncing in macOS.
-
2026‑02‑06:
Magnetic fields can change carbon diffusion in steel.
-
2026‑02‑04:
Mobile carriers can get your GPS location.
-
2026‑02‑03:
Taming a flat AST: ergonomics without allocations.
-
2026‑02‑03:
Writing an async runtime in Rust.
-
2026‑02‑03:
A landmark ruling that sets a new standard for algorithmic transparency in Spain.
-
2026‑02‑02:
A (nearly) perfect USB cable tester.
-
2026‑02‑02:
Removing macOS 26 Tahoe’s unwanted menu icons.
-
2026‑02‑02:
A fast zero-allocation webserver using OxCaml.
-
2026‑02‑01:
macmon: sudoless performance monitoring for Apple processors. CPU / GPU / RAM usage, power consumption and temperature.
-
2026‑02‑01:
Reliable 25 gigabit ethernet via Thunderbolt.
-
2026‑01‑31:
Don Bickler: the engineer who invented the Mars rover suspension in his garage.
-
2026‑01‑31:
Eagle Mode: a zoomable user interface.
-
2026‑01‑31:
Ode to the AA battery.
-
2026‑01‑30:
Stabilizing `if let` in match guards in Rust.
-
2026‑01‑30:
Disrupting the IPIDEA residential proxy network.
-
2026‑01‑30:
stressapptest / Stressful Application Test: a userspace memory and IO test.
-
2026‑01‑29:
Usable colours for command line utilities.
-
2026‑01‑28:
Parametric CAD in Rust.
-
2026‑01‑27:
How we made Python's packaging library 3x faster.
-
2026‑01‑27:
Units of measure in the KCL CAD language.
-
2026‑01‑27:
The C-shaped hole in package management.
-
2026‑01‑27:
For the love of troff.
-
2026‑01‑26:
Gonemaster: a Golang clone of the Zonemaster DNS checker.
-
2026‑01‑26:
Implementing the transcendental functions in Ivy.
-
2026‑01‑25:
Bitwise conversion of doubles using only floating-point multiplication and addition.
-
2026‑01‑25:
What the world can learn from Paris’s cycling revolution.
-
2026‑01‑24:
Doing gigabit ethernet over my British phone extension wires.
-
2026‑01‑23:
pywidevine: Python implementation of Google's Widevine DRM CDM (Content Decryption Module).
-
2026‑01‑23:
OpenWV: Open reimplementation of Google's Widevine Content Decryption Module for browsers.
-
2026‑01‑23:
Microsoft Outlook autodiscover mishandling example.com.
-
2026‑01‑23:
Remotely unlocking an encrypted hard disk.
-
2026‑01‑23:
Selectively disabling HTTP/1.0 and HTTP/1.1
-
2026‑01‑23:
Maintaining shadow branches for GitHub PRs.
-
2026‑01‑22:
SSH has no Host header: virtual hosting based on user public keys.
-
2026‑01‑22:
Giving university exams in the age of chatbots.
-
2026‑01‑20:
“Ptolemaic Code”: software that appears functional but is based on a fundamentally incorrect model.
-
2026‑01‑20:
Building your own efficient uint128 in C++.
-
2026‑01‑20:
Engineering and operations at the Internet Archive.
-
2026‑01‑20:
Floating-point printing and parsing can be simple and fast.
-
2026‑01‑19:
AVX-512: first impressions on performance and programmability.
-
2026‑01‑19:
Are arrays functions?
-
2026‑01‑16:
diesel-guard: check for expensive PostgreSQL migrations in Rust.
-
2026‑01‑16:
READ_ONCE(), WRITE_ONCE(), but not for Rust in the Linux kernel.
-
2026‑01‑16:
The state of Rust cryptography in 2026.
-
2026‑01‑16:
How London finally cracked mobile phone coverage on the Underground.
-
2026‑01‑16:
Reverse engineering a cloud-connected e-scooter and finding the master key to unlock all scooters.
-
2026‑01‑15:
The discoveries of continuations.
-
2026‑01‑15:
What does it take to ship Rust in safety-critical systems?
-
2026‑01‑15:
Gripes with Prolog.
-
2026‑01‑15:
The State of OpenSSL for pyca/cryptography.
-
2026‑01‑13:
The 9 incompatible versions of RSS. (2004)
-
2026‑01‑13:
Stoat: an open-source, user-first chat platform.
-
2026‑01‑12:
The J incunabulum.
-
2026‑01‑12:
A sign-off review checklist for PCB designs.
-
2026‑01‑11:
The Julian Period and Modified Julian Dates.
-
2026‑01‑11:
A unique performance optimization for a 3D geometry language.
-
2026‑01‑10:
Finding and fixing Ghostty's largest memory leak.
-
2026‑01‑10:
Pulling a new proof from Knuth’s fixed-point printer, with code in Ivy.
-
2026‑01‑10:
Testing ECC NMI in a cubesat boot loader: intentional flash corruption for STM32 microcontrollers.
-
2026‑01‑10:
How Markdown took over the world.
-
2026‑01‑09:
An adequate left-associated binary numeral system in the lambda calculus.
-
2026‑01‑08:
How to write like a person.
-
2026‑01‑08:
Lessons from merging hash tables.
-
2026‑01‑08:
Clang hardening cheat sheet, ten years later.
-
2026‑01‑08:
How did TVs get so cheap?
-
2026‑01‑08:
BLAKE2s hashing accelerator: a solo tapeout journey.
-
2026‑01‑07:
Why the trans flag emoji uses a sequence of 5 unicode codepoints.
-
2026‑01‑06:
Internet anagram server.
-
2026‑01‑06:
Several anti-phonetic alphabets.
-
2026‑01‑06:
I/O is no longer the bottleneck? (compared to AVX2 vectorized wc)
-
2026‑01‑06:
Marcin Wichary’s favourite tech museums.
-
2026‑01‑05:
Who owns the memory? Who calls free?
-
2026‑01‑05:
Who owns the memory? How big is your type?
-
2026‑01‑05:
Who owns the wemory? What is an Object?
-
2026‑01‑05:
Raspberry Pi Reliability: how to reduce writes to your SD card.
-
2026‑01‑05:
Using eBPF to load-balance traffic across UDP sockets with Golang.
-
2026‑01‑05:
Stop forwarding errors in Rust, start designing them.
-
2026‑01‑04:
What is a PC compatible?
-
2026‑01‑04:
Four ways to improve a perfect SQL join algorithm.
-
2026‑01‑04:
What we’re talking about, when we talk about data destruction.
-
2026‑01‑04:
USB-C to 3.5mm headphone audio dongles, a new (but also old) problem.
-
2026‑01‑04:
The late arrival of 16-bit CP/M.
-
2026‑01‑04:
Hash functions for GPU rendering.
-
2026‑01‑04:
Quick and easy GPU random numbers.
-
2026‑01‑04:
3D printed origami.
-
2026‑01‑03:
Partial evaluation and automatic program generation. (book, 1993)
-
2026‑01‑02:
A survey of dynamic array structures.
-
2026‑01‑02:
wpex: WireGuard packet relay for NAT traversal.
-
2026‑01‑02:
OpenAlex: The open catalog to the global research system.
-
2026‑01‑01:
Sorting with fibonacci numbers, and a Knuth reward check.
-
2026‑01‑01:
Eliminate branches by melding IR instructions.