While examining the XLSX file format (which uses ZIP), I noticed something odd: Excel stores all strings in a centralized "shared strings" file and references them by index. This manual deduplication surprised me, since I would expect the compression algorithm to handle this automatically. Looking into it further helped …
OCaml operator cheatsheet
One of the hardest parts of learning OCaml is figuring out what the infix operators do, since they're just a string of symbols and you can't find them with a Google search. This is my attempt to make a cheatsheet for whenever you're wondering what a random series of symbols means.
Replacing computer setup with Ansible
I've been keeping a computer setup page on my website for a while, describing the exact steps needed to make a computer to work how I want after a new OS install. I've also had a note there for years saying eventually I should use Ansible for this …
How to buy a mattress online (with reviews)
My girlfriend and I both replaced our mattresses this fall. Because we have different sizes of mattresses and different preferences, and neither of our first picks worked for us, I ended up trying out almost all of the popular online mattresses. I also spent some time learning about mattresses before …
Setting a minimum viewport width for responsive pages
My hobby recently has been making website scale better on phones, but I ran into a problem on several of them: The viewport meta tag assumes that a website either has a fixed width or that it scales to any possible width. I investigated several solutions and eventually settled on …