updated on 2025-04-04: added SPFToolbox Running even a single server connected to the internet can be a challenge these days. There are many technologies involved - some are arcane (DNS), some are constantly evolving (TLS), and some look simple but are amazingly hard to get right (DNSSEC). And then, there are some which are all of the above, such as “a mail server” 1 … These technologies are the…
And now for something completely different… When was the last time you were excited about a simple window with nothing but a single background color? Well, I currently am. Let me tell you about it… This window is notable, because it was created using the ”pure Hare” Wayland client , and the content - as unspectacular as it may be - is rendered with Vulkan . This may still not sound like much, so…
Sometime recently in the past I complained about Maildir. You can go read the post, but the executive summary is that I think Maildir uses an actively user-hostile directory structure and extremely convoluted filenames that do not convey any meaning at all. For good measure, I will also reiterate that Maildir does this for a good reason, and is simply often being used for a purpose it wasn’t…
Update 2024-04-15 : I decided to turn DMOS into something more serious, using syntect by default rather than inkjet. Consider this post a history of its creation… I guess it’s not a surprise, but I just don’t enjoy writing very much. I do, however, recognize its importance, so I always want to try. And sometimes, there is just this weird set of circumstances that kicks everything back into motion.…
I’ve been pretty quiet about my project Anemos lately, but there has been steady work behind the scenes. In fact, I have now reached two milestones at once, so it seems like a good time to write about it again. _ What is this again? In the likely case that you are not familiar with Anemos: it is a set of tools for efficiently managing servers according to the Infrastructure as Code paradigm. Its…
The Alacritty terminal emulator has a powerful feature called hints . By default, it is used for a pretty common feature: detecting URLs and enabling interaction with them, such as clicking on them and have the link open in your browser. Alacritty, however, exposes pretty much every aspect of this as configuration item. My config, for example, contains the following snippet: hints: enabled: -…
It’s not you, it’s me. But let me start at the beginning… While I want my IMAP server to be the source of truth for my mailbox, I do like to have my emails available offline on my main computer. For years, I did what pretty much everyone else does: store them in a Maildir . Maildir checks some major boxes. Every email is a file. Support for it is almost ubiquitous. So what’s not to like? Well,…
I didn’t really consciously decide to not write status updates in the last couple months, it kind of just happened. I am not really sure it’s the right format for me. I also just don’t enjoy writing that much in general, I suppose. I think I get some benefit out of it, but it’s not quite what I had hoped for so far. And once the first one slipped, the next one seems like an even bigger chore. So,…
Unfortunately I had to take a little leave for personal reasons, so this update will be rather small. My main adventures last month were in Alpine packaging. My motivation was to set up a package repo for Anemos . Alpine’s apk is pretty great, but I found the workflow for maintaining a repository and updating individual packages automatically a bit lacking. There are a bunch of tools to help with…
_ Topio Let’s start with some meat-space updates! Unfortunately they require some German skills to consume, but maybe there are a few German-speaking readers who can appreciate it. To recap, I spend some of my time helping the fine folks of Topio e.V. to put more on FOSS on people’s devices. The focus is phones, but we also do Laptops. We specifically try to target non-technical folks, as those…
Here we go again. This time, I took these two day. Not like anything is more finished because of that, but hey… There is a lot to unpack this month. Let’s start with the bigger fish. _ names.sr.ht Long overdue, and while the timing is spot on, it’s not (yet?) related to the Gandi take-over. To recap: we want to provide the community with a domain registrar, SourceHut style: simple interface, good…
Welcome back to the next episode. Let’s see what happened last month! While it happened in the month before, the aftermath of our little database server outage did keep us busy for a few days. Most importantly, our effort to bring up a usable Kubernetes cluster in our new EU presence has been prioritized. There is also a lot going on that is not recorded anywhere (yet), such as our experimentation…
Happy new Year, everyone! As predicted, the last month has not seen that much activity. But not much is not none, so here is the rundown. _ iPXE Quick followup to my iPXE adventures : shortly after writing the update I successfully used mbedTLS in iPXE to download a file. This is pretty great, but one major blocker remains before this can be useful: certificate validation. iPXE, being extremely…
The days are getting colder and shorter here in Germany. Christmas preparations need to be made, cookies have been baked. The next month will likely see reduced activity while I spend time with the family over Christmas and New Year’s. So lets take a look at what happened in the last one! _ The forge A lot of time was dedicated to the forge last month, unfortunately much of that is not really…
This is part of two of a series of posts about the Linux initramfs. You can find the first post here . Before we get back to Hare programming, I’d like to share some more insights into how an initramfs works in general. In the last post, we were building on a distribution-provided image. To better understand what that image does, let’s quickly build our own, because why not? SPOILER: the outcome…
That moment when you want to write your status update and realize you forgot to push the one from last month … :) Unfortunately, that also means I hadn’t written anything for a month, even though that had worked out pretty well for me. I’ll do my best to pick that up again. _ The forge I prefer to write about things when they are done, but I’ll make an exception here. For a while now, I’ve been…
Here is a quick rundown of what happened last month. I already wrote about scd2html and using Hare to poke around in an initramfs . In other Hare news, I started hare-netlink - native Hare access to the Linux netlink API, which allows programmatic network and routing configuration. More specifically, the project is for now focused on the rtnetlink part, but others might well be included in the…
This is part one of a series exploring the initramfs and how to use Hare to write code running in it. When Linux boots, it usually uses a small system image called “initramfs” (or sometimes “initrd”) as a helper. The initramfs is quite special. It has to set up everything your real system takes for granted - the file system, devices, etc. - from absolute scratch. The initramfs is usually provided…
As hinted at in the last status update, I felt compelled to create scd2html . There are obviously other options for creating HTML versions of man pages, so I figured it would be worth writing down how I ended up here. There are a few things to be learned along the way, about roff, about scdoc, and - in a plot twist that I bet you did not see coming - about web assembly. _ The problem space The…
Welcome to this month’s status update. There are quite a few things to write about, but so little time. On Thursday, I had the honor to publish the What’s cooking on SourceHut post. As you can see there, I have to get ready for a little trip! Luckily, I have already written about makeimg and re2hare , so I’ll just refer you to those posts for that. I also had my first not-totally-trivial patch…
I have been working on a lot of stuff just by myself recently, thinking it should be just a bit more usable before I unleash it unto the world. But for once, I’d like to take some advice from Drew, which is to publish a project as soon as possible, even if it’s not finished, working, or easy to use. And so, without further excuses, I present to you: re2hare . As the name implies, it is an attempt…
One of my pet projects has a new home: makeimg . But that’s not the best part! I finally finished moving the project away from both bash (to almost pure POSIX) as well as the various Arch Linux specific dependencies it was using. The result is that the tool can now be used on Alpine Linux as well (and in fact probably others). Of course you still need the Arch or Alpine specific tooling to…
So there it is, the first status update that I failed to publish on the 15th… ☺ It will also be a short one, as I was on vacation for the better part of last month. A lot of time was spend on dealing with hardware vendors. Unfortunately, the world’s supply chain problem are not making an exception for us, so this turned out much more cumbersome than I hoped it would be. It currently looks like…
Welcome back to the next installment of monthly status update! Let’s see what we have in stock this time. Somehow, almost everything that happened this month seems to somehow be connected, making it hard for me to group it into sections. Let’s experiment and see if we can do without, why not? “Where shall I begin, please your Majesty?” he asked. “Begin at the beginning,” the King said gravely,…
I made something, and even though it’s tiny, and I suspect there a many other tools out there just like it (couldn’t find them, though), I would like to share it with you: it’s called bfcal . I sometimes like to look at a calendar, e.g. when talking to people about when to do something. It doesn’t have to be a calendar that shows my meetings and appointments. I just want to know what weekday a…
It’s one of those months that didn’t feel very productive at all. Some time off was taken, some sick kids were looked after. Some maintenance work was performed, some research was done, with no visible result (yet). But some things did happen, so let’s get down to that… _ OpenPGP Quite some time was spent dealing with OpenPGP in various ways. The good news is that we are close to adding key…
The common theme when I write these status updates seems to be: “if only I had two more days to make it all nice”. Of course that’s an illusion. It’s actually nice to be forced to make a cut and just put whatever you have out there. Maybe the next time you find yourself thinking “I’ll just take two more days to make it all nice” you should just stop and publish it. It can be liberating ☺ So let’s…
Happy Easter holidays, should that be something you celebrate. Before I do, I’ll let you know what I’ve been up to! _ The Very Opinionated Mail Interaction Toolkit I spent a good part of the last month learning Rust. Not really from scratch, but I finally found a good project to tackle to motivate me through the phase of initial frustration, which I’ve been in before. Rust has a pretty steep…
Email. Some love it, some hate it. Everyone knows it. Many are working on replacing it, but I think secretly everyone agrees that it’s not going anywhere anytime soon. At least until then, most of us will have to deal with email. So I made a thing. For context, let me tell you how I read email: with a hot beverage in one hand. I read through my email essentially as a break from other (usually…
Another month has passed, calling for another status update! The past month has been full of learning new things, so let me share some of this with you. If you are only interested in output, skip to new projects below. _ Learning new things _ Meson Even though they may have their shortcomings, I have mostly been using autotools when creating new projects in C. They are almost universally available…
My very first status update! It’s only been two weeks , but they certainly felt packed to me. Let’s take a look at what has happened so far. _ Sourcehut One obvious first task was to set up a local development version of the Sourcehut components . Currently, the best instructions for this are in a blog post by Simon. They did work well enough to get me started. But as they don’t get updated, there…
So, now it happened. After all these years of keeping a low profile on the web I am starting a blog. This month, I joined Sourcehut . Most of their engineers have the habit of posting monthly status updates. I quite like the idea, both from a transparency point of view as well as a way to reflect on what has been achieved (and potentially adjust plans). As such, this will mostly be what you’ll…