I thought I understood Ruby's Module class, but nope. While reading Jeremy Evans' Polished Ruby Programming, I looked deeper and found some confusing...
This post is part 2 of a series where I build a task queue system. Other parts: Part 1 Part 3 Part 4 Next, I'll beef up my queue library with some...
This post is part 1 of a series where I build a task queue system. Other parts: Part 2 Part 3 Part 4 Motivation Some time ago, I came across a pos...
This post was inspired by this Twitter conversation. The tweet asserts: I should be able to use pnpm while my teammates use yarn or npm, without iss...
I'm sorry, I know the title is confusing!😖 I couldn't think of a better way to summarize the task, so I went with that. So let me explain the prob...
IDs. We need them to reference entities uniquely. But not all kinds of IDs are equal. Features Some IDs are the main identifier (the primary key) of ...
A quick post to document some specific behaviours I encountered with PHP 8's Attributes that aren't in the official docs. 1. Inheriting from an attr...
I had a use case some time ago where base64 saved my ass, and I thought I'd write a short refresher for myself on what it can do, and how it can be a...
While writing my custom serialization format, I spent a while working with byte streams, strings and encodings, so I figured I'd do an article on tha...
In programming, serialization is the process of transforming data so it can be transferred, stored, or compared. You might have a variable in your pr...
One thing to look out for in Node.js: functions that may throw an error either synchronously or asynchronously (which, technically, is any function t...
In A Practical Tracing Journey, I described how I added tracing to a real-world app to get insights on how I could improve performance. One of the co...