Looking Back at 2024
Its a new year. Looking back at 2024, I noticed I didn’t really write much on my blog. I thought about what caused this lack of posts, and I found two big reasons.
The first is that I’ve simply spent less time doing tech stuff, as I’ve been quite busy in my personal life. I’ve finished more work on my home, making it a much nicer place to live in. But more important than that is a new relationship. We started living together last year, and I felt like I got more satisfaction spending time with her than I do on programming, thus programming fell a bit to the wayside.
Due to the relationship, I did do a lot of cooking. Delicious food is nice, but most of the value comes from sharing a good meal and seeing people enjoy it. As such, I did release a few more recipes to my cookbook, such as stew, oliebollen, pancakes, and a nice base for rice (though I’ve been told I may be using too much MSG). I hope I can continue to bring joy with my cooking in my personal life.
That said, its not like I haven’t done any tech projects in 2024. Which brings me to the second reason for the slow posting cadence. I felt like my more recent projects were either to small, or just not good enough to write about. Which is a little sad, since its fun to talk about personal projects in general. Besides, a mediocre project can turn out for the better thanks to input I get through blog posts I make about them. As such, I’ll try to push myself to write and actually publish more blog posts in 2025.
Actually, why not write about some of the smaller projects I worked on right
now? Let’s start with the smallest one, a tiny Perl
script used by
another tiny shell
script for use with
git. Since I use semantic versioning in virtually all my
projects, I can use a project’s CHANGELOG.md
to generate an overview of all
changes in a release tag, which is precisely what these two scripts accomplish.
I can now simply update the CHANGELOG.md
to have the right version number
heading, and use git release
to create the tag with the correct body.
In the last two months I’ve also played with the Go programming language a bit more. Since I have a good network connection at home, and a sizable file server, I tend to seed a lot of GNU+Linux ISOs with Transmission. I also run Grafana, so I thought it would be nice if I could make a dashboard out of this. I had tried a Transmission exporter in Python before, but it used an obscene amount of memory (300MiB) to retrieve the information from Transmission. So I redid it in Go as a nice learning project. This resulted in my very own transmission-exporter, which only uses 10MiB of memory right now.
Additionally, I created the
fsdir-exporter, which can export data
about files in a given directory. Specifically, it allows me to get a metric
about the number of .iso
and .img
files in a directory. Using this, I can
graph how many actual images I have. It may not be the prettiest Go code in the
world, but I had fun writing it.
The last project I wanted to talk about shortly is
bocs
, which stands for “Bash documentation”. It
is specifically intended for use with Bashtard, as I noticed I tend to forget
updating the man pages after adding/changing/removing features. bocs
allows me
to write documentation blocks in comments, like many other languages allow.
Having tried to abuse Doxygen for this first, I felt like I didn’t get the
output I desired, so I set out to make something lightweight with minimal
dependencies on my own. The source code may horrify some, but the concept
worked. bocs
can generate man pages of itself using bocs.bash bocs.bash
. Its
only dependencies right now are Bash, a POSIX-compatible environment, and
lowdown. The intent is to document every
function and variable used in Bashtard over time, but it is a lot of work. I did
start on it a while ago, but its not done yet. I hope a release of Bashtard in
the nearby future will see it complete.
Finally, as it is a new year, I’m also trying out Wayland once more. I will be using Hyprland again, as I haven’t seen any new compositors that come close for tiling, coming from the feature-rich tiling window manager AwesomeWM on X11. With some minor adjustments from the configuration I used last time, I was able to launch it and get some simple work done. Over the next few weeks I’ll be customizing things that I was missing last time. Perhaps this will make for a good blog post in February!