Skip to content
NewA 9-month company budget from six data sources in one hour

What I learned

One lesson from every logbook entry, in one sentence. Each card opens the full story.
53lessons
5worlds
2018 to 2026from the logbook
  1. 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
  2. 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
  3. Nov 2026 Code

    Do not be afraid to experiment with tools.

    Merch shirts on a 3D dress form, built headless in Blender
  4. Nov 2026 Sport

    Decode the real files before I design the screens.

    What is inside a Garmin swim FIT file
  5. 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
  6. 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
  7. 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
  8. 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
  9. Oct 2026 Hardware

    Test my checker against the bug before I test the fix.

    Testing a swim metronome with a Mac microphone
  10. Oct 2026 Code

    A consent banner can remember the answer and never pass it to gtag.

    Analytics showed nothing although cookies were accepted
  11. 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
  12. 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
  13. Oct 2026 Sport

    Approval gives me credentials, not data.

    Garmin Connect Developer Program: From Application to First Webhook in One Afternoon
  14. 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
  15. 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
  16. 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
  17. May 2026 Music

    Startup time decides the shape of a DAW tool.

    C2PA in Ableton: Making AI Music Provenance Visible Inside Your DAW
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. Feb 2026 Hardware

    A missing driver is not a dead end.

    NFC Tag Emulation on nRF52840 with Rust — No SDK Required
  27. Nov 2025 Music

    A BPM number from an API is a starting point, not the truth.

    Tempus Metronome and GetSongBPM API
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. Mar 2025 Code

    I do not need a paid service to transcribe recordings.

    How to Transcribe Video to Text Using OpenAI Whisper
  36. Feb 2025 Sport

    A branded watch face is a small project with real value.

    How to Create a Watch Face App for Garmin Watch
  37. Jan 2025 Sport

    Shipping a rough MVP to waiting coaches beats waiting for clean architecture.

    BeatBuddy Replay: Video Analysis App Challenges
  38. Dec 2024 Code

    Leaving a tool is manageable once the export is solid.

    Notion Backup Tool Built in 3 Days with Python
  39. Dec 2024 Hardware

    The key to a DIY MIDI controller is a board with native USB.

    DIY MIDI Controller for Ableton with Arduino
  40. 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
  41. Aug 2024 Music

    Default to the dependency that is still maintained.

    AI Song Structure Analysis: Intro, Verse, Chorus
  42. Jun 2024 Music

    Treat my DAW as a data source.

    Connecting Your Max for Live Device to a Cloud API
  43. Apr 2024 Music

    Start with the simplest thing that works.

    Export Ableton Locators to JSON via Max for Live
  44. Feb 2024 Music

    Designing for sound first made the game work for players I had not planned for.

    MemoSonic: Building an Audio Memory Game
  45. 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
  46. Jan 2023 Code

    Each web era changed one verb for the user: read, then write, now own.

    Dev Meeting 003: Web3 Primer
  47. 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
  48. Jan 2023 Code

    Treat Kubernetes as a framework, not just a tool.

    Dev Meeting 001: Kubernetes is a Framework
  49. 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
  50. Apr 2021 Other

    A flat structure on paper still left me as the main blocker.

    Holacracy why and where we are
  51. 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
  52. 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
  53. Nov 2018 Other

    Linear planning does not work for me, so I focus on today.

    Only a few books but dozens of ideas