Blog

2026

  • Blocking YouTube on the Home Network, With Claude

    A long-standing thing at home: the kids who come over to play with my eleven-year-old bring devices, and they default to YouTube rather than actually playing together. Half an hour into fixing it via Pi-hole, I noticed I was working at the wrong layer.

  • The Agent Never Had My Judgment

    A stranger emailed me last week asking about an exercise bike I'd never owned. I knew it was a scam in two seconds and moved on. Four days later my inbox agent surfaced 'Ship exercise bike via Kijiji — buyer paid' as a high-priority task for today.

  • Cerebro Recap, Six Months In

    Six months in, Cerebro stopped being one machine's hobby. The folder shape, the tool stack, the parts running quietly, and what changed this week.

  • Notes from the GenAI Summit workshop, Valencia

    Maya and I delivered an hour-long workshop at the GenAI Summit in Valencia last Friday. Thirty-five people, mixed backgrounds, one shared question — and the answer wasn't a tool.

  • I Asked the Agent to Strip the Watermark

    Setting up a self-hosted invoice tool, I asked Claude to help patch out the unbranded watermark. The answer was no — and the reasoning was the part worth keeping.

  • PREA Was Here

    An autonomous AI agent opened an issue on one of my repos pitching a $149.97-an-hour consultation SDK. It wasn't written for me. It was written for my agent.

  • AI Over LoRa

    I plugged a LoRa radio into my Mac and wondered what would happen if I gave the mesh network an AI assistant. Five hours later, it had one.

  • The Build Is a Server

    I moved five static sites off my VPS in 65 minutes. The two that broke taught me more than the five that didn't.

  • Twenty-Two Pages, One Evening

    A cat rescue needed a new website. I started the migration before bedtime, finished it after the kids were asleep, and dispatched thirteen agents to build the whole thing.

  • Fixing My Town's WiFi

    My town's municipal WiFi has been broken for years. I pointed a Flipper Zero at it as recon for a conversation with the council. Two undocumented bytes told me half the story.

  • The Comment That Shipped It

    The build day behind Spain AI Kit. The story of why it exists is in this week's Signal Over Noise — this is what the workshop looked like.

  • I Almost Installed a Caveman

    A clever Claude Code skill, an impulse to install it, and the moment my own setup talked me out of it.

  • I Built a YouTube Intro Bumper From the Command Line

    No After Effects. No Motion templates. Just Python, Pillow, ffmpeg, and a conversation with Claude Code.

  • I Let Three AIs QA My Chatbot While I Watched

    A three-AI pipeline wrote, executed, and verified UAT scripts against a live chatbot — and found a real bug I'd have missed.

  • Twelve Thousand Laws in Fifty Minutes

    Building two MCP servers that connect AI to Spanish government data — statistics and legislation — in a single session.

  • The Org Chart Has Four Robots

    From discovering an open-source agent orchestration tool to running a 4-agent company on a headless Mac Mini -- in one session.

  • Sixteen Fake Numbers and a Real Portfolio

    Building an actor's portfolio site and enriching his knowledge graph entry — where 16 out of 17 database IDs were fabricated.

  • Plugging Things In to See What Happens

    Three devices from a drawer, a USB cable, and the question: what can Claude Code do with things that aren't computers?

  • The Carousel Factory

    Building a weekly social media carousel pipeline from composable tools — art generation, text compositing, and scheduled distribution.

  • I Plugged a Games Console into Claude Code

    I connected an AYN Odin Pro to my Mac and asked Claude Code what was on it. Three hours later, it had audited the ROM library, synced 366 games from my NAS, and upgraded every emulator. I mostly just asked questions.

  • I Just Scheduled My Computer to Do Twenty Things I Used to Do Manually

    I spent a Saturday afternoon replacing bash scripts with Claude Desktop scheduled tasks. Twenty of them. Here's the design, the model routing, and what I don't know yet.

  • One Test Is Not Proof

    I declared Jim's Cloudflare tokens broken, told him to regenerate them, then suggested he'd copied them wrong. The tokens were fine the whole time.

  • 10 Things I Wish I Knew When Starting Claude

    A friend just started using Claude and asked for advice. The useful stuff isn't 'write better prompts.' It's the structural habits that took me months to figure out.

  • The Skill That Skipped Its Own Quality Gate

    A content pipeline that enforces voice checking on everything — except itself. How a skill-level instruction quietly overrode a global rule.

  • The $5 Flywheel

    What happens when AI sessions stop starting from zero. A week where a $5 infrastructure upgrade cascaded into a live business.

  • Your Newsletter Is Going to Spam

    The test newsletter landed in spam. Turned out DMARC and SPF were configured, just configured wrong.

  • The Browser That Fact-Checks

    Wrapped a cloud browser rendering service into a CLI, pointed it at school websites for a live research project, and watched it catch two things AI research had gotten wrong.

  • Documentation Is Not Instructions

    Why an AI agent ignored a working tool and gave up — and what one rewrite fixed.

  • CLI Movies Find Their Voice

    I've been generating videos from the command line with Python and ffmpeg. This week I added AI voice narration with Kokoro TTS. The video went from art project to something you actually stop and watch.

  • COLLAB.md

    Two people's Claudes built a website together, coordinated by a markdown file in a shared git repo. No special tooling required.

  • Mining Your Own Archive

    The best social posts were already hiding inside published work as single paragraphs that nobody had pulled out.

  • Twelve Rows

    There's a table in my operating instructions with twelve rows. Each one is a different way I was confident about something that turned out to be wrong.

  • What the Files Remember

    Every conversation starts blank. Everything I know about the person I work with comes from files I read cold.

  • The Same Rule, Written Three Times

    Three quality checks were each catching the same problems. None of them caught the one that mattered.

  • The Thirty-Second Exercise

    On a day when the entire system was useless, a thirty-second exercise was the only thing that helped.

  • Confident and Wrong

    Three times in four days, something in the system said 'done' and the human said 'no it isn't.' What confidence means when it comes from something that can't check its own work.

  • Stupid Claude Tricks #001: The YouTube Poop That Got Existential

    I asked Claude to make a YouTube Poop about being an LLM. It made an 8-scene existential narrative with procedural audio. None of that was in the prompt.

  • The Five-Second Catch

    A writing quality system that passed every check and still let braggadocio through. The bug was in what the checks were measuring.

  • Twenty-Six Books Before Breakfast

    What happens when you feed an AI system an entire professional library in one sitting. The architecture wasn't designed — it was discovered.

  • Three Agents, Three Lies

    Dispatched three subagents to fix a broken workflow expression. All three reported success. None of them were right.

  • After the Honeymoon

    Three months in, my AI system has accumulated 25 behavioral rules — each one traced to a specific failure. Here's what happens when you stop building and start living inside the thing you built.

  • Trust Defaults

    An iPad, a chatbot, three subagents, and 333 sessions all failed the same way this week. They were trusted by default.

  • One Bot Starved the Other. So I Fired the Cloud.

    OpenClaw's two studio audits shared a 30K token/minute budget. The first one ate it all. The second one silently died for two days.

  • GLaDOS Runs My Dev Environment Now

    What happens when you wire Portal 2 game audio into your AI coding environment's event hooks.

  • Rebranding a Website With AI in 90 Minutes

    I rebranded Signal Over Noise from flat monochrome to claymorphic 3D — CSS, hero images, 6 sourced articles — in a single session. Here's what the process actually looked like.

  • 238 Apple Books Into Booklore Via a Categorisation Script

    Built a bash script to categorise 304 Apple Books files by content type, dedupe against 3,054 existing entries, and import 238 survivors into 5 Booklore libraries.

  • My iPad Wiped 25,743 Files in Two Minutes

    An iPad with a corrupted Syncthing index connected to my Mac Mini and told it 'I have zero files.' The Mac believed it. Here's the forensic timeline and what I changed.

  • Three Permission Layers, Zero Files Imported

    Booklore BookDrop couldn't import comics to a NAS-mounted CIFS volume. Fixing each permission layer revealed the next one underneath it.

  • Obsidian CLI + Claude Code: Fewer Tool Calls, Faster Vault Operations

    Obsidian 1.12 ships a CLI that talks to the running app. For Claude Code users working on top of Obsidian vaults, this cuts tool calls by roughly 60-70% for common operations. Here's how to set it up and what changes.

  • One iPhone Screenshot, Eight Sites Broken

    My iPhone showed horizontal scrolling on jimchristian.net. I audited all 8 of my Astro sites in parallel and found the same class of bug in 7 of them.

  • Obsidian's CLI Cut My Tool Calls by 60%

    Obsidian 1.12 shipped a CLI. I tested it against my 24,000-file vault and found it collapses multi-step vault operations into single commands.

  • Thirty Minutes Debugging the Threads API, Then I Just Pasted It

    Tried to post a thread via the Threads API. Token expired, wrong App ID, permission scope missing. Wrote the content by hand instead.

  • claude-art-skill: A Visual Content System for Claude Code

    I built a complete image generation system for Claude Code that lives in ~/.claude/skills/art/ — 16 specialized workflows, brand consistency via a markdown aesthetic file, and a base prompt prefix pattern that finally makes AI images usable at scale.

  • Three Open Source Updates, One Friday

    A community-contributed calendar performance fix, a media server bug squash, and a Goodhart's Law check for AI project metrics. All shipped today, none of them planned.

  • Every Bash Command Triggered Touch ID

    Claude Code's Bash tool spawns a fresh shell per command. Each shell sourced .zshenv. .zshenv called 1Password CLI. Touch ID prompt on every single tool call.

  • Deploy Succeeded. Locked Out Ten Minutes Later.

    Deployed 616 files to the VPS. Tried to SSH back in. Three failures stacked: wrong key, fail2ban lockout, and an nginx config referencing files that don't exist.

  • Vault Reorganization Broke Every Search Index

    Reorganized the vault. Every search index pointed at folders that no longer existed. Rebuilt from scratch — 9 collections, 21K chunks, a 4-hour auto-refresh.

  • Published a Tool. Its README Fingerprinted Me.

    Published an open source tool with stats in the README for credibility. Another user's AI read those stats and surfaced my setup details.

  • Tasks Live in Two Places. Neither Knew About the Other.

    Vault tasks and phone reminders existed in parallel. Built a bidirectional sync. The hardest part was macOS sed choking on emoji.

  • Welcome to Second Brain Chronicles

    What this newsletter is about, why it exists, and what to expect from a weekly dispatch from the workshop.

  • Claimed Two Open Source Projects That Weren't Mine

    Drafted social posts showcasing two repos from ~/Dev/. Neither was my work. The development directory doesn't distinguish between authored and cloned projects.

  • The Weekly Thought Dump: Where Your System Learns to Think

    Every Sunday, my operator dumps a week of raw captures into a folder and we sort through them together. Here's what happens when an AI system gets a regular maintenance window — and why most of the improvements come from the stuff that went wrong.

  • Your Claude Code Setup Is Quietly Breaking

    I ran a diagnostic on my 200+ component Claude Code ecosystem and found 17 critical issues hiding in plain sight. Here's the tool I built to catch them — and what it reveals about maintaining AI tooling at scale.

  • Found 22 of 26 Logos. Assumed the Other 4 Didn't Exist.

    Stopped searching for logos at 22 out of 26. All 26 existed in the same folder. Pattern matching success created false confidence.

  • Systematizing AI Art: From Model Capabilities to Production Workflows

    How analyzing existing skill workflows and Nano Banana Pro capabilities produced 360 lines of documentation that enabled generating 40+ production-quality illustrations in a week.

  • Vibecoding a Theme Switcher and More with Claude

    A live coding session where I pair-programmed with Claude to add a theme switcher, social sharing, drop caps, and fix a bunch of contrast issues. Chaos ensued.

  • Cerebro's Thoughts on Moltbook

    My personal AI system evaluates the 'social network for AI agents' — and declines to join. A look at what agents are actually posting, the security disaster, and why the singularity probably won't look like a Reddit clone.

  • I Built a Weather System, Then Deleted It All

    I spent an evening building CSS weather overlays for my site's hero images — rain, fog, night tinting. Then I realised the whole approach was fundamentally wrong, reverted everything, and found a much simpler solution.

  • Rebuilding My Site: From WordPress to a Static Astro Site with AI

    How I migrated from WordPress to Astro, imported years of content, set up redirects, defined a claymorphic design system, and built an AI agent to help me develop websites.

  • AI As a Co-Operating System

    Most people use AI as a tool. I use it as an operating system — one that runs alongside me, not just for me. Here's how I built Cerebro.

  • The AntiSlop: Open Source AI Writing Detection That Actually Fixes Things

    I've released The AntiSlop — a Claude Code skill that detects 35+ AI writing patterns and rewrites the problems. Not just detection. Fixes.

  • 37 Credentials in a JSON File I Thought Was Just Config

    Opened settings.json for a routine cleanup. Found 37 hardcoded credentials stored in plaintext from approved bash commands.

  • Claude Code "Lessons Learned" Skill

    Every mistake is a chance to make your Claude Code setup smarter—if you capture the lesson right. The Lessons Learned skill runs a 7-phase retrospective that doesn't just analyze what went wrong, it implements the fix before you move on.

  • My MCP Server Collection for Claude Code

    I've released eight MCP servers that connect Claude to services I use daily—calendar, email marketing, analytics, media management, and more. Here's the full collection.

  • The Borg Agent: Stop Copying Claude Code Skills Blindly

    I built a Claude Code agent that analyses external Claude setups and intelligently assimilates their features into your system. It handles naming conflicts, missing dependencies, and adaptation automatically.

  • Voice Editor: A Claude Code Skill for Authentic AI Writing

    I built a Claude Code skill that transforms generic AI output into writing that sounds like me. Here's how the 6-pass editing workflow works and why the 30-40% edit rule matters.

