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
- 2021‑12‑31:
Some sanity for C and C++ development on Windows.
- 2021‑12‑28:
Why Pascal is Not My Favorite Programming Language. (troff source)
- 2021‑12‑28:
Software Tools in C++.
- 2021‑12‑26:
State of Valhalla, part 1: value types for the JVM.
- 2021‑12‑23:
fq: jq for binary formats.
- 2021‑12‑18:
age-plugin-yubikey: YubiKey plugin for age encryption.
- 2021‑12‑18:
untwister: a PRNG seed recovery tool.
- 2021‑12‑18:
PostgreSQL is a great pub/sub and job server.
- 2021‑12‑17:
A brutally effective hash function in Rust.
- 2021‑12‑16:
gRPC best practices.
- 2021‑12‑15:
IPv4 address markets.
- 2021‑12‑05:
Tips on adding JSON output to your command line utility.
- 2021‑12‑05:
Securing updates for GNU Guix.
- 2021‑12‑05:
Rclone syncs your files to cloud storage.
- 2021‑12‑03:
Don't make my mistakes: common infrastructure errors i've made.
- 2021‑12‑02:
Ideal monitor rotation for programmers .
- 2021‑12‑02:
Tvix: we are rewriting Nix.
- 2021‑12‑01:
libtree: ldd as a tree saying why a library is found or not.
- 2021‑12‑01:
An illustrated guide to elliptic curve cryptography validation.
- 2021‑11‑28:
Amethyst: an automatic tiling window manager for macOS.
- 2021‑11‑24:
IDEs and macros and Rust.
- 2021‑11‑21:
DwarFS: A fast high compression read-only file system.
- 2021‑11‑21:
elfshaker stores binary objects efficiently; designed for manyclangs.
- 2021‑11‑18:
Support for IPv6 link local addresses in browsers.
- 2021‑11‑18:
Understanding HKDF.
- 2021‑11‑18:
Vulnerabilities show why STARTTLS should be avoided if possible.
- 2021‑11‑14:
Tests aren’t enough: adding type hints to Python urllib3.
- 2021‑11‑13:
The weirdest QNX bug I've ever encountered.
- 2021‑11‑13:
It's now possible to sign arbitrary data with your SSH keys.
- 2021‑11‑12:
Overview of the Rust compiler.
- 2021‑11‑11:
Speed of Rust vs C.
- 2021‑11‑04:
An oral history of Bank Python.
- 2021‑11‑01:
C++ coroutines do not spark joy.
- 2021‑10‑26:
Comparing open source BGP stacks.
- 2021‑10‑26:
austral: a systems language with linear types.
- 2021‑10‑26:
bitbottle: an archive file format (in Rust).
- 2021‑10‑25:
blamer.el: A git blame plugin for emacs inspired by VS Code's GitLens plugin.
- 2021‑10‑23:
Can we trust Microsoft with Open Source?
- 2021‑10‑23:
A cool Rust optimization story.
- 2021‑10‑23:
Coding for non-programmers: we need better web GUI automation tools.
- 2021‑10‑21:
Stupid tricks with io_uring: a server that does zero syscalls per request.
- 2021‑10‑21:
Context-preserving error handling in Rust.
- 2021‑10‑21:
Function pipelines: Building functional programming into PostgreSQL using custom operators.
- 2021‑10‑21:
Did the Big Bang begin from a singularity? Not anymore.
- 2021‑10‑21:
Social media doesn't turn people into assholes, and everyone's wrong about echo chambers.
- 2021‑10‑20:
I couldn’t debug the code because of my name: unicode pathname bugs in JetBrains IDEs.
- 2021‑10‑18:
What every software engineer should know about search.
- 2021‑10‑18:
The undocumented Microsoft "Rich" PECOFF header.
- 2021‑10‑13:
Kathleen Stock, TERF.
- 2021‑10‑13:
The problem with function namespaces and Lisp macros.
- 2021‑10‑11:
MMP at 25: how proportional representation changed New Zealand forever.
- 2021‑10‑11:
Benchmarking oksh (OpenBSD Korn shell) with lots of C compilers.
- 2021‑10‑06:
How ISO C became unusable for operating system development.
- 2021‑10‑04:
CBMC: C bounded model checker.
- 2021‑10‑03:
OpenHaystack: tracking your Bluetooth devices with Apple's "Find My" network
- 2021‑10‑03:
R, OpenMP, MKL, disaster.
- 2021‑10‑02:
Clarifying the structure and nature of left-wing authoritarianism.
- 2021‑09‑30:
Rust for the polyglot programmer.
- 2021‑09‑30:
The Biggest Churches in the World: Anglo-Norman eleventh-century cathedrals.
- 2021‑09‑27:
Dealing with the Roman Calendar.
- 2021‑09‑26:
A history of library hand.
- 2021‑09‑21:
HIBA: Host Identity Based Authorization for SSH.
- 2021‑09‑21:
A giant space rock demolished an ancient Middle Eastern city and everyone in it, possibly inspiring the Biblical story of Sodom.
- 2021‑09‑19:
How does Ouroboros relate to RINA, the Recursive InterNetwork Architecture?
- 2021‑09‑18:
The Negro Subversive on Critical Race Theory.
- 2021‑09‑17:
TRIPOS historical sources.
- 2021‑09‑16:
Go to sleep little iPhone: lost broadcasts on WiFi.
- 2021‑09‑15:
DART: the Disability Attitude Re-adjustment Tool.
- 2021‑09‑15:
Freedom of Information as a tool for making cycle routes more accessible.
- 2021‑09‑15:
Taking legal action on inaccessible cycleway barriers.
- 2021‑09‑14:
logos: create ridiculously fast lexers in Rust.
- 2021‑09‑14:
Type-checked keypaths in Rust.
- 2021‑09‑14:
A tale of making a company-wide psqlrc to use with pgbouncer.
- 2021‑09‑14:
OLAP != OLAP Cube.
- 2021‑09‑14:
Ora2PG now supports oracle_fdw to increase data migration speed.
- 2021‑09‑12:
Okhsv and Okhsl: two new color spaces for color picking.
- 2021‑09‑09:
Kill It With Fire: dealing with legacy systems. (book review)
- 2021‑09‑06:
Computational hierarchy of elementary cellular automata.
- 2021‑09‑05:
Notes from a 1984 trip to Xerox PARC.
- 2021‑09‑04:
A nasty bit of implicit timezone behavior in Golang.
- 2021‑09‑03:
The scandalous history of the last rotor cipher machine.
- 2021‑09‑02:
Netflix audio description style guide.
- 2021‑09‑01:
Moiré no more: using FFT to remove halftone patterns.
- 2021‑09‑01:
In defense of blub studies.
- 2021‑08‑30:
Most information about disinformation is misinformation.
- 2021‑08‑29:
Why is the S combinator an S?
- 2021‑08‑29:
Four months with Ada.
- 2021‑08‑28:
jsc: JavaScript on the macOS command line.
- 2021‑08‑26:
Inko: Friendship ended with the garbage collector.
- 2021‑08‑26:
Flexible microprocessor could enable an 'internet of everything'.
- 2021‑08‑26:
PragmatIC Semiconductor made a flexible 6502 in two weeks.
- 2021‑08‑25:
Hiding images in plain sight: an acrylic magic window that can project a picture.
- 2021‑08‑24:
Life before Unicode in Russia.
- 2021‑08‑23:
One does not simply calculate the absolute value.
- 2021‑08‑21:
Tesla Dojo: a custom chip for very high capacity AI training.
- 2021‑08‑20:
Encoding of immediate values on AArch64.
- 2021‑08‑20:
Monks Wood Wilderness: 60 years ago, scientists let a farm field rewild; here's what happened.
- 2021‑08‑20:
Patterns in confusing explanations.
- 2021‑08‑18:
Exploring Clang/LLVM optimization on a programming horror.
- 2021‑08‑17:
Speeding up `atan2f` by 50x.
- 2021‑08‑15:
Classical data structures that can outperform learned indexes.
- 2021‑08‑14:
Emacs development charts, 10×10%.
- 2021‑08‑14:
A probabilistic solution to the three-body problem.
- 2021‑08‑11:
Why is tech illustration stuck on repeat?
- 2021‑08‑11:
A little bit about PRNG stuff in Rust.
- 2021‑08‑09:
How BCPL evolved from CPL.
- 2021‑08‑09:
The rise of Meson.
- 2021‑08‑08:
Edward Luper’s 36 Views of the BT Tower.
- 2021‑08‑07:
A USB adapter for a Depraz mouse.
- 2021‑08‑07:
The tao of Unicode sparklines.
- 2021‑08‑06:
HTTP/2 desync attacks.
- 2021‑08‑03:
Unix for TOPS-20 users. (1987)
- 2021‑08‑03:
Choosing properties for property-based testing.
- 2021‑07‑31:
strcpy: a niche function you don't need.
- 2021‑07‑30:
B-tree path hints.
- 2021‑07‑30:
One tenth of a second.
- 2021‑07‑28:
Cryptanalysis of Meow Hash.
- 2021‑07‑27:
Why neoliberalism needs neofascists.
- 2021‑07‑21:
Keyboard rollover and lockout.
- 2021‑07‑18:
Inserting one billion rows into SQLite in under a minute.
- 2021‑07‑13:
Updating the Golang memory model.
- 2021‑07‑11:
Ribbon filter: Practically smaller than Bloom and Xor.
- 2021‑07‑11:
It’s not always iCache.
- 2021‑07‑11:
Inline in Rust.
- 2021‑07‑10:
Against SQL.
- 2021‑07‑09:
A survey of approaches to securing BGP and inter-domain routing.
- 2021‑07‑09:
mull: Practical mutation testing for C and C++.
- 2021‑07‑08:
Dumping and extracting the SpaceX Starlink user terminal firmware.
- 2021‑07‑07:
Hacker News folk wisdom on visual programming.
- 2021‑07‑07:
rustviz: interactive visualization of ownership and borrowing.
- 2021‑07‑05:
GitHub Copilot is not infringing your copyright.
- 2021‑07‑04:
Ode to a world-saving idea: attribution error and cognitive empathy.
- 2021‑07‑03:
wasm2ps: compile a small subset of WebAssembly to PostScript. (using wasm2wat)
- 2021‑07‑03:
Phase-in codes.
- 2021‑07‑01:
Hardware memory models.
- 2021‑06‑29:
British flag protocol: flying the union jack.
- 2021‑06‑29:
Reinventing the automobile: the first skateboard platform for electric vehicles.
- 2021‑06‑29:
Temporal: getting started with JavaScript’s new date time API.
- 2021‑06‑28:
How to evaluate Emacs Lisp in regex search and replace.
- 2021‑06‑27:
systemd, 10 years later: a historical and technical retrospective.
- 2021‑06‑27:
Why did we ever think the first programming language didn't matter?
- 2021‑06‑22:
What is CapTP, and what does it enable?
- 2021‑06‑21:
Expanding TeX's \newif.
- 2021‑06‑20:
What do you call a Rust pointer we stole the high bits off? An ointer.
- 2021‑06‑18:
Eliminating data races in Firefox with Thread Sanitizer.
- 2021‑06‑16:
Introducing cap-std, a capability-based version of the Rust standard library.
- 2021‑06‑15:
Celebrating 30 years of Europe’s first root name server.
- 2021‑06‑13:
How to handle secrets on the command line.
- 2021‑06‑11:
Can memcpy be implemented in LLVM IR?
- 2021‑06‑11:
cap: an allocator that can track and limit memory usage in Rust.
- 2021‑06‑11:
Time and date syntax used by systemd.
- 2021‑06‑11:
Don’t feed the thought leaders.
- 2021‑06‑11:
Behavior inheritance in Rust.
- 2021‑06‑07:
Using a SmartCard HSM for DNSSEC with BIND, Knot DNS, and LDNS/NSD.
- 2021‑06‑06:
Ordnance Survey height benchmark locations.
- 2021‑06‑05:
From Julia to Rust.
- 2021‑06‑04:
Anatomy of a Linux DNS lookup.
- 2021‑06‑04:
Firefox Proton UI userChrome.css fixes.
- 2021‑06‑04:
Firefox 89 tab appearance fixes with userchrome.css.
- 2021‑06‑03:
Design issues in LLVM IR.
- 2021‑06‑03:
How malloc broke Serenity's JPGLoader, or: how to win the lottery.
- 2021‑06‑02:
Practical Reed-Solomon for programmers.
- 2021‑05‑31:
PostGIS at 20: the beginning.
- 2021‑05‑28:
A year in the Nakagin tower’s metabolist future of 1972.
- 2021‑05‑27:
An introduction to Jorvik, Ada’s new tasking profile.
- 2021‑05‑27:
Of donkeys, mules, and horses: data structures for network prefixes in Rust.
- 2021‑05‑27:
Reciprocals in Rust: baseline implementations should be predictable.
- 2021‑05‑25:
RefinedC: automating the foundational verification of C code with refined ownership types.
- 2021‑05‑23:
rustc_codegen_gcc can now run libcore’s tests and pass most of them!
- 2021‑05‑20:
Language compilation speed comparison.
- 2021‑05‑14:
Benchmarking division and libdivide on Apple M1 and Intel AVX512.
- 2021‑05‑10:
Better performance for dynamic linking with -fno-semantic-interposition.
- 2021‑05‑08:
The byte order fiasco.
- 2021‑05‑06:
EverParse: Hardening critical attack surfaces with formally proven message parsers.
- 2021‑05‑05:
Linear Clock: Solar.
- 2021‑05‑04:
Fully automated bootstrapping from source.
- 2021‑05‑03:
Dissecting the Apple M1 GPU, part IV.
- 2021‑05‑02:
Hosting SQLite databases on Github Pages (or any static file hoster).
- 2021‑05‑02:
Handling time when programming.
- 2021‑05‑02:
Query engines: push vs. pull.
- 2021‑04‑26:
Plan 9 history in git, from 1992-09-21 to 2015-01-10.
- 2021‑04‑25:
Parsing protobuf at 2+GB/s: how I learned to love tail calls in C.
- 2021‑04‑19:
Dissecting the Apple M1 GPU, part III.
- 2021‑04‑17:
Lars Wirzenius would like to review your README.
- 2021‑04‑16:
Actually, you are rolling your own crypto.
- 2021‑04‑15:
Rust shenanigans: return type polymorphism.
- 2021‑04‑14:
fuzzcheck-rs: Structure-aware, in-process, coverage-guided fuzzing engine for Rust.
- 2021‑04‑09:
Asahi Linux for Apple M1: progress report, January / February 2021.
- 2021‑04‑07:
Protecting PostgreSQL from FreeBSD's OOM killer.
- 2021‑04‑07:
Fast and extensible equality saturation with egg and Rust.
- 2021‑04‑06:
Debugging random slow writes with GIN indexes in PostgreSQL.
- 2021‑04‑06:
Foreign Data Wrappers for migrating from Oracle to PostgreSQL.
- 2021‑04‑06:
Wuffs has the fastest, safest PNG decoder in the world.
- 2021‑04‑06:
Ghosts of OSI: the spectre haunting the Internet.
- 2021‑04‑05:
TextEdit TXT/HTML type sniffing vulnerability on macOS (CVE-2019-8761).
- 2021‑04‑04:
paged.js: beautiful PDFs from HTML.
- 2021‑04‑04:
A history of IRC (Internet Relay Chat).
- 2021‑04‑04:
Why Julia is turning heads in 2021.
- 2021‑04‑01:
Speeding up crash recovery and VACUUM in PostgreSQL 14.
- 2021‑04‑01:
Using Rust to corrode insane Python run-times.
- 2021‑04‑01:
How does Golang know time.Now?
- 2021‑04‑01:
avo: Generate x86 assembly with Golang.
- 2021‑03‑30:
Terrible choices: MySQL.
- 2021‑03‑30:
MySQL: do not pass this way again.
- 2021‑03‑29:
Flicker-free Elite on the BBC Micro (like the BBC Master).
- 2021‑03‑29:
The actual OSI model.
- 2021‑03‑28:
Implicit In-order Forests: Zooming a billion trace events at 60fps.
- 2021‑03‑28:
Developer tools can be magic. Instead, they collect dust.
- 2021‑03‑28:
Pin and suffering in async Rust.
- 2021‑03‑26:
A look back at asynchronous Rust.
- 2021‑03‑26:
Speculating the entire x86-64 instruction set in seconds with this one weird trick.
- 2021‑03‑25:
Counting cycles and instructions on the Apple M1 processor.
- 2021‑03‑23:
Automatic video editing for presentations.
- 2021‑03‑20:
Regexploit: a tool for finding DoS-able regular expressions.
- 2021‑03‑19:
Fontemon: the world’s first video game in a font!
- 2021‑03‑19:
Consistent overhead byte stuffing for binary logs.
- 2021‑03‑19:
MOnSter 6502
- 2021‑03‑18:
How GitHub found and fixed a rare race condition in session handling.
- 2021‑03‑18:
Country centered map projections.
- 2021‑03‑18:
Writing a PostgreSQL formatter / pretty printer in Rust.
- 2021‑03‑18:
Memory saturated MySQL.
- 2021‑03‑17:
frawk: an efficient awk-like programming language.
- 2021‑03‑17:
Why COBOL isn't the problem.
- 2021‑03‑16:
The origins and motivations of univalent foundations: computer proof verification to avoid mathematical mistakes.
- 2021‑03‑16:
Correct register allocation in Cranelift by fuzzing with a symbolic checker.
- 2021‑03‑16:
The prevalence, persistence, and perils of lame delegations.
- 2021‑03‑16:
It’s time to stop using SMS for anything.
- 2021‑03‑15:
Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust.
- 2021‑03‑12:
Measuring frecency (a combination of frequency and recency) with exponential decay.
- 2021‑03‑12:
Faster inverse BWT.
- 2021‑03‑11:
Generalizing over generics aka higher kinded types in Rust.
- 2021‑03‑11:
Safe flexible aliasing with deferred borrows in Rust.
- 2021‑03‑11:
A history of CLU.
- 2021‑03‑11:
inet.af/netaddr.IP: a new IP address type for Golang.
- 2021‑03‑10:
HTML5 genetic algorithm 2D car thingy.
- 2021‑03‑09:
Debian running on Rust coreutils.
- 2021‑03‑08:
yacv (Yet Another Compiler Visualizer): LL and LR parser animations.
- 2021‑03‑07:
Fast file copy with io_uring.
- 2021‑03‑07:
Memory-mapped IO registers in Zig.
- 2021‑03‑07:
Don’t use 7-segment displays.
- 2021‑03‑06:
Cleaning up your PostgreSQL database.
- 2021‑03‑06:
No one is prepared for hagfish slime.
- 2021‑03‑06:
Generating ePub from LaTeX.
- 2021‑03‑06:
Web browser architecture and the history of window systems.
- 2021‑03‑05:
Waiting for PostgreSQL 14: SEARCH and CYCLE clauses.
- 2021‑03‑05:
New Ansible data validation module(s).
- 2021‑03‑05:
Project Champollion: reverse-engineering Rosetta 2.
- 2021‑03‑04:
HTTPWTF?!
- 2021‑03‑04:
Don't blindly prefer `emplace_back` to `push_back` in C++.
- 2021‑03‑04:
Do low-level optimizations matter? Faster quicksort with cmov.
- 2021‑03‑02:
typescript-is: generate run-time type-checks.
- 2021‑03‑02:
Taking this serially.
- 2021‑03‑01:
Eight million pixels and counting: improving texture atlas allocation in Firefox WebRender.
- 2021‑02‑28:
How I cut GTA Online loading times by 70%.
- 2021‑02‑28:
Where everything went wrong: error handling in Rust.
- 2021‑02‑28:
TLD graveyard.
- 2021‑02‑25:
An exploration of JSON interoperability vulnerabilities.
- 2021‑02‑25:
The ternary computing manifesto.
- 2021‑02‑25:
Putting DNSSEC signers to the test: Knot vs Bind.
- 2021‑02‑25:
rpi-open-firmware: Open source VPU side bootloader for Raspberry Pi.
- 2021‑02‑25:
Common Nginx misconfigurations that leave your web server open to attack.
- 2021‑02‑24:
Fuzzy string matching in PostgreSQL.
- 2021‑02‑24:
Git as a tamperproof file archive using chained RFC3161 timestamps.
- 2021‑02‑23:
SEN and oj: pretty JSON.
- 2021‑02‑23:
mold: a modern linker, faster than cat.
- 2021‑02‑22:
Stop your (business rules) engines!
- 2021‑02‑20:
The modern packager’s security nightmare.
- 2021‑02‑19:
Cleaner parallel curves with Euler spirals.
- 2021‑02‑19:
Reliability, constant work, and a good cup of coffee.
- 2021‑02‑18:
Route 53 DNS: Amazon’s premier AWS database.
- 2021‑02‑18:
Power-of-2-choices in practice.
- 2021‑02‑14:
Holotypic Occlupanid Research Group.
- 2021‑02‑13:
SVG: the good, the bad, and the ugly.
- 2021‑02‑12:
Uncovering a 24-year-old bug in Linux TCP.
- 2021‑02‑12:
Islands architecture for web pages.
- 2021‑02‑11:
A reverse-engineered description of Adobe Type 1 fonts. (1989)
- 2021‑02‑11:
50 years of text games - 1976: Adventure.
- 2021‑02‑10:
ANSI X3.64-1979: Additional control characters for use with ASCII.
- 2021‑02‑10:
FreeBee: an AT&T 3B1 emulator.
- 2021‑02‑10:
Let's Encrypt prepared to issue 200 million certificates in 24 hours.
- 2021‑02‑10:
Dependency confusion: a novel supply chain attack against Apple, Microsoft, and dozens of other companies.
- 2021‑02‑10:
Configuring PostgreSQL to avoid the Linux OOM killer.
- 2021‑02‑09:
A practical look at 2G GSM security after three decades.
- 2021‑02‑09:
Turning an old Amazon Kindle into a eink development platform.
- 2021‑02‑09:
Configuring Emacs for Rust development.
- 2021‑02‑08:
The real novelty of the ARPANET.
- 2021‑02‑06:
We have known the earth is round for about 2500 years.
- 2021‑02‑05:
How to read and write Scheme code.
- 2021‑02‑05:
8 bits are enough for a version number...?
- 2021‑02‑05:
In the future, even your RAM will have firmware; and the subject of POWER10 blobs.
- 2021‑02‑04:
The Dunning-Kruger effect probably is real.
- 2021‑02‑04:
You don't really need a virtualenv: try PDM instead?
- 2021‑02‑03:
Bluetooth trackball Mark II.
- 2021‑02‑02:
10 bad TypeScript habits to break this year.
- 2021‑02‑02:
Polymorphisation: Improving Rust compilation times through intelligent monomorphisation.
- 2021‑02‑02:
Recovering a bricked SSD with JTAG and a Raspberry Pi.
- 2021‑02‑01:
An HAProxy back-end server port change gotcha.
- 2021‑02‑01:
PostgreSQL partial indexes: the unexpected find that freed 20GB of unused space.
- 2021‑02‑01:
Gadgetbahn: Is Cambridgeshire's new metro all it's cracked up to be?
- 2021‑02‑01:
67 years of Lego sets.
- 2021‑01‑31:
A look at iMessage in iOS 14.
- 2021‑01‑31:
Bringing stack clash protection to Clang / x86 with help from Firefox and Rust.
- 2021‑01‑31:
Manless climbing: Dorothy Pilley Richards 1894-1986.
- 2021‑01‑31:
CrayZee Eighty: a Z80 RC2014 backplane shaped like a Cray 1.
- 2021‑01‑31:
Testing Proebsting's law: How does clang 2.7 hold up in 2021?
- 2021‑01‑31:
Deluge and disaster: the politics of flooding risk.
- 2021‑01‑30:
Log-structured merge for solid-state drives.
- 2021‑01‑30:
Are the Persian Gulf city-states slave societies?
- 2021‑01‑29:
Achieving 11M IOPS and 66 GB/s IO on a single AMD ThreadRipper workstation.
- 2021‑01‑29:
Discussing the future of RPKI.
- 2021‑01‑29:
How we made Typerighter, the Guardian's style guide checker.
- 2021‑01‑29:
Uniwidth typefaces for interface design.
- 2021‑01‑28:
Automatic flamegraphs for benchmarks in Rust.
- 2021‑01‑28:
Performance improvement on front-end generated by rustdoc.
- 2021‑01‑27:
What's the deal with Chromium on Linux? Google at odds with package maintainers.
- 2021‑01‑27:
What color was "Apple Beige"?
- 2021‑01‑27:
12 requests per second in Python.
- 2021‑01‑26:
Badger Seal mask fitter.
- 2021‑01‑26:
Netflix and Spotify on a Raspberry Pi 4 with Chromium and Widevine.
- 2021‑01‑26:
Strengths, weaknesses, opportunities, and threats facing the GNU Autotools.
- 2021‑01‑26:
Postgres scaling advice for 2021.
- 2021‑01‑26:
Window System Design: If James Gosling had it to do over again in 2002.
- 2021‑01‑26:
System separation in the Continental Europe Synchronous Area on 8 January 2021.
- 2021‑01‑26:
Firefox 85 cracks down on supercookies.
- 2021‑01‑26:
LAMBDA: The ultimate Microsoft Excel worksheet function.
- 2021‑01‑25:
The night two atomic bombs fell on North Carolina.
- 2021‑01‑25:
Zig makes Golang (cgo) cross compilation Just Work.
- 2021‑01‑25:
The PGM-index: a learned piecewise geometric model for small lookup indexes.
- 2021‑01‑24:
DrScheme in space.
- 2021‑01‑24:
Racket compiler and runtime status, January 2021.
- 2021‑01‑24:
An incomplete list of mistakes in the design of CSS.
- 2021‑01‑24:
Tim Hayward and COVID: 10 days on life support.
- 2021‑01‑24:
Libvirt: adoption of GLib library to replace GNULIB and home grown code.
- 2021‑01‑24:
Dissecting the Apple M1 GPU, part II.
- 2021‑01‑24:
Use mmap() with care.
- 2021‑01‑22:
Rust in production in 1Password.
- 2021‑01‑22:
On the complexity of JSON serialization.
- 2021‑01‑22:
What engineers can teach (and learn from) programmers.
- 2021‑01‑21:
XTerm does graphics in Tektronix mode.
- 2021‑01‑21:
The new database servers powering Let's Encrypt.
- 2021‑01‑21:
How Corellium ported Linux to the Apple M1.
- 2021‑01‑21:
Container networking is simple.
- 2021‑01‑21:
picodvi: Bitbanged DVI on the RP2040 microcontroller.
- 2021‑01‑21:
Datalegreya: interweave text and data.
- 2021‑01‑21:
Parsing ASN.1: A troublesome problem?
- 2021‑01‑20:
The year a "railway" ran inside Westminster Abbey.
- 2021‑01‑20:
Software engineering is not special.
- 2021‑01‑20:
Porting Firefox to Apple Silicon.
- 2021‑01‑20:
Java on Truffle: going fully metacircular.
- 2021‑01‑20:
An interactive review of the Oklab colour space.
- 2021‑01‑19:
Cache poisoning vulnerabilities affect popular DNSmasq software.
- 2021‑01‑19:
A high-speed computer vision pipeline for the universal LEGO sorting machine.
- 2021‑01‑19:
Unicode superscript numeral rendering bugs.
- 2021‑01‑19:
Down Underground: London Underground depth diagrams.
- 2021‑01‑18:
Are programmers really engineers?
- 2021‑01‑18:
BBC Micro Bot user guide.
- 2021‑01‑16:
The problem with Gradle.
- 2021‑01‑16:
Reverse engineering Prodigy.
- 2021‑01‑15:
Fast commits for ext4.
- 2021‑01‑15:
This was WhatsApp's plan all along.
- 2021‑01‑15:
donut.c without a math library.
- 2021‑01‑15:
Simplifying endian-specific file parsers in Rust with Omnom and type inference.
- 2021‑01‑15:
Maybe you don't need Rust and WASM to speed up your JavaScript.
- 2021‑01‑14:
A week with Plan 9.
- 2021‑01‑14:
The most thoroughly commented linker script (probably).
- 2021‑01‑13:
Use an iPhone as a webcam.
- 2021‑01‑13:
OBS Studio: free and open source software for video recording and live streaming.
- 2021‑01‑13:
Cross-language interfaces between C and C++.
- 2021‑01‑12:
The ABCD family tree.
- 2021‑01‑12:
Who invented the alphabet?
- 2021‑01‑12:
Futhark design decisions I do not regret.
- 2021‑01‑12:
Developing new metrics for tracking DNS root server traffic.
- 2021‑01‑12:
SUNSPOT: an implant in the SolarWinds Orion build process.
- 2021‑01‑11:
XTerm: it's better than you thought.
- 2021‑01‑11:
The Earth has been spinning faster lately.
- 2021‑01‑10:
The design of the Roland Juno synth oscillators.
- 2021‑01‑10:
Surprising ctags behaviour.
- 2021‑01‑10:
The truth about cast iron pans.
- 2021‑01‑09:
Radamsa: a general-purpose black-box fuzzer.
- 2021‑01‑09:
kAFL: hardware-assisted feedback fuzzing for OS kernels.
- 2021‑01‑09:
Redqueen: fuzzing with input-to-state correspondence.
- 2021‑01‑09:
Grimoire: synthesizing structure while fuzzing.
- 2021‑01‑09:
Earth is turning faster than it has in a half-century, which could mean a negative leap second.
- 2021‑01‑09:
Ray tracing in pure CMake.
- 2021‑01‑08:
nonymous + bore: DNS toys for Rust.
- 2021‑01‑08:
Exploring RustFFT's SIMD architecture.
- 2021‑01‑08:
Dark side of POSIX APIs: handling siginfo_t in Rust.
- 2021‑01‑08:
Generic associated types encode higher-order functions on types in Rust.
- 2021‑01‑08:
Rust's SemVer snares: sizedness and size.
- 2021‑01‑08:
An introduction to property-based testing in Rust with quickcheck.
- 2021‑01‑08:
A guide to rendering metaballs (aka blobs).
- 2021‑01‑08:
Smooth voxel terrain: isosurface extraction with marching cubes and surface nets.
- 2021‑01‑08:
Metaballs and marching squares.
- 2021‑01‑08:
Doing symbolic math with SymPy.
- 2021‑01‑08:
Greybox automatic exploit generation for heap overflows in language interpreters.
- 2021‑01‑08:
Quorum availability.
- 2021‑01‑07:
Google Chrome reduces its root DNS traffic.
- 2021‑01‑07:
Dissecting the Apple M1 GPU.
- 2021‑01‑07:
Italian court rules that Deliveroo used a discriminatory algorithm.
- 2021‑01‑07:
Xbox 20 year anniversary: an oral history.
- 2021‑01‑06:
Simulating the PIN cracking scene in Terminator 2.
- 2021‑01‑06:
An uncommon cold.
- 2021‑01‑05:
Cryptographic key length recommendations.
- 2021‑01‑05:
Tutorial on precompilation for Julia.
- 2021‑01‑04:
Ditherpunk: the article I wish I had about monochrome image dithering.
- 2021‑01‑04:
Dream Minecraft speedrun investigation results.
- 2021‑01‑04:
FuzixOS: a Unix-like system for 8-bit micros.
- 2021‑01‑03:
kgames: reviving very old X code.
- 2021‑01‑03:
Rust design patterns.
- 2021‑01‑03:
Zig in 30 minutes.
- 2021‑01‑03:
A new release for GNU Octave.
- 2021‑01‑03:
Medley Interlisp Common Lisp.
- 2021‑01‑03:
On repl-driven programming.
- 2021‑01‑03:
cargo-supply-chain: Gather author, contributor and publisher data on crates in your dependency graph.
- 2021‑01‑02:
Game of Life on Penrose tiles.
- 2021‑01‑01:
The hyperbezier pen tool
- 2021‑01‑01:
Floating Point Leviathan: a game based on floating point precision errors.
- 2021‑01‑01:
Seamless file descriptor transfer between Linux processes with pidfd and pidfd_getfd.
- 2021‑01‑01:
Counting the days: the origin of Julian day numbers.
- 2021‑01‑01:
Multiscale Turing patterns in WebGL.
- 2021‑01‑01:
How I improve my C code quality.
- 2021‑01‑01:
Tectonic: a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
- 2021‑01‑01:
A look at Rust tokio 1.0 API changes.