NixCon 2015 has been an amazing event for me. So many smart folks around, good talks, interesting discussions. I would like to share some notes about what I took away from the conference.
Taking place in a cool converted loft, it was the first NixOS conference of size in Germany. Most attendees had a certain level of Nix experience, but there were also a lot of beginners around. It was definitively a good place for beginners like me to ask stupid questions. 😉
From the bulk of good talks I would like to point out some that I found personally most interesting.
Eelco Dolstra: Nix Roadmap
In the keynote at the start of the conference, Eelco gives an overview of the project and how it is going to develop. Eelco seems to be quite happy with the overall state of NixOS.
The project has seen nearly exponential growth recently. Such rapid growth brings its own problems: the central build server is notoriously overloaded, maintainers have trouble keeping up with the sheer number of pull requests, security updates don’t come always in time. It is time for the community to reorganise itself.
A preview to future Nix versions: There are ideas about a distributed peer-to-peer binary cache so that binary packages will not depend on a central build server at all. Other hot topics are a redesign of the command line interface and how to reduce the size of the Nix store on disk.
Oliver Charles: Nix in Production
In his talk, Ollie Charles demonstrates how they control a complete web development and production stack at Fynder with Nix and NixOS. Probably the most impressive demonstration of the power of Nix I have come across so far.
Nix is used at all steps of the software lifecycle:
- NixOS is used as the server operating system
- NixOps is used to provision servers
- nix-shell provides developer environments
- Hydra is used as a continuous integration server and runs acceptance tests
- Hydra is also used to package client-side JS code
- they are even doing release management with Hydra
- services are deployed to production servers with Nix expressions
- extra goodie: systemd is migrating databases using a “state-as-a-service” pattern.
The Nix claim “One tool to rule them all” is probably more than a marketing gag. Ollie promised to write up all the techniques they use for future reference. I’m really looking forward to that.
Watch the full talk on video.
Peter Simons: The Nixpkgs Haskell Infrastructure
Historically, NixOS has a very strong relationship to the Haskell community. Peter Simons gives an overview of how Haskell packaging integrates with NixOS. A large part of Haskell-related nixpkgs are automatically generated from Haskell build specifications.
The second half of the talk was mind blowing: Peter shows how a fixpoint calculation in Nix gives nearly infinite configurability of Haskell packages. Functional programming at its best.
Further talks worth mentioning (in no particular order):
- Domen Kožar: The sorry state of Python packaging and how it reflects in Nix
- Rok Garbas: Make Nix friendlier for Beginners
- Rob Vermaas: Nix at LogicBlox (a.k.a. How to nixify a company)
- Jack Cummings: Assembling SOCs with Nix
NixCon has been a very valuable experience for me. I’m returning with my head full of ideas and a lot of new contacts.
Although not so young at all (it started more than 10 years ago), NixOS seems to have gained traction recently.
What now? Flying Circus is serious about getting involved. If you are too, here is a great tutorial: A tour of Nix – Interactive introduction into the Nix programming language.