← All posts

Perceptual hashing

Jun 17, 2026
June 17 — making Loupe leave my box: portability, a brand, and a public site
The day Loupe stopped being a thing that only runs on my machine. I reframed it as a self-hostable product, made the pipeline portable through environment variables, scrubbed both repos clean for publishing, finalized a brand and header, fixed the photobook's repetition problem, and registered loupeculling.com for a marketing site.
Jun 12, 2026
June 12 — culling rules that find nothing, and a bucket that wasn't what it looked like
With the metadata database built, I started writing rules to surface delete-candidates. Two of the rules found nothing, one was secretly broken, and the biggest 'junk' bucket turned out to be footage I'd never delete. The lesson of the day: rules lie, pixels don't.
Jun 9, 2026
June 9 — building a photo-metadata pipeline with no sudo and a flaky network
Day one of the photo project: build an ingest tool that reads ~91,000 photos and videos into a SQLite database so I can cull systematically. The build went fine. The environment fought me, and the performance lessons were not where I expected.