Finding The Fuzzy Middle

It has been quite some time since I wrote about one of my longest running projects, MovieLandmarks . The UI hasn’t changed much in the intervening years. But the backend has been rewritten in Go, and the covers now come from TMDB instead of IMDB . Recently I decided I wanted the map to open to a view of the landmarks related to the move being passed to it using the #mv-XXXX hash.

Upgrading A PostgreSQL Jail

I had an older PostgreSQL 12 install using FreeBSD jails and ZFS. It was setup using iocage on FreeBSD 12.1, and I wanted to upgrade to FreeBSD 13.0 and PostgreSQL 14. I could have done a normal freebsd-update but that would end up wasting a bunch of space on top of the clone that iocage creates. Doing that is fine for minor updates but in this case it is better to delete the jail and recreate it using the new FreeBSD release and PostgreSQL version.

Router Upgrade From Hell

The day started with a plan. I would upgrade to the latest OpenWRT release with minimal disruption to the home internet, planning out the steps beforehand, and being careful not to totally mess things up. And as always reality had other ideas about how the day would go. The Original Plan I’m running OpenWRT on a PC Engines APU4 with way more disk space than it needs. The APU4 boots from the SSD like a traditional PC, not like a router booting from dedicated Flash storage, so I wasn’t sure exactly how the OpenWRT upgrade procedure would work and I wanted to make sure I had a working install to fall back on.

Running Prusa Slicer From A Rootless Podman Container

A while back Jessie Frazelle wrote a neat blog post on running desktop applications using Docker containers. It ends up that it isn’t too hard to run X clients in containers using podman or Docker . Now that I have Alpine Linux running on my laptop I need to get rootless podman setup so I can run applications that aren’t included in the Alpine distribution. Podman is a Docker compatible container engine that doesn’t require a daemon, and can run as a user without any need for root access.

An Alpine Adventure

The Ansible playbooks for this article can be found here I have a laptop that I use for experimenting with different operating systems. I’ve used it to run various Linux distributions, as well as FreeBSD and OpenBSD. I tend to set it up by hand, use it for a while, then reinstall with something new. In the most recent iteration of this I’ve used Alpine Linux to see if it would be suitable distribution for more than a container runtime.

Static git hosting with stagit

I like hosting my own services when possible. But I don’t like maintaining complex systems, so instead of setting up my own GitLab, Gitea, or Gogs service I decided to follow the same path I took with this blog and host some of my git repos as static html pages using stagit . One of the neat features of git is that you can actually clone from one of these static repos so they aren’t just html pages but are full copies of the git repo, complete with history.

Weather TL;DR

What is it? Weather TL;DR is a simple weather forecast webapp using data from the system. This was an experiment to see if I could write a simple webapp to tell me the current weather forecast in a compact and simple page. How do you use it? Usage it pretty simple. It will ask you if it is ok to use your location data. If you don’t agree then it presents a simple form where you can manually enter a latitude and longitude in decimal form.

Overly Complex Doorbell

I wanted to add some kind of doorbell indication to my office, and was almost ready to start buying parts for wired doorbell sensor like this one on , but I wasn’t sure how well it would work with the Beagle Bone Black that’s running my digitemp sensor network in the garage. I’d have to run about 20’ of wire over to the sensor from the Beagle and that was bound to effect the reliability.

letterbox - SMTP to Maildir delivery agent

Letterbox is a simple Go program that accepts SMTP connections and delivers mail to a per-user maildir directory. I use it to gather reports from various services on my LAN without needing to setup postfix or some other more complex MTA. Usage of letterbox: -config string Path to configutation file (default "letterbox.toml") -host string Host IP or name to bind to -maildirs string Path to the top level of the user Maildirs (default "/var/spool/maildirs") -port int Port to bind to (default 25) The configuration file is written using TOML .


I went for a hike the other day and managed to capture some decent photos of a dragonfly.