<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2026.1.0.dev0. -->
<schedule>
    <generator name="pretalx" version="2026.1.0.dev0" />
    <version>0.16</version>
    <conference>
        <title>NixCon 2020: Online Edition</title>
        <acronym>nixcon2020</acronym>
        <start>2020-10-16</start>
        <end>2020-10-18</end>
        <days>3</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://talks.nixcon.org</base_url>
        
        <time_zone_name>UTC</time_zone_name>
        
        
    </conference>
    <day index='1' date='2020-10-16' start='2020-10-16T04:00:00+00:00' end='2020-10-17T03:59:00+00:00'>
        <room name='Main Stream' guid='95026702-9fa3-5b33-b06f-0ccaae98406a'>
            <event guid='4fbf44b6-8555-5409-804b-71a16643091a' id='35394' code='K89WJY'>
                <room>Main Stream</room>
                <title>Nix modules: Improving Nix&apos;s discoverability and usability</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T11:15:00+00:00</date>
                <start>11:15</start>
                <duration>00:25</duration>
                <abstract>Nix&apos;s configuration language is quite powerful, but suffers from a
lack of discoverability, usability and consistency. In this talk, I&apos;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.</abstract>
                <slug>nixcon2020-35394-nix-modules-improving-nix-s-discoverability-and-usability</slug>
                <track></track>
                
                <persons>
                    <person id='39230'>Eelco Dolstra</person>
                </persons>
                <language>en</language>
                <description>Nix&apos;s configuration language is quite powerful, but suffers from a
lack of discoverability, usability and consistency. To name just a few
examples:

* There is no easy way to find out from the command line or from the
  REPL what arguments are supported by functions like
  `stdenv.mkDerivation` or `buildPythonPackage`.

* Mechanisms like the .override attribute provide an almost unlimited
  ability to customize packages, but the only way to figure out what
  you can override is to read the source of the Nix package, and
  *writing* overrides is often black magic.

* NixOS has a nice self-documenting module system, but Nix packages
  are written in a completely different functional style.

* The Nix CLI doesn&apos;t know anything about package functions, `.override`
  and `.overrideDerivation`, the NixOS module system, the Nixpkgs
  `config` attribute set, Nixpkgs overlays, or any other customization
  mechanisms that have emerged over the years.

* The syntax and semantics of Nix expressions are often an obstacle to
  new users and have a steep learning curve.

In this talk, I&apos;ll show an experimental Nix module system, similar to
the NixOS module system, to replace the &quot;functional&quot; package style
using in Nixpkgs. This means that functions like `mkDerivation` or
`buildPythonPackage` as well as packages become modules that can build
on each other. For instance, the &quot;GNU Hello&quot; package is a module that
inherits from the `unixPackage` module, which in turn inherits from other
modules like `derivation`. Package customization is done in the same
way: by inheriting a module.

These modules, just like in NixOS, have types and documentation. As a
result, everything becomes discoverable and modifiable from the
command line. For instance, there is a command `nix list-options` that
shows everything that can be customized in a package. It also provides
a standard for documentation: the command `nix doc` generates HTML
documentation for the modules in a flake.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/K89WJY/resources/nixcon-oct-2020_BxdurRx.pdf">Slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/K89WJY/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/K89WJY/feedback/</feedback_url>
            </event>
            <event guid='e2bdb6bb-6ad6-5759-8756-5f4e3f70c831' id='35395' code='88S9QQ'>
                <room>Main Stream</room>
                <title>An Intelligent System to Recommend Configurations</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T11:45:00+00:00</date>
                <start>11:45</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35395-an-intelligent-system-to-recommend-configurations</slug>
                <track></track>
                
                <persons>
                    <person id='39231'>Yisroel Newmark</person>
                </persons>
                <language>en</language>
                <description>I will be demonstrating the system in action, while explaining how and why it works the way it does.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/88S9QQ/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/88S9QQ/feedback/</feedback_url>
            </event>
            <event guid='af8b0975-a1a6-582b-a2ed-6912093fe50b' id='35396' code='XSF8GD'>
                <room>Main Stream</room>
                <title>Nix at Chatroulette v2</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T12:15:00+00:00</date>
                <start>12:15</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35396-nix-at-chatroulette-v2</slug>
                <track></track>
                
                <persons>
                    <person id='39232'>Gabriel Volpe</person>
                </persons>
                <language>en</language>
                <description>The main programming language at Chatroulette is Scala, a hybrid OOP-FP language that runs on the JVM, even though we only make use of the functional subset. We run the entire system on Kubernetes (Istio / Envoy) and deploy our microservices as Docker containers.

