diff --git a/src/slides.md b/src/slides.md index 353d46b..9b1bce3 100644 --- a/src/slides.md +++ b/src/slides.md @@ -52,7 +52,8 @@ Declarativo? Nix, el lenguaje === - + + > Sólo existe por y para Nix, el gestor de paquetes: para describir paquetes y configuraciones, así como sus variantes y composiciones. **No está pensado para casos de uso generales**. - Sencillo @@ -60,6 +61,7 @@ Nix, el lenguaje - Lazy - Turing completo + ```nix +exec let fibonacci = n: @@ -76,9 +78,11 @@ in NixOS === + + +![](images/nixos-logo-25.11-xantusia-lores.png) -![image:width:40%](images/nixos-logo-25.11-xantusia-lores.png) - + - Nix como gestor de paquetes - _OS as code_ - Se encarga **solo** de la parte declarativa @@ -99,11 +103,13 @@ NixOS Home Manager === - + + - Gestión de _dotfiles_ - Independiente de NixOS - Por la comunidad + ```nix { programs.zsh = { @@ -144,12 +150,12 @@ Ecosistema - NixOps, clan, colmena... ```nix -# Construir una imagen de coker para el paquete hello +# Construir una imagen de docker para el paquete hello pkgs.dockerTools.buildLayeredImage { name = "nix-hello"; tag = "latest"; contents = [ pkgs.hello ]; -} +} ``` @@ -159,6 +165,13 @@ pkgs.dockerTools.buildLayeredImage { ```bash nix repl ``` +``` +Welcome to Nix 2.13.3. Type :? for help. + +nix-repl> 1 + 2 +3 +``` + @@ -309,7 +322,10 @@ f v ``` -## Librerias +## Librerías + + + ### `builtins` - Vienen con Nix - Escritas en **C++** @@ -317,8 +333,8 @@ f v ```nix +exec builtins.toString ``` - + ### `pkgs.lib` - En nixpkgs - Escritas en Nix @@ -328,14 +344,23 @@ let in pkgs.lib.strings.toUpper "lookup paths considered harmful" ``` + + + +### `import` +- Parte de `builtins` +```bash +exec +echo "1 + 2" > /tmp/file.nix +nix-instantiate --eval -E 'import /tmp/file.nix' +``` ## Impuridades ### Path ```bash +exec -echo "Hola mundo" > data -nix-instantiate --eval -E '"${./data}"' +echo "Hola mundo" > /tmp/data +nix-instantiate --eval -E '"${/tmp/data}"' ```