Complete journal / Year

2025

53 notes published in 2025.

One Claude Code Install Is Enough

My machine has one Claude Code executable and one updater. Here is how I check the path, remove conflicts, and keep it that way.

Claude Code Comes to the Web and iOS

Claude Code on the web changes coding from an editor interaction into delegated work. That matters more than adding another interface.

Sora Isn't the Problem: It's the Mirror

Using Sora in a TikTok-style feed made social media's incentive problem hard to ignore: fabricated video is now cheaper than recording reality.

Claude Haiku 4.5: Cheap and Fast

I use Claude Haiku for small refactors, review, and debugging. Its lower cost and faster responses matter more there than deeper reasoning.

What SwiftUI's Tab APIs Actually Do

I rebuilt SwiftUI's TabView examples to separate the iOS 18 navigation APIs from the iOS 26 Liquid Glass redesign—and to see where the system takes control.

Fix Cloudflare 525 Errors with Fly.io

Cloudflare 525 errors on Fly.io usually mean the origin certificate is wrong. Fix the custom domain cert before blaming DNS.

AI Is the New Backdoor Layoff

Companies can shrink teams without announcing layoffs. They call it AI efficiency, lower hiring needs, and let attrition do the rest.

How Claude Code Built This Blog - Part 2

Claude Code helped build the parser, generator, templates, and Cloudflare deployment. Syntax highlighting and timezones took more work.

How Claude Code Built This Blog - Part 1

I paid about $10 to see whether Claude Code could scaffold the TypeScript static-site generator behind this blog. Most of its choices held up.

Bitcoin ATMs Are Not Financial Inclusion

Bitcoin ATMs charge steep fees and are frequently used in scams. Their placement in vulnerable neighborhoods makes the business model hard to defend.

Why I Built a Static Blog

A personal blog should be fast on a phone and boring to host — Markdown to static HTML on Cloudflare, no app server.