Pleasing progress on tools to generate the Hugo Voter Packet
In unrelated news, over the past few days I got my system for automatically creating the Hugo Voter Packet zip files working!
I’m pretty pleased with how it went—it was one of those projects where at several points, there turned out to be a simpler/easier way to do things than I had expected. And the coding and testing process went very smoothly, with no particularly frustrating or hard-to-fix bugs.
(The setup process did run into some snags, because I didn’t have the right permissions to do various parts of the setup. But those issues all got resolved.)
The outline of how it works is that I have a mini Python script that turns a given directory into a zip file*, and a Makefile that generates lists of the relevant files and determines whether each zip file needs to be updated (and then it calls the Python script as needed). And both of those live on a cloud server rather than on my local computer.
* (I did this in Python rather than just calling command-line zip because the Python library handles non-ASCII characters in filenames correctly.)
This is a huge improvement over last year’s manual system, in which any time we changed the overview PDF that was included in all the zip files, I had to do several hours of manually uploading and downloading things, a process that eventually exceeded my monthly bandwidth limit for my home internet. (I hadn’t even known that I had such a limit!)
I tested the new system using the 2024 Packet files; using the new system, it takes roughly 90 minutes to create a full set of last year’s zip files from scratch. And it’s now an entirely automated process; I can set it running and walk away, and 90 minutes later everything will be done. (Well, and then it’ll take a while for me to manually download and check all the new files and make sure they’re right.)
Of course, there may well be snags when we try to use this new system for the 2025 Packet. (We obviously won’t even start receiving Packet files until after the Hugo finalist voting is done, a week and a half from now.) But for now, it’s looking pretty good.