Hackathon: Oslo in October

Hackathon: Oslo in October

By Tom Jones

Hackathon’s are a small-scale event where hackers (or developers) get together and conduct a marathon hacking session. Many parts of a hackathon track a marathon, a dedicated group come together and at an arranged time, they act separately, but towards a common goal. Like a foot marathon, a hackathon has lots of snack breaks, and at the end we all join for a party.

Unlike a foot race we are focused on our computers. Eirik from Modirum joined us for a hackathon in Aberdeen in 2022 and so enjoyed the idea that he demanded to host a hackathon from Modirum’s offices in Oslo. It took some arranging, and I missed the April goal by about 6 months. We met in October 2023 in Oslo, Norway to have a ports focused hackathon.

This is the first focused hackathon I have run. In the past, people have always asked me “what is the theme?” I gave in this time and agreed that we would focus on Ports and Infrastructure. I was a little sneakily keeping a wide enough topic that anyone could come and join us and still be on theme if asked.

The call went out for FreeBSD hackers interested in three days working on ports from the beautiful city of Oslo.

Modirum kindly hosted us from their offices that were well situated to be easy to reach for the hackathon with lots of places nearby for the of the most important meals. The offices are are a mixture between office and hackerspace with a collection of fascinating toys for Operating System nerds.

A first for me was the bookcase filled with 286 and 386 motherboards. Eirik’s collection has a home in Modirum’s offices and featured running 386s on which we watched old demos one evening after the pub, and a Mac SE connected to the internet via some ESP powered WiFi magic.

In total we were 6 FreeBSD project members, two from outside FreeBSD, and Eirik and varying members of his team. This was a great size to keep things fluid, but small enough to make going out for dinner easy.

Hackathons are better when they are smaller, fewer attendees than a DevSummit. It is great to get a lot of people together, but as the size of the group grows, conversations amplify, and the balance between rare insights and focused quiet time to do work shifts.

Beyond the FreeBSD project members that joined us, we also were joined by Trenton (who wrote his own report that follows this one) and Harold from the NetBSD project. Adding some more hackers outside of FreeBSD developers allowed our conversations to cover ground which might sometimes be unspoken by those who have been in the project for a long time. Sometimes you have been involved too long to ask ‘stupid’ questions, but new people have no such built-in fear.

Harold was quickly given an old Sun server from Eirik’s vintage computing collection to play with – NetBSD does claim to run everywhere after all – but this one will need some work to get going.

The hackathon ran over three days, Wednesday to Friday, and some of us also stayed in Oslo through the weekend and enjoyed an outing to Oslo’s outdoor building Museum accessed by an excellent ferry across the harbor.

Hackathons are great small events, and as the organizer of this one, I have to admit that I skimped on the organization this time. Rather than see that as a bad thing, I want you to take away that all a hackathon needs is a room and some hackers. I still dream of there being a FreeBSD development meetup somewhere in the world every month of the year. If you would like that, too, you can help by organizing one.

I’m happy to help remotely, for advice you can email me thj@freebsd.org and I’ll share the few secrets to running a successful hackathon that I know. And now, here’s Trenton Schulz’s take on the event.

Oslo in October Too

By Trenton Schulz

During the summer, I was going through Vermaden’s valuable news looking for interesting tidbits of FreeBSD-related news. Then, I saw “FreeBSD Hackathon Oslo.” Here it was, a FreeBSD hackathon right in my backyard. I should try to attend this.

Looking at the wiki page, I saw that it was primarily targeted at FreeBSD developers (people I associated with a @freebsd.org email address), but I did maintain some ports and I had a couple of other ideas that I could work on, and I might be able to get some guidance on those projects too. I could at least ask and see if I could be a guest.

