Blog
2026
-
The table at La Harinera
Maya wrote up the Nomad Entrepreneur Fair in Valencia. I spent the evening behind our table, having a different conversation than the one I'd packed for.
-
How I message anyone on their app of choice, from one command
One command to message anyone on whatever app they use — with a preview you approve and an honesty note that adds itself to every send.
-
How I got my AI to do jobs from a text on my phone
I nearly replaced my whole AI setup with a shiny self-hosting agent — then added the one piece I actually envied instead: now I text my always-on computer a job and it runs, hands-free.
-
How I dug a year of lost receipts out of my inbox with AI agents
How I dug a year of lost receipts out of my inbox with AI agents — they do the digging, I keep the judgement. The pattern + the prompt for any search-and-file backlog.
-
How I ran a competitor analysis of an Instagram account for under a dollar
How I ran a competitor + marketing analysis of an Instagram account for under a dollar — rent a scraper, pull the public numbers, let an AI find the pattern. With the exact prompts.
-
How I got a tiny tool to catch my AI's writing tics — automatically
How I got a tiny tool to catch my AI's writing tics automatically — list the phrases you're tired of, have your computer flag them every time. Starts with no code, includes the prompts.
-
Kit shipped their own MCP, so I deprecated mine
Kit shipped their own official MCP, so I deprecated my community one — and why being superseded by the first-party version is a good outcome, not a defeat.
-
Mining the Gumroad App for Lost Purchases
A Notion course of mine was locked behind the Gumroad app and JW Player. The cookie route was a dead end; the iOS-on-Mac app's local cache was not.
-
TextExpander: From Archaeology to Actual Use
My TextExpander library had become a museum of dead projects. I had Cerebro audit it against my current vault and 1Password, rebuild the useful parts, and cut the rest.
-
WhereWithAll: A Personal Family Atlas
Turning eight years of adoption-discovery data — DNA matches, places, photos, memories — into a local, browsable family atlas, with a memory layer extracted by a local LLM for zero cost.
-
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.
-
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.
-
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.
-
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.
-
Five Locations, One Deadline, Zero Answers
Q1 tax filing took 90 minutes longer than it should have because invoices lived in five different places and nobody told anyone else.
-
The Vault Excavation
The spec said move about 170 files. The actual count was 4,619.
-
Tools That Build Themselves
The carousel took one session to build. The tools that built it took six months of accumulated friction.
-
The Back of the Card
Three months of notes said the wrong thing. The correct answer was in my pocket the whole time.
-
The Bug That Never Threw an Error
A fetch() call that worked everywhere except production. No errors, no logs, no clues — just silence.
-
The Double-Call Pattern and the Shared Key Trap
Spain's weather API taught me two things: not all REST APIs play by the same rules, and the most helpful thing you can do for users is refuse to help them.
-
Parallel Doesn't Mean Sequential Will Work Too
A 14-task security hardening sprint via parallel subagents, and the CI failure that only surfaces at scale.
-
Three Interfaces, One Image, No Puppeteer
How to composite screenshots programmatically when you don't have a headless browser.
-
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.
-
The 30 Lines I Deleted by Changing One Thing
Haiku kept leaking JSON into the chat UI. Prompt engineering didn't fix it. Tool use did.
-
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.
-
Fire and Collect
Twelve agents, fourteen tasks, sixty minutes. Three things that didn't go as expected.
-
Thirty Tool Calls to One Skill
What happens when you watch a 30-step grind in enough detail to recognise it as a pattern.
-
Twelve Pages, Eighty Minutes
Spec to deployed in eighty minutes. What I learned about context packaging when eight agents are building at once.
-
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
Built a bash CLI around Cloudflare Browser Rendering, 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 Thirty-Second Exercise
On a day when the entire system was useless, a thirty-second exercise was the only thing that helped.
-
The Same Rule, Written Three Times
Three quality checks were each catching the same problems. None of them caught the one that mattered.
-
The Script That Couldn't Be Imported
The video generator proof-of-concept worked fine. Then I tried to build a web layer on top of it.
-
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.
-
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.
-
The Schema Is Honest
Deploying to a hosting platform I'd never touched: no documentation, but there was an OpenAPI spec.
-
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.
-
Ninety Attempts, Zero Triggers
The trigger optimizer ran 90 tests on an advisory skill. It never fired once. That's not a bug.
-
One Swap
The menu dropdowns were empty. Tests were passing. The bug was one line — finding it required understanding the full evaluation chain.
-
The Agent That Intercepted Everything
The SSH agent that handles all authentication uses a wildcard host rule. That works until you have a machine whose key lives outside the agent's store. Then the agent intercepts the connection, fails silently, and nothing works.
-
Three Agents, Three Lies
Dispatched three subagents to fix a broken workflow expression. All three reported success. None of them were right.
-
The Consistency Gap
SketchScript had a freemium problem. Research into why led to an insight that's not obvious: users don't convert on quality or speed. They convert on consistency.
-
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.
-
The Number Said Zero
OpenClaw's audit had been flagging a subscriber tag as empty for weeks. The tag wasn't empty. The API just wasn't reporting it correctly.
-
The Post That Needed Sanitizing
Published a post about silent monitoring failures. On visual review after deploy, found three things in the live post that shouldn't have been there.
-
What Stays When You Strip Your Name Off It
Shipped a new version of the Claude Code starter kit. The hard part wasn't the features — it was genericizing personal behavioral rules so they're useful to someone who didn't live through the failures that produced them.
-
The Horoscope Test
Built a full automated content pipeline from vault tag to published post. The first problem was Claude leaking meta-commentary into the drafts. The second problem was that the output sounded true but said nothing specific.
-
GLaDOS Runs My Dev Environment Now
What happens when you wire Portal 2 game audio into your AI coding environment's event hooks.
-
Architecture Proven for the First Time
OpenClaw was designed to monitor multiple studios from the start. This week we added a second one. The architecture took twenty minutes. The prompt took most of the day.
-
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.
-
The Pipeline That Caught Itself
Nine posts published in one day. The review pipeline caught a disclosure block that would have republished the exact statistics the post was built around removing.
-
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.
-
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.
-
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.
-
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 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.
-
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.
-
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.
-
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.
-
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.
-
Sponsorship through Patreon
Reflections on curation versus creation since going independent as a consultant.
-
Vibe coding an ISS tracker
I built a simple ISS tracker for family stargazing after getting frustrated juggling multiple apps. One page with a map, countdown timer, and live feed.
-
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
-
Building Book-Powered AI Agents with Calibre and Claude Code
Web search is great for current events. But when you need depth — the kind of insight that comes from a carefully curated book collection — web results fall short. What if your AI agents could search your personal library instead?
-
Teaching Claude to Read My Book Collection
I built a system to index my 1,700 ebook Calibre library into ChromaDB so Claude can search my actual books instead of paraphrasing from general knowledge.
-
Building an AI-Powered WordPress Publishing Pipeline with Claude Code
I built a WordPress plugin and MCP server that lets Claude publish directly from Obsidian to my blog. Draft, tell Claude to publish, done.
-
From Remote Access to Agentic OS: Two Weeks with Claude Code
What started as remote terminal access to my Obsidian vault evolved into something like an operating system—specialised agents, MCP servers, and automated workflows.
-
Signal Over Noise Themes for Ghostty and Obsidian
I created matching themes for Ghostty terminal and Obsidian with a mid-century modern palette—teal, burnt orange, and cream. Here's the colour system and how to install them.
-
Four Layers Deep in a Finance MCP Server
Account balances off by £8,188. Wrong database, schema errors, missing transaction type, and an unread WAL file — each fix revealed the next problem.
-
Building an MCP Server for Pi-hole: Network Ad Blocking Through Natural Language
I built an MCP server that lets Claude manage my Pi-hole setup—check what's being blocked, whitelist domains, and view stats through conversation.
-
Building an MCP Server for the *arr Stack: Media Management Through Natural Language
I built an MCP server to manage Sonarr, Radarr, Lidarr, Readarr, and Prowlarr through Claude—query downloads and search libraries without switching between five dashboards.
-
Building an MCP Server for Kit.com: Email Marketing Through Natural Language
I built an MCP server that connects Claude to my Kit.com newsletter—manage subscribers, tags, sequences, and broadcasts through conversation instead of dashboard hopping.
-
Building an MCP Server for Pickaxe: Managing AI Agents Through Natural Language
I built an MCP server that lets Claude manage my Pickaxe AI agents directly—knowledge bases, conversation history, and analytics through natural language.
-
Updating my Claude setup to support remote work
I set up Claude Code on my home server with Tailscale and Syncthing so I can access my Obsidian vault from anywhere—iPad, phone, or any device with a terminal.
-
Behind the Screens: Optimising My Newsletter With AI
I spent an hour with Comet and Claude auditing a year's worth of Signal Over Noise newsletter strategy—timing, audience, and growth opportunities.
-
Outdoor Summer Cinema
We took the kids to see Pixar's Elio at our local outdoor cinema. Bats flickering through the projector beam as the moon rose—properly magical.
-
Cold Brew With Lemon and Dalgona at Home: Simple Summer Coffee Experiments
Valencia hit 40°C so I traded hot coffee for cold brew with lemon and 2-minute Dalgona whipped coffee over ice.
-
Perplexity does video generation now
Testing Perplexity's new video generation—I asked it to make me go Super Saiyan and achieve my final form. Plus eating spaghetti.
-
Thoughts on Claude
Notes on using Claude with MCP servers, Obsidian, and Things 3—including why I have to remind Claude what time it is.
-
A quick spin with ElevenMusic
Testing ElevenLabs' new music generation tool—I tried to create a Counting Crows-style album with AI prompts.
-
One of these days I'll be sick of playing Balatro
But today is not that day.
-
EOS Webcam Utility Pro is a joke
Canon turned their COVID-era webcam software into a subscription cash grab. My EOS M200 deserves better.
-
Creating my tone of voice with Claude
I gave Claude my book manuscript and asked it to create a writing style guide. It came back with 2,500 words capturing how I actually write.
-
Behind the Screens - generating a comic with Sora
I used Sora to generate a four-panel comic illustrating AI's mechanical writing patterns for my newsletter on spotting AI-generated text.
-
Scaling back to WordPress
I'm leaving Squarespace for WordPress. I want to write locally in Obsidian and automate publishing—something Squarespace just can't do.
-
Remote Resilience Hub Wins at Hack the Future 2025
Our team won at the Hack the Future climate resilience hackathon in Tallinn—we built a toolkit to support Valencia's remote workers during crises like floods and power outages.
-
Photo Journal - Tallinn
Late arrival into Tallinn after a Munich layover, Eurovision on the radio, and a driver who'd be back at 2am for the Turkey flights.
-
Snickernomics
I tracked Snickers prices across my Estonia trip—€4.49 in Valencia airport, €2.00 in Tallinn Station, €1.99 in Frankfurt. Airport markup is real.
-
Using ChatGPT to Untangle My Web Hosting Costs
My hosting invoices were a mess of active domains, abandoned projects, and mystery services. I used ChatGPT to finally audit what I was paying for.
-
I Let OpenAI's New Terminal Agent Fix My Media Server
OpenAI's Codex CLI analyzed and fixed my media server configuration with natural language commands. Saved me hours of manual debugging.
-
How to Get the Best Out of ChatGPT: The Art of Effective Prompting
AI lacks human intuition—it won't question its methods or adapt to your needs. Here's how to prompt effectively instead of getting stuck in circles.
-
Another day, another argument with AI.
Screenshot of me arguing with AI. Again.
-
Why You Should Use a Local AI Model to Keep Your Data Private
Cloud AI means your data goes through their servers. For sensitive documents, running AI locally is safer—here's how to set it up.
-
Scary Pockets / Magazine
Sleep-deprived in a cafe, pleasantly surprised to see Jack Conte, Ben Folds and Scary Pockets on the TV screen.
-
Introduction to OpenAI's Whisper for Speech-to-Text
A complete guide to OpenAI's Whisper: how it works, setup instructions, and offline alternatives for secure transcription.
-
Testing: AI Avatar Creators
Comparing AI avatar tools: vanilla MidJourney, FaceSwap, Synthesia, Jogg.ai, and Apple Intelligence.
-
A Mirror Doesn't Lie
Mike Masnick on how we've replaced the mirror with a screen that shows whatever those controlling it want us to see.
-
SNL's "Ladies and Gentlemen" Official Preview
50 years of SNL musical performances packed into 7 minutes of tight editing brilliance.
-
AI Granny Takes on Phone Scammers
Daisy the AI chatbot wastes scammers' time so humans don't have to. This is the way.
-
Having fun with Make.com automations
Building automations for Gmail auto-responses with ChatGPT and automated podcast marketing to BlueSky.
-
Remember when Siri was whimsical?
Back when Siri had personality and gave playful responses. Those were the days.
-
Hey Siri add pistachios to my shopping list
Siri heard something entirely different. Classic voice assistant mishap.
-
Goodbye my friend.
In memory of Dante Tiberius, 2006-2025.
-
Moon and Jupiter
A night sky photo capturing the moon and Jupiter together.
-
On DeepSeek
A Reddit find on the DeepSeek situation.
-
Quick Thoughts on DeepSeek R1
Initial thoughts on the DeepSeek R1 discourse.
-
On Musk
A screenshot that speaks for itself.
-
Pasta Salad
NYT Cooking recipe screenshot.
-
Prompto: An AI Prompt Generator GPT
A GPT that transforms basic ideas into detailed, professional AI prompts—prompting AI to create the prompts for you.
-
Generative AI Tech Setup 2025
My 2025 AI toolkit: ChatGPT, DALL-E, Whisper, MidJourney, Claude, Perplexity, and ElevenLabs—what I use and why.
-
Space Cats: Test Driving Sora, Open AI's Text-to-Video Model
Testing OpenAI's Sora with space cat prompts. The results? 'Funny, but not particularly helpful.'
2024
-
Photo Journal - London
Flying over flood-devastated Riba-Roja, pub dinners in Brook Green, goofy shots with my nephew, and working on the newsletter at 35,000 feet.
-
Found: Gladiator v Paddington
The crossover nobody asked for but everyone secretly wanted.
-
The Rise of Bluesky: A Privacy-Focused Alternative in the Social Media Landscape
Bluesky's post-election surge and commitment to not using content for AI training marks a shift in what users expect from social platforms.
-
Gaining Visibility in AI-Driven Results
SEO is evolving into GEO - generative engine optimisation. How to make your content visible in ChatGPT and Perplexity responses.
-
Mastering AI Interaction
Moving beyond 'act like an expert' - crafting detailed AI personas and prompts that unlock more useful, relevant responses.
-
Can You Outsmart a Troll by Thinking Like One?
Learning to identify misinformation by playing the Bad News game - stepping into the shoes of a disinformation producer to build mental defenses.
-
The AI Search Race
ChatGPT's new search features signal a shifting landscape, but Perplexity's head start shows OpenAI isn't the only player in the AI search game.
-
Power User’s Guide to Automating Gmail
-
The Tanya Tate Romance Scam
When a romance scammer posing as an adult film star tried to catfish me on Google Chat, I kept them talking for two weeks. It did not go well for them.
2023
-
Mastering Photorealism in MidJourney: 10 Expert Prompts for Stunning Results
-
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.
-
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.
-
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.
-
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.
-
It's international!
-
The fuselage with small, the function is much, you're worth it
-
#JediTweets
-
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.
-
Cooking With Link
How Zelda: Breath of the Wild inspired my son to get interested in real-world cooking through in-game recipes.
-
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.
-
Stargazing
Taking advantage of clear London skies for some amateur stargazing and planet spotting with the family.
-
DIY 3D Scanning
-
New Edition of Adventures in Minecraft
-
Planetary Dev Log #1
Exploring low-barrier VR and AR experiences for kids, from Google Cardboard to WebVR experiments.
2017
-
Boxing Day Fixes
-
Switch for sale
-
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.
-
Reference sketches for How to Think Like a Coder
-
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.
-
Raspberry Pi Pirate Radio
-
Think Like a Coder Book cover
-
Update to How to Code in Minecraft
-
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.
-
Blade Runner Trailer Comparison
-
Amazon Echo "Silver"
-
Gone and back again
-
Teaching tech skills
2015
2014
-
Five Harmless iPhone Pranks
-
BBC: What's Happened Since You Were Born?
-
Live Polar Bear Cam
-
Make Your Own OS X Yosemite USB Installer
-
NYT: How Apple’s Siri Became One Autistic Boy's B.F.F.
-
Apple SIM is one to watch
-
Updated: Dropbox Not Hacked
-
No Opportunity in Silly Apps
-
LEGO Ends Shell Partnership
-
Terms of Service: Didn't Read
-
Six Techniques and Tips for iPads in the Primary Classroom
-
Gravity Simulator
-
Google Apps for Education Users to Get Unlimited Storage
-
Should Teachers Be Using Minecraft in the Classroom?
-
United Kingdom Ordnance Survey in Minecraft
-
Windows 10 Technical Preview Available Now
-
iPhone 6 Teens: We're Sorry
-
Two Minutes on How To Pick a Proper Password
-
BBC British Museum to be digitally recreated in Minecraft
-
Using iOS 8 QuickType
-
Restrictions, Location Services and a Stolen iPhone
-
Photos of 19th Century 'Wired' Cities
-
Blue Light, Sleep and f.lux
-
Analyzing iPad Myths in Education
-
BBC: Millions of historical images posted to Flickr
-
Rise of YouTube Lyrics Videos
-
Top independent school puts lessons free on iTunes
-
Listen to Max
-
Hyperlapse Test
-
This Is How You Troll the Internet
-
1Password Extension for iOS8
-
The Power of Metaphor
-
Automata Trailer
-
Hyperlapse
-
Is the iPad Really the Best Device for Interactive Learning?
-
Five Secrets About Minecraft
-
The Sad Decline of the London Trocadero
Pepsi Max Drop, Quasar laser tag, MechWarrior VR in the basement. The Trocadero was where we blew our allowances. Visiting its ghost was always a disappointment.
-
Kids and Computers in the 80s vs Today
The 'digital native' myth is inexcusable bullshit. A 1984 Sesame Street episode and a modern Kids React video prove we're all immigrants and natives at the same time.
-
Unlock Your Phone with a Digital Tattoo
-
New MacBook Air Ad: Stickers
-
DiRT: Digital Resource Tools directory
-
The Dark Knight's Tumbler in LEGO
-
goTenna - Send Texts Without the Need for a Network Signal
-
Add A Restrictions Passcode to Your iOS Device
-
Star Wars: A New Hope in Minecraft
-
Installing a Web Server on Raspberry Pi
-
More Minecraft with Fire Tech Camp
-
I Wrote A Book
-
Safari, Siri & Website Restrictions Now Available
-
iOS 8 QuickType Fun
-
Let's Go Crazy
-
Guy Writes Book, Then Something Amazing Happens
-
List of Reading Apps in Launch Center Pro
-
Automating iOS: A Comprehensive Guide to Launch Center Pro
-
Teaching World Building with Minecraft at Fire Tech Camp
-
Quick PDFPen to Email Automation with Google Drive and Hazel
-
Winnie the Pooh as Darth Vader
-
It's A Slap
-
Using Paper by FiftyThree with Presentations
-
Adobe Pass/Crossword
-
HUVr Boards
-
3D Scanning LEGO R2D2 into Minecraft with an Xbox 360 Kinect
Using an Xbox 360 Kinect, Skanect, binvox and MCEdit to 3D scan a LEGO R2D2 and drop it into a Minecraft world. Also: scanning kids' heads and 3D printing them.
-
3D Scanning LEGO R2D2 into Minecraft with an XBox 360 Kinect
-
Daily Logging with Launch Center Pro, Drafts and Day One
A semi-automated daily journaling workflow across iPhone, iPad and Mac using Launch Center Pro, Editorial, Drafts, Dropbox and Day One.
-
Daily Logging with Launch Center Pro, Editorial, Drafts and Day One
-
File PDFs to Evernote Depending on Your Location
-
Pomplamoose: Happy Get Lucky
-
Drive Me To My iPhone
-
Exploding Head in Minecraft
-
Make Your Own 'Flappy Bird' with Pythonista
-
iOS 7.1 Update With Enhanced MDM Rumoured
-
My Automation and Workflows
A 2014 deep-dive into the automation toolkit: Editorial, Hazel, Launch Center Pro, Keyboard Maestro, Slogger, Drafts, and the glue that holds it all together.
-
DNS Switcheroo Macro for Keyboard Maestro
-
The Speech Accent Archive
-
Reading and Listening 2013/14
2013
-
Note to Selfie: John Dickerson on Texting, Tweeting and Zen Mindfulness
-
Santastic 8
-
An Adventure in Space and Time
-
Gothamic Beta Pebble Watch Face 1.0
-
Headless Pis over VNC
-
Headless Pis over VNC
Setting up headless Raspberry Pis for a school programming club. No monitors needed — just power, Ethernet, and tightvncserver.
-
The New Minecraft Club
-
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.
2012
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.
-
Failing With Style
-
Tanzania 2011 Journal: Day Six
-
Tanzania 2011 Journal: Day Five
-
Tanzania 2011 Journal
-
Bret Victor - Inventing on Principle
-
Life in a Day
-
Read Between the Nines
-
Why The Tanzania Trip Is Important
-
Best Intentions for 2011