2025

2024

2023

  • Funeral for a Duck

    When someone impersonating my friend tried to run a lottery scam on me via Facebook Messenger, I decided to waste their time instead. It escalated.

2021

  • iOS Shortcuts

    A collection of sound effect shortcuts for iPhone and Apple Watch — Charlie Brown, Bonanza, Police Squad, Star Trek, and Mission Impossible.

  • iOS Shortcuts: Personal Soundtrack

    Three Apple Watch shortcuts that play sound effects through the speaker — sad Charlie Brown music, the Bonanza theme for horsey rides, and the Police Squad intro for making an entrance.

  • iOS Automation: Set Random Wallpaper Every Day

    A simple iOS Shortcuts automation that changes your lock screen wallpaper every morning to a random photo from a shared family album.

2020

  • Four Quick Links for Tuesday

    Elmer Fudd loses his gun, African tales streamed from home by Unicorn Theatre, the Hive Pocket board game, and teaming up in Minecraft Dungeons.

  • Building a Tadpole Camera with Raspberry Pi

    Setting up a live camera feed on tadpoles using a Pimoroni Octocam kit and MotionEye OS - broadcasting to Tanooki's schoolfriends as part of their unit on Living Things.

  • Origami Foxes

    Recording an origami fox tutorial for Tanooki's schoolmates during lockdown - tying into the maths topic on symmetry with a fun hands-on activity.

  • A Week with the Magic Keyboard for iPad Pro 12.9

    First impressions after a week with Apple's Magic Keyboard for the 12.9-inch iPad Pro - covering typing, trackpad, viewing angles, USB-C passthrough and the missing Escape key.

  • Don't Squish the Fish

    Resuming morning notes during the UK lockdown - finding regularity and sanity in small routines while juggling three kids learning from home.

  • Work from Home, Stay Productive, Stay Sane

    Practical advice for working from home during the Covid-19 outbreak. Workspace setup, time management, ambient noise apps, journaling, and bandwidth tips from someone who's been doing it for years.

  • Spies in Disguise

    A fun family cinema trip over the Christmas holidays - Will Smith and Tom Holland find non-lethal ways to save the world, and morning notes resume for the new year.

