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 latest
-
2020‑12‑31:
Unsafe string interning in Golang for scoped IPv6 addresses.
-
2020‑12‑30:
The quirks of City of London livery company coats of arms.
-
2020‑12‑30:
Getting started in BBC BASIC with Owlet.
-
2020‑12‑30:
In Python 2, node.example.com is an IPv6 address.
-
2020‑12‑29:
Five intersecting tetrahedra in origami.
-
2020‑12‑29:
Why are video games graphics (still) a challenge? Productionizing rendering algorithms.
-
2020‑12‑29:
Flow Browser preview on the Raspberry Pi 400.
-
2020‑12‑28:
Buttplug: a haptics abstraction library in Rust for controlling vibrators and other intimate hardware.
-
2020‑12‑28:
Cosmopolitan C library: build-once run-anywhere.
-
2020‑12‑28:
A review of the Lean theorem prover.
-
2020‑12‑28:
Rust in a KDE project.
-
2020‑12‑27:
Systems design explains the world.
-
2020‑12‑27:
Oklab: A perceptual color space for image processing.
-
2020‑12‑26:
A complete guide to LLVM for programming language creators.
-
2020‑12‑25:
'static trait bounds in Rust.
-
2020‑12‑23:
Interactive C++ for data science with LLVM cling.
-
2020‑12‑23:
How to favicon in 2021: six files that fit most needs.
-
2020‑12‑23:
Flix: a functional / logic programming language for the JVM.
-
2020‑12‑23:
KLEE: finding software bugs using symbolic execution.
-
2020‑12‑23:
Build a tiny certificate authority for your homelab.
-
2020‑12‑23:
An LSP client maintainer's view of the language server protocol.
-
2020‑12‑23:
Don't think, just defunctionalize.
-
2020‑12‑21:
Raft does not guarantee liveness in the face of network faults.
-
2020‑12‑20:
Swirled Series: the result.
-
2020‑12‑19:
The Psion Organiser II: laying the groundwork of our smartphone world.
-
2020‑12‑19:
The algorithmic beauty of plants.
-
2020‑12‑19:
Perceus: garbage free reference counting with reuse.
-
2020‑12‑18:
Understanding systemd-resolved, split DNS, and VPN configuration.
-
2020‑12‑17:
Git commits are snapshots, not diffs.
-
2020‑12‑17:
The git parable.
-
2020‑12‑17:
Moving a large TypeScript codebase to use strict null checks.
-
2020‑12‑17:
Notes on cross-compiling Rust on a Mac for a Raspberry Pi.
-
2020‑12‑17:
Adding BPF target support to the Rust compiler.
-
2020‑12‑17:
Rust on the BBC micro:bit.
-
2020‑12‑17:
rpitx: radio transmission from a Raspberry Pi GPIO pin.
-
2020‑12‑17:
Why CockroachDB chose to be compatible with PostgreSQL.
-
2020‑12‑17:
FFI-safe polymorphism with thin trait objects in Rust.
-
2020‑12‑16:
Niue has launched a major effort to win back control of .nu
-
2020‑12‑16:
What I wish someone had told me about tensor computation libraries.
-
2020‑12‑16:
To the brain, reading computer code is not the same as reading language.
-
2020‑12‑15:
Rockstar: a language for creating programs that are also hair metal power ballads.
-
2020‑12‑14:
The case of the extra 40ms. (Not TCP delayed ACKs!)
-
2020‑12‑14:
The cleverest BBC Micro floppy disc protection ever? Western Security Ltd.
-
2020‑12‑14:
Pointer provenance is complicated: we need better language specs.
-
2020‑12‑14:
XML round-trip vulnerabilities in the Golang standard library affecting SAML.
-
2020‑12‑14:
A Golang-style defer mechanism for C.
-
2020‑12‑14:
K: a rewrite-based executable semantic framework for programming languages.
-
2020‑12‑13:
if-then-else had to be invented.
-
2020‑12‑13:
The HP-35.
-
2020‑12‑12:
More batteries included with emacs.
-
2020‑12‑12:
Amazon owns more than $2B worth of IPV4 addresses.
-
2020‑12‑11:
Monads and generic associated types in nightly Rust.
-
2020‑12‑10:
An explanation of cameras and lenses with interactive 3D graphics.
-
2020‑12‑09:
"A damn stupid thing to do": CPL and the origins of C.
-
2020‑12‑09:
Architecting the future: Arm, CHERI, and Morello.
-
2020‑12‑08:
Where did combinators come from? Hunting the story of Moses Schönfinkel.
-
2020‑12‑08:
Connecting an ASR33 Teletype to an ESP32.
-
2020‑12‑08:
The Galileo eccentric satellite surprise.
-
2020‑12‑06:
Interval tree clocks.
-
2020‑12‑06:
Exotic Programming Ideas: Datalog and Souffle.
-
2020‑12‑06:
std::visit is everything wrong with modern C++
-
2020‑12‑06:
The future of 32-bit Linux.
-
2020‑12‑05:
Auto for types, but not for concepts in C++.
-
2020‑12‑05:
A Microsoft custom floating point type for efficient inference.
-
2020‑12‑04:
A tale of Template Haskell and cross compilation.
-
2020‑12‑04:
Browser cache partitioning means it is time to say goodbye to Google Fonts.
-
2020‑12‑03:
Painful lessons from the Web PKI, and how you can avoid them.
-
2020‑12‑03:
Using Bloom filters to efficiently synchronise git repos and other hash graphs.
-
2020‑12‑03:
Generic traits and associated types in Rust.
-
2020‑12‑03:
Futures explained in 200 lines of Rust.
-
2020‑12‑03:
Obsolete trigonometry functions and why we don't use them anymore.
-
2020‑12‑02:
Hey Alexa what did I just type?
-
2020‑12‑02:
Faster asynchronous WAL archiving with pgBackRest to avoid PostgreSQL WAL backlog.
-
2020‑12‑02:
PostgreSQL PostGIS trajectories through space and time.
-
2020‑12‑02:
TenDRA: an architecture-neutral compiler framework with C and C++ front ends.
-
2020‑12‑02:
libFirm: an optimizing compiler back-end.
-
2020‑12‑02:
Cutting up a capsized cargo ship for salvage.
-
2020‑12‑02:
The rendering equation.
-
2020‑12‑01:
Naming the Net: the Domain Name System, 1983-1990.
-
2020‑12‑01:
Design of the Mozilla Firefox CRLite infrastructure.
-
2020‑12‑01:
Evolution of tree data structures for indexing: more exciting than it sounds.
-
2020‑12‑01:
The road to the Erlang JIT.
-
2020‑12‑01:
Computer graphics from scratch.
-
2020‑12‑01:
I am an 80 column purist.
-
2020‑12‑01:
How many registers does an x86-64 CPU have?
-
2020‑12‑01:
ARM and lock-free programming.
-
2020‑11‑30:
biVector.net: geometric algebra for computer graphics, vision, and engineering.
-
2020‑11‑30:
Geometric algebra for computer graphics.
-
2020‑11‑30:
Imaginary numbers are not real: the geometric algebra of spacetime.
-
2020‑11‑30:
ganja.js: geometric algebra for Javascript.
-
2020‑11‑29:
Summary of the Amazon Kinesis outage in the AWS us-east-1 region.
-
2020‑11‑28:
Raytracing in one weekend.
-
2020‑11‑28:
SCION EPIC: a path-aware clean-slate internet architecture.
-
2020‑11‑28:
L4S: low latency, low loss, scalable throughput Internet service architecture.
-
2020‑11‑28:
Network topology design at 17,000 km/h: LEO satellite Internet.
-
2020‑11‑28:
MP-DCCP multipath tunneling and congestion control in congestion control.
-
2020‑11‑28:
On congestion control (un)fairness and active queue management (AQM).
-
2020‑11‑28:
k6: a web load testing tool, written in Golang and configured in JavaScript.
-
2020‑11‑28:
The great Internet TCP congestion control census.
-
2020‑11‑27:
Existential Haskell.
-
2020‑11‑27:
1.5 is the midpoint between 0 and infinity in Ruby.
-
2020‑11‑27:
Rebuilding the Racket compiler with Chez Scheme.
-
2020‑11‑27:
The most unusual murder weapons in crime fiction.
-
2020‑11‑27:
An introduction to geometric algebra.
-
2020‑11‑27:
Clifford Algebra: A visual introduction.
-
2020‑11‑26:
An introduction to quaternions.
-
2020‑11‑26:
How io_uring and eBPF will revolutionize programming in Linux.
-
2020‑11‑26:
CBOR for embedded C with a Rust server.
-
2020‑11‑26:
Testing a Rust crate's C API.
-
2020‑11‑26:
Strengthening memory safety in Rust: exploring CHERI capabilities for a safe language.
-
2020‑11‑26:
An ex-Googler's guide to dev tools.
-
2020‑11‑26:
WordPress and PHP 8 compatibility report.
-
2020‑11‑26:
Modern storage is plenty fast. It is the APIs that are bad.
-
2020‑11‑26:
Reasoning about colours.
-
2020‑11‑26:
A list of magic numbers encountered while debugging.
-
2020‑11‑26:
Electromagnetism using geometric algebra versus components.
-
2020‑11‑26:
Versor: a generic C++ library for geometric algebras.
-
2020‑11‑26:
Origin of the trefoil radiation warning sign.
-
2020‑11‑25:
An intro to bivectors and rotors: Let's remove quaternions from every 3D engine.
-
2020‑11‑25:
An API is a user interface.
-
2020‑11‑25:
Mlang: a modern compiler for the French tax code.
-
2020‑11‑25:
Protect domains that don't send email.
-
2020‑11‑25:
How do people find bugs?
-
2020‑11‑25:
Preserving Flash: why emulation is better than migration.
-
2020‑11‑25:
Making PostgreSQL stored procedures 9X faster in Citus.
-
2020‑11‑25:
PAM bypass: when nullok is not OK.
-
2020‑11‑24:
TypeScript performance.
-
2020‑11‑24:
More subtle TCP performance problems due to Nagle's algorithm and delayed ACKs.
-
2020‑11‑24:
What went wrong with libdispatch: a cautionary tale for async concurrency.
-
2020‑11‑23:
Building your color palette.
-
2020‑11‑23:
The origin of the MIT License.
-
2020‑11‑22:
What if the world is made of cubes? Uncovering the universal geometry of geology.
-
2020‑11‑22:
Even faster bash startup.
-
2020‑11‑22:
Booting from a vinyl record.
-
2020‑11‑20:
Swirled series.
-
2020‑11‑20:
It is high time we let go of the Mersenne Twister.
-
2020‑11‑20:
How to abuse and fix authenticated encryption without key commitment.
-
2020‑11‑20:
UNIX NEWS and ;login: archives from the 1970s.
-
2020‑11‑19:
Microsoft FrontPage: the good, the bad, the ugly.
-
2020‑11‑19:
Flash animations live forever at the Internet Archive.
-
2020‑11‑19:
The C standard library is not dependency free (but part of Rust's is).
-
2020‑11‑19:
The usability of ownership in Rust.
-
2020‑11‑19:
LambdaDelta: an emulator of the LMI Lambda Lisp Machine.
-
2020‑11‑19:
Archive of LISP Machine, Inc.
-
2020‑11‑19:
Wiby: a search engine for the classic web.
-
2020‑11‑19:
Forensic Architecture investigation of the Beirut port explosion.
-
2020‑11‑19:
On-demand linked libraries for Nix.
-
2020‑11‑19:
Power-cycling a USB port should be simple, right?
-
2020‑11‑19:
I should have loved biology.
-
2020‑11‑18:
Microsoft Pluton: a security chip designed for the future of Windows PCs.
-
2020‑11‑18:
Automatic syntax error recovery in lrpar.
-
2020‑11‑17:
Skija graphics for JVM.
-
2020‑11‑17:
CXX.rs: safe interop between Rust and C++.
-
2020‑11‑17:
The Rust performance book.
-
2020‑11‑17:
2020 Mac Mini: putting Apple Silicon M1 to the test.
-
2020‑11‑17:
Servo moves from Mozilla to the Linux Foundation.
-
2020‑11‑17:
Sponge4: a sponge-like hash function for seeding PRNGs.
-
2020‑11‑17:
From Russia With Love: moving a time series data service from Citus to ClickHouse.
-
2020‑11‑16:
Reverse engineering a forgotten 1970s Intel dual core beast: 8271, a new ISA.
-
2020‑11‑16:
PostgreSQL psql command line tutorial and cheat sheet.
-
2020‑11‑16:
pgcli: a command line interface for PostgreSQL with auto-completion and syntax highlighting.
-
2020‑11‑16:
Build systems à la carte: theory and practice (revised and expanded).
-
2020‑11‑16:
How I failed to make LinkedIn fix their broken international domain URL parser.
-
2020‑11‑16:
How do you write simple explanations without sounding condescending?
-
2020‑11‑15:
MLS: message layer security for better encrypted group chat.
-
2020‑11‑15:
Charles proxy for web scraping.
-
2020‑11‑14:
The making of a masterpiece: Bohemian Rhapsody. (YouTube)
-
2020‑11‑14:
Python, the Full Monty: a tested semantics for the Python programming language.
-
2020‑11‑14:
On the expressive power of programming languages.
-
2020‑11‑14:
We need less powerful languages.
-
2020‑11‑14:
Warp: Improved JS performance in Firefox 83.
-
2020‑11‑14:
When 13.3 > 14.
-
2020‑11‑13:
udp2raw-tunnel: UDP over encrypted fake TCP to bypass firewalls.
-
2020‑11‑13:
Why TCP over TCP is a bad idea.
-
2020‑11‑12:
Build your own gpg in Rust.
-
2020‑11‑12:
Replication conflicts in PostgreSQL and how to deal with them.
-
2020‑11‑12:
PostgreSQL observability: a diagram of views and functions for inspecting your database.
-
2020‑11‑12:
Full-text search performance since PostgreSQL 8.3.
-
2020‑11‑12:
40ms bug: a missing writev, Nagle's algorithm, and delayed ACKs.
-
2020‑11‑12:
AndroWish: run Tcl/Tk programs on Android.
-
2020‑11‑12:
Propeller: a framework for post-link optimizations.
-
2020‑11‑12:
BOLT: a post-link binary layout optimizer for speeding up large applications.
-
2020‑11‑12:
Exploring PGO for the Rust compiler.
-
2020‑11‑11:
Miniselect: practical and generic (sorted) selection algorithms.
-
2020‑11‑11:
Undoing, fixing, or removing commits in git: choose your own adventure.
-
2020‑11‑11:
What mother never told you about IBM VM service.
-
2020‑11‑10:
Fast Flexible Paxos.
-
2020‑11‑09:
Hegel: an advanced static type checker for JavaScript.
-
2020‑11‑09:
Turing incomplete languages.
-
2020‑11‑09:
Lox: a word that hasn't changed sound or meaning in 8,000 years.
-
2020‑11‑09:
dnstap-receiver: a dnstap streams receiver in Python.
-
2020‑11‑09:
Structured concurrency in C++.
-
2020‑11‑09:
dog: a command-line DNS client.
-
2020‑11‑09:
Towards Pijul 1.0.
-
2020‑11‑09:
Parsing the infamous Japanese postal CSV.
-
2020‑11‑08:
LLVM clang 12 support for amd64 micro-architecture levels.
-
2020‑11‑08:
New amd64 micro-architecture levels.
-
2020‑11‑07:
Go in production: what I learned 1 month later.
-
2020‑11‑07:
vt52-fpga
-
2020‑11‑07:
Kristian's interactive 3D printed Stargate with wormhole effect.
-
2020‑11‑06:
Standing on our own two feet: Let's Encrypt trust anchor rollover.
-
2020‑11‑06:
Exception safety in Rust: using transient droppers to prevent memory leaks.
-
2020‑11‑06:
AMD Zen 3 Ryzen deep dive review.
-
2020‑11‑06:
The elements of style: Unix as literature.
-
2020‑11‑05:
Draft design for generic type parameters in Golang.
-
2020‑11‑05:
Linear scan register allocation.
-
2020‑11‑05:
A first look at the Erlang JIT.
-
2020‑11‑05:
UK's £55M MAST Upgrade fusion experiment (Mega Amp Spherical Tokamak) has achieved first plasma.
-
2020‑11‑05:
Notes on Paxos.
-
2020‑11‑04:
BPF binaries: BTF, CO-RE, and the future of BPF perf tools.
-
2020‑11‑03:
Eight months of NixOS.
-
2020‑11‑03:
Hardware performance counter support (via rdpmc) in Rust.
-
2020‑11‑03:
How we made our SaaS homepage cookie-free.
-
2020‑11‑03:
Rust design-for-testability: a survey.
-
2020‑11‑02:
Two workers are quadratically better than one: modelling a queue with PRISM.
-
2020‑11‑02:
Extreme bioinformatics debugging.
-
2020‑11‑02:
Hyper-regional chippy traditions of Britain and Ireland.
-
2020‑11‑02:
Mac OS boot volume layout.
-
2020‑11‑01:
Flutter Web: a fractal of bad design.
-
2020‑11‑01:
NAT Slipstreaming: firewall bypass using SIP ALG.
-
2020‑11‑01:
Using TLA+ to understand a real-world glibc bug.
-
2020‑11‑01:
WordTsar: a Wordstar clone.
-
2020‑11‑01:
WordPerfect for DOS on modern computers.
-
2020‑10‑31:
Dijkstra: the man who carried computer science on his shoulders.
-
2020‑10‑30:
3 Gbps ethernet on the Raspberry Pi compute module.
-
2020‑10‑30:
It's called Medium because it's neither rare nor well done.
-
2020‑10‑30:
A12: advancing network transparency on the desktop.
-
2020‑10‑30:
XPath injection issues are severely underrated.
-
2020‑10‑30:
A tale of a build system bug. (ninja/gcc/Windows)
-
2020‑10‑30:
Experience in production with Flask, Bottle, Tornado, and Twisted.
-
2020‑10‑30:
For complex applications (IDEs) Rust is as productive as Kotlin.
-
2020‑10‑30:
Using a 3D printer "defect" to create a new quasi-textile.
-
2020‑10‑30:
I hate GIS coordinate systems!
-
2020‑10‑30:
Errol: binary floating-point to decimal string conversion algorithm.
-
2020‑10‑30:
Errol: an always correct method for printing floating-point numbers.
-
2020‑10‑29:
SRI and Cambridge University release CHERI software stack for Arm Morello.
-
2020‑10‑29:
The remarkable number 1/89 and the Fibonacci series.
-
2020‑10‑29:
Scaling attacks to hide/spoof one image in another.
-
2020‑10‑28:
Optimizing a join using LIKE by using PostgreSQL FTS instead.
-
2020‑10‑28:
EDSAC 1951 (YouTube)
-
2020‑10‑28:
The reverse tabnabbing vulnerability in HTML.
-
2020‑10‑28:
Verona: a research programming language for concurrent ownership.
-
2020‑10‑27:
Better performance with Envoy HTTP connection pooling for PHP applications at Wikipedia.
-
2020‑10‑27:
plocate: a much faster locate.
-
2020‑10‑27:
samurai: a ninja-compatible build tool written in C.
-
2020‑10‑27:
Why was Rachel Whiteread's House demolished?
-
2020‑10‑27:
OpenMPTCProuter uses multipath TCP (MPTCP) to aggregate multiple Internet connections with OpenWrt.
-
2020‑10‑27:
Covenants, easements, and wayleaves: the hidden urban interfaces of the London Underground.
-
2020‑10‑27:
Improving PostgreSQL connection scalability with faster snapshots.
-
2020‑10‑26:
Standard ML in 2020.
-
2020‑10‑25:
PARI/GP: a computer algebra system for fast computations in number theory.
-
2020‑10‑25:
GAP: a system for computational discrete algebra.
-
2020‑10‑24:
Efficient text editing on a PDP-10.
-
2020‑10‑24:
Four dangerous animals of product development.
-
2020‑10‑24:
Static single assignment for functional programmers.
-
2020‑10‑24:
A new map of the standard model of particle physics.
-
2020‑10‑24:
Rejuvenating autoconf.
-
2020‑10‑24:
Ungrammar: a DSL for rust-analyzer's concrete syntax tree.
-
2020‑10‑24:
Understanding static single assignment (SSA) form.
-
2020‑10‑24:
Compiling with continuations, or without? Whatever.
-
2020‑10‑24:
Compiling without continuations.
-
2020‑10‑23:
Deprecating SHA-1 in OpenPGP.
-
2020‑10‑23:
Avoiding overload in AWS distributed systems by putting the smaller service in control.
-
2020‑10‑23:
RPKI secure BGP routing Q&A.
-
2020‑10‑23:
cson: CoffeeScript object notation.
-
2020‑10‑23:
jacl: just another configuration language.
-
2020‑10‑23:
Better than JSON?
-
2020‑10‑23:
StrictYAML.
-
2020‑10‑23:
How Apple is organized for innovation.
-
2020‑10‑23:
Journeying into XDP implementing DNS RRL.
-
2020‑10‑23:
Debugging async generator errors in Rust.
-
2020‑10‑23:
Private methods on a public trait in Rust.
-
2020‑10‑23:
Inside Rust std::io::Error.
-
2020‑10‑22:
Proving that 1 + 1 = 10 in Rust.
-
2020‑10‑22:
A pitfall of Rust's move/copy/drop semantics and zeroing data.
-
2020‑10‑22:
The story behind Markdown.
-
2020‑10‑22:
Non-generic inner functions in Rust.
-
2020‑10‑22:
Nickel: better configuration for less, inspired by Nix.
-
2020‑10‑22:
Let's build a high-performance fuzzer with GPUs!
-
2020‑10‑22:
What's new in OAuth 2.1?
-
2020‑10‑22:
AWS NLBs and mixed up TCP connections.
-
2020‑10‑22:
TPC-H performance since PostgreSQL 8.3.
-
2020‑10‑22:
PEG: ambiguity, precision, and confusion.
-
2020‑10‑21:
The TRIPS project: an explicit data graph execution (EDGE) processor.
-
2020‑10‑21:
Roofline model of computer performance for HPC applications.
-
2020‑10‑21:
The asymptotic cost of address translation on memory access time.
-
2020‑10‑21:
The myth of RAM.
-
2020‑10‑21:
Lezer: a parser system in JavaScript.
-
2020‑10‑21:
A list of attempts to make Python faster.
-
2020‑10‑20:
AWS and their billions of dollars of IPv4 addresses.
-
2020‑10‑20:
Why mmap is faster than system calls.
-
2020‑10‑20:
Validating UTF-8 in less than one instruction per byte.
-
2020‑10‑20:
The surprising impact of medium-size texts on PostgreSQL performance.
-
2020‑10‑20:
Lambda the penultimate / lambda to SKI, semantically.
-
2020‑10‑20:
Binary lambda calculus.
-
2020‑10‑20:
Assorted thoughts on Zig and Rust.
-
2020‑10‑20:
Building a computer in Conway's Game of Life.
-
2020‑10‑19:
Euler's formula: a complex guide.
-
2020‑10‑19:
The Arm64 memory tagging extension in Linux.
-
2020‑10‑19:
BlockQuicksort: avoiding branch mispredictions in Quicksort.
-
2020‑10‑19:
ips4o: in-place parallel superscalar samplesort.
-
2020‑10‑19:
The case for a learned sorting algorithm.
-
2020‑10‑19:
MONOSPACE: a JavaScript demo in 1021 bytes.
-
2020‑10‑18:
Free yourself from the Spotify desktop client with spotifyd.
-
2020‑10‑17:
Keeping secrets: Diffie-Hellman and the NSA.
-
2020‑10‑17:
What they don't tell you about demand paging in school.
-
2020‑10‑17:
Building a 10BASE5 "Thick Ethernet" network.
-
2020‑10‑17:
Cryptographic signing using ssh-keygen(1) with a FIDO authenticator.
-
2020‑10‑17:
MyST: a markdown flavor and parser for Sphinx.
-
2020‑10‑16:
So you want to build an embedded Linux system?
-
2020‑10‑16:
The unreasonable effectiveness of quasirandom sequences.
-
2020‑10‑15:
The fascinating influence of the Cyclone programming language.
-
2020‑10‑15:
Optional parameters in Rust.
-
2020‑10‑15:
Building the fastest RaptorQ (RFC6330) FEC codec in Rust.
-
2020‑10‑15:
Improving security in s2n, Amazon's TLS implementation.
-
2020‑10‑15:
Unifying the technical interview.
-
2020‑10‑14:
Room-temperature superconductivity achieved for the first time (at high pressure between diamond anvils).
-
2020‑10‑14:
libsixel: DEC terminal graphics.
-
2020‑10‑14:
Improving Bluetooth audio quality on Linux.
-
2020‑10‑13:
Applying union-find for real life performance wins.
-
2020‑10‑12:
Building the mathematical library of the future with Lean.
-
2020‑10‑12:
Overloading by return type in C++.
-
2020‑10‑11:
GPU-accelerated ODE solving in R with Julia.
-
2020‑10‑11:
Why we need a C-compatible Rust crate for bitfields.
-
2020‑10‑10:
Asterisk.
-
2020‑10‑10:
Crux: exhaustive symbolic testing for C, C++, and Rust.
-
2020‑10‑10:
Alphora-style database diagramming.
-
2020‑10‑10:
Progress report on Rust Cranelift backend.
-
2020‑10‑10:
xchg rax, rax; x64 Assembly for the advanced.
-
2020‑10‑10:
CSV parser benchmark game.
-
2020‑10‑10:
Loading a CSV file at the speed limit of NVMe storage.
-
2020‑10‑08:
The Eisel-Lemire string to double precision floating point conversion algorithm.
-
2020‑10‑08:
OLTP performance since PostgreSQL 8.3.
-
2020‑10‑08:
Using CTE to do a binary search of a large table with non-indexed correlated data in PostgreSQL.
-
2020‑10‑07:
The origin of the VM/370 time-sharing system.
-
2020‑10‑07:
zheap: reinvented PostgreSQL storage.
-
2020‑10‑07:
Notes on reviving and extending Marvin, a typeface for Visions magazine.
-
2020‑10‑07:
From its name, to its hazy origins, to its drug interactions, there's a lot going on with Grapefruit.
-
2020‑10‑07:
USB3: why it's a bit harder than USB2.
-
2020‑10‑06:
DOMPurify bypass: XSS via HTML namespace confusion.
-
2020‑10‑06:
Telharmonium: the first significant electronic musical instrument.
-
2020‑10‑06:
Q3 Linux touchpad like Macbook update.
-
2020‑10‑06:
TIME for a WTF MySQL moment.
-
2020‑10‑06:
From object algebras to tagless-final interpreters.
-
2020‑10‑06:
Cyclone Scheme: a new R7RS compiler.
-
2020‑10‑06:
FAQs on aerosol transmission of COVID-19.
-
2020‑10‑06:
Incompatible validation criteria for Ed25519.
-
2020‑10‑06:
s7: Scheme as an extension language for other applications.
-
2020‑10‑04:
Type-level programming in Rust.
-
2020‑10‑04:
How we ran a Unix-like OS (Xv6), on our home-built CPU, with our home-built C compiler.
-
2020‑10‑04:
Lambda calculus, Church numerals, and Graham's number.
-
2020‑10‑04:
Drop order in Rust: it's tricky.
-
2020‑10‑04:
A future for debugging Rust.
-
2020‑10‑04:
Revisiting a 'smaller Rust'.
-
2020‑10‑04:
Applying "make invalid states unrepresentable".
-
2020‑10‑04:
Tales from the science fiction bar-room.
-
2020‑10‑04:
Saving space (basically) for free by re-ordering columns in PostgreSQL.
-
2020‑10‑04:
Dissecting Lemire's nearly divisionless random number generator.
-
2020‑10‑04:
Magic Wand Rechargeable teardown.
-
2020‑10‑04:
SaferNode: a Python script to isolate npm inside short-lived Docker containers.
-
2020‑10‑04:
A web of trust for npm.
-
2020‑10‑04:
HOPL: an online historical encyclopaedia of programming languages.
-
2020‑10‑04:
chibicc: a small C compiler.
-
2020‑10‑04:
Lambda calculus diagrams.
-
2020‑10‑03:
Computer science metanotation is a barrier to entry.
-
2020‑10‑03:
System font typography on 8 bit micros.
-
2020‑10‑03:
Falsehoods programmers believe about map coordinates.
-
2020‑10‑03:
Compiler hardening and exploit mitigations for unsafe Rust.
-
2020‑10‑02:
Toward an API for the real numbers: exact arithmetic with decidable equality comparisons.
-
2020‑10‑01:
outflank-mailman: stop Mailman from breaking DKIM signatures.
-
2020‑09‑29:
Rob Pike on colour blindness.
-
2020‑09‑28:
FPspy: Spying on the floating point behavior of existing, unmodified scientific applications.
-
2020‑09‑28:
The weight of buildings and the raising of Chicago.
-
2020‑09‑28:
BBC Micro Elite source code and commentary.
-
2020‑09‑27:
A typed, algebraic approach to parser combinators.
-
2020‑09‑27:
Modular, composable, typed optimizations in the tagless-final style.
-
2020‑09‑26:
Guided tour of Bunnie's Precursor motherboard.
-
2020‑09‑26:
Techade quiz: A near-impossible guessing game of tech through the decades.
-
2020‑09‑25:
A PEG parser for CPython.
-
2020‑09‑25:
Using time travel to remotely debug faulty DRAM with Julia and rr.
-
2020‑09‑25:
Finding a goroutine bug with TLA+.
-
2020‑09‑25:
A pipeline made of airbags: live upgrades vs immutable infrastructure.
-
2020‑09‑24:
Traits as an emergent feature of Julia.
-
2020‑09‑24:
Bean Machine: a declarative probabilistic programming language for efficient programmable inference.
-
2020‑09‑24:
How the CPython compiler works.
-
2020‑09‑24:
Fast incremental compilation of Kotlin.
-
2020‑09‑24:
Void in Haskell is a smell.
-
2020‑09‑24:
Exploiting Tiny Tiny RSS.
-
2020‑09‑23:
Delivering 45x faster percentiles using PostgreSQL, Citus, and t-digest.
-
2020‑09‑23:
JuliaCon2020: Julia is production ready!
-
2020‑09‑23:
Haskell's children: Rust, Idris, Julia.
-
2020‑09‑23:
On YOLOsec and FOMOsec.
-
2020‑09‑22:
Data and Reality, 2nd edition.
-
2020‑09‑21:
Range: My least favorite Rust type.
-
2020‑09‑21:
John Regehr's integers in C quiz.
-
2020‑09‑21:
A new X.509 certificate chain validator for LibreSSL.
-
2020‑09‑21:
Tail call optimization and debugging.
-
2020‑09‑21:
A new backend for Cranelift: instruction selection.
-
2020‑09‑21:
Speeding up C++ compilation.
-
2020‑09‑21:
Dennis Ritchie's reflections on software research.
-
2020‑09‑20:
Why not Rust?
-
2020‑09‑20:
Taking MonetDB/e for a taxi ride.
-
2020‑09‑20:
FreeBSD's Subversion to Git migration: Why?
-
2020‑09‑20:
LLVM's getelementptr, by example.
-
2020‑09‑19:
What's the fastest way to chill your beer?
-
2020‑09‑19:
"Fake COTS" and the one-day rule.
-
2020‑09‑18:
A Cuban numbers station cryptologic mystery.
-
2020‑09‑18:
Supercomputing on Nitro in AWS cloud with Scalable Reliable Datagram (SRD).
-
2020‑09‑18:
Surfaces vs airborne: what we know now about Covid-19 transmission.
-
2020‑09‑18:
Taming nalgebra's Rustdoc.
-
2020‑09‑18:
Let's Encrypt's new ECDSA root and intermediate certificates.
-
2020‑09‑17:
DNS Flag Day 2020: what you need to know.
-
2020‑09‑17:
Maximizing DNS qname minimization.
-
2020‑09‑17:
Search and replace tricks with ripgrep.
-
2020‑09‑16:
The plot against Birmingham.
-
2020‑09‑16:
USB-C was supposed to simplify, but it's a total mess.
-
2020‑09‑16:
How America became obsessed with dips, sauces, dressings, and "food lube".
-
2020‑09‑16:
Efficient parallel and incremental parsing of practical context-free languages.
-
2020‑09‑16:
The missing datacenter OS.
-
2020‑09‑16:
Tips for PostgreSQL bulk data loading.
-
2020‑09‑16:
Reinventing virtualization with the AWS Nitro System.
-
2020‑09‑16:
A formalization and correctness proof of the CGOL language system / Pratt parser. (1975)
-
2020‑09‑16:
Differentiable dithering with gradient descent.
-
2020‑09‑15:
Which parsing approach?
-
2020‑09‑15:
Keeping time at NIST.
-
2020‑09‑15:
Debian-installer, mdadm configuration, and the bad blocks controversy.
-
2020‑09‑14:
Creating high-quality PDF/A documents using LaTeX.
-
2020‑09‑14:
What's so hard about PDF text extraction?
-
2020‑09‑13:
Diversity Explorer: ethnicity across England and Wales.
-
2020‑09‑13:
Design out waste in household electrical goods.
-
2020‑09‑12:
How GitLab.com upgraded PostgreSQL.
-
2020‑09‑11:
Getting MacOS style hotkeys working in GNU/Linux.
-
2020‑09‑10:
Leonardo da Vinci's ingenious design for a self-supporting bridge.
-
2020‑09‑10:
5 most annoying website features I face as a blind person every single day.
-
2020‑09‑09:
Hacking Ethernet out of FibreChannel cards.
-
2020‑09‑09:
Loko Scheme: an optimizing R6RS Scheme compiler.
-
2020‑09‑08:
An explainer on Ed25519 clamping.
-
2020‑09‑08:
What we didn't get: science fiction technologies that remained fictional.
-
2020‑09‑07:
How to speed up the Rust compiler one last time.
-
2020‑09‑07:
Named parameters using designated initializers in C++20.
-
2020‑09‑07:
The Capsule hash trie collections library for Java.
-
2020‑09‑06:
Lessons from the GNOME patent troll incident.
-
2020‑09‑05:
TOTP in 20 lines of Python.
-
2020‑09‑05:
The origins of XXX as a FIXME comment marker.
-
2020‑09‑04:
Some historical reflections on NSFNET.
-
2020‑09‑04:
Don't forget: the plural of anecdote is data.
-
2020‑09‑04:
Property testing and formal verification / symbolic execution in Rust with KLEE.
-
2020‑09‑03:
A demonstrator's guide to helmets.
-
2020‑09‑03:
The femme's guide to riot fashion: this season's hottest looks for the discerning anarchist.
-
2020‑09‑02:
Butler Lampson's updated and expanded hints and principles for computer system design.
-
2020‑09‑02:
On modern hardware the min-max heap beats a binary heap.
-
2020‑09‑02:
Write tracking for Nim.
-
2020‑09‑02:
The problem with C compatibility in C++.
-
2020‑09‑02:
jsonptr: using the wuffs memory-safe, zero-allocation JSON decoder.
-
2020‑09‑02:
The wuffs programming language: wrangling untrusted file formats safely.
-
2020‑09‑01:
Lunar: a Mac OS X utility to adjust the brightness of your external display.
-
2020‑09‑01:
PostgreSQL 13: don't let replication slots kill your primary.
-
2020‑09‑01:
This is not a sonic boom, it's a vapor cone.
-
2020‑09‑01:
Taking a look at Gerät 32620: the machine that powered numerous number stations.
-
2020‑09‑01:
How Arlo got injected into Ruby.
-
2020‑09‑01:
Understanding the X.500 directory.
-
2020‑08‑31:
Cracking Dlang Phobos pseudorandom UUIDs.
-
2020‑08‑31:
WebAssembly reference types in Wasmtime.
-
2020‑08‑31:
Why are there 5280 feet in a mile?
-
2020‑08‑31:
Sum types in Julia and Rust.
-
2020‑08‑30:
Python daemon ate my syslog message.
-
2020‑08‑30:
contained.af CTF.
-
2020‑08‑29:
WebAssembly troubles: WebAssembly is not a stack machine.
-
2020‑08‑29:
Travel demand modeling: the broken algorithm that poisoned American transportation.
-
2020‑08‑28:
Objective Rust.
-
2020‑08‑28:
Finger trees explained anew, and slightly simplified.
-
2020‑08‑28:
100 years to solve an integral: a history of the Mercator projection and the integral of the secant.
-
2020‑08‑28:
Rust-style futures in C with libuv.
-
2020‑08‑28:
Using Microsoft Word with git and pandoc.
-
2020‑08‑27:
PiSight: a Raspberry Pi inside an Apple iSight webcam.
-
2020‑08‑27:
Making QUIC quicker with NIC offload.
-
2020‑08‑27:
The design and implementation of BIND, a "Domain Names" resolver.
-
2020‑08‑27:
The design and implementation of the Berkeley Internet Name Domain (BIND) servers.
-
2020‑08‑27:
BIND: the Berkeley Internet Name Domain server.
-
2020‑08‑26:
UMASH: a fast and universal enough hash.
-
2020‑08‑26:
HTMLified C standard ISO/IEC 9899:2017.
-
2020‑08‑26:
PCI Express retimers vs. redrivers: an eye-popping difference.
-
2020‑08‑25:
Upgrading GitHub to Ruby 2.7.
-
2020‑08‑25:
Functional programming in m4.
-
2020‑08‑25:
Oracle to PostgreSQL: cursors and common table expressions.
-
2020‑08‑25:
Signifier: a brutalist response to the 17th century Oxford Fell typefaces.
-
2020‑08‑25:
Keeping CALM: when is distributed consistency easy?
-
2020‑08‑25:
Updating the PostgreSQL root.crt file for TLS client auth.
-
2020‑08‑24:
Recent advances in IPv6 security: Addressing.
-
2020‑08‑24:
Writing a fuzzer test case generator in Rust for a programming language such as Wasm.
-
2020‑08‑24:
BPF CO-RE: compile once, run everywhere for BPF portability.
-
2020‑08‑24:
Draw your own fourier epicycles.
-
2020‑08‑24:
Challenge to scientists: does your ten-year-old code still run?
-
2020‑08‑24:
Building resilient services at Amazon Prime Video with chaos engineering.
-
2020‑08‑24:
Here I stand, free: noexcept allocators and an inclusive C++ STL.
-
2020‑08‑24:
A clean start for the web?
-
2020‑08‑24:
Javascript generators, meet XPath.
-
2020‑08‑24:
Incident updates, interruptions and the 30 minute window.
-
2020‑08‑24:
The BLISS programming language: a history.
-
2020‑08‑24:
Never run `python` in your downloads folder.
-
2020‑08‑23:
As above, so below: Bare metal Rust generics.
-
2020‑08‑23:
Five stages of accepting constructive mathematics.
-
2020‑08‑22:
Mesh: a compacting memory allocator for C/C++.
-
2020‑08‑22:
Understanding memory fragmentation in GHC Haskell.
-
2020‑08‑21:
How NAT traversal works.
-
2020‑08‑21:
Nyxt: an extensible keyboard-oriented web browser written in Common LISP.
-
2020‑08‑21:
Why did Mozilla remove XUL add-ons from Firefox?
-
2020‑08‑21:
Google Chromium's impact on root DNS traffic.
-
2020‑08‑21:
Adding a microSD slot to a reMarkable tablet.
-
2020‑08‑21:
ARX, Arthur and RISC OS.
-
2020‑08‑20:
Code smell: concrete abstraction.
-
2020‑08‑20:
How the Linux kernel starts on ARM32.
-
2020‑08‑20:
Can't you just right click? Running unsigned code on Mac OS X.
-
2020‑08‑20:
A deep dive into the official Docker image for Python.
-
2020‑08‑20:
A documentation system: tutorials / howtos / reference / explanation.
-
2020‑08‑19:
Leading-trim: a future CSS spec for better vertical spacing in digital typography.
-
2020‑08‑19:
How to contact Google SRE by dropping a shell in Cloud SQL.
-
2020‑08‑19:
Evaluating TCP BBRv2 on the Dropbox edge network.
-
2020‑08‑19:
Contention adapting search tree: Erlang's new scalable ETS ordered set data structure.
-
2020‑08‑19:
Open problems in robotics.
-
2020‑08‑19:
Speeding up json parsing in Golang.
-
2020‑08‑19:
Switching from i3 to Sway on Ubuntu 20.04.
-
2020‑08‑19:
The case of the top secret iPod.
-
2020‑08‑18:
The medieval university duopoly in England.
-
2020‑08‑18:
How to break everything by fuzz testing.
-
2020‑08‑18:
Fuzzing a C/C++ API with DeepState.
-
2020‑08‑18:
Testing GNU coreutils with KLEE.
-
2020‑08‑18:
Measuring the coverage achieved by symbolic execution.
-
2020‑08‑17:
Responsible and effective bugfinding.
-
2020‑08‑17:
Using a Yubikey as a touchless, magic unlock key for Linux.
-
2020‑08‑17:
Proposed register-based Golang calling convention.
-
2020‑08‑17:
A first look at IPv4 transfer market misuse.
-
2020‑08‑17:
A 35-year-old bug in patch found during the 2.11BSD restoration project.
-
2020‑08‑16:
The Gartner hype cycle is ... hype.
-
2020‑08‑16:
Error recovery with parser combinators, using Rust and nom.
-
2020‑08‑16:
daScript: a high performance scripting language.
-
2020‑08‑15:
How the Intel 8086 distributes power and clock signals.
-
2020‑08‑14:
The optical mouse, and an architectural methodology for smart digital sensors. (Xerox PARC, 1981)
-
2020‑08‑14:
Constructive vs predicative data types.
-
2020‑08‑14:
Types as axioms, or: playing god with static types.
-
2020‑08‑14:
Netgpu and the hazards of proprietary Linux kernel modules.
-
2020‑08‑14:
The newspaper of the air: early experiments with radio facsimile.
-
2020‑08‑14:
DNS problems with conntrack and Kubernetes.
-
2020‑08‑14:
Mpemba effect: what conditions make hot water freeze faster than cold water?
-
2020‑08‑13:
Rust does not have a stable ABI.
-
2020‑08‑13:
Interactive HTML trees with no JavaScript and no CSS.
-
2020‑08‑13:
Handles are the better pointers.
-
2020‑08‑13:
A guide to contiguous data in Rust.
-
2020‑08‑12:
Linux eBPF projects and documentation.
-
2020‑08‑12:
Building a better Golang linker.
-
2020‑08‑11:
Dorking: how to find anything on the web.
-
2020‑08‑11:
Take a virtual tour of ORNL's supercomputer center.
-
2020‑08‑11:
Exposing and circumventing China's censorship of TLS/1.3 ESNI.
-
2020‑08‑10:
Surviving Rust async interfaces.
-
2020‑08‑10:
The great American sci-fi utopia or dystopia? (Kim Stanley Robinson)
-
2020‑08‑10:
9 crappy paradoxes that shape nonprofit and philanthropy.
-
2020‑08‑09:
UK radon maps.
-
2020‑08‑09:
Tracking running processes on Linux.
-
2020‑08‑09:
EdgeQL: we can do better than SQL.
-
2020‑08‑09:
The '-ize' have it!
-
2020‑08‑08:
A star went supernova in 1987. Where is it now?
-
2020‑08‑07:
Hello! You've been referred here because you're wrong about section 230 of the Communications Decency Act.
-
2020‑08‑07:
How hard is it to type-check your favorite language?
-
2020‑08‑07:
After nearly a century, elusive CNO neutrinos from the Sun are finally detected.
-
2020‑08‑07:
Why shaving dulls even the sharpest of razors.
-
2020‑08‑07:
crush: a command line shell that is also a powerful modern programming language.
-
2020‑08‑07:
Steve Crocker on the history of RFCs.
-
2020‑08‑06:
lacc: a simple, self-hosting C89 compiler.
-
2020‑08‑06:
The Myrddin programming language.
-
2020‑08‑06:
cproc: a C11 compiler using QBE as a backend.
-
2020‑08‑06:
A project to restore Interlisp-D to usability on modern OSes.
-
2020‑08‑06:
Monads and intensionality: Lucid is not an abberation.
-
2020‑08‑06:
Ten takeaways from ten years at Retraction Watch.
-
2020‑08‑05:
TikTok and the Sorting Hat.
-
2020‑08‑05:
What alternate reality games can teach us about QAnon.
-
2020‑08‑05:
Myth and monolith: the Nine Elms Cold Store.
-
2020‑08‑04:
Syntax changes in lambda expressions between C++11 and C++20.
-
2020‑08‑04:
Swift type checking is undecidable.
-
2020‑08‑03:
The UX of Lego interface panels.
-
2020‑08‑03:
Lecture notes on static program analysis.
-
2020‑08‑03:
Julia 1.5 release highlights.
-
2020‑08‑03:
COVID-19: We need to talk about airborne transmission and ventilation.
-
2020‑08‑02:
Rich: a Python library for rich text and beautiful formatting in the terminal.
-
2020‑08‑02:
How a cheese goes extinct.
-
2020‑08‑02:
Time traveling in Haskell: how it works and how to use it.
-
2020‑08‑02:
Measuring and examining TLS 1.3, IPv4, and IPv6 performance.
-
2020‑08‑02:
Measuring linux performance: how to avoid typical mistakes.
-
2020‑08‑02:
The lost history of PReP: Windows NT 3.5x on PowerPC and the RS/6000 40p.
-
2020‑08‑02:
Why are we using black box models in AI when we don't need to?
-
2020‑08‑02:
Low latency tuning guide for x86 Linux systems.
-
2020‑08‑02:
GPU.js: GPU accelerated JavaScript.
-
2020‑08‑02:
Hacking up a fix for the broken AppleTalk kernel module in Linux 5.1 and newer.
-
2020‑08‑02:
Homemade pasta.
-
2020‑08‑01:
How to harvest credit card numbers and passwords from lots of web sites.
-
2020‑08‑01:
WordSafety: check a name for unwanted meanings in foreign languages.
-
2020‑08‑01:
Compressing authority with cryptographic accumulators.
-
2020‑08‑01:
The politics of optimism.
-
2020‑08‑01:
Defragmenting DNS: determining the optimal maximum UDP response size for DNS.
-
2020‑07‑31:
Can I use CSS and HTML in email?
-
2020‑07‑31:
Apple emails reveal internal debate on right to repair.
-
2020‑07‑31:
Why are plants green? To reduce the noise in photosynthesis.
-
2020‑07‑30:
How Dropbox migrated from Nginx to Envoy.
-
2020‑07‑30:
Refactoring the FreeBSD kernel with Checked C.
-
2020‑07‑30:
Lockless algorithms for mere mortals?
-
2020‑07‑30:
Solving the expiring. X.509 root CA certificate-mageddon, partly at least.
-
2020‑07‑30:
Parallel stream processing with Rayon in Rust.
-
2020‑07‑30:
If language began in the hands, why did it ever leave?
-
2020‑07‑30:
Sizedness in Rust.
-
2020‑07‑30:
An introduction to data oriented design with Rust.
-
2020‑07‑30:
Speculative compilation in WebKit JavaScriptCore.
-
2020‑07‑30:
Pluto's dark side spills its secrets, including hints of a hidden ocean.
-
2020‑07‑30:
PostgreSQL 9.3's powerful new join type: LATERAL.
-
2020‑07‑30:
Some SQL tricks from an Application DBA.
-
2020‑07‑30:
RBS type signature files in Ruby 3.
-
2020‑07‑29:
Unicode normalization in PostgreSQL 13.
-
2020‑07‑29:
In October 1953, Paul Niquette coined the word 'software'.
-
2020‑07‑29:
Historic Usenet archive is disappearing from Google Groups.
-
2020‑07‑28:
The inescapable whiteness of Avatar: The Legend of Korra, and its uncomfortable implications.
-
2020‑07‑28:
DINR2020: DNS and Internet Naming Research Directions workshop.
-
2020‑07‑28:
Why inter-domain multicast now makes sense.
-
2020‑07‑28:
When Unix learned to reboot(2).
-
2020‑07‑28:
Mapping a universe of open source software: the Nixpkgs dependency graph.
-
2020‑07‑27:
Can applications recover from fsync() failures?
-
2020‑07‑27:
Apache Arrow and the 10 things I hate about pandas.
-
2020‑07‑27:
What is Apache Arrow?
-
2020‑07‑27:
Highlights from git 2.28.
-
2020‑07‑27:
Fanout and latency percentiles in distributed systems.
-
2020‑07‑27:
Monads and mom.
-
2020‑07‑27:
remake: GNU make with enhanced tracing, error reporting, debugging, profiling and more.
-
2020‑07‑27:
Compiling with a sea of nodes.
-
2020‑07‑27:
Should I block ICMP?
-
2020‑07‑27:
CVE-2020-13777 GnuTLS passive plaintext recovery vulnerability.
-
2020‑07‑26:
Preliminary benchmarking results for a Haskell I/O manager backend based on io_uring.
-
2020‑07‑26:
Colorize your CLI.
-
2020‑07‑26:
Corecursion and coinduction: what they are and how they relate to recursion and induction.
-
2020‑07‑26:
The history, status, and future of FPGAs.
-
2020‑07‑26:
Why people tend to appreciate men's humor so much more than women's.
-
2020‑07‑25:
Cryptography is not magic.
-
2020‑07‑25:
Bloom filters debunked: dispelling 30 years of bad math with Coq!
-
2020‑07‑24:
Meritocracy is not only false, it's bad for you.
-
2020‑07‑24:
Shadow attacks: hiding and replacing content in signed PDFs.
-
2020‑07‑24:
Cold showers on overhyped topics in computer science.
-
2020‑07‑24:
TechEmpower web framework benchmarks.
-
2020‑07‑24:
Demystifying MLsub: the simple essence of algebraic subtyping.
-
2020‑07‑23:
Why is CSS the way it is?
-
2020‑07‑23:
Buzzy: dependency management for C.
-
2020‑07‑23:
Exploring Algol 68 in the 21st century.
-
2020‑07‑23:
New features in gnuplot 5.4.
-
2020‑07‑22:
MineSweeper implemented in CSS and HTML and no JavaScript.
-
2020‑07‑22:
How to check the status of Rust features.
-
2020‑07‑22:
caniuse.rs: Rust feature search.
-
2020‑07‑22:
Next steps for single ownership and RAII. (C++/Vale/Rust)
-
2020‑07‑21:
The null process.
-
2020‑07‑21:
UTN #39: bidi brackets for dummies.
-
2020‑07‑21:
Essays on programming I think about a lot.
-
2020‑07‑21:
Lisp: the many faces of an undying programming language.
-
2020‑07‑21:
Syntax highlighting is a waste of an information channel.
-
2020‑07‑21:
An explanation of Rust's module system.
-
2020‑07‑20:
Certificate Transparency: a bird's-eye view.
-
2020‑07‑20:
Three architectures for a responsive IDE.
-
2020‑07‑20:
Journeying into XDP (express data path) for in-kernel eBPF DNS acceleration.
-
2020‑07‑20:
Ireland donates its COVID tracker app to Linux Foundation.
-
2020‑07‑20:
The quest for very wide outlines: optimized GPU silhouettes.
-
2020‑07‑19:
The cpio trailer problem.
-
2020‑07‑19:
How Newton's Philosophiæ Naturalis Principia Mathematica came to be published.
-
2020‑07‑17:
Repurposing FPGA-based products as development kits.
-
2020‑07‑17:
Unicode for Mayan hieroglyphs.
-
2020‑07‑17:
Straightened trees.
-
2020‑07‑17:
The impact of Heartbleed on OpenSSL's development practices.
-
2020‑07‑17:
DDR5 memory specification released.
-
2020‑07‑16:
Shipping const generics for Rust in 2020.
-
2020‑07‑16:
Patricia Crowther inspired one of the first hit video games by mapping the world's longest cave.
-
2020‑07‑16:
Hacking Reolink IP cameras for fun and profit.
-
2020‑07‑16:
Python pickle's nine flaws.
-
2020‑07‑16:
IPv6 and the DNS.
-
2020‑07‑16:
Systems Performance: Enterprise and the Cloud, 2nd Edition.
-
2020‑07‑16:
Back into FreeBSD's wireless stack and 802.11ac.
-
2020‑07‑16:
Introducing the GitHub availability report.
-
2020‑07‑16:
Lezer: a JavaScript parser generator for the CodeMirror 6 editor.
-
2020‑07‑16:
What's new in Lua 5.4.
-
2020‑07‑16:
Why even unused data needs to be valid in Rust.
-
2020‑07‑16:
Two beautiful Rust programs.
-
2020‑07‑15:
PgTyped: raw SQL in TypeScript with guaranteed type-safety.
-
2020‑07‑15:
Rewriting FORTRAN software in Rust.
-
2020‑07‑14:
In search of 2.11BSD, as originally released.
-
2020‑07‑14:
MessagePack vs CBOR (RFC7049).
-
2020‑07‑14:
SIGred: exploiting a 17 year-old bug in Windows DNS servers.
-
2020‑07‑14:
Etcd, or, why modern software makes me sad.
-
2020‑07‑14:
How Futhark implements array bounds checking on the GPU.
-
2020‑07‑14:
SSSE3 fast popcount.
-
2020‑07‑14:
The GDPR explained by Americans.
-
2020‑07‑14:
Understanding the F5 Networks BIG-IP remote code execution vulnerability CVE-2020-5902.
-
2020‑07‑14:
Too many objects: Reducing memory overhead from Python instances.
-
2020‑07‑14:
Color e-ink displays are arriving soon in ebook and e-note devices.
-
2020‑07‑14:
Why are LED indicator lights (especially blue ones) so annoying?
-
2020‑07‑14:
Making system(3) and popen(3) use posix_spawn(3) on NetBSD.
-
2020‑07‑13:
A PostgreSQL developer's .psqlrc
-
2020‑07‑13:
pgx: build PostgreSQL extensions with Rust.
-
2020‑07‑13:
Fuzzing rumpkernel syscalls.
-
2020‑07‑13:
Optimizations in C++ compilers: a practical journey.
-
2020‑07‑13:
The rectangle rule for code formatting style.
-
2020‑07‑13:
The computing demands of deep learning are so great that progress is stalling.
-
2020‑07‑13:
ARM64 popcount in Golang and assembler.
-
2020‑07‑13:
ELF statifier: create a static executable from a binary and its libraries.
-
2020‑07‑12:
When master/slave does not make sense.
-
2020‑07‑12:
Xerox 48-bit absolute internet and Ethernet host numbers. (1981)
-
2020‑07‑12:
sed-bin: a sed to C translator written in sed.
-
2020‑07‑12:
Land of monopolists: private equity 'roll-ups' hit virtually everything.
-
2020‑07‑12:
Infrastructure: our cyborg collective body, ourselves.
-
2020‑07‑12:
When SimCity got serious: the story of Maxis Business Simulations and SimRefinery.
-
2020‑07‑11:
mbeddr: integrated and extensible languages for embedded software, plus an IDE.
-
2020‑07‑11:
The Frink is good, the unit is evil.
-
2020‑07‑10:
A history of Usenet and FidoNet.
-
2020‑07‑09:
The Prancing Pony vending machine at SAIL.
-
2020‑07‑09:
The top types any and unknown in TypeScript.
-
2020‑07‑09:
C++ hashmaps benchmarks.
-
2020‑07‑09:
The "smol" Rust async runtime.
-
2020‑07‑09:
Low accuracy solar position equations.
-
2020‑07‑09:
Sunrise / sunset algorithm.
-
2020‑07‑09:
FPGA softcore SoC shootout.
-
2020‑07‑08:
GNU: a heuristic for bad cryptography.
-
2020‑07‑08:
cwrap: testing Samba (or your full software stack) on a single machine.
-
2020‑07‑08:
Symbolic execution with SymCC: don't interpret, compile!
-
2020‑07‑08:
yubikey-agent: a seamless ssh-agent for YubiKeys.
-
2020‑07‑08:
ip2unix: turn IP sockets into Unix domain sockets.
-
2020‑07‑08:
Tech confronts its use of the labels 'master' and 'slave'.
-
2020‑07‑07:
Google Common Lisp style guide.
-
2020‑07‑07:
The Pyret Code: a rationale for the Pyret programming language.
-
2020‑07‑07:
Don't Panic! Better, fewer, syntax errors for LR parsers.
-
2020‑07‑07:
Statically sized higher-kinded polymorphism.
-
2020‑07‑07:
An autoscaling-related outage at Slack.
-
2020‑07‑07:
1:60 scale model of a Boeing 777, made entirely from manila folders.
-
2020‑07‑07:
Division by zero in type theory: a FAQ.
-
2020‑07‑06:
Small strings in Rust.
-
2020‑07‑06:
Licklider's memorandum for members and affiliates of the intergalactic computer network. (1963)
-
2020‑07‑06:
Behind the scenes at the Marmite factory in Burton-on-Trent.
-
2020‑07‑06:
UASP makes Raspberry Pi 4 disk IO 50% faster.
-
2020‑07‑04:
Noisia: a harmful workload generator for PostgreSQL.
-
2020‑07‑04:
Hamilton on film now is a very different experience than the Broadway show was then.
-
2020‑07‑04:
Many newsrooms are now capitalizing the B in Black. Here are some of the people who made that happen.
-
2020‑07‑04:
Websites that look like desktop GUIs.
-
2020‑07‑04:
The unplanned impact of mathematics.
-
2020‑07‑03:
Code only says what it does.
-
2020‑07‑03:
BLOB storage in PostgreSQL.
-
2020‑07‑02:
Encrypted DNS support in iOS 14 and macOS 11.
-
2020‑07‑02:
The alias method for efficiently sampling from a discrete probability distribution.
-
2020‑07‑02:
Weighted round robin / weighted random integers with the golden ratio low discrepancy sequence.
-
2020‑07‑02:
On the closing of Living Computers: Museum+Labs.
-
2020‑07‑02:
Generics for Golang.
-
2020‑07‑02:
Taking over Azure DevOps accounts with 1 click using a subdomain takeover.
-
2020‑07‑01:
Complete spatial safety for C and C++ using CHERI capabilities.
-
2020‑07‑01:
Implementing the exponential function.
-
2020‑07‑01:
Join strategies and performance in PostgreSQL.
-
2020‑07‑01:
Inside Apple Lightning.
-
2020‑07‑01:
Spies, lies, and stonewalling: what it's like to report on Facebook.
-
2020‑07‑01:
The ARM Morello board: porting experimental capability extensions from CHERI-MIPS.
-
2020‑07‑01:
Getting to the bottom of Noether's theorem.
-
2020‑07‑01:
Raspberry Pi 4 PCIe bridge "chip".
-
2020‑07‑01:
Rendering multimedia in pure C.
-
2020‑07‑01:
What is Zig's “colorblind” async/await?
-
2020‑07‑01:
What is the Scudo hardened allocator? (used by LLVM sanitizers and Android)
-
2020‑06‑30:
Argdown: A simple syntax for complex argumentation.
-
2020‑06‑30:
What is prototype pollution in JavaScript?
-
2020‑06‑30:
Why aren't regular expressions a lingua franca? An empirical study of re-use and portability.
-
2020‑06‑30:
To what does the harmonic series converge? (in IEEE754 floating point)
-
2020‑06‑29:
A few more reasons Rust compiles slowly.
-
2020‑06‑29:
Why birds can fly over Mount Everest.
-
2020‑06‑29:
Understand Wi-Fi 4/5/6/6E (802.11 n/ac/ax).
-
2020‑06‑29:
Minkowski asteroids.
-
2020‑06‑28:
Whither chroot?
-
2020‑06‑28:
Roy Fielding's misappropriated REST dissertation.
-
2020‑06‑28:
Implementing a type-safe printf in Rust.
-
2020‑06‑28:
Property-based testing in Rust with Proptest.
-
2020‑06‑28:
String formatting is unreasonably expensive for embedded Rust.
-
2020‑06‑28:
ELF: better symbol lookup via DT_GNU_HASH.
-
2020‑06‑27:
Examining ARM vs x86 memory models with Rust.
-
2020‑06‑25:
World capitals Voronoi map.
-
2020‑06‑25:
Implementations for Gray code encoding and decoding.
-
2020‑06‑25:
Query-based compiler architectures.
-
2020‑06‑25:
Zealandia: Earth's 8th continent.
-
2020‑06‑24:
Exploiting an Envoy http proxy heap vulnerability.
-
2020‑06‑24:
Control theory for fun and profit.
-
2020‑06‑24:
Path building vs path verifying X.509 certificate validation implementation showdown.
-
2020‑06‑24:
Faster integer parsing.
-
2020‑06‑24:
The largest city in each 10x10 degree latitude/longitude box.
-
2020‑06‑24:
Incommensurability: the structure of a programming language revolution.
-
2020‑06‑24:
What I've learnt so far about writing research papers.
-
2020‑06‑24:
Indexing JSONB columns in PostgreSQL.
-
2020‑06‑24:
Iceland's CO2 emissions could be reduced by 30% by replacing carbon electrodes in aluminium smelters.
-
2020‑06‑24:
Announcing Perl 7: it's just Perl 5 with more modern defaults.
-
2020‑06‑24:
GRIN: LLVM-based whole program optimizer for lazy and strict functional languages.
-
2020‑06‑24:
Transport for London's impossible finances during the pandemic.
-
2020‑06‑23:
Is WebP really better than JPEG?
-
2020‑06‑23:
Oilpan: high-performance garbage collection for C++ in V8.
-
2020‑06‑23:
Being glue.
-
2020‑06‑23:
Stretching the Commodore 64 palette.
-
2020‑06‑23:
Cheap tricks for high-performance Rust.
-
2020‑06‑23:
Fujitsu's Fugaku and Arm A64FX in the fastest supercomputer at 415 petaFLOPs.
-
2020‑06‑23:
Ego graphs and the Google 'vs' trick.
-
2020‑06‑23:
Rust's huge compilation units.
-
2020‑06‑22:
The archetype of a message-passing bug in Rust.
-
2020‑06‑22:
Measuring route origin validation.
-
2020‑06‑22:
Maersk, notPetya, and me.
-
2020‑06‑20:
Why you hate contemporary architecture.
-
2020‑06‑20:
Everything I've learned about solar storm risk and EMP attacks.
-
2020‑06‑20:
Discovering Dennis Ritchie's lost dissertation.
-
2020‑06‑19:
Errors in Rust: a deep dive.
-
2020‑06‑19:
Memory consistency models: a tutorial.
-
2020‑06‑19:
A concise guide to the Golang generics draft design.
-
2020‑06‑19:
Linear types for Haskell are merged into GHC.
-
2020‑06‑19:
The Go+ language for data science.
-
2020‑06‑19:
poica: algebraic data types with pattern matching and type introspection for C.
-
2020‑06‑18:
Consistency models for concurrent and distributed systems.
-
2020‑06‑18:
The Apollo 11 lunar ranging experiment at the Lick Observatory.
-
2020‑06‑18:
The magnetic amplifier: a lost technology of the 1950s.
-
2020‑06‑17:
Oracle to PostgreSQL: basic architecture.
-
2020‑06‑17:
TERF wars: why transphobia has no place in feminism.
-
2020‑06‑17:
Composite data type performance issues in PostgreSQL.
-
2020‑06‑16:
The next step for generics in Golang.
-
2020‑06‑16:
How browsers work: behind the scenes of modern web browsers.
-
2020‑06‑16:
Generics and compile time in Rust.
-
2020‑06‑16:
Understanding user management in PgBouncer.
-
2020‑06‑16:
Intel's port 7 AGU blunder.
-
2020‑06‑15:
Dumbindent: because 93% of the time was spent in clang-format.
-
2020‑06‑15:
The Postgres and Illustra codelines.
-
2020‑06‑15:
Unix® certified products.
-
2020‑06‑15:
Looking back at Postgres.
-
2020‑06‑15:
Guix further reduces bootstrap seed to 60MB.
-
2020‑06‑14:
META II: a syntax-oriented compiler writing language. (1964)
-
2020‑06‑14:
ACM HOPL IV proceedings.
-
2020‑06‑14:
Intel vs AWS Graviton ARM performance for MinIO S3-compatible object storage.
-
2020‑06‑14:
The origins of Objective-C at PPI/Stepstone and its evolution at NeXT.
-
2020‑06‑14:
Fast 2D rendering on GPU.
-
2020‑06‑13:
fortraith: evaluate Forth at compile time using Rust traits.
-
2020‑06‑13:
Bugs found in database management systems with SQLancer.
-
2020‑06‑13:
Bicycle geometry terminology.
-
2020‑06‑12:
Event Tracing for Windows: the worst API ever made.
-
2020‑06‑12:
Jepsen: PostgreSQL 12.3.
-
2020‑06‑12:
Memory-safety challenge considered solved? An empirical study of Rust CVEs.
-
2020‑06‑12:
The story of tail call optimization in Rust.
-
2020‑06‑12:
How to implement search-by-colour using Color Thief and PostgreSQL.
-
2020‑06‑12:
Async Python is not faster.
-
2020‑06‑12:
V8's RegExp engine in SpiderMonkey.
-
2020‑06‑12:
Graph and tree traversals in Rust.
-
2020‑06‑12:
Bringing my Emacs from the past.
-
2020‑06‑12:
Essential and relevant: a unit test balancing act.
-
2020‑06‑12:
In search of the original Fortran compiler.
-
2020‑06‑12:
A history of the LISP 2 project.
-
2020‑06‑11:
Unicode security considerations.
-
2020‑06‑11:
Merkle trees and build systems with OSTree and ninja.
-
2020‑06‑11:
Flat UI elements attract less attention and cause uncertainty.
-
2020‑06‑11:
Speeding up a Git monorepo.
-
2020‑06‑11:
Global kernel locks in Mac OS X APFS.
-
2020‑06‑08:
Failover replication slots for PostgreSQL.
-
2020‑06‑08:
Bifrost meets GNOME: Onward and upward to zero graphics blobs.
-
2020‑06‑08:
The pain points of Haskell: a practical summary.
-
2020‑06‑08:
Getting hands-on with io_uring using Golang.
-
2020‑06‑06:
USB-C is still a mess.
-
2020‑06‑06:
Every Jurassic Park dinosaur illustrated with modern science.
-
2020‑06‑06:
How to organize your Rust tests.
-
2020‑06‑05:
printf-tac-toe, and a guide to printf-oriented programming.
-
2020‑06‑05:
Featherweight Golang.
-
2020‑06‑04:
Modern router architecture and IPv6.
-
2020‑06‑04:
Overcoming the challenges of IPv6 support in BIND.
-
2020‑06‑03:
Testing Rust with manual coverage marks.
-
2020‑06‑03:
Autovectorization for AVX and AVX2 in Rust.
-
2020‑06‑03:
Fuzzing Sequoia-PGP.
-
2020‑06‑03:
Programming Servo: integrating streams.
-
2020‑06‑03:
Drawing a Sierpiński triangle with recursive SQL and SVG.
-
2020‑06‑03:
Locks in PostgreSQL.
-
2020‑06‑03:
Removing PostgreSQL bottlenecks caused by high traffic.
-
2020‑06‑03:
Software development as advanced damage control.
-
2020‑06‑03:
The rise and fall of commercial Smalltalk.
-
2020‑06‑03:
A Smalltalk 80 implementation and tools.
-
2020‑06‑03:
A Kea developer's take on IPv6 and DHCP.
-
2020‑06‑02:
Die analysis of the 8087 math coprocessor's fast bit shifter.
-
2020‑06‑02:
IPv6 and Rust.
-
2020‑06‑02:
Book review: the origin of consciousness in the breakdown of the bicameral mind.
-
2020‑05‑31:
List of well-known web sites that port scan their visitors.
-
2020‑05‑31:
Hoare's rebuttal and bubble sort's comeback: a fast quicksort.
-
2020‑05‑29:
The radix 2^51 trick.
-
2020‑05‑29:
Algol 60 implementation. (1964)
-
2020‑05‑29:
Oxidizing the technical interview.
-
2020‑05‑29:
40th anniversary of uuencode.
-
2020‑05‑28:
What science can tell us about C and C++'s security.
-
2020‑05‑27:
ISO 7000 graphical symbols for use on equipment.
-
2020‑05‑27:
What is FETCH FIRST WITH TIES in PostgreSQL 13?
-
2020‑05‑27:
PostgreSQL tips for optimizing Django and Python performance.
-
2020‑05‑27:
PostgreSQL EXPLAIN ANALYZE may be lying to you.
-
2020‑05‑27:
How to kill a dinosaur in 10 minutes.
-
2020‑05‑27:
History of UNIX manpages.
-
2020‑05‑27:
eBay port scans visitors' computers for remote access programs.
-
2020‑05‑27:
Ancient Egyptian coffins and mystery of 'black goo'.
-
2020‑05‑27:
Random worldbuilding: the nation in history.
-
2020‑05‑27:
macOS 10.15 Catalina: slow by design.
-
2020‑05‑27:
C++20: the unspoken features.
-
2020‑05‑27:
By the Bluebook implementation of Smalltalk-80.
-
2020‑05‑26:
Who says C is simple?
-
2020‑05‑26:
Coolest features of non-Java JVM languages.
-
2020‑05‑26:
How Internet communities function.
-
2020‑05‑26:
Science fiction timeline of inventions.
-
2020‑05‑26:
Bloaty McBloatface: a size profiler for binaries.
-
2020‑05‑26:
Using ASDL to describe ASTs in CPython.
-
2020‑05‑26:
Datamash: command-line computation on tabular files.
-
2020‑05‑26:
Adventures of porting MUSL libc to Sony PS4 BSD.
-
2020‑05‑26:
Why is Idris 2 so much faster than Idris 1?
-
2020‑05‑25:
libfirm/cparser: C99 parser and frontend.
-
2020‑05‑25:
7 scandalous weird old things about the C preprocessor.
-
2020‑05‑25:
std::format in C++20.
-
2020‑05‑23:
DuckDB: an embeddable analytical SQL database.
-
2020‑05‑23:
Porting BSD to GCC and ANSI C. (1988)
-
2020‑05‑21:
Why upgrade PostgreSQL?
-
2020‑05‑21:
Three bugs in the Golang MySQL driver.
-
2020‑05‑20:
A guide to global data in Rust.
-
2020‑05‑20:
The next few years for Rust Analyzer.
-
2020‑05‑20:
Taking advantage of auto-vectorization in Rust.
-
2020‑05‑20:
Structuring and handling errors in Rust.
-
2020‑05‑20:
15 years later: remote code execution in qmail.
-
2020‑05‑20:
The death of corporate research labs.
-
2020‑05‑20:
Lisa Piccirillo solved a decades-old Conway knot problem.
-
2020‑05‑20:
A KVM host in a few lines of code.
-
2020‑05‑19:
Computerized flight booking: a technology that changed air travel.
-
2020‑05‑19:
Does the QUIC handshake require compression to be fast?
-
2020‑05‑15:
Writing a Wayland compositor in Rust.
-
2020‑05‑15:
GPU architecture resources.
-
2020‑05‑15:
Notes on io-uring.
-
2020‑05‑15:
time_it! a case study in Rust macros.
-
2020‑05‑15:
Rust verification tools.
-
2020‑05‑15:
What's the difference between a Rust char and a Go rune? Unicode scalar values vs code points.
-
2020‑05‑15:
Yak shaving #ifdef-style conditional compilation in Rust.
-
2020‑05‑15:
Building an ASN1 codec with the Rust FFI.
-
2020‑05‑15:
Rust closures in FFI.
-
2020‑05‑15:
Five years of Rust.
-
2020‑05‑14:
Differential testing for software (such as compilers).
-
2020‑05‑14:
Bosque: a TypeScript-like programming language that compiles to native code.
-
2020‑05‑14:
Typesetting Markdown with Pandoc, Lua, and ConTeXt.
-
2020‑05‑14:
Hardware store elimination.
-
2020‑05‑14:
This word does not exist.
-
2020‑05‑14:
Why do dragons have eyes on the sides of their heads?
-
2020‑05‑14:
Deno 1.0: TypeScript and v8 on the command line, in Rust.
-
2020‑05‑13:
PostgreSQL now() vs. 'NOW'::timestamp vs. clock_timestamp().
-
2020‑05‑13:
The case of the missing DNS packets.
-
2020‑05‑13:
Why AES-GCM sucks.
-
2020‑05‑13:
A no_std Rust binary.
-
2020‑05‑12:
The success and failure of the Ninja build system.
-
2020‑05‑12:
The science of ginger milk curd.
-
2020‑05‑12:
Confessions of Marcus Hutchins, the hacker who killed WannaCry.
-
2020‑05‑11:
John Conway's FRACTRAN, a ridiculous yet surprisingly deep language.
-
2020‑05‑10:
Ensmallening Go binaries by prohibiting comparisons.
-
2020‑05‑09:
Using integer linear programming to solve complex logic.
-
2020‑05‑09:
The original cookie specification from 1997 was GDPR compliant.
-
2020‑05‑06:
Rules for writers.
-
2020‑05‑06:
Cheating higher ranked types with traits in Rust.
-
2020‑05‑06:
Take care editing bash scripts.
-
2020‑05‑05:
A map of trees in London.
-
2020‑05‑04:
Backup manifests and pg_verifybackup in PostgreSQL 13.
-
2020‑05‑04:
Lessons learned improving RPKI.
-
2020‑05‑04:
How to read UTF-8 passwords on the Windows console.
-
2020‑05‑04:
7 things that could be improved in PostgreSQL.
-
2020‑05‑04:
Oracle vs PostgreSQL: a first glance.
-
2020‑05‑04:
Bit twiddling hacks: check for borrows in bitwise operations.
-
2020‑05‑03:
Fairphone and /e/ team up to build open source, Google-free, sustainable smartphone.
-
2020‑05‑03:
Some medium-hard data analyst SQL interview questions.
-
2020‑05‑02:
Psychic paper: an iOS entitlement XML plist parsing bug.
-
2020‑05‑02:
Concurrent hash tables: fast and general?!
-
2020‑05‑02:
An embedded Rust pattern: zero sized references.
-
2020‑05‑01:
Notes on writing parsers in Rust.
-
2020‑05‑01:
Disabling Snaps in Ubuntu 20.04.
-
2020‑04‑30:
Announcing the SourceHut project hub.
-
2020‑04‑30:
Game of Life in 32 bytes.
-
2020‑04‑30:
HashiCorp Vault is overhyped, and Mozilla SOPS with KMS and git is underrated.
-
2020‑04‑30:
Troubleshooting systemd with SystemTap.
-
2020‑04‑29:
Reducing the size of a Rust GStreamer plugin.
-
2020‑04‑29:
Why strace doesn't work in Docker.
-
2020‑04‑29:
A collection of weird debugging stories.
-
2020‑04‑29:
CSS for i18n.
-
2020‑04‑29:
Postgres.app: an easy Mac OS installer for PostgreSQL.
-
2020‑04‑29:
Paxosmon: gotta consensus them all!
-
2020‑04‑28:
The many flavours of the arcane SQL MERGE statement.
-
2020‑04‑28:
A warm welcome to ASN.1 and DER.
-
2020‑04‑28:
Paxos vs Raft: have we reached consensus on distributed consensus?
-
2020‑04‑27:
First release of rust-analyzer.
-
2020‑04‑27:
For better videoconferencing at home on lousy links.
-
2020‑04‑27:
Towards Sequoia PGP v1.0.
-
2020‑04‑27:
TEMPEST@Home: finding radio frequency side channels.
-
2020‑04‑27:
Byrne's Euclid.
-
2020‑04‑26:
Teleforking a process onto a different computer!
-
2020‑04‑25:
Numerous ways to say "thousand years" in a scientific paper.
-
2020‑04‑25:
Myths about USB multi-key rollover and how USB HID works.
-
2020‑04‑23:
Incremental regular expressions.
-
2020‑04‑23:
From Pratt parsing to the Dijkstra shunting yard.
-
2020‑04‑23:
Better debug stack fixing for Firefox using Rust.
-
2020‑04‑22:
Full text search in milliseconds with Rails and PostgreSQL, without triggers.
-
2020‑04‑22:
Unicode technical note 27: known anomalies in Unicode character names.
-
2020‑04‑22:
Outsourcing reduces productivity.
-
2020‑04‑22:
Things I wished more developers knew about databases.
-
2020‑04‑22:
Linux kernel lockdown, integrity, and confidentiality.
-
2020‑04‑21:
The chairs of Blake's 7.
-
2020‑04‑21:
herbstluftwm: a manual tiling window manager for X11.
-
2020‑04‑21:
OAuth2 best practices cheat sheet.
-
2020‑04‑21:
How the "Memories" 256-byte MS DOS intro works.
-
2020‑04‑21:
API design: Understanding gRPC, OpenAPI and REST and when to use them.
-
2020‑04‑21:
RPKI and RIR 0/0 trust anchors.
-
2020‑04‑19:
SHISHUA: the fastest pseudo-random generator.
-
2020‑04‑19:
Boost UDP transaction performance.
-
2020‑04‑19:
An evaluation of password generation, storage, and autofill in browser-based password managers.
-
2020‑04‑19:
Analysis of DTLS implementations using protocol state fuzzing.
-
2020‑04‑19:
Forecasting logistic curves is hard.
-
2020‑04‑19:
The unpatchable silicon: a full break of the bitstream encryption of Xilinx 7-Series FPGAs.
-
2020‑04‑18:
Inside the Am2901: AMD's 1970s bit-slice processor.
-
2020‑04‑18:
Sneaky marketing: WD, Toshiba, Seagate shipping slower SMR drives without disclosure.
-
2020‑04‑17:
The decline of usability.
-
2020‑04‑17:
SELECT WAT FROM SQL;
-
2020‑04‑17:
GNU binutils: the ELF Swiss Army knife.
-
2020‑04‑17:
Surrounded by Elligators: implementing crypto with nothing to compare to.
-
2020‑04‑17:
SMART: string matching algorithms research tool.
-
2020‑04‑17:
Fix Boyer-Moore with the Rytter correction.
-
2020‑04‑16:
Embedding binary data into programs.
-
2020‑04‑16:
Embedding binary objects in C / ELF.
-
2020‑04‑16:
regex2fat: encode a regular expression into a DFA represented as a graph of FAT32 directories.
-
2020‑04‑16:
Didn't I write this story already? When your fictional pandemic becomes reality.
-
2020‑04‑16:
GCC always assumes aligned pointer accesses.
-
2020‑04‑15:
Types instead of strings for extensible architectures in Rust.
-
2020‑04‑15:
Fallible iterator adapters in Rust.
-
2020‑04‑15:
Cranelift: a possible new backend for Rust.
-
2020‑04‑15:
IJON: exploring deep state spaces via fuzzing.
-
2020‑04‑15:
Gluu: open source IAM / SSO.
-
2020‑04‑14:
Keycloak: open source identity and access management.
-
2020‑04‑14:
Defining the Really Habitable Zone.
-
2020‑04‑14:
Zig programming language 0.6.0 release notes.
-
2020‑04‑14:
Making Unix a little more like Plan9.
-
2020‑04‑14:
What's the type of JSON.parse(JSON.stringify(x)) in TypeScript?
-
2020‑04‑14:
libcpu: a library to emulate several CPU architectures using LLVM.
-
2020‑04‑14:
beebjit: clocking a 6502 to 15GHz!
-
2020‑04‑13:
Simple but powerful Pratt parsing in Rust.
-
2020‑04‑13:
Computers can be understood.
-
2020‑04‑13:
Benchmarking programming language VM JIT warmup.
-
2020‑04‑12:
Braid: an experimental team chat application.
-
2020‑04‑12:
Verification: why it's so hard to create new processors.
-
2020‑04‑12:
The US government runs on COBOL, and now it's falling apart
-
2020‑04‑11:
Error handling in a correctness-critical Rust project.
-
2020‑04‑11:
Eytzinger binary search.
-
2020‑04‑10:
Understanding JavaScript module formats and tools.
-
2020‑04‑09:
Optimizing lazy initialization in TruffleRuby with deoptimization.
-
2020‑04‑09:
Error handling in Rust: from `failure` to `fehler`.
-
2020‑04‑08:
Rules for data modelling with DynamoDB.
-
2020‑04‑08:
The ECHELON affair: the European Parliament and the global interception system.
-
2020‑04‑08:
Maximator: European signals intelligence cooperation.
-
2020‑04‑08:
How owls fly without making a sound.
-
2020‑04‑08:
The COBOL problem.
-
2020‑04‑07:
entr: run arbitrary commands when files change.
-
2020‑04‑05:
pg_hint_plan: execution plan hints for PostgreSQL.
-
2020‑04‑04:
6 things Markdown got wrong.
-
2020‑04‑04:
10 things I hate about PostgreSQL.
-
2020‑04‑04:
On generic traits and associated types in Rust.
-
2020‑04‑03:
Some more advanced aspects of pattern matching in Rust.
-
2020‑04‑03:
The Omit helper type in TypeScript.
-
2020‑04‑03:
Reducing tail latencies with automatic yielding in Tokio on Rust.
-
2020‑04‑03:
Bug bounty platforms buy researcher silence and violate labor and privacy laws.
-
2020‑04‑03:
Anatomy of CVE-2019-5736, a runc container escape.
-
2020‑04‑03:
RISC OS and NetBSD running on the same SoC.
-
2020‑04‑02:
CO2meter: a Python interface to USB CO2 monitor devices.
-
2020‑04‑02:
The open air factor: coronavirus and the sun.
-
2020‑04‑02:
Fish can reduce the methane emissions from rice paddies.
-
2020‑04‑02:
PID without a PhD.
-
2020‑04‑01:
Conditions and restarts in Common Lisp.
-
2020‑04‑01:
How is the Linux kernel tested?
-
2020‑04‑01:
Writing an OS in Rust: support for async/await.
-
2020‑04‑01:
Analysis of Google Chromium C++ compilation times.
-
2020‑04‑01:
Videogame doesn't infringe tattoo copyright by depicting basketball players.
-
2020‑03‑31:
32 bit time_t in Linux: the end of an epoch.
-
2020‑03‑31:
QuineDB: a quine that is also a key-value store.
-
2020‑03‑31:
The long and complicated history of why there are 360 degrees in a circle.
-
2020‑03‑30:
Lead-free solder is better for you.
-
2020‑03‑29:
Golang quirks.
-
2020‑03‑29:
PostgreSQL schema design with row-level security.
-
2020‑03‑29:
Leonardo Torres y Quevedo: an early computer designer from Spain.
-
2020‑03‑29:
Percy Ludgate: an early computer designer from Ireland.
-
2020‑03‑29:
Lessons from the Unix stdio ABI.
-
2020‑03‑29:
Setting up git identities.
-
2020‑03‑29:
Seven stages of open software.
-
2020‑03‑28:
How are Unix pipes implemented?
-
2020‑03‑28:
In-memory compute using off-the-shelf DRAM.
-
2020‑03‑28:
Protecting log records at 30,000 feet with syslog-ng.
-
2020‑03‑28:
Repairing a vintage 40-kilovolt xenon lamp igniter.
-
2020‑03‑28:
Icons for obsolete technology in Unicode.
-
2020‑03‑28:
Hyperlinks in terminal emulators.
-
2020‑03‑28:
Static analysis in gcc 10.
-
2020‑03‑28:
The Chapel parallel programming language.
-
2020‑03‑26:
Firefox's low-latency WebAssembly compiler.
-
2020‑03‑26:
Thomas Piketty takes on the ideology of inequality.
-
2020‑03‑26:
Fast and simple interned strings in Rust.
-
2020‑03‑26:
Optimising the size and performance of std::borrow::Cow<T> in Rust.
-
2020‑03‑26:
10 most(ly dead) influential programming languages .
-
2020‑03‑26:
BBC computer literacy project archive.
-
2020‑03‑25:
Investigating DNS lookup failures in Kubernetes.
-
2020‑03‑25:
git-2.26 release highlights.
-
2020‑03‑25:
Learn d3.js.
-
2020‑03‑25:
Breaking the random numbers in two Linux KASLR patches.
-
2020‑03‑25:
Coyote: Making it easier for .NET developers to build reliable asynchronous software.
-
2020‑03‑24:
zig cc: a powerful drop-in replacement for gcc or clang.
-
2020‑03‑24:
Concurrent programming, with examples.
-
2020‑03‑24:
X.509 web PKI insecurity.
-
2020‑03‑23:
Three typefaces for mathematics: The development of Times 4-line Mathematics, AMS Euler, and Cambria Math.
-
2020‑03‑23:
Why don't we just ban targeted advertising?
-
2020‑03‑23:
JANET LINX connection outage report.
-
2020‑03‑23:
An ineresting Discord outage report. (Elixir / Golang / Python / etcd)
-
2020‑03‑23:
Nornir: an automation framework in Python.
-
2020‑03‑23:
Napalm network automation.
-
2020‑03‑21:
An illustrated jq tutorial.
-
2020‑03‑20:
How to write documentation for a Rust crate.
-
2020‑03‑19:
ARIN VM cluster outage due to SAN failure.
-
2020‑03‑18:
JavaScript: the first 20 years. (HOPL)
-
2020‑03‑17:
Rewriting the heart of Dropbox's sync engine in Rust.
-
2020‑03‑16:
Getting started with Rust and Rocket for http services.
-
2020‑03‑15:
Finding a problem at the bottom of the Google stack.
-
2020‑03‑15:
MathJax turns 3.0.
-
2020‑03‑15:
Best practices for ACME client implementations.
-
2020‑03‑15:
Out of the Box dynamic dispatch in Rust.
-
2020‑03‑15:
xmake: a cross-platform build utility based on lua.
-
2020‑03‑15:
An Introduction to modern CMake.
-
2020‑03‑15:
A history of the trampoline.
-
2020‑03‑14:
Foundations of databases. (1995)
-
2020‑03‑14:
Automatic chess boards.
-
2020‑03‑14:
Cut / fold templates for paper mechanisms.
-
2020‑03‑13:
EdDSA, Ed25519, Ed25519-IETF, Ed25519ph, Ed25519ctx, HashEdDSA, PureEdDSA, WTF?
-
2020‑03‑13:
Analog computer museum.
-
2020‑03‑13:
Cyberpunk: then and now.
-
2020‑03‑13:
David Rumsey historical map collection at Stanford University.
-
2020‑03‑13:
HTTP desync attacks: request smuggling reborn.
-
2020‑03‑13:
The SOC2 starting seven.
-
2020‑03‑11:
How BBsmart email viewer worked, the best-selling BlackBerry app of all time.
-
2020‑03‑11:
The story of PS1/PS2 backwards compatibility from the engineer who built it.
-
2020‑03‑11:
Finding Mona Lisa in the Game of Life.
-
2020‑03‑11:
TRRespass: rowhammer target row refresh bypass.
-
2020‑03‑11:
Thinking psycopg3.
-
2020‑03‑11:
Actually using wasm with Rust.
-
2020‑03‑11:
What's the deal with IPv6 link-local addresses?
-
2020‑03‑11:
Your circuit breaker timeouts are probably misconfigured.
-
2020‑03‑10:
Defunctionalization: the best refactoring you've never heard of.
-
2020‑03‑10:
Setting height and width on HTML <img> tags is important again.
-
2020‑03‑09:
Green's dictionary of slang.
-
2020‑03‑09:
An experimental study on the effect of procedure under unexpected situations.
-
2020‑03‑09:
The TAOS operating system. (Byte, 1991)
-
2020‑03‑09:
Cryptographic signatures, surprising pitfalls, and ACME / Let's Encrypt.
-
2020‑03‑08:
Capability-based computer systems. (1984)
-
2020‑03‑06:
Recent and future pattern matching improvements in Rust.
-
2020‑03‑04:
IBM VS. MIT: an Apollo computer showdown.
-
2020‑03‑04:
The core memory inside an Apollo Saturn V rocket's computer.
-
2020‑03‑04:
Bluespec hardware description language compiler.
-
2020‑03‑04:
An introduction to d3.js.
-
2020‑03‑03:
A layman's guide to a subset of ASN.1, BER, and DER.
-
2020‑03‑03:
The growth of command line options, 1979-present.
-
2020‑03‑03:
The problem with single-threaded shared mutability.
-
2020‑03‑03:
Kill the newsletter!
-
2020‑03‑02:
Remote access to production infrastructure (death to the VPN!)
-
2020‑03‑02:
New sense discovered in dog noses: the ability to detect heat.
-
2020‑03‑02:
CRLite: Finally a fix for broken TLS certificate revocation?
-
2020‑03‑02:
The Odin programming language.
-
2020‑03‑02:
The Beef programming language.
-
2020‑03‑02:
The Worst programming language.
-
2020‑03‑01:
There's an entire industry dedicated to making foods crispy.
-
2020‑03‑01:
Concurrent programming with effect handlers in multicore OCaml.
-
2020‑02‑29:
A half-hour to learn Rust.
-
2020‑02‑28:
Why did I wake up just before my alarm clock went off?
-
2020‑02‑28:
Dave Prosser's C preprocessor algorithm.
-
2020‑02‑28:
TeleHammer: cross-privilege-boundary rowhammer through implicit DRAM accesses.
-
2020‑02‑28:
Show me your clipboard data.
-
2020‑02‑27:
What can you preseed when installing Debian?
-
2020‑02‑27:
How old are the symbols on these keys?
-
2020‑02‑27:
MLIR: a compiler infrastructure for the end of Moore's Law.
-
2020‑02‑26:
Delphinusdnsd: a small authoritative DNS server.
-
2020‑02‑26:
Why I'm not fan of UUIDs in databases.
-
2020‑02‑26:
PostgreSQL parallelism, what next?
-
2020‑02‑26:
UK public transport API.
-
2020‑02‑26:
The Ars Technica semi-scientific guide to Wi-Fi access point placement.
-
2020‑02‑26:
JSPaint.
-
2020‑02‑25:
Smithsonian Institution open access.
-
2020‑02‑25:
Modern, functional Common Lisp: myths and tips.
-
2020‑02‑25:
Securing Firefox with RLBox: WebAssembly sandboxes for C++ libraries.
-
2020‑02‑25:
Selectors explained: translate CSS selectors into plain English.
-
2020‑02‑23:
A guide to running Elasticsearch in production.
-
2020‑02‑23:
Stangenkunst: mechanical transmission of power.
-
2020‑02‑23:
A pragmatic approach to global state in a 3rd party library called from Rust.
-
2020‑02‑23:
Some nuances of undefined behavior in Rust.
-
2020‑02‑23:
Coverage-based fuzzing with libfuzzer.
-
2020‑02‑23:
QUIC and OpenSSL 3.0.
-
2020‑02‑23:
Insights: visually explore a PostgreSQL database.
-
2020‑02‑23:
Learn TLA+
-
2020‑02‑23:
Taking care of code ... more and more code ...
-
2020‑02‑22:
Hell of a handshake: abusing TCP for reflective amplification DDoS attacks.
-
2020‑02‑22:
Container security: nobody knows what it means but it's provocative.
-
2020‑02‑22:
Paris mayor pledges a greener '15-minute city'.
-
2020‑02‑22:
Does register selection matter to performance on x86 CPUs?
-
2020‑02‑21:
Fixing memory leaks in JavaScript in a web browser.
-
2020‑02‑21:
Racket-on-Chez Scheme status, February 2020.
-
2020‑02‑20:
Computer animation in 1961: the Stanford card stunt program. (YouTube)
-
2020‑02‑20:
PUB: an early scriptable markup language.
-
2020‑02‑19:
Recovering from useless vacuuming in PostgreSQL.
-
2020‑02‑19:
Taking back control from systemd networking.
-
2020‑02‑19:
Transaction isolation repeatable read in PostgreSQL vs MySQL.
-
2020‑02‑19:
Elixir, PostgreSQL, and query plan cache performance oddities.
-
2020‑02‑18:
The first computers in East Africa, and what became of them.
-
2020‑02‑18:
3-way FTP: Pushing files around with silly and unusual methods.
-
2020‑02‑18:
C++ move, simply (with appendices).
-
2020‑02‑17:
An emulator for a Sun 2 workstation.
-
2020‑02‑17:
playwright: a Node.js library to automate Chromium, Firefox and WebKit with a single API.
-
2020‑02‑16:
The human hemisphere.
-
2020‑02‑16:
OCSP checks for EV certificates make the web slow and unreliable.
-
2020‑02‑16:
The worst of time64 breakage.
-
2020‑02‑15:
Open access journals get a boost from librarians, much to Elsevier's dismay.
-
2020‑02‑15:
Evolution of the x86 context switch in Linux.
-
2020‑02‑15:
Creating a logical replica from a snapshot in RDS PostgreSQL.
-
2020‑02‑15:
Designing a performant row level security schema in PostgreSQL.
-
2020‑02‑15:
How sustainable is a solar powered website?
-
2020‑02‑15:
Improving compilation time of C/C++ projects.
-
2020‑02‑15:
What made the 1960s CDC6600 supercomputer fast?
-
2020‑02‑13:
The myth of the barter economy.
-
2020‑02‑13:
The parliamentary electoral system in Denmark.
-
2020‑02‑13:
Summer time clock changes: is it time for change in the UK and EU?
-
2020‑02‑13:
A bestiary of single-file programming language implementations.
-
2020‑02‑13:
Stage magic and software design.
-
2020‑02‑12:
Toward _FORTIFY_SOURCE parity between Clang and GCC.
-
2020‑02‑12:
Nuvia's ex-Apple CPU design team throws down the gauntlet to the server processor incumbents.
-
2020‑02‑12:
Gears.
-
2020‑02‑12:
ParaSail: parallel specification and implementation language.
-
2020‑02‑12:
How to escalate privileges and steal secrets in Google Cloud Platform.
-
2020‑02‑12:
Circllhist: a log-linear histogram quantile sketch for IT infrastructure monitoring.
-
2020‑02‑11:
Rotary dial cellphone.
-
2020‑02‑11:
A popular self-driving car machine learning dataset is missing labels for hundreds of pedestrians.
-
2020‑02‑11:
Investigating the performance overhead of C++ exceptions.
-
2020‑02‑11:
The Linux kernel /dev/urandom CSPRNG is now good!
-
2020‑02‑10:
Fax on the beach: The story of EO GO, the audacious, totally calamitous iPad of the 1990s.
-
2020‑02‑10:
Memory bandwidth napkin math and benchmarks.
-
2020‑02‑10:
A partial tour through the UNIX Bourne shell.
-
2020‑02‑10:
The discovery of metastability in digital computer circuits.
-
2020‑02‑10:
OmniXtend cache-coherent memory fabric over Ethernet for RISC-V.
-
2020‑02‑10:
Alpha: a history in facts and comments.
-
2020‑02‑09:
Deep sea diving: undersea telecommunication cables.
-
2020‑02‑09:
Lessons learned from writing ShellCheck.
-
2020‑02‑09:
50 years ago, better transistors and switching regulators revolutionized computer power supplies.
-
2020‑02‑09:
They called it "big iron" for a reason: Cray-1M site planning reference manual.
-
2020‑02‑09:
Stacked borrows: an aliasing model for Rust.
-
2020‑02‑09:
Librem 5: an open source phone shows the cost of being different.
-
2020‑02‑09:
Combinatris: Tetris with SKI combinators.
-
2020‑02‑08:
Dangerous domain corp.com goes up for sale.
-
2020‑02‑07:
Measuring space-time behaviours of piano keys with Rust.
-
2020‑02‑06:
Apollo 11 guidance computer vs USB-C chargers.
-
2020‑02‑06:
The JVM's mysterious AllocatePrefetch options: what do they actually do?
-
2020‑02‑06:
Before the DNS: how yours truly upstaged the NIC's official HOSTS.TXT
-
2020‑02‑05:
Security flaw in WhatsApp desktop app.
-
2020‑02‑05:
Units of measure in Rust with refinement types.
-
2020‑02‑05:
On the process that led to the introduction of leapseconds.
-
2020‑02‑03:
unsmear: convert to and from timescales with smeared leap seconds.
-
2020‑02‑03:
The state of full text search in PostgreSQL 12.
-
2020‑02‑02:
Watching for software inefficiencies with Valgrind.
-
2020‑02‑02:
JavaScript got better while I wasn't looking.
-
2020‑02‑02:
Too much locality... for stores to forward.
-
2020‑02‑02:
Old CSS, new CSS.
-
2020‑02‑02:
Typesense: an open source, typo tolerant search engine.
-
2020‑02‑02:
PostgresqlCO.NF: a PostgreSQL configuration guide.
-
2020‑02‑01:
8 tips for better negotiation.
-
2020‑02‑01:
TypeScript's quirks: How inconsistencies make the language more complex.
-
2020‑02‑01:
Writing runbook documentation when you're an SRE.
-
2020‑02‑01:
MIDI 2.0 could profoundly change the way music sounds.
-
2020‑02‑01:
Lessons learnt updating a Rust library to std::future.
-
2020‑02‑01:
Returning trait objects in Rust.
-
2020‑02‑01:
Packaging a Rust project for Debian.
-
2020‑02‑01:
Build your own block_on() in async Rust.
-
2020‑02‑01:
A stack-less Rust coroutine library under 100 LoC.
-
2020‑01‑31:
MIR: a lightweight JIT compiler project.
-
2020‑01‑30:
Some useful probability facts for systems programming.
-
2020‑01‑29:
Migrating from Oracle to PostgreSQL: tips and tricks.
-
2020‑01‑29:
pgagroal: a high-performance connection pool for PostgreSQL.
-
2020‑01‑28:
Hacking on clang is surprisingly easy.
-
2020‑01‑28:
128 bits of security vs 128 bits of security: know the difference.
-
2020‑01‑28:
git bundle: the right way to email a git repository.
-
2020‑01‑28:
How we've made the web use dirty energy.
-
2020‑01‑27:
Developing in production.
-
2020‑01‑27:
Building containers without Docker.
-
2020‑01‑27:
What we still haven't learned from Gamergate.
-
2020‑01‑27:
A list of LD_PRELOAD hacks.
-
2020‑01‑26:
GNU Recutils: a database management system using human-readable text files.
-
2020‑01‑26:
A Unix quiz (with answers!)
-
2020‑01‑26:
Dhall for Kubernetes.
-
2020‑01‑26:
Dimensional analysis in programming languages.
-
2020‑01‑26:
The text editors wiki.
-
2020‑01‑25:
Why the Sorbet typechecker for Ruby is fast.
-
2020‑01‑25:
Getting everything wrong without doing anything right! (YouTube)
-
2020‑01‑25:
What to know about GPS receiver elevation.
-
2020‑01‑25:
Measuring altitude using precision frequency transfer between optical atomic clocks.
-
2020‑01‑25:
New Zealand geodetic datum deformation model.
-
2020‑01‑25:
What happens to maps when tectonic plates move?
-
2020‑01‑25:
CASPaxos: linearizable databases without logs.
-
2020‑01‑25:
Modelling BBR's interactions with traditional TCP loss-based congestion control.
-
2020‑01‑24:
Resource scarcity in public clouds.
-
2020‑01‑23:
New browser on the block: Flow, from Ekioh in Cambridge.
-
2020‑01‑23:
The difficulties of retiring Internet Explorer.
-
2020‑01‑23:
A floating point bit twiddling toy.
-
2020‑01‑22:
The history of HAProxy.
-
2020‑01‑21:
A Unix quiz.
-
2020‑01‑21:
axel: lightweight CLI download accelerator.
-
2020‑01‑21:
The hunt for the fastest zero: when does C++ use memset?
-
2020‑01‑20:
'Remarkable' computational complexity proof that MIP* = RE.
-
2020‑01‑19:
IEEE 802.3cg 10Mb/s single-pair Ethernet: a guide.
-
2020‑01‑19:
10Mbit/s single-pair Ethernet enables connected intelligence in 2020.
-
2020‑01‑19:
The soundness pledge in Rust.
-
2020‑01‑19:
Mystery Flesh Pit National Park: a Redditor's colossal feat of worldbuilding.
-
2020‑01‑19:
C++ coroutines gcc initial implementation pushed to master.
-
2020‑01‑19:
No, dynamic type systems are not inherently more open.
-
2020‑01‑19:
The Cryptopals cryptography challenges.
-
2020‑01‑18:
About face (recognition).
-
2020‑01‑18:
fast_template: really easy blogging with GitHub Pages.
-
2020‑01‑17:
eSQLate: Build minimum viable admin panels quickly.
-
2020‑01‑16:
What is the random oracle model and why is it collapsing under the weight of its own contradictions?
-
2020‑01‑16:
Autocomplete as an interface.
-
2020‑01‑16:
Two edge cases in PostgreSQL full-text search.
-
2020‑01‑16:
EASYCHAIR: CIA covert listening devices.
-
2020‑01‑16:
Mistakes were made: huge ERP screwups.
-
2020‑01‑16:
Making the LinkedIn A/B testing engine 20x faster.
-
2020‑01‑15:
Is TypeScript worth it?
-
2020‑01‑15:
How to identify an "immoral maze".
-
2020‑01‑15:
Some advantages of the Caddy http server.
-
2020‑01‑14:
The split personalities of "brutalist" web development.
-
2020‑01‑14:
CSVlint: A ruby gem to validate CSV files and check their syntax and contents.
-
2020‑01‑14:
CleverCSV: a Python package for handling messy CSV files.
-
2020‑01‑14:
The few remaining uses of the name "Macintosh".
-
2020‑01‑13:
1195725856 and other mysterious numbers.
-
2020‑01‑13:
Reflections on Mercurial's journey to Python 3.
-
2020‑01‑13:
wasm3: The fastest WebAssembly interpreter.
-
2020‑01‑13:
The Niland geyser: a moving mudpot.
-
2020‑01‑12:
The deep sea.
-
2020‑01‑12:
Visual subnet calculator.
-
2020‑01‑12:
HTML attributes to improve your users' two factor authentication experience.
-
2020‑01‑11:
Scheme: R7RS versus R6RS.
-
2020‑01‑11:
T1: a programming language for constrained environments, derived from BearSSL.
-
2020‑01‑11:
A lazy fix 20 years ago means the Y2K bug is taking down computers now.
-
2020‑01‑10:
Ironies of automation.
-
2020‑01‑10:
How does a new generation of researchers perceive Sci-Hub?
-
2020‑01‑10:
kudeki-chain: git commits with increasing numbers of leading zeroes.
-
2020‑01‑09:
The birth of the Internet in the UK. (YouTube)
-
2020‑01‑09:
Web front-end performance checklist 2020.
-
2020‑01‑09:
Fast IPv4 to hostname lookups: PostgreSQL vs ClickHouse.
-
2020‑01‑09:
A brief history of badge ribbons at sf conventions.
-
2020‑01‑08:
The many places you can set PostgreSQL configuration parameters.
-
2020‑01‑08:
How to effectively dump PostgreSQL databases.
-
2020‑01‑08:
Neater async failure handling in Typescript.
-
2020‑01‑08:
Prometheus for beginners.
-
2020‑01‑07:
How to start a blog using Hugo.
-
2020‑01‑07:
EMI spikes from gas lift chairs can cause display interference.
-
2020‑01‑07:
SHA-1 is a shambles. (less technical overview)
-
2020‑01‑07:
SHA-1 is a shambles: first chosen-prefix collision on SHA-1 and application to the PGP web of trust.
-
2020‑01‑07:
Pegasus Mail, 30 years on.
-
2020‑01‑07:
Execute-only pages vs PAN (privileged access never) on arm64.
-
2020‑01‑07:
Debian Buster sysvinit notes.
-
2020‑01‑07:
Removing the Linux /dev/random blocking pool.
-
2020‑01‑07:
Ethernet power line adapter radio noise interference.
-
2020‑01‑06:
ClickHouse cost-efficiency in action: analyzing 500 billion rows on an Intel NUC.
-
2020‑01‑06:
Files are fraught with peril.
-
2020‑01‑05:
Algorithms interviews: theory vs. practice.
-
2020‑01‑05:
Linus on spinlocks and schedulers.
-
2020‑01‑04:
Notes on technical writing.
-
2020‑01‑04:
Mutexes are faster than spinlocks.
-
2020‑01‑04:
What's what in the world of TeX.
-
2020‑01‑04:
Our neophobic, conservative AI overlords want everything to stay the same.
-
2020‑01‑03:
An entomologist rates emoji ants.
-
2020‑01‑03:
Which emoji scissors can cut?
-
2020‑01‑03:
Interior mutability patterns in Rust.
-
2020‑01‑03:
Spinlocks considered harmful in Rust.
-
2020‑01‑02:
Serving dynamic vector tiles from PostGIS.
-
2020‑01‑02:
Why MemSQL uses skiplist indexes.
-
2020‑01‑02:
A brief history of liquid computers.
-
2020‑01‑02:
I'm not feeling the async backpressure.
-
2020‑01‑02:
Polio eradication program faces hard choices as endgame strategy falters.
-
2020‑01‑01:
Evaluating BBRv2 on the Dropbox edge network.
-
2020‑01‑01:
Semigroup resonance FizzBuzz.
-
2020‑01‑01:
Rewriting m4vgalib in Rust.
-
2020‑01‑01:
Measuring mutexes, spinlocks, and how bad the Linux scheduler really is.
-
2020‑01‑01:
Right-to-left styling: a guide on how to style for RTL in CSS.