Update for the week ending on Friday, Nov 21, 2025
mtlynch.io
- Published Add a VLAN to OPNsense in Just 26 Clicks Across 6 Screens
- Worked on MeshCore blog post.
- Fixed
hugo.IsProductionchecks- I had two “is production” checks backwards for four months and didn’t notice
- One disabled comments in production but turned them on for my dev server (the opposite of what I want)
- The other served less optimized CSS, which mattered less
- Fixed a dead link to xpdfreader
- Weirdly, they unpublish historical releases immediately after a new version is available
Refactoring English
- Published What Makes the Intro to Crafting Interpreters so Good?
- Updated editing page to say discounts are one per customer
resticpy
- Reviewed an external PR
- Changed pylint warnings to use symbolic names everywhere
- Switched from virtualenv to uv
- Python in general breaks a lot on NixOS, but uv seems slightly less breaky.
- Used .yapfignore to ignore virtualenv dirs
portable-secret
portable-secret is a neat open-source tool I found that lets you create self-contained webpages for decrypting secrets. I just submitted two small quality of life improvements.
- Focus on password input on page load
- Inline values.js, as having it external just makes it more complicated
Personal backup scripts
- Added dev-scripts for convenience
- restic-with-env ended up being more useful than I expected
- A lot of times, I want to run an ad-hoc command, but I don’t want to export secrets into my environment globally, so this lets me run restic with a specific set of env vars, but the scope of the vars is limited to the script
- restic-with-env ended up being more useful than I expected
Will it Hit the Front Page?
This is a game where you predict whether new HN stories will reach the front page or not.
- Created a rudimentary version of the game
- Features so far
- It streams new stories as they appear from the HN API
- The user can predict whether a story will reach the front page and the server stores the guesses in memory and tracks them
- Not implemented
- Persistent data storage
- User tracking
- Scoring
- Notes so far
- I need to find a way to make it more fun in the short term, like predicting within a few minutes whether you were right based on the trajectory of HN guesses (e.g., the story has no upvotes after 5 mins, so it probably won’t hit)
- I need to add scoring so that it’s not percentage because you can just predict no for everything and be about 90% accurate
Replacing OPNsense with a *BSD OS
Given my recent frustrations with OPNsense, I’m considering just installing a simple firewall-friendly OS and managing networking settings directly in commands and config files. I’m experimenting with my Pis and keeping my OPNsense firewall running, but if experiments go well, I’ll replace the OS on my OPNsense firewall with OpenBSD or FreeBSD.
- Tried OpenBSD 7.8 and 7.5
- I’m inter
- I tried for hours to install it on a Raspberry Pi 4B, and I couldn’t figure it out
- I could never get it to connect to my network
- You have to interrupt the boot and type
set tty fb0to prevent it from sending output to serial- Type Ctrl+C as soon as it boots to get to U-Boot prompt, then type
bootto continue, then when it shows normal boot output, hit Ctrl+C again to get to the OpenBSD boot prompt, then typeset tty fb0and then typebootto continue the boot
- Type Ctrl+C as soon as it boots to get to U-Boot prompt, then type
- I tried different Pis, different ports, different versions of the install script, different install strategies, and I always got stuck on networking
- I could never successfully set a static IP or get a dynamic IP with DHCP
- Tried FreeBSD on the Pi 4
- That worked straight away, so I’m leaning more toward that
- Ordered a USB to Ethernet adapter so I can have two Ethernet ports on my Pi 4
- Ordered more cables to do more complicated networking experiments with my Pis
Misc
- Reached out to another indie founder