What I learned
- Nov 2026 Code
One RCPT TO probe answers "is this address live?" faster than any test email.
Is this email address live? Ask the mail server, then fix it in Cloudflare - Nov 2026 Code
Never trust my own selection count: comparing it with Google's "N selected" before every bin caught each bug before it cost a photo.
Cleaning 199 GB of duplicates out of Google Photos from inside Chrome - Nov 2026 Code
Do not be afraid to experiment with tools.
Merch shirts on a 3D dress form, built headless in Blender - Nov 2026 Sport
Decode the real files before I design the screens.
What is inside a Garmin swim FIT file - Nov 2026 Code
Read raw Whisper transcripts before I build anything on them, because silence turns into fake "Thank you" lines.
Finding Instagram reels in years of video, fully local on a Mac - Nov 2026 Code
A redirect can look like a name clash, so I compare full_name with the name I asked for.
Moving 305 GitHub repos from an org to my own account - Nov 2026 Sport
I do not know yet if the pool beats a carousel, so I will not guess.
Swimming testimonials and the tempo math behind them - Oct 2026 Sport
Check the total video length and the length of each section before I buy a course.
A swim tech coaching course I finished on a plane - Oct 2026 Hardware
Test my checker against the bug before I test the fix.
Testing a swim metronome with a Mac microphone - Oct 2026 Code
A consent banner can remember the answer and never pass it to gtag.
Analytics showed nothing although cookies were accepted - Oct 2026 Code
The live MCP session is for experiments and the rebuild script is what I keep.
A product render of Vimo Swim in one evening with Blender and MCP - Oct 2026 Code
Use the layout Claude Code expects: one marketplace with plugins, not one repo per skill.
Two Macs, one Claude Code setup: skills as plugins, not symlinks - Oct 2026 Sport
Approval gives me credentials, not data.
Garmin Connect Developer Program: From Application to First Webhook in One Afternoon - Oct 2026 Sport
Store every webhook body raw before I parse it, so a new feature becomes a backfill.
From the first Garmin swim to a details page in one evening - Jul 2026 Code
A static bearer token is enough when only Claude Code connects.
One MCP Server, Two Auth Stories: Claude Code vs. Claude Desktop - Jun 2026 Code
I can test write tools against a live API cheaply: start a real build, then cancel it at once.
Codemagic MCP Server: Trigger Mobile CI Builds from Claude Code - May 2026 Music
Startup time decides the shape of a DAW tool.
C2PA in Ableton: Making AI Music Provenance Visible Inside Your DAW - May 2026 Music
C2PA answers the question music metadata never did: who created a track, and how.
C2PA in Music: A Claude MCP for Reading Content Provenance - May 2026 Code
The best interface for an agent in a family project is a shared spreadsheet, not a chat window.
I taught Claude to sell my old diving gear on OLX - Feb 2026 Code
Watching a video is not the same as keeping what it says.
Building a YouTube Video Research Pipeline with Whisper and Claude - Feb 2026 Code
Skip the conversion step and edit the real file.
Automating Google Docs with Claude Code: Build a CLI That Pulls, Edits, and Pushes - Feb 2026 Sport
Build the Python BLE simulator first, not last.
Building a Garmin Connect IQ App in Monkey C: Lessons from a BLE Remote Control - Feb 2026 Hardware
For room-level sensors BLE beats WiFi: no router, less power, a simpler protocol.
Smart Home on a Budget: BLE Window Sensors with Two Pico Ws and MicroPython - Feb 2026 Hardware
A simple protocol is enough for a live demo: a 4-byte sync header, a checksum, and lost frames simply skipped.
Mirroring a Wearable OLED Display to a Projector for Live Demos - Feb 2026 Hardware
The hard part of Rust is unlearning my C and Python habits, not the syntax.
Learning Embedded Rust: A C/Python Developer's Rosetta Stone - Feb 2026 Hardware
A missing driver is not a dead end.
NFC Tag Emulation on nRF52840 with Rust — No SDK Required - Nov 2025 Music
A BPM number from an API is a starting point, not the truth.
Tempus Metronome and GetSongBPM API - Oct 2025 Code
Keep each MCP server thin and focused on one domain, and to return JSON, not prose.
Verified Human Cert MCP Server: Prove Your Music Is Human-Made, Right from the Terminal - Sept 2025 Music
Bandcamp exports its CSVs in UTF-16 by default, which trips up most parsers.
Querying Bandcamp Revenue Reports with Natural Language — Meet mtl-bandcamp-mcp - Aug 2025 Music
Scan a folder first, review what is missing, then ask Claude to fix it, because the conversation remembers which files it just scanned.
mtl-metadata-mcp: Open Source Audio Metadata Embedding for Claude Code - Jul 2025 Code
Any REST API I keep opening a dashboard for can become an MCP server.
SignNow MCP Server: E-Signatures Straight from Claude Code - Jun 2025 Other
Async video pays off as an archive, not as single clips.
1,200 Looms Later: How Async Video Became My Development Superpower - May 2025 Music
A well-defined workflow with domain rules that rarely change is a good fit for a Claude skill.
Building a Claude Skill for DDEX Validation: Automate Music Metadata Checks with AI - Apr 2025 Code
A role-based invite needs a second fetch of the document to get the role_id SignNow assigns.
Integrating SignNow E-Signatures into Your Django Application - Mar 2025 Code
I do not need a paid service to transcribe recordings.
How to Transcribe Video to Text Using OpenAI Whisper - Feb 2025 Sport
A branded watch face is a small project with real value.
How to Create a Watch Face App for Garmin Watch - Jan 2025 Sport
Shipping a rough MVP to waiting coaches beats waiting for clean architecture.
BeatBuddy Replay: Video Analysis App Challenges - Dec 2024 Code
Leaving a tool is manageable once the export is solid.
Notion Backup Tool Built in 3 Days with Python - Dec 2024 Hardware
The key to a DIY MIDI controller is a board with native USB.
DIY MIDI Controller for Ableton with Arduino - Oct 2024 Music
The useful data lives in the .als file, which is just gzip-compressed XML.
Extracting Data from Ableton .als and .asd Files - Aug 2024 Music
Default to the dependency that is still maintained.
AI Song Structure Analysis: Intro, Verse, Chorus - Jun 2024 Music
Treat my DAW as a data source.
Connecting Your Max for Live Device to a Cloud API - Apr 2024 Music
Start with the simplest thing that works.
Export Ableton Locators to JSON via Max for Live - Feb 2024 Music
Designing for sound first made the game work for players I had not planned for.
MemoSonic: Building an Audio Memory Game - Jan 2023 Code
Event Storming shows how a process actually works, not how the documentation says it works.
Dev Meeting 004: Introduction to Event Storming - Jan 2023 Code
Each web era changed one verb for the user: read, then write, now own.
Dev Meeting 003: Web3 Primer - Jan 2023 Code
DDD earns its upfront cost only in large, evolving systems with complex business rules and domain experts at hand.
Dev Meeting 002: Intro to DDD - Jan 2023 Code
Treat Kubernetes as a framework, not just a tool.
Dev Meeting 001: Kubernetes is a Framework - Sept 2022 Code
Most production wins here are one small config line: a cache mount, a health check, a memory limit.
Did You Know? 10 Developer Tips from Real Codebases - Apr 2021 Other
A flat structure on paper still left me as the main blocker.
Holacracy why and where we are - Apr 2021 Other
The "from X to Y by when" formula quickly shows which goals really matter.
The very first attempt to implement 4DX in Bravelab.io - Apr 2021 Other
Profit sharing stays fair when the rules are few: an equal share for everyone, and no payout until all invoices are paid.
A quick introduction to profit sharing implementation - Nov 2018 Other
Linear planning does not work for me, so I focus on today.
Only a few books but dozens of ideas