Update for the week ending on Friday, Aug 15, 2025
mtlynch.io
- Published my July 2025 retro
- Worked on instructions for installing AirGradient from command line
- Revised tags for past posts and added an LLM prompt to generate them
Refactoring English
- Sent out a survey about interest in each chapter
- Way bigger response this time than any other time
- Previous chapters, I’d get only 1-2 responses when I asked for feedback, this time, I’ve already gotten 79 responses in five hours.
- Tweaked the blog chapters slightly
AirGradient
Spent several frustrating hours this week trying to get the AirGradient One to run custom firmware and send data to my local server.
- The challenges
- They hide the documentation about how to compile and reflash the software.
- The last tagged release isn’t really the latest production release.
- The software itself is buggy and messy.
- They totally rewrote the software since the last time I got this working.
- The software assumes you’re talking to an AirGradient server, so customizing that to a local server is very off the happy path.
- It turned out that they now do document how to compile and flash, but they don’t link the instructions in the documentation, so I submitted a fix to make the flashing instructions more discoverable
- Wrote a test server to implement the server side of the AirGradient dashboard
- The problem is that the client insists on TLS, even though the connection to the client is plaintext HTTP.
- Wrote a Nix flake so I can do
nix run .#flash
and it will reflash the current code.- I originally could only get this working in VMs, which would lose the serial connection, so finally getting it working on my main dev machine was a big improvement.
- I think I finally have it consistently flashing.
- Fixed JSON example in /config docs
HN Observer
- Finished migration to DuckDB
- Removed all references to sqlite and litestream
- Ported SQLite tests to DuckDB
- Added the Nix build to CI
- Matched the playwright version in CI to Nix
- Simplified the release binaries step to only build for amd64
- My Go DuckDB library seems unfriendly to ARM
- Tried automatically showing moderation events
- For example, when a post is manually upranked or downranked
- It doesn’t quite work yet.
- Updated to go 1.24.5
- Updated to Playwright 1.54.0
- Fixed the vendor hash of the NixOS module
- Got all the time displays to use NY timezone consistently
What Got Done
- Fix the shutdown notice route so it doesn’t return a 404
- Now that I’ve sunset it, it keeps creating maintenance headaches
- This week, data backups stopped due to a litestream bug
- Updated the
download-prod-db
to work with the latest version offlyctl
- Updated version of litestream in Nix flake
Misc
- Had a call with another blogger
- Gave two bloggers feedback about blog drafts
- Refactored my NixOS config so that I can update Firefox independently (faster) than my other nixpkgs packages
- Did monthly bookkeeping