Introducing Nix in such a big system - running in different platforms - might not seem trivial but you would never know if you never try! 

The talk will also touch on the current state of Nix in the Scala community. How many use Nix? How many don&apos;t know what Nix is? What can we do better?

The ultimate goal of this talk is to give you the itch to at least think about introducing it at your company.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/XSF8GD/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/XSF8GD/feedback/</feedback_url>
            </event>
            <event guid='fe076f24-5cc7-53c6-a22e-52e1e440c432' id='35397' code='ZJQAMF'>
                <room>Main Stream</room>
                <title>Nix Flakes in Production: What, Why and How</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T12:45:00+00:00</date>
                <start>12:45</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35397-nix-flakes-in-production-what-why-and-how</slug>
                <track></track>
                
                <persons>
                    <person id='39233'>Alexander Bantyev</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/ZJQAMF/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/ZJQAMF/feedback/</feedback_url>
            </event>
            <event guid='af486a84-1c14-51df-bb9f-9509da96eea6' id='35398' code='RKPT7U'>
                <room>Main Stream</room>
                <title>How to change the Nix ecosystem to become mainstream?</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T15:00:00+00:00</date>
                <start>15:00</start>
                <duration>00:25</duration>
                <abstract>Nix is almost 20 years old. 

The innovation Nix brought is now present in almost all recent packaging tooling,
while Nix hasn&apos;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&apos;ll look at examples from books, similar stories and what people and leaders of our industry are saying.

We&apos;ll dive into each topic briefly, providing an opinionated set of goals to get Nix in hands of everyone.</abstract>
                <slug>nixcon2020-35398-how-to-change-the-nix-ecosystem-to-become-mainstream</slug>
                <track></track>
                
                <persons>
                    <person id='39234'>Domen Ko&#382;ar</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/RKPT7U/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/RKPT7U/feedback/</feedback_url>
            </event>
            <event guid='4d2839f0-a589-5bae-b080-ed88ba9a6c3e' id='35399' code='R7LSXJ'>
                <room>Main Stream</room>
                <title>Remote deployments with NixOS and Nixops at Yakkertech</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T15:30:00+00:00</date>
                <start>15:30</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35399-remote-deployments-with-nixos-and-nixops-at-yakkertech</slug>
                <track></track>
                
                <persons>
                    <person id='39235'>Aden Seaman</person>
                </persons>
                <language>en</language>
                <description>In this talk I&apos;ll discuss what we do at Yakkertech, some of the software and computer-related challenges that this brings, the aspects of NixOS that help us address these challenges and why we chose it, how we use it in practice, and our experience of having used it.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/R7LSXJ/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/R7LSXJ/feedback/</feedback_url>
            </event>
            <event guid='e80fcbe9-6f05-5289-b0fa-658e3d40aeef' id='35400' code='AK98WZ'>
                <room>Main Stream</room>
                <title>Robotnix - Build Android (AOSP) using Nix</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T16:00:00+00:00</date>
                <start>16:00</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35400-robotnix-build-android-aosp-using-nix</slug>
                <track></track>
                
                <persons>
                    <person id='39236'>Daniel Fullmer</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/AK98WZ/resources/robotnix-nixcon2020-final_7vx7E6L.pdf">Slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/AK98WZ/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/AK98WZ/feedback/</feedback_url>
            </event>
            <event guid='b9c7b111-4ae8-58c0-ae4e-fe161cb3a3b7' id='35401' code='DHGPLN'>
                <room>Main Stream</room>
                <title>Bringing NixOS to my school</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T16:30:00+00:00</date>
                <start>16:30</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35401-bringing-nixos-to-my-school</slug>
                <track></track>
                
                <persons>
                    <person id='39237'>Marc Schmitt</person>
                </persons>
                <language>en</language>
                <description>The presentation will start with a current state of our learning infrastructure running on Arch Linux, the challenges we face with it, the up- and downsides of migrating to NixOS and what has already been done.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/DHGPLN/resources/NixCon_2020_-_Bringing_NixOS_to_my_school_Oqcsvm_oXSNavK.pdf">Talk slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/DHGPLN/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/DHGPLN/feedback/</feedback_url>
            </event>
            <event guid='ec6c4308-347b-5e93-a915-3707ea7925d8' id='35402' code='PSLELK'>
                <room>Main Stream</room>
                <title>Nix in the Java ecosystem</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-16T17:00:00+00:00</date>
                <start>17:00</start>
                <duration>00:25</duration>
                <abstract>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&apos;s available today), what&apos;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</abstract>
                <slug>nixcon2020-35402-nix-in-the-java-ecosystem</slug>
                <track></track>
                
                <persons>
                    <person id='39238'>Farid Zakaria</person>
                </persons>
                <language>en</language>
                <description>submission outline:
