Weeknotes #0


I’m trying something new, inspired by Nika and Barrucadu, and writing weeknotes - smaller, more personal posts about what I’ve been doing over the last 7 days. I’m hoping that this:

  • Encourages me to write more, more often. It’s all too easy for “proper” blogs to get stuck in draft hell. At least, it is for me. A smaller and more informal scope should be easier to finish.

  • Acts as a better record or what I’ve been up to day to day. I do more than neat, self-contained bloggable things and a lot of it is not worth a larger write-up. It’s good to have a record of what I’ve been up to to look back on and see how far we’ve come. And maybe it’s slightly interesting for other people too!

  • Is more personal to read. I don’t just do computer things!

So, with that said, here’s what have I been up to this week:

  • Installed a new Mac Mini server for Hacks ‘R’ Us in Mythic Beasts’ datacenter. This is my first experience of hosting (“Colo-ing”) a real physical box in someone else’s facility1, and it has made me tread a lot more carefully with my changes knowing that the only way to unfuck anything that I fuck up will be to physically go there…

    I’m quite pleased with the setup. It’s running NixOS, with two SSDs mirrored in ZFS, with the “new” ZFS encryption enabled. When it reboots you get a minimal initrd environment running openssh so you can remote in and enter the encryption password, at which point boot continues. First time I’ve set anything like this up!

    I’ll start migrating stuff over soon, and before long we should be able to get rid of/shrink the virtual server we currently have and save some money while >10xing our disk space and quadrupling our RAM and number of cores.

  • While configuring said server, I found and reported a fun bug in NixOS’ OpenSSH server preventing users from changing expired passwords via SSH. The issue was due to NixOS not shipping passwd in the “usual” location of /usr/bin/passwd, but instead at /run/wrappers/bin/passwd.

    I suspected this might be the case due to ssh printing

    passwd: No such file or directory
    

    when you login with an expired account, and confirmed that this was the issue by temporarily symlinking the real path to /usr/bin/passwd, which worked. I then had a quick dig in openssh-portable’s source, and found that PATH_PASSWD_PROG is a #define that can be set by a build-time environment variable.

    I submitted an MR fixing it, which has gone back and forth a bit with maintainers, but seems like it might be on track to get merged soon, which is cool! I’m a little surprised I was the first to report this - do so few people really use passwd -e?

  • Worked on automated captions for talks at EMF. We had hoped to get sponsorship for realtime captioners but were unable to get it, so we landed on building an automated captioning system on the basis that somewhat accurate automated captions are better than none. I’ve built a prototype that takes any URL ffmpeg can understand, and sends the transcoded audio to a Whisperlive server for captioning. Early results feeding it BBC Radio 4 and the audio of an EMF talk from last time are very promising! Next up is some javascript wrangling to show websocket-borne captions suitable for big displays.

  • I ended the week with a trip to the Lake District with some friends. We hiked to the summit of Helvellyn via Striding Edge - my first time up there and first “proper” scramble. It was decent weather albeit with low cloud obscuring any summit views, but was a great weekend regardless.

A photo of a mountain ridgeline almost entirely shrouded in cloud

  1. Rather than paying for a virtual server, or just hosting stuff at home ↩︎