I attended the Free and Open source Software Developers' European Meeting (FOSDEM) in Brussels, Belgium last weekend. There are hundreds of hours of talks in 35 rooms over a period of two days, and rooms are often full to capacity, so it's impossible to see everything! Thankfully every room is live-streamed and recordings made available after the fact, so you can catch up on anything you miss.

On the Eurostar over my travelling companion and I were lamenting about the Nix DSL, and we heard a French accent from behind:

Ah, NixOS. See you at FOSDEM then!

The day started with a coffee and a banana (probably not substantial enough in hindsight), an absolutely packed number 71 bus to the ULB Solbosch Campus, and arriving in plenty of time to get a seat for the 09:30 CET opening ceremony. I kicked off the day by attending:

Having, during my January tradition, spent some time revisiting my technical (in addition to non-technical) habits, after getting sufficiently frustrated with thunderbird I've started using the aerc mail client along with isync (mbsync)/goimapnotify/mu. So naturally I then moseyed on over to the Modern Email BoF.

I was a little early and caught the end of the NGI Zero network meetup, and met someone who works for the Dutch Standardisation Forum on, amoung other things, a neat website and mailserver tester at internet.nl. My website and mailserver had a couple of flagged issues including a DMARC policy of none (which should really quarantine or reject once it's working properly), and DNSSEC support due my nameserver EON not (yet) supporting DNSSEC. Switching to bind with a couple of configuration changes got me scoring 100% on my apex freumh.org. The www subdomain was a CNAME to the apex, which meant it also served an MX record. I don't serve any significant website on my apex domain, so I simply dropped the subdomain. Now I'm told a free internet.nl T-Shirt is on its way to my Cambridge address!

I've been working on a nameserver to provision TLS certificates recently for inclusion into my one-stop-shop self-hosting solution Eilean. By including the DNS zonefile data in the Nix configuration we can automatically provision the necessary records for new services, as well as manage records for e.g. DKIM/DMARC/SPIF. It would be great if I could get a score of 100% on internet.nl on an out-of-the box Eilean deployment as this would simplify the experience of self-hosting these services greatly.

When the Email discussion started I sat next to a person who develops the Go IMAP library used by my mail client aerc. They also just so happen to be the lead maintainer of wlroots, a library which I was writing bindings to OCaml on the train over in hopes of writing a performant, functional, modern display server. I've since been added as a maintainer to the dormant bindings library.

I then joined he JMAP discussion section and got some insight to the chicken-and-egg problem of Internet protocol ossification in a discussion between Dovecot developers and salespeople, and JMAP proponents. Talking to one such JMAP proponent developing a JMAP client for Android was very educational. It seems like JMAP is essentially an open standard for implementing a lot of functionality that comes from propriety client/server solutions like Gmail. For example, it supports the use of notification services of instead of polling (and not just maintaining an open TCP connection). I've heard this can be an issue using non-Google android distributions like GraphineOS, but apparently there are numerous alternatives such as microG. Another example is that it supports search on server functionality without having to download emails. I like to keep all my mail locally on my main machine, but the JMAP seems particularly well suited to mobile devices where that is not the case.

They also mentioned the Stallwart JMAP-compatible mailserver. This was mentioned by nlnet.nl in the NixOS devroom on Sunday as well. I might try deploying it for myself and integrating it into Eilean.

After the Modern Email devroom I had a look around the stands in the AW building which were mainly OS related. A couple of really cool projects were PostmarketOS and SailfishOS building Linux (not Android) distributions for mobile devices, though apparently SailfishOS has some closed-source components such as for Android emulation. It seems Gnome and KDE both have mobile display environments, and Phosh is the on PostmarketOS. Sxmo is cool project that encourages allows the use of e.g. sway. It also allows SSHing to your phone and sending SMS messages! I can't figure out how to send texts from the command line with KDE, It also looks to be possible to deploy a number of matrix bridges for this.

My choice of browser was vindicated with a free 'cookie' stand:

I attended a bunch more talks after lunch (but still far less than I wanted too):

After the conference proper we were in want of something to do so we went to a Tailscale meetup for free drinks. To collect said drinks, one had to connect to a printer shared via Tailscale. Unfortunately as I'm using a self-hosted headscale control server I wasn't able to have this machine shared with me. Thankfully my companions were more than happy to print a ticket on my behalf. Though, this reminded that my idea of a 'federated tailscale' would be really cool. In the bar I met some lovely people and got some podcast recommendations (e.g. Self Hosted).

After another coffee breakfast, I headed to the ULB for the final day of conferencing. I mainly camped out in two rooms -- the Nix and NixOS devroom and the Matrix devroom.

In this devroom I attended:

During an intermission, I was hacking on my VPS deploying DNSSEC with BIND9 for a free internet.nl T-Shirt when I started to experience some strange network issues. All requests to freumh.org were being directed to http://135.181.100.27:6080/php/urlblock.php?args=<hash>&url=http://135.181.100.27%2f on eduroam. I wasn't able to connect to my site on the IPv6-only fosdem network either, despite it working the previous day. Switching the dual-stack IPv4 compatible network seemed to alleviate the issues, but before I uncovered these underlying network issues this manifested itself in my being unable to connect to my headscale Tailscale control server, which I exclaimed to my friend next to me. Then the lead developer for headscale, sitting right behind me, piped up and said something along the lines of "I know it's rude to look at other people's screens but if headscale is causing you any issues I apologise".

The talks continued with:

After these sessions a couple of people asked what my status line is, and I pointed them to the configuration.

Having self-hosted a Matrix homeserver for (checks logs) 2 years this February, I was keen to attend the Matrix devroom, where I learnt about:


All in all, attending FOSDEM was a great experience where I learnt a bunch about topics I'm passionate about and met some really cool people.