Articles Cut the noise: Declarative web components with HTMLElementSugar 2026-09-08 HTMLElementSugar simplifies web component development by eliminating boilerplate for attribute definitions, aliases, templates, and configuration inheritance. Config based git hooks for fun and profit 2026-08-18 Git 2.54 adds config-based hooks, letting you share hooks across projects without a shared hooks directory — and without Husky staging a hostile takeover. How to replicate bum 2026-07-14 Bum is small scripts, sensible guardrails, and gitconfig as a runtime — all built on git's own plumbing. No magic, no reinvention. Just git, used well. All your Traefik are belong to us 2026-06-17 Run Traefik as a permanent service on your dev box. One wildcard cert, with real domains, and self-registering Docker projects. Scales to production too. Greybeards rise 2026-05-19 How I unified my entire desktop under one vim colorscheme, iceberg, spanning terminal, prompt, i3, rofi, screensaver, and git. Consistency over aesthetics. I just wanted PHP 8.2 (Composer had other ideas) 2026-04-21 Create a Laravel 12 project targeting PHP 8.2 while running 8.4. Composer said no. This is the docker workaround, and the permission fix that followed. Yet Another CLI framework 2026-04-07 YA::CLI is a Perl CLI framework that eliminates boilerplate by auto-discovering subcommands, handling POD help pages, and using Moo roles — so you just write the logic. Living on the edge: truncating the path on your PS1 2026-03-10 How to build a zsh prompt that dynamically truncates long paths based on terminal width. Uses a custom precmd hook and Zig-Zag logic to keep PS1 clean. Git rebase vs merge 2026-02-24 An analysis of Git rebase and merge as complementary tools, covering interactive rebasing, autosquashing, and how to maintain clean history during development and integration. Workspace on Demand in i3wm 2025-09-24 Build dynamic context-aware workspace groups in i3wm using Perl, AnyEvent::I3, and YAML config to switch between client, company, and personal contexts without losing state. Bash-ing on nodejs: build your first CLI tool with Bash (or Zsh) 2025-08-24 Why you should learn bash, zsh, and CLI tools like bc, awk, and sed before reaching for npm to build command-line utilities. Mixtaping in 2025 – A Personal Build Log 2025-08-23 Building an offline HTML mixtape with web components, custom video/audio players, and hidden tracks - a love letter rendered in code, delivered on USB. Limiting tags when using git fetch 2024-05-05 Use negative refspecs and tagOpt to filter out CI-generated tags when fetching from Git remotes, keeping your local repository clean. Moving from single-line source files to deb822 source files 2024-02-28 Migrate from single-line apt sources to deb822 format for better repository management, embedded GPG keys, and cleaner configuration on Debian systems. A guide on how to configure multiple git identities or accounts 2023-08-07 Learn how to manage multiple Git identities on one machine using SSH keys, git config, and custom wrapper scripts without hacking .ssh/config. Docker to the rescue 2020-04-28 Run perl CPAN modules in docker containers with MiniCPAN and cpm to avoid slow networks and system pollution Managing my dotfiles with GNU Stow 2019-04-08 organize and version your dotfiles using gnu stow to manage symlinks and keep your home directory clean bum: 11 years of git, wrapped in a toolkit 2019-03-17 Bum is a Git toolkit built from 11 years of shell scripts, aliases, and workflows covering branches, commits, stashing, and merging with minimal configuration.