Keep Your Tech Discussions on Track with Fish Bones

As a child, I had a nasty experience involving pizza, anchovies and a small fish bone. I’ve never touched anchovies since and it has taken me a long time to get used to the idea of eating fish at all. But that’s not what I’m here to write about. I’m here to share a different experience of fish bones, the fishbone diagram.

The importance of Health Probes

To capitalise on modern platform capabilities, applications need to be platform aware. They need to be cloud native. An oft overlooked example is health probes. Without these endpoints, platforms can only make crude assessments of applicat

Privacy Conscious Web Logs

Anyone looking for statistics on their blog will find themselves pushed towards the big names in web analytics. In return for statistics, you are encouraged, if not required, to gather more information about your readers than strictly necessary. Even if you gather statistics from your server logs, you are almost certainly logging unnecessary information about visitors. It doesn’t have to be this way.

Chinese Practice Sheets

I’ve been looking to start practising my Chinese more deliberately than I have been, particularly my character recognition. I couldn’t find any character practice sheets that I liked and so I made a couple of my own.

Dive Through the Layers

I’ve been working with a container image for a Django application and was surprised to find that an image for a simple application was 1.2 GB. I wanted to understand how this storage was being used and came across Dive, a tool for navigating container layers.

Docker Compose: Conditional Services

Docker Compose provides a succinct way to define services that make up an application. However it doesn’t allow services to be marked as optional so everything is started by default. In this post I outline a use-case for optional service and show how I defined service dependencies to provide a solution.

The Sidecar Pattern

The sidecar is a multi-container pattern used to provide additional functionality to a containerised-application without requiring changes to the application itself. The sidecar is the foundation of popular tools like the Istio service mesh. But how does it work? In this post, we’ll learn more by implementing one from scratch.

WireGuard - the most stable VPN yet

There are two reasons I regularly use a VPN connection on my portable devices; to give myself some privacy when using untrusted networks and to get around network filtering or censorship when traveling abroad. I’ve recently settled on a new favourite, WireGuard. In this post I’ll take you through how to get set-up with your very own WireGuard VPN.

Server Timing Client-Side

Browser tools have come a long way in helping us debug the performance of web applications. They have been constrained by the fact that they can only display client-side performance metrics, leaving us to look elsewhere to gain an understanding of back-end performance. I recently came across the Server-Timing specification that allows developers to augment this with a limited set of server timing information.

OSX Terminal.app Ignoring $PATH Variable

Over the last couple of days I lost the ability to copy and paste from Vim using the macOS system clipboard. I hadn’t knowingly changed my Vim configuration and the only major change I’d made recently was to upgrade to macOS Catalina. This post points outlines how I resolved the issue and points the finger squarely and Full Disk Access on Catalina.