So, I put the dates on my calendar, and then I made a to-do item to “consider the FreeBSD hackathon.” I would revisit this item in my to-do list and think that, “yes, I should make a final decision.” But it wasn’t until the weekend before the hackathon when I tuned into the BSD Now podcast and heard Benedict and Tom talk about how the hackathon would focus on ports infrastructure that I made up my mind that “yes, why haven’t I asked yet?” I double-checked my calendar and saw that I needed to lecture and lead meetings for some of the hackathon days, but Friday was open. Yes! I emailed Tom Jones and he was very welcoming. I put up a vacation day, a vacation hacking on FreeBSD.

On the Friday, I arrived at the nice offices of Modirum, the host for the hackathon, in Youngstorget in Oslo. Olivier let me in and after greetings were exchanged with all the other participants, I got on with hacking. For me, this was mostly updating ports that I maintain. This included the Jotta CLI port (net/jotta-cli), which I use as a tertiary backup solution at home. I tested it out locally, and it worked well, but forgot to test the i386 version and put the wrong checksum in. But after a review from Olivier, it was committed. One port updated.

Then, I saw that there was an upstream update for JuliaMono (x11-fonts/juliamono); the monospace font that I use. So, I went through the steps and updated the port. That was also committed after lunch. Even though these were low-hanging fruit, it felt good to get them committed and out for others as well. Then I decided to scratch some more challenging itches.

I’ve recently started using Beeper, a unified messaging client. They have a Linux client, so I thought I would try to see if I could run it on FreeBSD and build it into a port. The Linux client is an appimage, so I unpacked it and tried to run it. Unfortunately, the executable had problems resolving libraries inside the unpacked appimage. I tried to trace, but it seemed to find the actual library, so something more was happening. Realizing that this might be a bit more in-depth problem than I could solve in a couple of hours, I put it aside to look at later. I have since found out that there is a web interface to Beeper and one can use a Matrix client, so creating a port may not be as exciting.

Having put aside Beeper, I looked at a port that I had adopted, audio/logitechmediaserver. I had a bug report where the build had failed, but the port had signaled all was well until it came to packaging when it identified many missing files. This led me to diving deep into the port infrastructure makefiles, where I learned that the port had done a clever thing in redefining a target since the port itself uses perl for building. I then spent some time trying to figure out how to rework the target so that it would throw an error. I didn’t finish this before we went out for dinner.

One of the benefits of being at a hackathon is all the spontaneous conversations that show up around the table. One gets a nice collection of history, news, funny stories, technical information, advice, and even some gossip. Not just about FreeBSD internals, but on a variety of subjects including electronics, travel, Norway, and world events. You are soaked in all this information as you look through source code. A lot of camaraderie naturally shows up during the hackathon.

One can also get great advice and wisdom in a quick side discussion. For example, I had a quick discussion with Olivier about my logitechmediaserver conundrums which yielded additional philosophy about testing and maintaining ports that I found very helpful: given that one is the maintainer of a port, you are likely to encounter the biggest build issues first. I need to weigh the advantages and disadvantages of how easy it needs to be to diagnose port issues for others versus the extra work to flag these corner cases. The 3-minute conversation gave me a lot to think about.

Overall, even though I was only at the hackathon for one day, I found it wonderful to focus only on solving FreeBSD problems for many hours. I was also surprised how quick the time went and was further surprised when I had to catch my bus home. There were so many additional things I wanted to work on. Thank you to everyone at the hackathon for being so welcoming and helpful and to Modirum for being excellent hosts!

The whole experience made me realize that attending a hackathon was helpful even if I was not an “official” FreeBSD developer. If you are a person who is hacking on FreeBSD and you see a FreeBSD hackathon in your area, reach out those attending and find out if you can attend. You will have a great experience.

Tom Jones is a FreeBSD committer interested in keeping the network stack fast.

Trenton Schulz is a senior research scientist at the Norwegian Computing Center. His research interests include human-computer interaction, human-robot interaction, and universal design of ICT. He is very happy when he can combine his research interests with using FreeBSD.

FreeBSD Journal, November/December 2023