What is a Tool Library?

For the last year I have been telling nearly everyone I meet how great tool libraries are. I tell them to search their city name with the words “Tool Library”, because there is probably one close to them. Where I live in Seattle, there are 6 within 25 miles! So many tool libraries Almost every time I get the question “What is a tool library?” and I think that’s a very fair question to ask. [Read More]

Unnest with Reflection in Go

Recently at work I needed to write a utility to sync a PostgreSQL database with another data source. In my attempts to make the synchronization efficient, I came across a very helpful StackOverflow question which explained how to perform bulk insertions and updates. The recommended solution looked something like this:

[Read More]

Homelab Phase 1 - Complete

As discussed in a previous post, I started breaking improving my home network for the sake of knowledge and experience acquisition. But before I could get very far, I needed a plan. I wanted to at least theoretically be increasing my network security, and I hoped to enable playing with technologies used at work such as Kubernetes. Finally, this was an opportunity to see the ExtraHop network monitoring tools, which I have helped create, as a customer. [Read More]

Root Certificates Container

This website, like most of the services I host in my homelab runs in a Docker container which is hosted in a small Kubernetes cluster. I’ll go into more detail about the Kubernetes cluster in a later post. In this post I want to demonstrate a very simple container I have created which bundles the root certificates distributed with most operating systems, making them available to the application running within.

[Read More]


Grit, in addition to being the sand in your food, is the term given to the character trait of sticking with something. Persistence in a passion. A runner with grit, for example, sets a goal to complete a marathon, trains for weeks in advance, and conquers the challenge, despite there being significantly easier methods of traversing those 26 miles.

[Read More]

To Homelab?

My home network worked really well. It was stable, fast, and simple. I had a standard consumer-grade wireless router, a modem better than the one provided by the cable company, and a switch to hook up the ethernet to various rooms. The server holding my media and running a couple small websites sat in the front room and routed all of the port 443 and 80 traffic coming into the house. [Read More]

No, I'm not learning Esperanto

But I sure wish I was. Have you learned about this language? The Esperanto Flag I had heard about it. I knew it was some sort of failed attempt at a universal language. I knew that very few people spoke it, and they were probably “weird” in some way. But that is all I knew. Sadly, most of what I thought I knew was wrong or just a very small part of the truth. [Read More]

Workbench Upgrades

When I moved into my house there was a workbench in the basement. This bench was a custom made, one-of-a-kind, piece of crap. But I did’t know that yet. For the first several years I thought this bench was great. It had a hard plywood top that I wasn’t afraid to get dirty. It had storage drawers and shelves to keep my fasteners and some tools in. Best of all, it was free. [Read More]

Running TiddlyWiki on Node.js

TiddlyWiki is an awesome personal wiki, but if you have found this page then you probably already know that. Either you know me personally, and I won’t stop talking about it, or you have searched for TiddlyWiki explicitly and don’t need me to tell you about it. I have been using TiddlyWiki to keep track of just about everything for the last couple of years, from packing lists to general research notes. [Read More]

Bicycle ReConstruction

Before building an electric bike, I first need a bike suitable for electrification. With the expected expense of the project, I wanted to ensure I was building something to last. For the past few years I have been riding an ill-fitting mountain bike which actually belongs to my fiancé, so the first step was going to be finding a bike I liked enough to call my long-term rider. Growing up I always had a cheap mountain bike. [Read More]