Advent of Code: Libraries
The libraries I built for Advent of Code
The libraries I built for Advent of Code
My experiences solving every Advent of Code challenge released so far
How to choose a random subset of a large set efficiently
How do X.509 certificates actually work, and what's actually inside them?
An introduction to the fossil vcs, and some comparison to git
A cryptographic technique to create constrainable auth tokens
A neat technique for building parsers out of smaller parsers
A quick tour through the source of rogue(1), one of the classic Unix games
A technique for shipping binaries which are provably derived from specific source trees
Experiences doing Advent of Code 2022 in Fennel, a tiny Lisp that compiles to Lua
My experiences creating and publishing my first package for Alpine Linux
My experiences using Alpine Linux on an 11th gen Framework laptop
An introduction to the lambda calculus, given as a Scheme program
Why do some libc structs have prefixes on all their names?
A rewrite of the historic GPM in C, slightly touching on differences between C and CPL
Trying out the Hare programming language
Some thoughts on protecting your most important data, and how I do it
A worked example of how some types of JIT compilation work, in C
Some design notes on how to structure an IRC client with an eye towards persistent presence
An overview of email anonymization tools and attacks against them
A review of "A Psalm For The Wild-Built" by Becky Chambers
An amd64 assembly of the core of the chacha20 stream cipher
The world's simplest image format!
How I make backups of my systems, 2022 edition
How self-extracting shell tarballs work and why they exist
A historical overview of the m4(1) macro language
History and design of the tar(1) file format
Where exactly did autotools come from, and what were the people who created it thinking?
In cryptography, what are constant-time operations and why do they matter?
An algorithm for doing precedence-aware parsing of mathematical expressions into a sequence of stack ops in a single pass
A fast algorithm for finding substring matches, implemented in C
How instruction encoding and decoding works in hardware and software
How length-extension attacks work against Merkle-Damgard hash functions
What virtual machines are, how they work, and a worked example of one in C.
How the subdirectories in my home directory are laid out and why
Some notes from getting my Pinebook Pro set up
A data structure (a tree of hashes) to allow for efficient validation of parts of a huge data set.
A way to use trees of hashes to produce a simple, post-quantum signature scheme
A data structure for handling buffered messages being fanned out to many clients
What makes protocols "boring", and why is boring-ness desirable?
A way to register members of a set (modules, etc) at program startup time in C++ without needing to fill out a big table at compile time
A cool data structure for distributed programming
How to use /bin/ed!
Just a bit of life advice stolen from Ann Landers.
What the main components of a rudimentary Unix userland are and how to write them in C.