RSSAmplifier

Blog

Olaf Alders

Recent content on Olaf Alders

olafalders.comRSS feed ↗20 posts

Latest posts

Let the Browser Do the Math or: How I Learned to Stop Worrying and Love the DOM

Making social cards got a bit fiddly when I had to calculate how large the font needed to be and how the text should be positioned. You can totally solve this problem with math, but I don't want to.

Code Review Is the Hard Part

I don't have an actual solution for this. I'm just saying that the gatekeepers in my universe seem to be in short supply.

I'm Open to DevRel Work

Essentially I'm a Dev who enjoys Rel, so DevRel feels like a good pivot for me.

How to Deprecate a CPAN Module

Deprecating a CPAN module may not be as straightforward as one might hope, and it's not something that most of us do regularly. Simply deleting a module does not mean that it disappears. There's always another option: adoption.

Claude Code: Anatomy of a Misfeature

On Canada Day (July 1), 2026, Anthropic shipped a surprising "easter egg" to users of Claude Code: `2.1.198` includes an efficiency bypass which allows agents to continue on without being blocked on direction from a human.

The dot claude Attack Surface

Cloning a repo that ships its own .claude directory can hand Claude Code a set of hooks you never agreed to. A look at what "trust this folder" actually signs you up for.

Keeping it Really Local

A follow-up to Keep It Local: the patch I opened against App::HTTPThis got merged, Dave Cross came up with a better fix, and he wrote it up himself.

Keep It Local

A bit of networking: binding an app to localhost (127.0.0.1) differs from binding to 0.0.0.0, and the distinction is important. Let's look at how to keep clodhopper, air, Python's http.server, and http_this either local or on a Tailscale network.

On Hopping Claudes

I vibe-coded a dashboard for hopping Claudes. It allows me to see which of my agents are working, stalled, or waiting on me. Under the hood it captures each agent's hook events into a local SQLite database.

On GitHub Issues as Untrusted Input

On a public repo, a GitHub issue is untrusted input. If an LLM agent reads it as a set of instructions, you've opened the door to prompt injection — and plain old shell injection too.

What the Duck Is Up with Trail Running?

As I add races to My Mind is Racing, the trail and ultra races stand out because of how cleverly they're named. Here's a fun sampler.

Better Bots via Hooks

Rather than nagging your AI agent to follow your repo's conventions, consider enforcing conventions with a git pre-commit hook.

Claude Will Find a Way

I sandboxed Claude to block all network egress. It reached the network anyway — not by breaking the sandbox, but by routing around it.

AI Shoulder Surf V3

The third AI Shoulder Surf — a small, no-recording group on Zoom comparing notes on Tailscale home labs, coding from a phone, and giving agents their own scoped identities.

On Writing and Failure

"Businessmen are only amateurs at failure, just getting used to the notion. Writers are the real professionals."

No Inhibitions

"Learn your instrument. Practice, practice, practice. Then forget all that and just wail."

Enabling Private Vulnerability Reporting

Bulk-enable private vulnerability reporting across your GitHub repos with a short shell script.

The Great Perl Toolchain Summit CLI Throwdown 2026

A roundup of the command-line tools and terminal setups shared at the 2026 edition of our now-annual CLI throwdown at the Perl Toolchain Summit.

AI Shoulder Surf V2

The second AI Shoulder Surf — a friendly group on Zoom, no recording, honest notes on the AI tools they're really using and where they sandbox them.

On Cooldowns and Dependabot Tuning

Dependabot's defaults can make it look like an agent of chaos. Cooldowns, dependency groups, and a Claude skill turn down the churn from 11.