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
- 2022‑12‑26:
Verifying concurrent memory reclamation algorithms with grace.
- 2022‑12‑26:
NBR: neutralization based reclamation.
- 2022‑12‑21:
Deriving a bit-twiddling hack: signed integer overflow.
- 2022‑12‑20:
How to draw ugly lines really fast.
- 2022‑12‑12:
The golden age of PL research.
- 2022‑12‑08:
Goodbye to the C++ implementation of Zig.
- 2022‑12‑06:
Is Moore’s Law really dead?
- 2022‑12‑04:
Building a virtual machine inside ChatGPT.
- 2022‑11‑30:
Any Game of Life pattern can be constructed from just 15 gliders.
- 2022‑11‑30:
The huge Game of Life caterpillar spaceship.
- 2022‑11‑26:
The EU eIDAS regulation and QWAC x.509 certificates.
- 2022‑11‑23:
Takahē: An efficient multi-domain ActivityPub server.
- 2022‑11‑23:
Takahē: An efficient multi-domain ActivityPub server.
- 2022‑11‑23:
microblog.pub: A self-hosted, single-user, ActivityPub powered microblog.
- 2022‑11‑23:
If multicast is the answer, what was the question?
- 2022‑11‑23:
Building the fastest Lua interpreter.. automatically!
- 2022‑11‑22:
A jq255 elliptic curve specification, and a retrospective.
- 2022‑11‑21:
Why the OpenSSL punycode vulnerability was not detected by fuzz testing.
- 2022‑11‑21:
Is wine fake?
- 2022‑11‑20:
From culinary dud to stud: how Dutch plant breeders built a brussels sprouts boom.
- 2022‑11‑19:
GitOpper: GitOps without Kubernetes.
- 2022‑11‑19:
C23 implications for C libraries.
- 2022‑11‑19:
The truffle industry is a big scam. Not just truffle oil, everything.
- 2022‑11‑18:
Will we have a negative leap second?
- 2022‑11‑17:
A guide to error handling in Rust.
- 2022‑11‑16:
git-absorb: git commit --fixup, but automatic.
- 2022‑11‑16:
Absorbing commit changes in Mercurial 4.8.
- 2022‑11‑14:
psyche-c: automatic compilation of partially-available sources.
- 2022‑11‑14:
Rust and C++ interoperability.
- 2022‑11‑14:
Canary in the kernel mine: exploiting and defending against same-type object reuse.
- 2022‑11‑10:
BRAVO: biased locking for reader-writer locks.
- 2022‑11‑10:
Scalable reader-writer locks.
- 2022‑11‑10:
Cloning the Linux kernel in under a minute with gitoxide.
- 2022‑11‑09:
What is PostgreSQL commitfest?
- 2022‑11‑08:
C isn't a programming language anymore.
- 2022‑11‑06:
The SAFe delusion.
- 2022‑11‑05:
The longest periods of British Summer Time.
- 2022‑11‑03:
Comparing TCP and QUIC.
- 2022‑11‑03:
Sugar substitutes surprise.
- 2022‑10‑27:
Contention on multi-threaded regex matching in Rust.
- 2022‑10‑26:
Where else in London are there pylons?
- 2022‑10‑26:
Time is an illusion, Unix time doubly so...
- 2022‑10‑24:
Buffers on the edge: Python and Rust.
- 2022‑10‑18:
Maidenhead locator system map (with small squares).
- 2022‑10‑15:
Announcing Algol 68 Genie 3.0
- 2022‑10‑14:
Make your QEMU 9p server 10 times faster with this one weird trick.
- 2022‑10‑14:
Modes considered harmful.
- 2022‑10‑10:
The Google plasma globe USB keystroke injection attack.
- 2022‑10‑08:
Slides from a lecture series on algebraic geometry for computer graphics.
- 2022‑10‑07:
Hard mode Rust.
- 2022‑10‑07:
On the DeepMind AlphaTensor new matrix multiplication algorithms.
- 2022‑10‑06:
In-place construction for Rust.
- 2022‑10‑04:
C++ chrono-compatible low-level date algorithms.
- 2022‑10‑04:
Illuminating synchronization edges for ThreadSanitizer.
- 2022‑10‑02:
The first RISC: John Cocke and the IBM 801.
- 2022‑10‑01:
Adversarial collaboration.
- 2022‑10‑01:
9 puzzles to convince you you don't understand dependence.
- 2022‑09‑30:
Querying PostgreSQL tables from DuckDB.
- 2022‑09‑30:
The thorny problem of keeping the Internet’s time.
- 2022‑09‑29:
How to build a personal webpage from scratch.
- 2022‑09‑28:
Linux kernel __is_constexpr macro.
- 2022‑09‑28:
What is PL research and how is it useful?
- 2022‑09‑27:
The web site performance golden rule.
- 2022‑09‑26:
Zen4's AVX512 teardown.
- 2022‑09‑26:
The curious design of skateboard trucks.
- 2022‑09‑18:
GCC's new fortification level: The gains and costs.
- 2022‑09‑18:
Finding a second bug in glibc’s condition variable with TLA+.
- 2022‑09‑18:
Geometric algebra: what is the inverse of a vector?
- 2022‑09‑17:
Qiwi: A quick, emulation-focused launcher for QEMU.
- 2022‑09‑12:
Ladybird: A new cross-platform browser from the SerenityOS project.
- 2022‑09‑09:
Parallel curves of cubic Béziers.
- 2022‑09‑08:
bstr: A byte string library for Rust.
- 2022‑09‑07:
Programming with union, intersection, and negation types.
- 2022‑09‑06:
Someone’s been messing with Python’s floating point subnormals!
- 2022‑09‑06:
What’s the smallest variety of CHERI? A 32 bit RISC-V CHERI.
- 2022‑09‑04:
The as-if infinitely ranged (AIR) integer model.
- 2022‑09‑04:
Reviving the coolest film scanner you've never heard of.
- 2022‑09‑04:
I ran the worlds largest DDoS-for-Hire empire and CloudFlare helped.
- 2022‑08‑31:
Commodore 64 Theremin.
- 2022‑08‑30:
Packed structs in Zig make bit/flag sets trivial.
- 2022‑08‑29:
CSS classes considered harmful.
- 2022‑08‑28:
Weird monitor bugs people sent me in the last 5 years.
- 2022‑08‑26:
The Jupyter+git problem is now solved.
- 2022‑08‑23:
VS Code: What's the deal with the telemetry?
- 2022‑08‑20:
Faster zlib/DEFLATE decompression on arm64 and x86.
- 2022‑08‑15:
Retrofitted parallelism considered grossly sub-optimal.
- 2022‑08‑14:
Getting the world record in HATETRIS.
- 2022‑08‑11:
Brimar thermionic products great British valve project.
- 2022‑08‑07:
Computing Adler32 checksums at 41 GB/s.
- 2022‑08‑04:
The original social network: other people’s websites.
- 2022‑08‑03:
How I do (and don’t) prepare a talk for a tech conference.
- 2022‑08‑02:
A new `impl Trait` for Rust.
- 2022‑07‑31:
Linux kernel lock engineering principles.
- 2022‑07‑29:
A simplified implementation of TypeScript's type system written in TypeScript's type system.
- 2022‑07‑29:
Actually Portable Executables with Rust and Cosmopolitan libc.
- 2022‑07‑29:
Stop aggregating away the signal in your data.
- 2022‑07‑28:
execline: a small scripting language.
- 2022‑07‑27:
Twenty years of Valgrind.
- 2022‑07‑22:
Why the NRO is defending AFRINIC.
- 2022‑07‑22:
Formal CHERI: rigorous engineering and design-time proof of full-scale architecture security properties.
- 2022‑07‑19:
Gaussian blue noise.
- 2022‑07‑19:
CORE-MATH: open source mathematical functions with correct rounding.
- 2022‑07‑07:
UDDSketch: a C implementation of DDSketch with a better uniform collapsing strategy.
- 2022‑06‑20:
A closer look at CVSS scores.
- 2022‑06‑19:
Advancing the state of the art for C++ std::unordered_map implementations.
- 2022‑06‑14:
STxP70 / STHORM / P2012: ST's secret microcontroller.
- 2022‑06‑04:
Remembering Ned Freed (1959-2022).
- 2022‑05‑30:
How read-intensive is Linux's use of RCU? (And what is its latency?)
- 2022‑05‑29:
Thoughts on FORTH programming.
- 2022‑05‑29:
RFC 3339 vs ISO 8601
- 2022‑05‑27:
Searching 32 million academic papers for obscene acronyms hidden in the titles.
- 2022‑05‑25:
Modern programming languages require generics.
- 2022‑05‑22:
Happy 10th birthday to Godbolt’s Compiler Explorer!
- 2022‑05‑20:
Logging C function calls with cosmopolitan libc.
- 2022‑05‑17:
DevOps inspiration from Toyota Production System and Lean considered harmful.
- 2022‑05‑12:
Fuzzing an eBPF implementation in Rust.
- 2022‑05‑09:
Agile and the long crisis of software.
- 2022‑05‑07:
Xilem: an architecture for UI in Rust.
- 2022‑05‑07:
Identity crisis: sequence vs UUID as primary key.
- 2022‑05‑07:
Shaving is too expensive.
- 2022‑05‑06:
A mystery of unnecessary Rust crate recompilation.
- 2022‑04‑29:
Pražský Orloj: Prague astronomical clock simulator.
- 2022‑04‑27:
SELinux is unmanageable; just turn it off if it gets in your way.
- 2022‑04‑26:
The problem with mechanical keyboard switch reviews.
- 2022‑04‑25:
Low-latency high-throughput garbage collection.
- 2022‑04‑21:
Coherence and crate-level where-clauses in Rust.
- 2022‑04‑20:
Changing llvm libc++ std::sort() at Google and beyond.
- 2022‑04‑18:
Locales, encodings, Unicode, and C++.
- 2022‑04‑18:
It's always DNS . . . except when it's not: A deep dive through gRPC, Kubernetes, and AWS networking.
- 2022‑04‑18:
Exponentially better rotations.
- 2022‑04‑16:
Why I avoid async/await in JavaScript.
- 2022‑04‑11:
Pointers Are Complicated III: pointer-integer casts exposed. (strict provenance in Rust)
- 2022‑04‑10:
Rust's unsafe pointer types need an overhaul.
- 2022‑04‑10:
The struggle of using native emoji on the web.
- 2022‑04‑10:
Abstraction: not what you think it is.
- 2022‑04‑10:
The design of the RELAX NG XML schema language.
- 2022‑04‑10:
Beyond bufferbloat: End-to-end congestion control cannot avoid latency spikes.
- 2022‑04‑10:
So you want to study mathematics…
- 2022‑04‑10:
Authenticated bootstrapping of DNSSEC delegations.
- 2022‑04‑04:
Horrible edge cases to consider when cataloguing music.
- 2022‑04‑01:
Laura Kuenssberg’s time as BBC Political Editor has been a catastrophic, systemic failure.
- 2022‑04‑01:
DDC OLED: how to drive a tiny display from an HDMI port.
- 2022‑04‑01:
Three big myths about Covid Omicron.
- 2022‑03‑31:
Moderating content supports the principles of free speech.
- 2022‑03‑30:
The British Empire was much worse than you realize.
- 2022‑03‑30:
GPT-3 can run code (ish).
- 2022‑03‑28:
“You build it, you run it” playbook.
- 2022‑03‑24:
DNSSEC algorithms for TLDs (and everyone else).
- 2022‑03‑21:
Lanai (the Myrinet CPU architecture) in LLVM.
- 2022‑03‑19:
BOOTP and ARP history.
- 2022‑03‑18:
Random number generator enhancements for Linux 5.17 and 5.18..
- 2022‑03‑17:
C isn't a programming language anymore.
- 2022‑03‑16:
Daylight saving time gripe assistant tool.
- 2022‑03‑14:
RP2040 Doom.
- 2022‑03‑12:
Marginalia web search engine.
- 2022‑03‑12:
The life of an optimization barrier in Rust and Wasm.
- 2022‑03‑10:
A Redis Lua sandbox escape on Debian and its derivatives.
- 2022‑03‑04:
Dennis Meadows on the 50th anniversary of the publication of The Limits to Growth.
- 2022‑03‑02:
Using DNAME for reverse DNS of inter-RIR transferred IP address ranges.
- 2022‑02‑26:
Curious lack of sprintf scaling.
- 2022‑02‑23:
A cursed RDMA bug.
- 2022‑02‑22:
A collection of GPS disciplined oscillator designs.
- 2022‑02‑19:
Jujutsu: A Git-compatible DVCS that is both simple and powerful.
- 2022‑02‑19:
Destroy all values: designing deinitialization in programming languages.
- 2022‑02‑19:
Mergers ruin everything.
- 2022‑02‑19:
Building an intelligent Emacs.
- 2022‑02‑19:
How a Saudi woman's iPhone revealed NSO Group’s hacking.
- 2022‑02‑17:
PX-1000Cr: Deliberate weakening of a cryptographic algorithm by the NSA.
- 2022‑02‑15:
Upgrading an iPod in 2022.
- 2022‑02‑15:
A decade of major cache incidents at Twitter.
- 2022‑02‑15:
Journeying into XDP: Fully-fledged DNS service augmentation.
- 2022‑02‑06:
lon lat or lat lon?
- 2022‑02‑03:
Yes, I can query a SQLite database in CSS.
- 2022‑02‑03:
Optimizing GoAWK with a bytecode compiler and virtual machine.
- 2022‑02‑01:
Async embedded Rust vs FreeRTOS + C showdown!
- 2022‑01‑30:
Uninitialized memory: unsafe Rust is too hard.
- 2022‑01‑29:
An update on rust/coreutils.
- 2022‑01‑28:
Lights at sea: a map of lighthouses.
- 2022‑01‑28:
Summary of the USA federal government’s zero-trust memo.
- 2022‑01‑27:
Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace.
- 2022‑01‑27:
Stop brainstorming.
- 2022‑01‑26:
Machine readable specifications at scale.
- 2022‑01‑25:
World of constellations: a multicultural star map.
- 2022‑01‑25:
The truth about inflation.
- 2022‑01‑18:
Dun, Dun Duuun! Where did pop culture’s most dramatic sound come from?
- 2022‑01‑18:
GPS.
- 2022‑01‑18:
arXiv.org reaches a milestone and a reckoning.
- 2022‑01‑17:
Why Macron’s use of the French swear word ‘emmerder’ is so hard to translate.
- 2022‑01‑16:
Covid-19 will never become endemic.
- 2022‑01‑14:
Are you sure you want to use mmap() in your database management system?
- 2022‑01‑14:
Nominative determinism in hospital medicine.
- 2022‑01‑13:
Hate leap seconds? Imagine a negative one!
- 2022‑01‑13:
Ghost in the ethernet optic.
- 2022‑01‑13:
PCIe 6 overview.
- 2022‑01‑13:
Async Rust in ScyllaDB: performance, pitfalls, profiling.
- 2022‑01‑09:
Matthew Somerville’s Inky dashboard.
- 2022‑01‑09:
Will Britain survive?
- 2022‑01‑09:
How to check you're in the initial pid namespace?
- 2022‑01‑03:
On recurrences converging to the wrong limit in finite precision, and some new examples.
- 2022‑01‑01:
A brief history of Dell Unix.
- 2022‑01‑01:
Susie Dent's guide to swearing.