Nix

Who are we?

Coders Only

We are a registered association in Zürich dedicated to software developers.

What do we do?

  • SoCraTes Day CH
  • Global Day of Coderetreat Bern & Zürich
  • Book study groups (like Crafting Interpreters)
  • Software Craft Study Group
  • Girl Coders get together
  • Coders Monthly
  • Regular meetups

Sponsoren

bbv bring! labs ergon finnova house of test megazord

Become a member

$ sh <(curl -L https://codersonly.org/members/join)

Nix

This evening's goals

  • Me being exposed to questions
  • You learning at least something new

Schedule

  1. PhD Thesis by Eelco Dolstra

  2. Brief overview of Nix concepts

  3. Hands-on: Learning the Nix expression language

The Purely Functional Software Deployment Model

by Eelco Dolstra

https://edolstra.github.io/pubs/phd-thesis.pdf

Motivation for using Nix

...is that it solves one of the (subjectively) biggest issues in the software lifecycle.

  • Dependencies
    • at build time
    • at run time
  • Configuration
  • Hardware
  • ...

Overview of Nix

  • The Nix Store
  • Nix Expressions
    • Nix Packages Collection
  • Package Management
    • User Environments
  • Store Derivations
  • Deployment Models
    • Channels
  • Transparent source/binary deployments

Brief summary

  • Nix describes software components using a functional expression language.

  • Nix stores software components in isolation from each other in a central store using unambiguous paths.

  • Nix manages packages using the central store and manipulating the user environment.

Where do I start?

Let's do some drawing!

My approach

  1. Learn the Nix expression language
  2. Learn to describe environments with flakes
  3. Learn to create your own derivations derivations
  4. Start configuring your user environment using home-manager
  5. Start configuring your system using NixOS

Learning the language

...doing TDD on a problem we know!

For those without Nix

$ sh <(curl -L https://nixos.org/nix/install) --daemon

For more information go to https://nixos.org/download/

👐🖥️

$ git clone https://github.com/escodebar/meetups.git
$ cd meetups && git checkout nix
$ ./test.sh
[PASS] 1/1 tests passed

...now pair and learn!

Thank you!

and if you enjoyed this content... consider becoming a member

$ sh <(curl -L https://codersonly.org/members/join)