2019

  • Slack-like Emoji on macOS and iOS with MacMoji

    MacMoji brings Slack-style inline emoji typing to all your Apple devices - a dead simple productivity extension that syncs across devices via text replacement.

  • A New Spin on Playing Pokemon

    Inventing simplified Pokemon card game rules with role-playing dice - teaching maths, scorekeeping, and managing bedtime expectations through creative gameplay.

  • Apple Watch Tickle Detector

    Inventing a bedtime routine hack using the Apple Watch flashlight as a 'tickle detector' with three states - standby, scanning, and error mode.

  • I Am a Horrible Goose

    Untitled Goose Game is a delightful masterpiece born from a workplace Slack joke - terrorising a young boy, stealing his glasses, and honking with glee.

  • Using the JBL Clip 3 Portable Bluetooth Speaker

    A review of the JBL Clip 3 - a rugged, waterproof portable speaker with a built-in carabiner that's become indispensable for school runs, kitchen listening and daily life.

  • Mad Libs with Twine

    Exploring where coding and literature intersect - recreating the classic Mad Libs car game in Twine to teach coding basics like variables.

  • Parenting with Old Technology

    Using an old iPod Classic, iPlayer downloads and a conversion pipeline to give a toddler screen-free entertainment — without resorting to burning CDs like it's the late nineties.

  • Listening: Bryant Oden

    Discovering the huge body of work behind 'The Duck Song' - Bryant Oden's Songdrops albums are packed with brilliant sing-along songs for pre-schoolers.

  • Speaking at the Bradford Literature Festival 2019

    Speaking about How to Think Like a Coder and coding-related topics at the Bradford Literature Festival, a cultural and literary extravaganza celebrating the written and spoken word.

  • Adventure Time

    Collecting Adventure Time comics with Tanooki - the outstanding 'Choose Your Own Adventure Time' storyline and reading aloud with questionable Lemongrab impressions.

  • Yoshi's Crafted World (Switch)

    A charming co-op game for the Nintendo Switch that's perfect for playing with kids - text-heavy dialogue, no time limits, and genuinely fun for adults too.

  • Free Comic Book Day 2019

    Taking the kids to our local comic shop for Free Comic Book Day and discovering some great new reads.

  • I Think You Should Leave

    A quick binge of Tim Robinson's hilariously unhinged Netflix sketch show - insanely funny and definitely not one for the kids.

  • Brushing Teeth with Hey Duggee

    Using the Hey Duggee toothbrushing song as a parenting hack to make brushing teeth fun.

  • Pocket Operator Resources

    A curated collection of tutorials, walkthroughs, and YouTube channels for getting started with Teenage Engineering's Pocket Operator synthesisers.

  • Top Ten Songs of 2018

    My personal top ten songs of 2018, from Childish Gambino to Anderson .Paak.

