John Hobbs


My name is John Hobbs, and I do computer stuff.

I also garden, keep bees, brew mead, roast coffee, keep chickens, etc.

GitHub ~ Mastodon ~ Instagram


Notes on Keeping Bees

After four years of keeping bees, here are some things I've learned which I don't remember seeing in the beginner books I've read.

Detecting Sucessfull AES Decrypts With Padding

Unauthenticated AES works even if you have the wrong key. Here's a way to tell you have the right key.

The Authy Backup System

A look at how the Authy authenticator app works, in the pursuit of securely backing up my MFA tokens offline.

Moving from WordPress to 11ty

After 17 years with WordPress, it's time for something different. Here's how I migrated 500 posts to a static site generator.

A peek inside pinentry

I interact with pinenty daily, but I don't really understand it. This post dives into how it is invoked and can be used outside of GPG for your own projects.

Netlify + Cloudflare = Crazy Delicious

Cult of the Party Parrot is a fairly simple static site, but it pushes a lot of traffic. Combining the magic of Netlify with the sweet cache layer of Cloudflare with a dash of Google Cloud functions gives us the best of both.

Easy visual identification of git short sha's.

A list of short SHA's can be hard to read, wrapping them in color can help.

Using environment secrets as build arguments in Google Cloud Build

Cloud Build is a nice tool for continuous building of your Docker images. Using an environment secret in the build is a gap in the docs, here is how I did it.

Party Gopher!

go func(partyordie bool) {...}()

A New GPG Key

After a decade it's time to create a new GPG key. There's no real excuse not to use a Yubikey anymore either. This will cover the process I took from start to finish, with subkeys, paperkey backups, git signing and SSH with gpg-agent.