- discuss how other languages integrate with Nix; mainly by creating fixed-output derivations for their dependencies which are fetched to construct a build environment.
- communicate that Java&apos;s main build systems (Maven &amp; Gradle) go beyond much more than simple dependency retrieval; generate sources or even bytecode weaving/
- touch on Maven specifically; whose initial release was in 2004. The tool is immensly complex and it is non-trivial to determine all the necessary dependencies.
- go over the &quot;double invocation&quot; pattern as a workable solution
- announce / release mvn2nix as a forward looking solution</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/PSLELK/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/PSLELK/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2020-10-17' start='2020-10-17T04:00:00+00:00' end='2020-10-18T03:59:00+00:00'>
        <room name='Main Stream' guid='95026702-9fa3-5b33-b06f-0ccaae98406a'>
            <event guid='6971bcc2-2ac9-5ce8-8928-3a8eb8282e9d' id='35403' code='38MEX7'>
                <room>Main Stream</room>
                <title>Bridging the stepping stones: using pieces of NixOS without full commitment</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-17T11:15:00+00:00</date>
                <start>11:15</start>
                <duration>00:25</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35403-bridging-the-stepping-stones-using-pieces-of-nixos-without-full-commitment</slug>
                <track></track>
                
                <persons>
                    <person id='39239'>Michael Raskin</person>
                </persons>
                <language>en</language>
                <description>Nix package manager has a lot of useful properties, and NixOS permits to expand the use of such properties beyond just installing packages. However, while Nixpkgs behaves mostly like a library, with overrides sometimes used to change even the fundamental assumptions if these are not used by some packages (see, e.g., pkgsMusl), NixOS is typically perceived closer to a framework. Using NixOS service management means committing to the module system (but Nixpkgs overrides are still useful), nonatomic /etc switch, systemd, NixOS driver management, etc. 

This creates a leap of faith, as installing Nix side-by-side breaks only storage quotas, but installing NixOS breaks everything; and leads to some duplication with nix-darwin and similar projects. 

