NixCon 2020: Online Edition

To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
11:15
11:15
25min
Nix modules: Improving Nix's discoverability and usability
Eelco Dolstra

Nix's configuration language is quite powerful, but suffers from a
lack of discoverability, usability and consistency. In this talk, I'll
describe an experimental Nix module system that provides a consistent,
discoverable mechanism to write configurations such as packages and
NixOS systems, and show how this enables a better user experience for
both new and advanced users.

Main Stream
11:45
11:45
25min
An Intelligent System to Recommend Configurations
Yisroel Newmark

In this talk I will discuss the idea of recommending configurations automatically, as well as its applications and challenges, as well as how it functions within the larger community.

Main Stream
12:15
12:15
25min
Nix at Chatroulette v2
Gabriel Volpe

People already familiar with Nix already know its benefits but what is the best way to tell others what they are missing out? How do you convince your employer and colleagues that using Nix is a good idea? Let me tell you how I did it at Chatroulette (https://about.chatroulette.com/) and show you that you can easily do it at your company too.

Main Stream
12:45
12:45
25min
Nix Flakes in Production: What, Why and How
Alexander Bantyev

At Serokell, we have been using Nix for over 5 years. In the last half-year, we have started an effort to use flakes to build our infrastructure and projects. In this talk, I would like to give a refresher of what flakes are, explain why we are so excited about them, and share experiences, thoughts, and advice on the matter.

Main Stream
15:00
15:00
25min
How to change the Nix ecosystem to become mainstream?
Domen Kožar

Nix is almost 20 years old.

The innovation Nix brought is now present in almost all recent packaging tooling,
while Nix hasn't been adopted yet by a larger audience.

Why should we care about that?

What can we do to remove the barriers to mainstream adoption?

We'll look at examples from books, similar stories and what people and leaders of our industry are saying.

We'll dive into each topic briefly, providing an opinionated set of goals to get Nix in hands of everyone.

Main Stream
15:30
15:30
25min
Remote deployments with NixOS and Nixops at Yakkertech
Aden Seaman

At Yakkertech we use NixOS and Nixops to deploy software in a safe, reproducible, and manageable way to our embedded baseball pitch tracking machines installed in ball fields in the US.

Main Stream
16:00
16:00
25min
Robotnix - Build Android (AOSP) using Nix
Daniel Fullmer

Robotnix enables a user to build Android (AOSP) images using the Nix package manager. AOSP projects often contain long and complicated build instructions requiring a variety of tools for fetching source code and executing the build. This applies not only to Android itself, but also to projects which are to be included in the Android build, such as the Linux kernel, Chromium webview, MicroG, other external/prebuilt privileged apps, etc. Robotnix orchestrates the diverse build tools across these multiple projects using Nix, inheriting its reliability and reproducibility benefits, and consequently making the build and signing process very simple for an end-user.

Main Stream
16:30
16:30
25min
Bringing NixOS to my school
Marc Schmitt

EPITA, a French school of engineers in computer science, is bringing NixOS to its students. Here is a presentation of the challenges of maintaining an infrastructure of more than 800 machines used by students.

Main Stream
17:00
17:00
25min
Nix in the Java ecosystem
Farid Zakaria

Java is one of the most popular languages (ranked 2nd by PYPL [1]), however there is a fragmented and incomplete solution when it comes to tooling available by NixPkgs.

This talk will go over the current state of affairs (what's available today), what's so difficult about Java compared to other supported languages in NixPkg and a proposed solution (mvn2nix [2]) aimed at filling the gap.

[1] http://pypl.github.io/PYPL.html
[2]https://github.com/fzakaria/mvn2nix

Main Stream
11:15
11:15
25min
Bridging the stepping stones: using pieces of NixOS without full commitment
Michael Raskin

The talk explains use of NixOS code as a library instead of a framework: the present, the possible even better future, and some of the payoff.

Main Stream
11:45
11:45
25min
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
Sander van der Burg

Nix is package manager that offers all kinds of powerful features to make package deployments reliable and reproducible. Although Nix can be used to conveniently deploy packages, on various operating systems (such as Linux and macOS), and even allows unprivileged users to deploy packages, deploying services (such as PostgreSQL and Apache HTTPD) still has its limitations.

Currently, Nix-based service deployment is solved by a small number of solutions:

  • NixOS requires you to adopt a fully Nixified Linux system and uses systemd as a process manager.
  • nix-darwin only works on macOS with launchd as a process manager

If you are using Nix on a conventional Linux distribution, a different operating system (e.g. FreeBSD), with a different process manager (e.g. supervisord), or as an unprivileged user, then there is no off-the-shelf solution that can help you (yet) to conveniently deploy Nix-provided services.

The nix-processmgmt framework (https://github.com/svanderburg/nix-processmgmt) is a prototype that tries to provide universal Nix-based service deployment on all systems where Nix can be used.

It offers the following features:
* It uses simple conventions for describing process instances, e.g. function definitions and function invocations
* It works with high-level deployment specifications that can universally target the following process managers: sysvinit, bsdrc, systemd, supervisord, cygrunsrv and launchd
* Tested on the following operating systems: Linux, macOS, Cygwin and FreeBSD
* Automatically derives the activation order from process dependencies
* Allows you to deploy multiple instances of the same service
* Unprivileged user deployments

In this talk, I will provide background information about this framework, describe how it works, and show a number of real-life usage scenarios using commonly used services (PostgreSQL, Apache HTTPD etc.) in a number of interesting usage scenarios (unprivileged user deployments, deployment on FreeBSD etc.)

(Although the tool advertises itself as a prototype, it is already quite usable)

Main Stream
12:15
12:15
25min
Automating deployment with Hercules CI and NixOps
Robert Hensing

Introduction to Hercules CI, NixOps and a step by step demonstration of setting up a continuous delivery pipeline with these tools.

Main Stream
12:40
12:40
5min
content-addressed derivations
Théophane Hufschmitt

This is part of the Intensional Store model. See https://github.com/NixOS/rfcs/pull/62

Main Stream
12:50
12:50
5min
Nix from the dark ages (without Root)
Rohit Goswami

Short comments from the trenches of High Performance Clusters on working with Nix on kernel locked-in systems without proot support.

Main Stream
13:00
13:00
5min
Meet Nickel: better configuration for less
Yann Hamdaoui

A quick presentation of Nickel, a general configuration language which is inspired from Nix expressions to which it adds some cool features.

Main Stream
13:10
13:10
5min
home-manager template
Ryan Mulligan

home-manager template provides a quick-start template for using home-manager in a more reproducible way. You don't have to install home-manager, and it uses pinning. Learn more.

Main Stream
13:20
13:20
5min
Host a DevOps exam using NixOS
Ryan Lahfa

We will explore how to host a DevOps exam consisting in deploying a Bastion host and a KVM virtual machine per student in order for them to deploy a website which will be auto-validated.

Main Stream
13:30
13:30
10min
Nix × IPFS
John Ericson

IPFS is a natural way to distribute sources and build artifacts for Nix because of their shared focus on immutability, content addressing, and decentralization. We at Obsidian Systems have spent the past several months integrating the two, and we're excited to present the result to the the Nix community, along with the future directions this work unlocks.

Main Stream
13:45
13:45
5min
NixOps for Proxmox
Ryan Lahfa

We will explore how to build and manage dozens of NixOS virtual machines in a Proxmox cluster using NixOps in a declarative fashion.

Main Stream
14:05
14:05
25min
How Nix grew a marketing team
Rok Garbas

In my talk I'd like to go over:

  1. Why Nix community needs a marketing team
  2. What have we been up to in marketing team in the last 6 months
  3. What are the plans for the next 6 months

Marketing, and non-technical work in general, is all too often an afterthought for developers or worse it is viewed as something negative. I really wish it weren’t the case. Having clearly defined problems, audience and strategy should be as important to us as having clean and tested code. This is important for Nix. This is important for any project that aims to succeed.

Main Stream