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‑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.