In the talk I will tell what and how to reuse from NixOS now, what NixOS changes could simplify use of NixOS as a shared knowledge collection about running services between different projects with different commitment level, and how a bit of commitment to dumping the core assumptions turns some features from a weird dream into table stakes.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/38MEX7/resources/stepping-stones-slides_PLnK23k.pdf">Talk slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/38MEX7/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/38MEX7/feedback/</feedback_url>
            </event>
            <event guid='a67575b2-12fc-52fa-8222-2911201d9149' id='35404' code='TW79FU'>
                <room>Main Stream</room>
                <title>nix-processmgmt: An experimental Nix-based process manager-agnostic framework</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-17T11:45:00+00:00</date>
                <start>11:45</start>
                <duration>00:25</duration>
                <abstract>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)</abstract>
                <slug>nixcon2020-35404-nix-processmgmt-an-experimental-nix-based-process-manager-agnostic-framework</slug>
                <track></track>
                
                <persons>
                    <person id='39240'>Sander van der Burg</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/TW79FU/resources/nix-processmgmt_HbcSD4u.pdf">Slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/TW79FU/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/TW79FU/feedback/</feedback_url>
            </event>
            <event guid='6a513cbd-d948-511e-a1d3-3fa96633f9ae' id='35405' code='DDXWDY'>
                <room>Main Stream</room>
                <title>Automating deployment with Hercules CI and NixOps</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-17T12:15:00+00:00</date>
                <start>12:15</start>
                <duration>00:25</duration>
                <abstract>Introduction to Hercules CI, NixOps and a step by step demonstration of setting up a continuous delivery pipeline with these tools.</abstract>
                <slug>nixcon2020-35405-automating-deployment-with-hercules-ci-and-nixops</slug>
                <track></track>
                <logo>/media/nixcon2020/submissions/DDXWDY/2020-10-17_10-11-07-00.00.02.678_ywh96mf_g6r2S2V.jpeg</logo>
                <persons>
                    <person id='39241'>Robert Hensing</person>
                </persons>
                <language>en</language>
                <description>Hercules CI is a continuous integration service that coordinates build agents on your own infrastructure. It is built around Nix for the best developer user experience.

NixOps is the Nix ecosystem&apos;s primary deployment tool, supporting multiple clouds through its Nix-based input format.

By integrating the two, we achieve a continuous delivery pipeline that is configured entirely with Nix.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/DDXWDY/resources/nixops_presentation_UqdwZsq.pdf">Hercules CI Effects and NixOps.pdf</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/DDXWDY/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/DDXWDY/feedback/</feedback_url>
            </event>
            <event guid='8825b33f-9b7b-5229-b335-cb4dced5ee54' id='35406' code='TTTNYK'>
                <room>Main Stream</room>
                <title>content-addressed derivations</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-17T12:40:00+00:00</date>
                <start>12:40</start>
                <duration>00:05</duration>
                <abstract>This is part of the Intensional Store model. See https://github.com/NixOS/rfcs/pull/62</abstract>
                <slug>nixcon2020-35406-content-addressed-derivations</slug>
                <track></track>
                
                <persons>
                    <person id='39242'>Th&#233;ophane Hufschmitt</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/TTTNYK/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/TTTNYK/feedback/</feedback_url>
            </event>
            <event guid='ad8e15b8-90dc-5d04-88a0-ccf64fc53a97' id='35407' code='CUE78W'>
                <room>Main Stream</room>
                <title>Nix from the dark ages (without Root)</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-17T12:50:00+00:00</date>
                <start>12:50</start>
                <duration>00:05</duration>
                <abstract>Short comments from the trenches of High Performance Clusters on working with Nix on kernel locked-in systems without proot support.</abstract>
                <slug>nixcon2020-35407-nix-from-the-dark-ages-without-root</slug>
                <track></track>
                
                <persons>
                    <person id='39243'>Rohit Goswami</person>
                </persons>
                <language>en</language>
                <description>Mostly an exploratory exposition, with some suggestions on moving forward. Meant to call attention to this user-base! See this for some context: https://rgoswami.me/posts/local-nix-no-root/

