2024 Week 3

Published on: 2024-01-21

weekly gamejam home network

Home network improvements

Migrated all of my containers a dedicated server, so the NAS can just be a NAS. This has significantly sped up my Jellyfin server. The Celeron the QNAP was barely holding it together.

Digitizing my filing cabinet

It’s time to finally digitize the filing cabinet. I’ve been wanting to setup a tagged document store that I can scan documents into, and recently found paperless-ngx1, which seems to be the perfect solution.

I want to be able to scan the documents quickly and easily - even if writing the automations takes more time than they save.2 I spent an entire evening just getting network scanning and printing to work on Archlinux.

In particular, it was difficult to get the Scan-To-PC functionality working. On Windows, they provide a graphical driver, which lets you register your PC as a target for the printer. I eventually found the pacakge brscan-skey3, which allows me to run a Systemd service which registers my system as a target. It required some modification of the provided shell scripts, as out of the box they silently failed, but eventually it came together. Ultimately, despite the effort, I dropped this solution, because the Scan-to-PC functionality requires naviating 3 menus, and a 15 second delay between each scan.

paperless-ngx looks pretty nice though. Its OCR does a pretty good job of scraping scanned documents. I also discovered papermerge, which has more features like document merging. But it stores documents in a tree structure, which I specifically did not want. Tags are much more maintainable - does a medical bill go in the Bills folder or the Medical folder?

I hope to return to this project soon. But for now it’s another case of many hours of setup and automation with no payoff.

Working on Squid Jam

Local private game jam themed around digital board and card games. I spent the first three days not working on a game, but rather working on my ideal framework for implementing a board game, inspired by Boardgame.io.

The state for a multiplayer lobby is stored server-side as a single object. The game state is updated using pure transition functions. And state sync is done through server-sent events.

Each user’s id is stored as a session cookie. This id is used to determine which subset of state to send to the user (so that users do not receive hidden information intended for other users, such as their cards. This also allows the user to return after a refresh or browser crash without losing progress.

Watched

  • K-On! (S2E13)
  • Frieren: Beyond the Journey’s End (S17)4

Todo

Look into pihole, or other options for hairpin NAT so I can resolve local services through the domain pointed at my public ip.

Copyright © 2024, Daniel Power