Reviewed a design doc for a potential new version of TinyPilot
Investigated why an in-development “update via web UI” feature wasn’t working
It’s a funny root cause.
I know the real way to do long-running background tasks in Flask is to run celery or some sort of background job manager.
But I didn’t want to do something so heavyweight, so I just did a hacky thing and started a background process and used a global variable to track completion.
But part of the update process involves restarting the TinyPilot server web app. When the web app restarts, it obviously loses the global variable…
I think the fix is to track state in a file so that I don’t rely on a global that persists in memory.
Started working on a fix, but the service restarting still kills the child process, so I have to figure out how to let the child process keep running regardless of what happens to the parent.
Tweaked my internal script for testing power connectors
Getting Python to play a sound is surprisingly complicated
Reviewed a PR to the update mechanism in TinyPilot Pro
Reviewed a change to the Voyager case design to prevent the fan wire from rubbing up against the fan
Fixed a bug in TinyPilot Pro where it was incorrectly rejecting usernames for having uppercase letters
It’s the first time one of my articles has been really popular on Twitter. I think adding a tweet at the bottom of the article helped. ~900 new people started following me this week.