A quiet, busy week.
Two streams, taking me past the hundred hour mark.
I’m elbow-deep in the abstract syntax parser, trying to build an identifier context so that all the symbolic identifiers are resolved into numeric indexes before runtime.
That turned out to be more involved than I expected: to know the index of every local variable you need to know the signature of every function definition, which means you need to know the content of every type definition, which means you need to generate all the implicit type definitions in the correct order so that all the type indexes point to the right places. No individual part of it’s particularly difficult, but it took me a while to understand what was required and get all the pieces working together.
I’m sort of tired of working on the parser, but I’m still enjoying chipping away at the project.
Again, I thought that’d be simple, but the naïve implementation I whipped up with
google-api-ruby-clientwasn’t good enough. The latency of live streaming means that commits don’t appear at exactly the right time in the video, and the clock drifts a little over the course of several hours, plus commits & YouTube chapters only support whole-second resolution, so there’s a large total error by default.
Fortunately the YouTube web player does let you find the exact timestamp of frames: the
.keys move to the previous/next frame when paused, and “Stats for nerds” hides a millisecond-resolution timestamp in its Mystery Text. So I grabbed the times of a few making-a-commit frames from each video, then used simple linear regression to find a time delay and scaling factor that minimised the error, and regenerated the chapters from that data.
And it works okay! I think it’s impossible to get it perfect but it’s definitely better than no video description at all.
I saw Madison Cunningham in Islington on Tuesday. She put on a great gig and this time I could sit down and not have a drunk man shouting directly beside me. Success.
Friday dinner with Reema & Aleks combined amazing food & wonderful company and I found it restorative in all respects except the mild hangover on Saturday morning.
Mince pie count: zero.