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
- 2023‑12‑30:
Git commit signing is kinda wack.
- 2023‑12‑26:
What is a parser mismatch vulnerability?
- 2023‑12‑26:
Lotus 1-2-3 for Linux.
- 2023‑12‑26:
Reptar: an Intel x86 microcode bug.
- 2023‑12‑21:
How to find secure hash collisions.
- 2023‑12‑16:
Why aren't we SIEVE-ing? A new cache eviction algorithm.
- 2023‑12‑13:
Unauthenticated Bluetooth keystroke-injection in Android, Linux, macOS, and iOS.
- 2023‑12‑11:
Cutting out continuations.
- 2023‑12‑10:
Lambda to SKI, semantically.
- 2023‑12‑08:
A brief history of keyboard encoding.
- 2023‑12‑04:
You don't need JavaScript for that.
- 2023‑11‑29:
Why is Rust slower to read a file than Python?
- 2023‑11‑29:
Destructing trees safely and cheaply.
- 2023‑11‑28:
It's About Time! Accurate clocks in distributed systems.
- 2023‑11‑27:
The largest number representable in 64 bits.
- 2023‑11‑24:
FullControl: unconstrained gcode design for 3D printers.
- 2023‑11‑23:
Wasmtime and Cranelift in 2023.
- 2023‑11‑23:
Commercial flights driven off course by GPS spoofing attacks.
- 2023‑11‑22:
Why does the moon change size when you snipe it in GTA?
- 2023‑11‑21:
How I (kind of) killed Mercurial at Mozilla.
- 2023‑11‑21:
Drawing diagrams for TeX with MetaPost.
- 2023‑11‑20:
A close encounter with false sharing in Rust.
- 2023‑11‑19:
Checking Rust crate semver stability in the presence of doc(hidden) items.
- 2023‑11‑17:
Oops! We Automated Bullshit.
- 2023‑11‑17:
Why you need a "WTF notebook".
- 2023‑11‑16:
Can your static type system handle linear algebra?
- 2023‑11‑16:
A subtle Python SIGPIPE bug.
- 2023‑11‑15:
Popcount walks: next, previous, toward and nearest.
- 2023‑11‑14:
Replacing HLS/DASH with Media over QUIC.
- 2023‑11‑13:
37 is the median value for the second prime factor of an integer.
- 2023‑11‑12:
A quick look at register allocation with destination-driven code generation.
- 2023‑11‑12:
Space Invaders street art mosaics.
- 2023‑11‑07:
Can solar and wind power Britain? An update of David MacKay’s numbers.
- 2023‑11‑07:
Jezebel and the question of women’s anger.
- 2023‑11‑05:
A proposed fix for C/C++ relaxed atomics in practice.
- 2023‑10‑21:
Analyzing data 180,000x faster with Rust.
- 2023‑10‑20:
How to mitigate the Hetzner/Linode XMPP.ru MitM attack.
- 2023‑10‑20:
TLS MITM attack against a Russian XMPP / Jabber service.
- 2023‑10‑19:
Stop your (business rules) engines!
- 2023‑10‑19:
The road to hell is paved with good intentions and C++ modules.
- 2023‑10‑15:
Faster compile times from simpler dependency graphs in Rust.
- 2023‑10‑13:
Thumb calendar.
- 2023‑10‑13:
Conical Slicing: A different angle of 3D printing.
- 2023‑10‑10:
Text showdown: gap buffers vs ropes.
- 2023‑10‑09:
UK postal address oddities.
- 2023‑10‑05:
Report ITU-R TF.2511-0 (10/2022): Content and structure of time signals to be disseminated by radiocommunication systems and various aspects of current and potential future reference time scales, including their impacts and applications in radiocommunication.
- 2023‑10‑05:
The Terminal Escapes: Engineering unexpected execution from command line interfaces.
- 2023‑10‑03:
The 300% production problem.
- 2023‑10‑03:
x86 amd64 SIMD instruction list: SSE to AVX512.
- 2023‑10‑03:
Arm64 SIMD instruction list: SVE instructions.
- 2023‑10‑02:
The Marvin attack: Bleichenbacher returns, again.
- 2023‑09‑29:
Who really invented the alphabet?
- 2023‑09‑29:
A plot of all objects in the universe.
- 2023‑09‑25:
The invisible problem with editing text on phones.
- 2023‑09‑24:
Introducing geometric algebra to software developers: a computational thinking approach.
- 2023‑09‑21:
Speeding up the JavaScript ecosystem: polyfills gone rogue.
- 2023‑09‑19:
Making Gaussian Splats smaller.
- 2023‑09‑14:
Pagefind and URL search parameters.
- 2023‑09‑13:
George Gorton Machine Co engraver typefaces.
- 2023‑09‑12:
Hacking the Book8088 for better accuracy.
- 2023‑09‑12:
What’s the smallest variety of CHERI?
- 2023‑09‑11:
Pure Wasm Life 2: optimizing webassembly and canvas with WebGL.
- 2023‑09‑11:
The Carrington Event of 1859 disrupted telegraph lines. A “Miyake Event” would be far worse.
- 2023‑09‑09:
Black-box concurrent data structures for NUMA architectures.
- 2023‑09‑09:
Good performance is not just big O.
- 2023‑09‑02:
Spoofing certificates with MD5 collisions in 2022.
- 2023‑09‑01:
A deep dive into Single Pair Ethernet.
- 2023‑08‑31:
Ad-hoc polymorphism erodes type-safety.
- 2023‑08‑31:
Co-dfns versus BQN's implementation.
- 2023‑08‑31:
The mystery of the Bloomfield bridge.
- 2023‑08‑29:
Grave flaws in BGP error handling.
- 2023‑08‑23:
ROMRAM: using QSPI RAM with RP2040's SSI in read-write mode.
- 2023‑08‑23:
USB HID device class definition.
- 2023‑08‑22:
Building and customizing a Kyria wireless ergonomic keyboard.
- 2023‑08‑21:
Designing a PCB for the RP2040 Microcontroller | Microcontroller Tutorials
- 2023‑08‑21:
Normal incidents.
- 2023‑08‑13:
Virtualizing uxn.
- 2023‑08‑07:
Reverse Z in 3D graphics (and why it’s so awesome).
- 2023‑08‑06:
Why does libvirt support only 14 hot-plugged PCIe devices on x86-64?
- 2023‑08‑02:
Why Python is terrible.
- 2023‑07‑31:
The Fibonacci matrix.
- 2023‑07‑31:
What John von Neumann really did at Los Alamos.
- 2023‑07‑30:
Workarounds for C11 _Generic().
- 2023‑07‑29:
LPython: novel, fast, retargetable Python compiler.
- 2023‑07‑22:
Managing kitchen fruit flies with a Little Shop of Horrors.
- 2023‑07‑21:
HP-1973: an HP calculator emulator.
- 2023‑07‑19:
Local async executors should be the default in Rust.
- 2023‑07‑17:
Appreciating RFC 8927 JSON type definition.
- 2023‑07‑16:
Penrose: create beautiful diagrams by typing notation in plain text.
- 2023‑07‑11:
salty: Ed25519 for ARM microcontrollers.
- 2023‑06‑24:
No vehicles in the park: a game about content moderation.
- 2023‑06‑09:
Monongahela: a design for a balanced ternary computer.
- 2023‑06‑04:
Calculating position from raw GPS data.
- 2023‑05‑29:
ITU News Magazine: The future of Coordinated Universal Time.
- 2023‑05‑29:
SectorC: A C Compiler in 512 bytes.
- 2023‑05‑28:
Bcrypt at 25: a retrospective on password security.
- 2023‑05‑23:
Unpacking 5 billion varints in only 4 billion CPU cycles.
- 2023‑05‑22:
Wrench: an embedded interpreter.
- 2023‑05‑19:
bilge: a bit fiddling proc macro for Rust.
- 2023‑05‑17:
Logs said it was DNS, it looked like DNS, it had to be DNS, it wasn't DNS.
- 2023‑05‑13:
Building a baseline JIT for Lua automatically.
- 2023‑05‑12:
PS-HTTP: a web server written in PostScript.
- 2023‑05‑11:
Building an anycast secondary DNS service.
- 2023‑05‑11:
Building the Micro Mirror free software CDN.
- 2023‑05‑10:
Semantics and scheduling for machine knitting compilers.
- 2023‑05‑08:
On custom-width integer types.
- 2023‑05‑07:
Mysteries of the Griffin iMate and the Apple Extended Keyboard II.
- 2023‑05‑07:
The tale of -mrtd in GCC and Clang.
- 2023‑05‑07:
Prolly trees: Merklizing the key/value store for fun and profit.
- 2023‑05‑07:
On numbering hegemonies and namespace monopolies.
- 2023‑05‑03:
I want to talk about WebGPU.
- 2023‑05‑01:
A mirror for Rust: compile-time reflection.
- 2023‑04‑30:
Basics of space flight: orbital mechanics.
- 2023‑04‑26:
You could have invented futexes.
- 2023‑04‑22:
The magic of DC-DC voltage conversion.
- 2023‑04‑10:
Night of the living brain fog, or how I hacked my sleep apnea better thanks to open source software.
- 2023‑04‑10:
Can you trust a compiler to optimize (even vectorize) your code?
- 2023‑04‑10:
nsss: a secure NSS-like implementation for static linking.
- 2023‑04‑09:
Modular errors in Rust.
- 2023‑04‑08:
Database “sharding” came from Ultima Online?
- 2023‑03‑15:
No more DSLs: Implement and deploy a distributed system with a single program.
- 2023‑03‑14:
Generating aerial imagery with your iPhone’s LiDAR sensor.
- 2023‑03‑10:
\Device\Afd: what makes async Rust and libuv work on Windows.
- 2023‑03‑09:
The Quest for Netflix on Asahi Linux.
- 2023‑03‑08:
The linguistic registers of Rust.
- 2023‑03‑08:
Historical notes on computer word and byte sizes.
- 2023‑03‑07:
How UC Davis medical school became remarkably diverse.
- 2023‑02‑28:
HOTscript: higher-order TypeScript, a library for type-level madness.
- 2023‑02‑05:
Where is the most densely populated square kilometre in the UK?
- 2023‑02‑03:
Weird things I learned while writing an x86 emulator.
- 2023‑01‑28:
C needs a new type qualifier: it’s time for null pointer safety.
- 2023‑01‑27:
Netheads vs. bellheads redux: the strange victory of SIP over the telephone network.
- 2023‑01‑27:
Reverse engineering the original Lytro lightfield camera.
- 2023‑01‑25:
Do not taunt happy fun branch predictor.
- 2023‑01‑08:
User-level implementations of RCU (read copy update).
- 2023‑01‑08:
The DIY scientist, the olympian, and the mutated gene.
- 2023‑01‑05:
Reflecting on transducers in Scheme.
- 2023‑01‑01:
How to get Xfinity Stream to work on Linux: a tale of Widevine, Chrome OS, and a patched glibc.
- 2023‑01‑01:
Better binary search in Haskell.