Discussion Post: https://rgoswami.me/posts/nixcon-in-2020-meta
Slides: https://speakerdeck.com/rgoswami/nix-from-the-dark-ages-without-root</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/CUE78W/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/CUE78W/feedback/</feedback_url>
            </event>
            <event guid='6b110b5b-938f-5e6d-8584-cee069c61a26' id='35408' code='NPVFK9'>
                <room>Main Stream</room>
                <title>Meet Nickel: better configuration for less</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-17T13:00:00+00:00</date>
                <start>13:00</start>
                <duration>00:05</duration>
                <abstract>A quick presentation of Nickel, a general configuration language which is inspired from Nix expressions to which it adds some cool features.</abstract>
                <slug>nixcon2020-35408-meet-nickel-better-configuration-for-less</slug>
                <track></track>
                
                <persons>
                    <person id='39244'>Yann Hamdaoui</person>
                </persons>
                <language>en</language>
                <description>Have you ever wished once that you could use the Nix language for something else than Nix ? To write a small project-specific script, or to generate a configuration when having to deal with horrendous YAML templating languages ? Nix may have its flaws, but it uses a simple yet powerful language - fundamentally, a lazy JSON with higher-order functions - that could very well be used to generate other configurations than Nix packages. In this short talk, I present the Nickel configuration language, which is an ongoing effort to make a standalone offspring of the Nix language , and while doing so, takes the opportunity to add new capabilities to the language.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/NPVFK9/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/NPVFK9/feedback/</feedback_url>
            </event>
            <event guid='eaf30496-19b8-51e8-9f9e-e05d08304dd3' id='35409' code='HSWMGQ'>
                <room>Main Stream</room>
                <title>home-manager template</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-17T13:10:00+00:00</date>
                <start>13:10</start>
                <duration>00:05</duration>
                <abstract>home-manager template provides a quick-start template for using home-manager in a more reproducible way. You don&apos;t have to install home-manager, and it uses pinning. [Learn more](https://github.com/ryantm/home-manager-template).</abstract>
                <slug>nixcon2020-35409-home-manager-template</slug>
                <track></track>
                
                <persons>
                    <person id='39245'>Ryan Mulligan</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/HSWMGQ/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/HSWMGQ/feedback/</feedback_url>
            </event>
            <event guid='b6f09ded-63b4-5031-8357-cd0dc160a791' id='35410' code='CTUZUG'>
                <room>Main Stream</room>
                <title>Host a DevOps exam using NixOS</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-17T13:20:00+00:00</date>
                <start>13:20</start>
                <duration>00:05</duration>
                <abstract>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.</abstract>
                <slug>nixcon2020-35410-host-a-devops-exam-using-nixos</slug>
                <track></track>
                
                <persons>
                    <person id='39246'>Ryan Lahfa</person>
                </persons>
                <language>en</language>
                <description>DevOps students have to test their skills in a real-world exam, what&apos;s better than scripting this using NixOps in order to reuse it ?

They will be provided with their own user account on the Bastion and access to a jump user account, WireGuard will be autoconfigured on the host to enable access to their KVM host directly.

The main point is controlling the KVM guests &quot;declaratively&quot; and giving choice to the students to choose their guest OS: Debian or NixOS.

We will see how we can easily generate Nix expression from a scripting language, e.g. Python and feed it to NixOS.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/CTUZUG/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/CTUZUG/feedback/</feedback_url>
            </event>
            <event guid='bee3fd2c-e428-5c25-b0c0-0c1c52c940d7' id='35411' code='EUKUDK'>
                <room>Main Stream</room>
                <title>Nix &#215; IPFS</title>
                <subtitle></subtitle>
                <type>Rain Talk</type>
                <date>2020-10-17T13:30:00+00:00</date>
                <start>13:30</start>
                <duration>00:10</duration>
                <abstract>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&apos;re excited to present the result to the the Nix community, along with the future directions this work unlocks.</abstract>
                <slug>nixcon2020-35411-nix-ipfs</slug>
                <track></track>
                
                <persons>
                    <person id='39247'>John Ericson</person>
                </persons>
                <language>en</language>
                <description>See also https://github.com/obsidiansystems/ipfs-nix-guide for a tutorial.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://talks.nixcon.org/media/nixcon2020/submissions/EUKUDK/resources/Nix__IPFS_tkrmLhy_XAzEXTj.pdf">Slides</attachment>
                </attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/EUKUDK/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/EUKUDK/feedback/</feedback_url>
            </event>
            <event guid='0f9ca4ba-81f4-50da-b798-09cf186409b9' id='35412' code='7RKBTE'>
                <room>Main Stream</room>
                <title>NixOps for Proxmox</title>
                <subtitle></subtitle>
                <type>Thunder Talk</type>
                <date>2020-10-17T13:45:00+00:00</date>
                <start>13:45</start>
                <duration>00:05</duration>
                <abstract>We will explore how to build and manage dozens of NixOS virtual machines in a Proxmox cluster using NixOps in a declarative fashion.</abstract>
                <slug>nixcon2020-35412-nixops-for-proxmox</slug>
                <track></track>
                
                <persons>
                    <person id='39246'>Ryan Lahfa</person>
                </persons>
                <language>en</language>
                <description>Managing a fleet of NixOS machines can be achieved using supported backends of NixOps or other tooling (Disnix, Krops, Morph, etc.), but most of them do not solve the &quot;initialization&quot; of your host, e.g. installing NixOS, starting the 
node, except if you&apos;re using a major cloud provider like AWS for example.

If you&apos;re running your own mini-datacenter and want to manage the whole infrastructure end to end, using the Nix language, it would prove quite difficult.

nixops-proxmox is one step towards a NixOS-heavy datacenter, e.g. storage backends, PCI devices, network adapters can be considered as resources and ultimately all of them can be controlled from a &quot;reproducible&quot; and centralized Nix expression.

This talk will feature how to use IPv6 (!) inside a NixOps plugin, especially useful for IPv6-only networks.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/7RKBTE/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/7RKBTE/feedback/</feedback_url>
            </event>
            <event guid='c806b513-adb2-5172-9718-0164f2e29adf' id='35413' code='83RFWZ'>
                <room>Main Stream</room>
                <title>How Nix grew a marketing team</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2020-10-17T14:05:00+00:00</date>
                <start>14:05</start>
                <duration>00:25</duration>
                <abstract>In my talk I&apos;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&#8217;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.</abstract>
                <slug>nixcon2020-35413-how-nix-grew-a-marketing-team</slug>
                <track></track>
                
                <persons>
                    <person id='39248'>Rok Garbas</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/83RFWZ/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/83RFWZ/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='3' date='2020-10-18' start='2020-10-18T04:00:00+00:00' end='2020-10-19T03:59:00+00:00'>
        <room name='Main Stream' guid='95026702-9fa3-5b33-b06f-0ccaae98406a'>
            <event guid='fa00f369-748a-5aa5-9bf0-f95fd12ebeb2' id='35414' code='JLX3T9'>
                <room>Main Stream</room>
                <title>Hack Day Join Point</title>
                <subtitle></subtitle>
                <type>Lightning Talk</type>
                <date>2020-10-18T11:05:00+00:00</date>
                <start>11:05</start>
                <duration>00:05</duration>
                <abstract>#!/usr/bin/env bash

places=(&quot;Jitsi&quot;   &quot;IRC&quot;   &quot;Matrix&quot;   &quot;Discord&quot;   &quot;\$other_platform&quot; )

activities=( &quot;meet other Nix users&quot;  &quot;find a bug to fix&quot;  &quot;discuss the future of NixOS&quot;
   &quot;collaborate on a project&quot;   &quot;do something&quot;   &quot;gain knowledge&quot; )

oneOf () {
  eval echo &quot;\${$1[$RANDOM % \${#$1[@]}]}&quot;   # this code was translated to be more abstract
}

echo &quot;Join us on $(oneOf places) and let&apos;s $(oneOf activities).&quot;</abstract>
                <slug>nixcon2020-35414-hack-day-join-point</slug>
                <track></track>
                
                <persons>
                    <person id='39249'>Nick Bathum</person>
                </persons>
                <language>en</language>
                <description># Self-organize

Meet up together online, organize, and hack away.

## PAD w/ ideas
https://cryptpad.piratenpartei.de/code/#/2/code/edit/nNNcnWiDb1S0EYH3fTYo+FoM/</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links></links>
                <attachments></attachments>

                <url>https://talks.nixcon.org/nixcon2020/talk/JLX3T9/</url>
                <feedback_url>https://talks.nixcon.org/nixcon2020/talk/JLX3T9/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
