Cleaning up Google Calendar

I stopped using Google Calendar as a primary calendar a few years ago, but I still had a lot of old events in there far into the future. I must have imported the lunar cycle at some point because most of them are named like "New moon" or "Full moon …

Separating Videos from Google Photos

Storage is cheap, but it's not free and 4K home movies use a lot of storage. There's no easy way to find and delete a particular file or type of file in Google Photos, and there's no way to bulk delete with a tool or even the API. Here's a …

Virtual Machines as Code

Optimizing for determinism in virtual machines. This approach can be used to vend the same virtual machine image version in many formats e.g. VHD for Azure, Stack, and Hyper-V; OVA for VMware, VirtualBox; QCOW2 for KVM, and of course RAW. Table...

Securing AWS Credentials

A single rogue npm module, Ruby gem, PyPi module, or ill-fated cURL command could expose you (and your employer) to extreme risk. Table of contents: Is this you? The Problem A Solution Do it Yourself Shortcuts Enable Privileges Disable Privileges...

Fly.io Programmable Front-end

In short, a programmable cloud delivery network (CDN) aka front-end like Fly.io is an API by which to configure the logical edge of an application stack. Fly.io also provides an intuitive web UI which simplifies common administrative operations....

CloudFlare DNS for Network Manager

CloudFlare provides a performant recursive nameserver along with a promise to never surveil their users. Their Linux quickstart involves modifying the standard C library's resolver (i.e. /etc/resolv.conf) which is a terrible idea if you are using...

Keybase

I first started using @KeybaseIO a few years ago to link together my social accounts. This creates a web of accounts which is dramatically more difficult to impersonate than any single account. So, it's an exercise in impeding identity theft. A...