Apple Music gives the same album two different IDs
Building the add-to-library flow and learning that MusicKit's library and catalog copies of one album are unrelated objects, as far as their IDs go.
Notes on the software, games, and music coming out of Imperfect Systems.
RSS feedBuilding the add-to-library flow and learning that MusicKit's library and catalog copies of one album are unrelated objects, as far as their IDs go.
Building an album-grouped playlist screen for a MusicKit app before real data existed: EP detection, mock services, and a test that caught a stale fixture.
A protocol, a real service, and a mock that records its writes: making the simulator useful again, plus the worktree mishap and the newborn-target trap.
A prerequisite ticket said to flip a flag that was already on. Reading the source at the deployed tag turned a no-op into three corrections.
An agent can't click the New Project wizard. Xcode 16's file-system synchronized groups are the seam that lets it own every source file anyway.
Writing the CLAUDE.md for a new iOS app before any Swift exists: the MusicKit-in-simulator trap, CloudKit's SwiftData rules, and the learning-project framing.
Hashnode is a third syndication target, and the first over GraphQL: no client gem, a two-step publish flow, and sync by slug instead of draft ID.
The Forem API as the anti-Medium, a shared LinkedIn announce service with idempotency, and the Zeitwerk acronym gotcha that struck twice.
72 Medium posts my database knew nothing about: the RSS cap, an undocumented GraphQL workaround, Unicode apostrophes, and the kamal stdin trap.
My Mac's Docker daemon was a load-bearing part of production deploys. Build-once-deploy-many with Kamal 2, and the three research assumptions that were wrong.
Page 14 of 16