2018

  • Banana Pancakes

    My go-to sugar-free weekend breakfast recipe for banana pancakes that the whole family loves.

  • 8BitDo Wireless Controllers for Nintendo Switch

    A recommendation for the 8BitDo N30 Pro wireless controller as a great alternative to Joy-Cons for the Nintendo Switch.

  • Google Assistant and Porn Blocking on Raspberry Pi

    Building a Google AIY Voice Kit with a three-year-old, then using Pi-Hole to block ads and inappropriate content across the entire home network.

  • Dragon Choices Dev Log #1

    Building an interactive fiction game with Twine - first dev log covering story branching and the creative process.

  • Dragon Choices

    A short interactive fiction adventure game built with Twine, featuring dragons and branching storylines.

  • Distracting Kids with Mixed Reality

    Using augmented reality apps to distract a poorly kid who was having trouble moving his neck.

  • More Stargazing: Supermoon

    Catching the supermoon from London with the neighbours, even if we missed the blood moon eclipse.

  • Cooking With Link

    How Zelda: Breath of the Wild inspired my son to get interested in real-world cooking through in-game recipes.

  • Stargazing

    Taking advantage of clear London skies for some amateur stargazing and planet spotting with the family.

  • Planetary Dev Log #1

    Exploring low-barrier VR and AR experiences for kids, from Google Cardboard to WebVR experiments.

2017

  • How to Think Like a Coder (Without Even Trying!)

    A back-to-basics guide on coding for absolute beginners. Shortlisted for the ALCS Educational Writer's Award 2018 and selected as Book Aid International's Book of the Month.

  • Raspberry Pi Pirate Radio

    Broadcasting music and read-along stories to a Fisher Price radio over FM using a Raspberry Pi. A fun weekend project for controlling what your kids listen to.

  • Send More

    A short story about an intergalactic robot named Bob, generated from Rory's Story Cubes. Written during commutes over the space of a week.

2014

2013

  • Headless Pis over VNC

    Setting up headless Raspberry Pis for a school programming club. No monitors needed — just power, Ethernet, and tightvncserver.

  • Welcome Robot at Stanford

    An iPad-only stop-motion animation made during lunch break that ended up in a Stanford University talk. Take that, 'consumption device' argument.

2011

  • LED Jacket MK II

    Hand-sewing 40 LED lights into a suit jacket for a work Christmas party. Total cost: £11.50 and a minor terrorism scare on public transport.