I'm blogging about Emacs, Drupal, php and exciting subjects

The Refactor That Silently Deleted AdSense and Google Fonts From My Site

Moving a template file from one directory to another shouldn't change what it renders. I moved html.html.twig to templates/layout/html.html.twig for Drupal 11 compatibility, and the rename quietly deleted an AdSense script tag and three Google Fonts links that had nothing to do with the move. Nobody noticed for hours.

Two Linter Frameworks, One Project File, Both Actually Running

My Emacs config loads two separate linter frameworks in the same file, both fully configured, both actually running: flymake and flycheck. They're not doing the same job for different languages, and neither one is dead configuration left over from a migration that didn't finish.

The Same Init Call Appearing Twice in My Own Config

Two different lines in my own Emacs config call the exact same function twice, in the exact same file, a few lines apart. Neither one breaks anything. Both are worth understanding, because they demonstrate two different things about what use-package actually guarantees — and neither one is what I assumed before I went looking.

A Site's Entire Ad Mess Traced Back to One Unmodified Script Tag

Ad placements on this site had started looking wrong — not broken, just not deliberate: spots that clearly weren't ones I remembered choosing. My first assumption was that some old ad unit had been dropped into a template years ago and half-forgotten, so I went looking for it in the theme. There's exactly one ad-related line in the entire theme, and it isn't a placement at all:

Killing a Wrapper Script Doesn't Kill What It Spawned

This site's article pipeline runs unattended from a wrapper shell script, invoking a claude -p session wrapped in timeout to draft and schedule posts. One run, I decided partway through that I didn't like the direction it was taking and killed it — kill <wrapper-pid>, the process I could see in my terminal.

date -u -d "STRING" Doesn't Convert Local Time to UTC

This site runs on a Europe/Warsaw system clock, and its automated article pipeline needed to compute a publish-time window in UTC from a plain local-time string like "2026-08-31 16:00". The obvious tool is GNU date's -u flag, which converts to UTC — except it doesn't do what that sentence implies.

Subscribe to Linkhub