Cover image for XP 3.0: AI Validates What Extreme Programming Got Right

XP 3.0: AI Validates What Extreme Programming Got Right

Extreme Programming evangelists knew pair programming, TDD, code review, and simple design produced better software. The industry mostly ignored them. Too expensive. Too slow. Doesn’t scale.

AI changes this calculation completely. We all pair program now - with AI. TDD keeps AI on rails. AI-to-AI code review catches what humans miss. Simple design matters more than ever because AI needs clean structure to understand context.

XP was right. AI makes it practical.

Cover image for mail-app-cli: Scriptable Email for Emacs and AI Agents

mail-app-cli: Scriptable Email for Emacs and AI Agents

Email clients have GUIs. AI agents need APIs. Emacs users need text interfaces. macOS Mail.app has neither.

mail-app-cli solves this by wrapping Mail.app in a scriptable command-line interface. Complete access to accounts, mailboxes, messages, and attachments. JSON output. No OAuth dance. No API tokens. If it’s in Mail.app, you can script it.

The Problem It Solves

For Emacs users: Read and manage email without leaving your editor. mail-app-wrap provides the Emacs interface. mail-app-cli provides the engine.

Cover image for Monitoring File Handles with 1975 Technology

Monitoring File Handles with 1975 Technology

Your process is leaking file handles. You need to track which processes are consuming handles over time, spot anomalies, and correlate with system behavior. Modern observability platforms want you to install 200MB Docker images, connect to cloud services, and pay subscription fees.

Or you could use six shell scripts totaling 150 lines.

The Tools

collect - Sample file handle counts every 5 minutes avg - Calculate statistics (count, average, min, max) graph - ASCII chart of handle counts over time spikes - Find anomalies (2x average or custom threshold) top - Show processes by handle consumption timeline - Aggregate by time buckets (hourly, daily)

Cover image for Build CLIs First, Wrap as MCPs Second

Build CLIs First, Wrap as MCPs Second

MCP (Model Context Protocol) servers give AI agents access to tools. Tempting to build MCP servers directly. Better approach: build good CLIs first, then wrap them as MCPs.

Good CLIs are multi-interface. Usable from shell. Scriptable. Composable with pipes. Testable standalone. Accessible to humans without AI. Then wrap as MCP for AI agent access.

MCP-first locks you to the MCP protocol. CLI-first gives you flexibility.

The Multi-Interface Advantage

A good CLI like mail-app-cli works in multiple contexts:

Cover image for Building Micro Communities: Seven Years of discuss.kakoune.com

Building Micro Communities: Seven Years of discuss.kakoune.com

IRC was the Kakoune editor’s primary community space. Ephemeral. Sync-only. No searchable history. Technical discussions disappeared when people logged off. New users asked the same questions repeatedly because answers weren’t preserved.

Reddit existed but wasn’t ideal for deep technical discussions. GitHub Issues worked for bugs, not community building. The community needed permanent, searchable, async-first space.

Created discuss.kakoune.com in September 2018. Discourse forum. Mailing list mode for email participation. Searchable archive. Reorganizable threads. Still active daily seven years later.