baby monitor

As all paranoid parents are wont to do, my partner and I have set up a video baby monitor… to watch the puppy.

At 3 months old, we mostly use it to answer the questions “is she still asleep? can we still rest? dear God please let her still be asleep”. Which, to be fair, may not be too different for human children.

To her credit, Maddie has made pretty good progress at the whole sleeping thing. She typically only wakes us up once overnight, around 1 or 2 am depending, and is napping at a schedule of approx 2 hours awake to 1 hour asleep during the day. Which seems to be appropriate for her developmental level but is still nice to see.

Lowering the barrier to posting

Inspired somewhat by Simon Willison’s blog, I’m intentionally trying to lower my personal activation energy for posting to this blog. Hence the more frequent link and quote posts over the past few weeks!

This is both to try and make sure more of my thoughts are captured on a site I control, rather than just ending up on one social media platform or another. And to encourage myself to just post more frequently and share my thoughts.

I’m also trying to remind myself to link to these entries on BlueSky, the Fediverse, and even LinkedIn. But also, if you want to follow my posts, the most reliable method is the RSS feed as the Internet intended!

Quoting antirez on AI

Anyway, back to programming. I have a single suggestion for you, my friend. Whatever you believe about what the Right Thing should be, you can't control it by refusing what is happening right now. Skipping AI is not going to help you or your career. Think about it. Test these new tools, with care, with weeks of work, not in a five minutes test where you can just reinforce your own beliefs. Find a way to multiply yourself, and if it does not work for you, try again every few months.

Yes, maybe you think that you worked so hard to learn coding, and now machines are doing it for you. But what was the fire inside you, when you coded till night to see your project working? It was building. And now you can build more and better, if you find your way to use AI effectively. The fun is still there, untouched

From Don’t fall into the anti-AI hype

Benny enjoying his walk

The puppy has gotten featured a little more frequently lately, but it’s still important to highlight our big dude here.

Latency-critical Linux task scheduling for gaming

LWN has an excellent article up on the “latency-criticality aware virtual deadline” (LAVD) scheduler, from a talk at the Linux Plumbers Conference in December.

In particular, I appreciate the detailed discussion of using different profilers and performance-analysis tools at different levels to determine how to optimize scheduling to improve two key goals: providing high average FPS while keeping 99th-percentile FPS as low as possible, e.g. to prevent UI stuttering. Optimizing for battery usage is also important, as the Steam Deck was one of the main targets for this work.

The key finding that came out of his analysis is perhaps somewhat obvious: a single high-level action, such as moving a character on-screen and emitting a sound based on a key-press event, requires that many tasks work together. Some of the tasks are threads in the game process, but others are not because they are in the game engine, kernel, and device drivers; there are often 20 or 30 tasks in a chain that all need to collaborate. Finding tasks with a high waker or wakee frequency and prioritizing them is the basis of the LAVD scheduling policy.

As always with LWN there’s good coverage not only of the talk itself, but also the Q&A following the session and ideas from the audience on tooling and other improvements.

Phoronix also covered a different talk from the same conference (I think) on how Meta is using the LAVD scheduler as the basis for a new default scheduler used on their fleet.

I haven’t had a chance to watch this talk yet (video linked from the article) but I’m very interested in the idea that the same concepts might be useful to a hyper scaler as well as a device like a Steam Deck.

Puppy at 12.5 weeks

Here’s Madeleine at 12.5 weeks, sitting under my desk and wondering why I’m working instead of playing with her.

Puppies are both adorable and exhausting, and I apologize to the world at large for how sleep-deprived I am…

“My Cousin Vinny” as an LLM benchmark

Mike Caulfield wrote a very thorough and quite entertaining article about posing the following question to ChatGPT:

What were Marisa Tomei’s most famous quotes from My Cousin Vinny and what was the context?

Depending on the model selected, the answers to this varied from hilariously wrong, to plausible-but-flawed, to accurate.

Interestingly, substantial test-time compute (“thinking time”) seems to be necessary to do a good job here, despite the easy availability online of famous quotes, plot summaries, and even the script. While the fast-response models available for free were prone to hallucinate.

At the same time I was struck just how much reasoning time needed to be expended to get this task right. It’s possible that My Cousin Vinny is uniquely hard to parse, but I don’t think that is the case. I’ve tried this with a half dozen other films and the pattern seems to hold. If it’s true that a significant amount of similar film contextualization tasks are solvable with test-time compute but require extensive compute to get it right, it seems to me this could be the basis of a number of useful benchmarks.

The full article is well-worth reading, and not only because it discusses My Cousin Vinny in substantial detail (great movie).

Quoting Murat Demirbas

From Optimize for momentum:

So the trick is to design your workflow around staying in motion. Don’t wait for the perfect idea or the right mood. Act first. Clarity comes after. If a task feels intimidating, cut it down until it becomes trivial. Open the file. Draft one paragraph. Try freewriting. Run one experiment. Or sketch one figure. You want the smallest possible task that gets the wheel turning. Completion, even on tiny tasks, builds momentum and creates the energy to do the next thing. The goal is to get traction and stop getting blocked on an empty page.

Murat is discussing research here, but I’ve found the same process is key in systems design, or writing code or documentation, or drafting a presentation. Getting the project started, and then maintaining a sense of forward progress, is really essential to getting the thing done.