By Arian van Putten
The best way to convey what it’s like to be a part of the Nix community is to say that it’s kind of magical.
Every time I have a problem—maybe I need to install a certain package or we need to make sure our software stays updated—I find that somebody has already done the work. So whenever I run into an issue, I find that someone else ran into the same problem two days ago and they’ve figured out a fix.
Nix is an open source community. We write NixOS, of course, but we also package software that other people have written, so we combine a huge number of different open source communities. We have tens of thousands of software packages we continuously build and test to make sure they work together. Nix is different from other open source projects in that we’re not just writing software, we’re building software. We end up touching so many open source projects. We find bugs in other people’s software because we’re always building new pieces together, and that leads to fixes upstream.
The community all bundles its energy into keeping software up to date. It’s like having a giant cheat code.
Recently, I spent a week on Lanzarote with other members of the Nix community for our annual hackathon, called Ocean Sprint. We spent our days collaborating on new projects and fixing bugs. We spent our evenings surfing, swimming, and sailing. Spain’s COVID restrictions were tight, so our cohort was small, only about eighteen of us, but that meant we were able to form new bonds with people we'd only previously met online. COVID had kept me away from the hackathon for the last few years, so I was glad to be able to join this time.
We worked in small teams on different projects, and I worked on two during the week. The first is Asahi Linux, which is a new push to run Linux on Mac M1 machines with the end goal of running NixOS on the new super-fast MacBooks. We succeeded in putting NixOS on the new Mac mini—sort of—but the MacBook is the ultimate goal. We’ll get there.
The second project I worked on is an update to the stage-1 bootloader of NixOS. Instead of using the long script that initialises all kinds of devices and makes sure the disc can get decrypted (that method is a decade old and was written by hand), the new way is reusing the hard work done by the systemd project, which has basically reimplemented this from scratch, and we’re trying to adopt that into NixOS to make the code more maintainable and make our computers boot faster. You can follow our progress on this project here on Github.
Though it wasn’t my main focus during the hackathon, I’m particularly excited about the dream2nix project which directly translates to Feeld’s internal requirements.
The goal of dream2nix is to make it possible to use Nix for all kinds of programming languages in order to package up those programming languages and deploy them in one unified format.
We use quite a few different programming languages and tooling at Feeld. Dream2nix is trying to unify all of this in an easy-to-use interface to update dependencies, make deployment scripts, and make sure everybody has the same versions of software.
That’s ideal for us at Feeld because we’ve been rethinking the way we do dependencies for our backend projects. Dream2nix seems to fit all the requirements, so I’m excited to play with it and see what it can do for us. You can check out the project here.
Being in Lanzarote was good motivation too. We worked every day until 4pm then we would all head out to swim or surf, or get dinner. I visited a winery, and went sailing on a catamaran and took surfing lessons, the latter two of which were new to me, neither of which I was good at. I struggled to type the next day because I was so sore, so I just volunteered to help others who didn’t opt for that same punishment.
Most of the people at the hackathon I had known for years through GitHub, and this was the first time meeting them in person. It was so nice to put a face to a name, and it was good to bond too, especially if you’ve been programming all day. It’s nice to empty your brain and make friends to strengthen the community.
It was fitting to get a human experience at Ocean Sprint that balanced work and play. The fact that all of these smart people are around and you can just walk to somebody to ask a question—that really made things easy. Usually we all communicate through email. You might get an answer after a week, but here I could just walk to the person who wrote that piece of code and say, “Hey, how does this work?” That’s what makes this project magical, the total community support.