Skip to content

Christopher James Willcock

Enjoy Kaizen


Signing My Git Commits w/ GPG

UPDATE: I elaborated on this in my follow-up post Why Sign Git Commits?

I have my master, secret GPG key stored offline in an encrypted USB drive, but keep a signing subkey on my local machine for day-to-day use. I ensured that my GPG signing subkey was available to the git client on the host where my development work was taking place, and configured that git client to use my signing subkey.

On commit, I answer the challenge with my GPG passphrase to apply my signature to my work using my private signing subkey. Such signed commits are indicated as verified by both my-own installation of Gitea at and third-parties Github, et al.

I found the article Create GnuPG key with sub-keys to sign, encrypt, authenticate by Gerhard, via Tinned Software, helpful in getting started with GPG.

I found the article Using an offline GnuPG master key by Damien Goutte-Gattat helpful in learning to remove the secret from my master key, so that I could have this offline master key while keeping the convenience of signing keys on my workstation.

Found while looking for a port number to use. No time to read now but this looks interesting. Bookmarked!

More Unfinished


My Keyboard

The daily duo; my keyboard and mouse.

I acquired my Ergodox kit from Massdrop.

I have Colemak at power-on, Qwerty-toggle on the top-outermost index position on each hand, and a third layer, which I seldom use, for the right-hand numpad. It was 5 hours of soldering for an out-of-practice fellow like me. The hundred-and-some SMD diodes should be thrown far into the woods gave me some years back on my technique.

This purchase amounted to 350 USD in 2015.

Once the Ergodox was programmed and in daily use, I found no need to favour sore wrists.

After a short time spent considering how this fit in with my desk, my mouse snuck in between the two halves. There wasn’t room to the right, but that desk-estate in the middle there is lucky.

A larger desk, like my 2016 office desk would be better.

Also five keys for each hand and attached to my chair would be handy closer at hand handsome good for my posture.

I could type in sexagesimal chords.

On second thought, it would be six keys per hand, there being a palm button.

Better yet, palm trackball on the right with palm masher on the left (-click)!

Are you an aficionado of human-machine interaction builds? Post about your keyboard, etc. and mention this post so I can hear about yours.

Slowly …

I’m tired of dealing with WordPress – it’s going away.

mf2bench – Parse all the things (with all the parsers)

My Microformats2 parser passed all the tests a short while ago. After that milestone, I was wondering if it’s fast. That needs some context because fast compared to what? All the other Microformats2 parsers. Have they been measured? The answer to that one is: not before now as far as I can tell.

I took a little time to make mf2bench, a benchmarking tool that compares the performance of all (is it all?) the Microformats2 parsers out there. My work on the php-extension, mf2, came in second place in terms of speed, behind the Microformats2-parser for Go. I’m pretty happy with this, because I have been concentrated on coding to pass tests, to demonstrate that the parser meets the living specifications at Making it run fast, or as fast as is fun to make it, is still a little bit away.

I’ll next get mf2bench to provide some measure of what the parse from each parser is for the various samples. That will be neat.


========== UPDATE ==========

The above screenshot uses the default of three (3) parses per parser. It was captured for the sake of taking a picture, rather than of comparison between parsers, etc. Here is the same thing, with one hundred (100) parses per parser.

Versions of each parser tested:

Parser Version
ruby/microformats-ruby 4.1.0
python/mf2py 1.1.2
php/php-mf2 0.4.6
php/php-mf2 (w/ Masterminds\HTML5) 0.4.6 (2.5.0)
php-ext/mf2 unreleased
node/microformats-parser 2.0.1
go/microformats 0.1.26
perl/microformats2 0.5
elixir/microformats2 0.2.1