Josh Betz

Engineer, Solver of problems, Wisconsin Badger

I moved this site over to an awesome new .blog domain a few weeks ago. You can get your own at or any number of other registrars.

Today I decided to build a new WordPress theme to go along with the new domain. It’s been a while since I built a WordPress theme. For the last few years I had been using the default themes that ship with WordPress. It was fun to play designer again for a few hours.

I’m starting with something very simple — there’s not even support for comments yet. Though, I have a few ideas I’d like to experiment with if I have time. If you would like to use the theme or contribute, it’s over on GitHub.

2017 Resolutions

Happy New Year! I’ve spent the last week reflecting on 2016 and thinking about what I’d like to change in the coming year. You can probably see there’s an accidental theme. There are no professional goals, which wasn’t on purpose, but I think even one or two of these would positively impact my focus during the day.

Meditate regularly

I’m going to use Headspace at least once a week. The idea is to meditate every day before work, but I know I will miss some days and that’s fine.

Run a half marathon

And also train for it. I have this terrible habit of signing up for races with the idea that it will force me to run more and then just running the race out of shape.

The half marathon isn’t really in question. I guess the real resolution is to train for it.

Read more books and less news

I find books — especially paperbacks — to be more relaxing and calming. Right now I’m reading Modern Romance by Aziz Ansari. He writes in the same voice he performs and it’s pretty hilarious. I’m very late to the game on this one, but highly recommend it if you liked his Netflix special.

For news, I’d like an app that sends notifications about actual, important, breaking news. I had high hopes for the Apple News app, but they let publishers decide what justifies a push notification.

I’ve started to use the news as a crutch, like Facebook or Twitter, when I’m bored. The fact is that most of it isn’t important enough, also like Facebook and Twitter, that I need to know it in the next 24 hours — or ever.

Play more music

I tried to be specific for most of these, but the music thing is hard. Realistically, I have a couple months of Saturdays left until I’d rather be on a bike ride than playing guitar. I learned a few new songs over the holiday break and generally find it’s a good way to clear my mind when it’s too cold to go for a run.

GPG & Git

Back in April, Github added support for a long-standing git feature — commit signing. Technically you’ve been able sign commits with -S since git 1.7.9, but there was no UI for it on Github. This update led folks to start automatically signing all commits, but that’s not necessary.

The git tree is a directed acyclic graph — meaning every commit references its parent — and hashed with SHA-1. In practice, this means it’s impossible to change the history of a git repo without rewriting all succeeding commits. Said another way, if you trust the SHA-1 hash of the head of the tree, you can implicitly trust the entire tree.

What does this have to do with signed commits? Well, when you sign a commit, you’re also signing all previous commits. This is one of the reasons that git originally only allowed tags to be signed:

Signing each commit is totally stupid. It just means that you automate it, and you make the signature worth less. It also doesn’t add any real value, since the way the git DAG-chain of SHA1’s work, you only ever need _one_ signature to make all the commits reachable from that one be effectively covered by that one.

You can automatically sign all tags by adding the following to your .gitconfig file:

gpgsign = true

If you don’t tag releases, another good place to sign commits is at the end of a pull request. After a long chain, one signed commit effectively signs the entire branch. You can even add an empty, signed commit with:

git commit --gpg-sign --allow-empty

This way, there’s no need to enter a GPG passphrase for each commit, but only when you need it.

Choosing Wrong

Last week’s episode of This American Life is about people making the wrong choices even when they know they are wrong. The first segment, from Malcom Gladwell’s new podcast, Revisionist History, is especially interesting. He talks to Rick Barry about Wilt Chamberlain and perfectionism.


« Previous PageNext Page »