Four days of old vibe coding
The Snipy sprint, logged honestly: incumbents charge by the minute like 2005 phone plans, the diarization MVP works by deducing that whoever talks more is him, the research repo takes two days to tame, Gemini loops, and the unblock is la vieja confiable, Claude, across four burned accounts.
// trace: where this idea came from
- ↳ video diary @ 16:05 (la vieja confiable)
- ↳ video diary @ 5:56 (el MVP con lógica deducida)
- ↳ video diary @ 21:26 (no la voy a terminar, y la voy a hacer igual)
The market check first: tools that clip videos exist, but they bill by the minute, one plan selling 100 hours a year when this channel produces that in ten days ▸ 1:55, pricing Julia recognizes instantly as the limited-minutes phone plans of their childhood ▸ 2:12. So Snipy continues, and the log is the entry.
Day one: the stereo idea dies again, the mics are mono. But the search term it surfaces, diarization, turns out to be a mature research field, and Pyannote segments the audio into speaker timelines the first night ▸ 4:16. The MVP identification step is pure detective logic: three detected speakers collapse to two plus filler, and “yo siempre hablo más, entonces yo soy speaker 02” ▸ 5:59, left and right assigned by hand, the demo cutting between them on camera ▸ 6:23. Then ambition: an active-speaker-detection paper, AVA-AVD, boxes around faces, in theory re-identifying a person who leaves the frame ▸ 7:09. The catch consumed two days: the GitHub repo is research exhaust, published as-is when the paper shipped, “tome, le botó eso ahí”, tuned for the author’s GPUs and 200-video datasets, not for a stranger with one video ▸ 8:59.
cuando el agente da vueltas, se vuelve al viejo oficio: un modelo piensa, otro teclea →
The tooling story inside the sprint: Gemini 2.5 Pro looped uselessly once the project grew too many files ▸ 10:16, so he regressed to “old vibe coding”, one model as architect, ChatGPT, whose instructions he pipes into Cline for execution ▸ 14:24, burning the free tier across three accounts ▸ 15:26. The actual unblock was returning to “la vieja confiable”, Claude, Sonnet 4.5, which he hadn’t touched in ages and which shocked him with how much it had improved ▸ 16:05, worth four exhausted accounts and a promise: the day there’s money, that subscription gets paid ▸ 18:37. State at deadline minus one: every face currently labels speaker zero ▸ 19:36, a parallel agent picks the clip-worthy transcript sections, clickbait welcome, under three minutes ▸ 19:55, and the mature call is already made: he won’t finish in time, the assessment grades process anyway, and he’s building the app regardless, “la quiero hacer para mí” ▸ 21:26…
Postscript, two days later: the bounding boxes were misfiring and he was ready to swap models; the newly paid-for Claude suggested tuning the detection threshold instead, he called it a stupidity, ran it, and the tracker started following person A and person B “casi que perfectamente” ▸ 54:01. Remaining bugs are honest ones, identities drift to person D and E when someone leaves frame, screen-shares explode the roster, and a 40-minute video crashed the computer at minute 25, but the itch is back: “me dan ganas de volver a trabajar con machine learning” ▸ 55:54.