
A Practical guide to building a parser in Go
A developer’s journey of building a recursive descent parser in Go, from basic concepts to tackling left recursion with Packrat memoization.

A developer’s journey of building a recursive descent parser in Go, from basic concepts to tackling left recursion with Packrat memoization.

Transmission on Ubuntu may be denied access to localized Downloads directories due to AppArmor profiles expecting English folder names. Here’s how to fix it.

Learn how to squash Docker images using Buildx to create smaller, more efficient images by consolidating layers.

Fix ZSH ‘illegal modifier’ errors with Git Conventional Commits by disabling the NO_BANG_HIST option.

Configure Windows to use UTC for the hardware clock when dual-booting with Linux, avoiding time synchronization issues and maintaining Linux defaults.

A detailed guide on shucking WD Elements 20TB drives, including testing, performance benchmarks, and stress testing.

A story of how I bought a digital photo frame, and how I created a tool to generate miniatures of my photo collection to fit them all on the device.

Learn how to create beautiful slide decks with Markdown and Marp, a simple and powerful tool for presentations.

Learn how to run Google’s Gemini CLI in a Docker container to avoid installing Node.js and its dependencies directly on your system. This guide provides a simple setup, a recommended shell function for seamless integration, and usage examples.

Learn how to add an llms.txt file to your Hugo blog to make it more visible to AI agents and improve Generative Engine Optimization (GEO).