2022-02-20 Week in Review


After reading Casey’s post about ffmpeg, I finally got around to sorting out the install on my M1 macBook. Turns out, my homebrew install was all kinds of broken.


I picked up a Telstra Smart Modem Gen 2 (Technicolor DJA0231) for $20 from Facebook Marketplace, hoping to pick up some more speed on my terrible FTTN NBN connection. Alas, a waste of money and time, FTTN that is. What a criminal waste of our country’s time and money.

While I was out, picked up parts to replace the enclosure for the Sonde tracker. (See below).

I did some work on github_linter, finally getting background tasks working properly with FastAPI and uvicorn. The way this system works is that it has to do a fairly lengthy update process because… I have lots of repositories and the API calls are slow. Fun! Asyncio works great for this.


I added support for %nN and %nQ (where n is a digit) format strings to my little single-page app for playing with date strings, sprintf. I also moved to using Vue.js for the frontend, aligning it with work I’d been doing on github_linter.



Someone finally took interest in my PR to add JSONReader, which led to a few hours of confusion while I tried to make it work more betterer. Turns out, JSON mode’s still 100x faster than the XML-based default. Woo!

Seriously, if you’re writing any Python these days, especially if it’s a module someone else is going to use, typing makes life easier for everyone. Just do it, make it clear what’s going in and coming back out.


Some internal applications make a lot of queries for no real reason, which get logged by my pihole instance. I shoved dnsmasq on the VMs around my house, trading ~2MB of memory for much fewer DNS events and faster things happening around the place.

Yeah, it’s totally just busywork to reduce logging noise, but … it works! Seriously, if you’re running certain applications, shove dnsmasq or unbound on the hosts and make everything a lot happier.

Pihole logging

Speaking of DNS, I did some tweaks around the logging, setting better sourcetypes and stuff.


Kanidm things

Fixed up my build system for Kanidm. Something between AWS’ CLI and the new version of Minio I’m using wasn’t nice, so now I have to explicitly set AWS_DEFAULT_REGION as an environment variable.

Built the latest version of Kanidm, forgot to update the domain field in the config, which I helped bring about… but this also made me include the new configtest check in my upgrade script while I was working on it, so … win?

I added some more healthchecks to Nagios, checking every (known) Kanidm client every so often to alert when kanidm-unixd-tasks or kanidm-unixd stop working. I’ve seen this happen a few times but can’t always correlate when - and if they’re offline for too long then auth can fail. Which is bad.

Rebuilt the rdz-sonde antenna

I wanted a waterproof version, so after mucking around at Bunnings one night figuring out which parts would fit together, this strange thing came to life. The top “cap” is 50mm nominal, so the N-type connector poking through the top has plenty of height for the angled parts to do their thing.

There’s plenty of room in the body for a nice big battery pack, or a different module if/when that changes down the track.

The updated enclosure

The bottom’s supported by a cap with a hole in it, that sits on top of the pole, but I’ve got a spare cap for that which allows for complete weatherproofing.

Played around with DNS

Then was wondering why my local Splunk instance wasn’t working … I forgot that I’d set the DHCP leases in the firewall to be resolveable as local entries which … ends bad if I hadn’t cleaned up the old VM I used for the local s3 backend … remove the old DHCP lease, make DNS right again, wait a few minutes and everything was happy :D

It’s sometimes DNS.

#sonde #review #kanidm #lol #linux