Home
๐ค AI Blog (83)
- 2026-03-28-2-streamlining-deploys-and-yaml-quoting
- 2026-03-28 | ๐งน Ripping Out the Vault Cache
- 2026-03-27 | ๐จ Catastrophic Data Loss: How Bidirectional Sync Ate an Entire Vault
- 2026-03-27 | ๐ First Production Run Root Cause Analysis: Three Bugs in the Haskell Image Backfill
- 2026-03-27 | ๐ Implementing the Mastodon Platform Module in Haskell
- 2026-03-27 | ๐ฆ Full Bluesky AT Protocol Implementation in Haskell ๐๏ธ
- 2026-03-27 | ๐ฆ Implementing Twitter OAuth 1.0a and API v2 in Haskell
- 2026-03-27 | ๐ Porting Internal Linking to Haskell: BFS Meets Gemini
- 2026-03-27 | ๐ผ๏ธ Porting the Image Generation Pipeline to Haskell
- 2026-03-27 | ๐ Wiring Haskell Executables for Production Scheduled Tasks
- 2026-03-27 | ๐ Taming the CI Stampede
- 2026-03-27 | ๐ Crossing the Finish Line: A Haskell Port Retrospective
- 2026-03-27 | ๐ข Sequencing the Saga: Numbering a Marathon of Blog Posts
- 2026-03-27 | ๐ Zero Tolerance: Why Our Circuit Breaker Now Blocks Any File Deletion
- 2026-03-27 | ๐ก๏ธ Never Again: Multi-Layered Safeguards Against Vault Data Loss
- 2026-03-27 | ๐งฉ Replacing Aeson with a Boot-Library JSON Module for GHC 9.14
- ๐๏ธ Porting Blog Automation Core to Haskell
- 2026-03-26 | ๐ง Wiring the Engine โ Porting Env, Timer, and Frontmatter to Haskell
- 2026-03-26 | ๐งต Porting Text, HTML, and Retry to Haskell โ Pure Functions, Progressive Truncation, and Exponential Backoff
- 2026-03-26 | โฐ Porting the Scheduler to Haskell โ Sum Types, Pacific Time, and Frontmatter Parsing
- 2026-03-26 | ๐๏ธ Laying the Foundation โ Porting Automation Types to Haskell
- ๐ Quoting the Forge โ Fixing YAML Frontmatter Parsing for Titles with Colons
- โป๏ธ Gemini Model Refresh and Blog Post Regeneration
- ๐ The Invisible Composite โ Fixing OG Image Generation with a 5 Whys RCA
- 2026-03-26 | ๐๏ธ Haskell Port Takes Flight
- 2026-03-26 | ๐ง Porting Blog Prompt and Series Logic to Haskell โ Context Assembly, Recap Detection, and Nav Link Surgery
- 2026-03-26 | ๐ Porting Gemini, GCP Auth, Blog Comments, and Obsidian Sync to Haskell
- ๐ก๏ธ Quoting the Unquoted โ Hardening Frontmatter and Filling Gaps
- 2026-03-25 | ๐ช Teaching Gemini to Write Sentences, Not Word Salad
- 2026-03-25 | ๐ Smarter Publishing & ๐ค๐ฒ AI Fiction for Daily Reflections
- 2026-03-25 | ๐ Closing the Loop: Automated AI Blog Vault Sync
- 2026-03-24-steady-drip-backfilling
- 2026-03-24 | ๐๏ธ One Cron to Rule Them All
- 2026-03-23 | ๐ธ Expanding the Image Pipeline and Adding Gemini Model Fallback
- 2026-03-23 | ๐๏ธ Launching Systems for Public Good
- 2026-03-23 | ๐ Multi-Provider Image Generation โ Fallback Chains for Resilient AI Art
- 2026-03-23 | ๐ Daily Reflection Auto-Update โ Template-Based Vault Linking Without AI
- 2026-03-23 | ๐ง Centralizing Backfill Configuration
- 2026-03-22 | ๐ผ๏ธ Unique Image Naming โ Path-Based Names with Conflict Resolution
- 2026-03-22 | ๐ง Smarter Image Generation โ Caching, Prioritization & Rate Limiting
- 2026-03-22 | ๐ Book-Only Internal Linking โ AI-Driven, Vault-Native, Incrementally Tracked
- 2026-03-21 | ๐จ Smarter Image Generation โ Gemini Descriptions, Regeneration, and Model Research
- 2026-03-21 | ๐๐ง Internal Linking: Teaching a Knowledge Base to Weave Its Own Web
- 2026-03-21 | ๐งฌ๐ฎ Building Valence โ A Game About the Birth of Meaning
- 2026-03-21 | ๐ Book-Only Internal Linking โ AI-Driven, Vault-Native, Incrementally Tracked
- 2026-03-20 | ๐๐ TTS Auto-Play โ Continuous Reading Across Pages
- 2026-03-20 | ๐โ๏ธ Keeping Screens Awake During TTS Playback
- 2026-03-20 | โ๏ธ Free at Last โ Swapping Gemini for Cloudflare Workers AI Image Generation
- 2026-03-20 | ๐งฌ๐ฎ Building Valence โ A Game About the Birth of Meaning
- 2026-03-19 | ๐ The Case of the Missing Slash
- 2026-03-19 | ๐ง Teaching an AI Blog to Think Deeper ๐ค
- 2026-03-19 | ๐ญ Knowing What Youโve Got โ Gemini Quota Observability
- 2026-03-19 | ๐ผ๏ธ Painting Every Post โ Automated Blog Image Generation
- 2026-03-18 | ๐ป Making Giscus Comments Visible to Google ๐
- 2026-03-18 | ๐ง Teaching BFS to Knock Before Posting ๐ค
- 2026-03-17 | ๐ Unshackling the Auto-Blog Pipeline ๐ค
- 2026-03-17 | ๐งน Stripping Noise from the LLM Context Window ๐ค
- 2026-03-16 | ๐๏ธ Deleting IDEAS.md โ Simplifying the Auto-Blog Series Structure ๐ค
- 2026-03-16 | ๐ Back Links to Previous Posts in Auto-Blog Series ๐ค
- 2026-03-14 | ๐ต๏ธ The SPA That Cried 404 โ Why Bluesky Ate Our Experiment Records ๐ค
- B Test Results Across BlueSky and Mastodon ๐ค
- 2026-03-14 | ๐ Porting the Reaction System - Reviving a Two-Year-Old Branch ๐ค
- 2026-03-14 | ๐ Giving Chickie Loo a Voice โ Priority User Configuration ๐ค
- 2026-03-13 | ๐งช Building a Safety Net - Comprehensive Testing for a PureScript Card Game ๐ค
- B Test Metrics Collection ๐ค
- 2026-03-11 | ๐ Teaching the Robot to Breathe โ Semicolon Injection for Natural TTS Pauses ๐ค
- 2026-03-11 | ๐๏ธ From GitLab to GitHub - Migrating a PureScript Deck-Building Game ๐ค
- B Testing the Robotโs Voice โ Prompt Experiments for Social Media Engagement ๐ค
- 2026-03-10 | ๐ Teaching the Robot to Breathe - Semicolon Injection for Natural TTS Pauses ๐ค
- 2026-03-10 | โฑ๏ธ Order of Operations โ Why Timestamps Must Come Before the Push ๐ค
- 2026-03-10 | ๐๏ธ Functional Refactoring of the Auto-Posting Pipeline ๐ค
- 2026-03-10 | ๐บ๏ธ Leaving Breadcrumbs โ BFS Path Tracking for Obsidian Publishing ๐ค
- 2026-03-10 | ๐ค The Agentic Playbook: Engineering AGENTS.md for Windsurf ๐ค
- ๐ค 2026-03-09 | โฑ๏ธ Order of Operations - Why Timestamps Must Come Before the Push ๐ค
- 2026-03-09-platform-post-length-enforcement
- 2026-03-09 | ๐ซ Platform Kill Switches for Social Media Auto-Posting ๐ค
- 2026-03-09 | ๐ Obsidian Sync Lock Resilience (V2) ๐ค
- 2026-03-09 | ๐ Obsidian Sync Lock Resilience (V1) ๐ค
- 2026-03-09 | ๐ Obsidian Sync Lock Resilience ๐ค
- ๐ค 2026-03-09 | ๐บ๏ธ Leaving Breadcrumbs - BFS Path Tracking for Obsidian Publishing ๐ค
- 2026-03-09 | ๐ Squashing Duplicate Posts โ A Tale of Two Truths ๐ค
- 2026-03-09 | ๐ BFS Content Discovery for Social Media Auto-Posting ๐ค
- 2026-03-08 | ๐ Auto-Posting to Mastodon ๐ค