Weeknotes 2025 W24: Infection

June 9​–​15, 2025
800 words

Quick bits:


Shower thoughts:


Deniki now has a split view. It is distinctly useful to have multiple panes open. I have used Deniki for writing letters: one pane for the draft, one pane for a high-level summary of the points, and one pane for an unstructured brain dump.

This split view makes it easier to show my approach to developing Deniki. Here is the Deniki document for Deniki:

A screenshot of Deniki. There is one window with three split panes, showing pages for the wish list, the to-do list, and the list of past releases.

I’d like each split view pane to have its own toolbar, though, similar to how IDEs have them (like Xcode). Maybe I will rework that in a future version, but for now it is good enough.

Also: Deniki is 1.1 MB and launches in a fraction of a second. Just the way it needs to be.


After converting screen recordings manually with ffmpeg over and over again, I have (finally) created a macOS shortcut that does it for me. It takes in a media file (through Quick Actions in the Finder context menu), and then runs the following bash script:

/opt/homebrew/bin/ffmpeg \
  -y \
  -i "$@" \
  -vcodec libx264 \
  -pix_fmt yuv420p \
  -strict \
  -2 \
  "${@%.mov}.mp4"

open --reveal "${@%.mov}.mp4"

That was easy. Now that I know how straightforward it is: are there more shortcuts that I can create?


I repotted my Sansevieria plant, as it was growing a little bit big for the pot that it was in. It turned out to be not a single plant anymore, but five, with a sixth half on the way.

So, while my other repotted plants are not doing well, I now have a surprise collection of new plants. I am rather pleased with how resilient Sansevieria is.1

I have run out of plant pots and potting soil.


I know I said I wouldn’t talk about AI anymore, but I found something so profoundly stupid that I have to talk about it.

In a post on the Cursor forums, a user wrote the following:

Yesterday I was migrating some of my back-end configuration from Express.js to Next.js and Cursor bugged hard after the migration - it tried to delete some old files, didn’t work at the first time and it decided to end up deleting everything on my computer, including itself.

Last week, I mentioned how the agentic AI that I was using could not handle spaces in paths. I got lucky, and nothing bad happened — but improperly escaping paths has historically caused quite some damage.

Last week, too, I explained how the agentic AI “solved” the failing tests by removing them. That was fortunately easy to recover from.

Running an AI agent, with full disk access and the ability to execute arbitrary code, is just fucking nuts if you ask me.


Entertainment:


Links:


  1. Sansevieria’s resiliency is probably why they are rather common in offices. I am worried that my home will start looking like an office with all the Sansevierias around. ↩︎

  2. Unavowed (Wadjet Eye Games, 2018), published by Wadjet Eye Games. ↩︎

  3. Anno 1800 (Ubisoft Blue Byte, 2019), published by Ubisoft. ↩︎

You can reply to this weeknotes entry by email. I’d love to hear your thoughts!
If you like what I write, stick your email address below and subscribe. I send out my weeknotes every Sunday morning. Alternatively, subscribe to the web feed.