Recent Articles

Reliably Finding Files in $PATH

Aug 27, 2021 · 4 min read

Most built-in commands commonly used to find files in $PATH don't always work quite as expected, or are shell-specific.


How to Persist Docker Build Arguments as Env Vars

Aug 22, 2021 · 4 min read

Values from the Docker ARG instruction aren't persisted in built images, so here's a quick tip on how to persist them!


Docker Shell vs. Exec Form

Mar 22, 2021 · 5 min read

The RUN, ENTRYPOINT, and CMD, instructions all have two different forms they can be written in, and those forms change how each of those instructions behaves.


You Don't Need an Init System for Node.js in Docker

Mar 20, 2021 · 6 min read

But you do need to think about how your application handles exit signals.


Publishing Docker Images with GitHub Actions

Feb 20, 2021 · 10 min read

Publishing Docker images is a common CI/CD task, and the tight integration GitHub Actions has with GitHub repositories makes it a great tool for the job.


Publishing Docker Images with CircleCI

Feb 15, 2021 · 10 min read

Publishing Docker images is a common CI/CD task, and the flexibility CircleCI offers makes it a great tool for the job.


Changing a Git Commit Message

Dec 5, 2020 · 6 min read

The Git commands to change a commit message are situational - here's a short guide to all of them.


Undoing a Git Commit

Dec 3, 2020 · 5 min read

Complicated Git commands are hard to remember and are full of landmines - here's a short guide on how to undo any Git commit.


Installing a Specific Version of Helm

Nov 24, 2020 · 5 min read

Helm, the package manager for Kubernetes, can be sensitive to the version of Tiller running in cluster, and as a result may require you to install a specific version.


Making UUIDs More Performant in MySQL

Nov 14, 2020 · 3 min read

MySQL does not have a native UUID type, so strings are often used instead, which come with large storage and performance costs.


Generating v4 UUIDs in MySQL

Nov 13, 2020 · 3 min read

MySQL's UUID() function generates v1 UUIDs, which have a time component that make them unevenly distributed over short periods of time. We can define our own function to generate v4 UUIDs, which are random and therefore more evenly distributed.


Faking Sequences in MySQL

Nov 11, 2020 · 4 min read

MySQL doesn't have a concept of custom sequences that other databases such as PostgreSQL do, but they can be faked with a table and some clever queries.