Matthew Croughan - What Nix Can Do (Docker Can't) - SCaLE 20x

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 89

  • @Nerd2k7
    @Nerd2k7 Рік тому +57

    I can watch this every minute of the day. Everything about nix is pure gold to me. Thanks Matthew!

  • @havokgames8297
    @havokgames8297 4 місяці тому +5

    This is such a great way to show off a project's breadth. Your style and passion is really well suited to this format. What a gem.

  • @AnirudhTammireddy
    @AnirudhTammireddy 8 місяців тому +1

    Beautiful video. Excellent presentation.

  • @FareAlert
    @FareAlert Рік тому +12

    This guy's passion for Nix is contagious

  • @kindoblue
    @kindoblue Рік тому +20

    Super cool presentation, super packed with infos. Thanks a lot 🙏

  • @0xpbek
    @0xpbek Рік тому +12

    Thank you for inspiring me to use NixOS! I can't ever stop learning, packaging, tweaking. 😁

  • @BehradJi
    @BehradJi Рік тому +3

    Thank you for your presentation, I'm on the second day of my NixOS journey and already loving it!

  • @robertpearce9424
    @robertpearce9424 Рік тому +10

    Excellent presentation and probably the only person that I have stumbled on that is clearly knowledgable AND can communicate their ability of nix clearly and concisely.. I know it is a niche distro but would love to see a very long series of all of your excellent choices of demos for future videos on your channel. I am sure you are busy, but building a working config from start to finish, or even live streaming similar demo/ideas where you build/config/debug all at the same time... Keep up the video creation, I will watch whatever you create - subscribed!

  • @MiaLovesRod
    @MiaLovesRod Рік тому +4

    Dang, i use nixOS everyday and i in love it, heard this is gold to me

  • @richerite
    @richerite 8 місяців тому

    This looks like something that’s super awesome in the happy path and a nightmare to debug when things go wrong

    • @matthewcroughan
      @matthewcroughan  8 місяців тому

      It's not that bad. Depends on what kind of Nix code you're writing/using, as is true in all code. There are some really bad Nix libraries out there (Haskell.nix), but generally speaking the happy path encompasses more of the Nix ecosystem than the sad path does, at this time. Subject to change, of course.

  • @stokedfool
    @stokedfool Рік тому +4

    Impressively long demo. Amazing stuff. I'm sold on Nix.

  • @siddhantmisal4115
    @siddhantmisal4115 Рік тому +4

    Nix pkg managment is so awesome and its really revolutionry idea . and AUR as always op supported so many packages !!

  • @Techonsapevole
    @Techonsapevole Рік тому +2

    I'm speechless, thank you!

  • @fabianbusch8772
    @fabianbusch8772 Рік тому +3

    I'm hyped

  • @JOHNSMITH-ve3rq
    @JOHNSMITH-ve3rq Рік тому +4

    This is art.

  • @FourTetTrack
    @FourTetTrack Рік тому +1

    Loved the talk! I'm new to Nix and this showed how much Nix can do.

  • @kwinzman
    @kwinzman 11 місяців тому +2

    Great talk! Every time you say "right?" it reminds me of the "Duck Quack Sound Effect".

    • @matthewcroughan
      @matthewcroughan  11 місяців тому +3

      Lol, never noticed that before, uh oh

    • @50_Pence
      @50_Pence 9 місяців тому +1

      I read this comment right at the start. Omg

  • @claes4711
    @claes4711 Рік тому +20

    This is definitely a very impressive talk, with lots of information presented. My problem is that it is a little too fast so I have a problem to follow along. The speed with which you switch between the parallel demos and context switch. It would be super to see the same kind of content but a bit more focused and slowed down.

    • @joshuadonahue5871
      @joshuadonahue5871 8 місяців тому +3

      I think the point of this talk is just to get exposed to the possibilities. Then you can go to other resources to learn how to use it in detail at a slower pace

  • @Ancipital_
    @Ancipital_ Рік тому +1

    Fantastic presentation! Thank you!!

  • @lololol338
    @lololol338 3 місяці тому

    I wish you would do more Nix video, your knowledge about Nix is awesome !

    • @matthewcroughan
      @matthewcroughan  3 місяці тому +1

      Me too, but it's time consuming and I haven't been able to get paid for it, so I can only do what I can! I've thought about patreon, etc. Will see what I can do!

    • @lololol338
      @lololol338 3 місяці тому

      I would definitely tip you! Vimjoyer is making Patreon with username mention in the end of his video (looks like its working for him :D)
      But yeah I guess it's a ton of work tho

  • @sergioquijanorey7426
    @sergioquijanorey7426 Рік тому +2

    Great content!

  • @cameronguilbeau5888
    @cameronguilbeau5888 Рік тому +8

    This is a GREAT presentation. My only issues is the constant context switching. I realize you are excited to show off all of what Nix/OS is capable of, but the constant switching between different demonstrations is a bit overwhelming. I was able to follow along because I'm a Nix user but I could see from a foreign perspective that it would be information overload. Perhaps try one demonstration at a time and while things are downloading, engage in more audience interactions. Just a suggestion, again overall the presentation was amazing!

  • @TilmanBaumann
    @TilmanBaumann 11 місяців тому +2

    I should play more with the repl...

  • @andreaszweili8593
    @andreaszweili8593 Рік тому +1

    Great talk showing of Nix!

  • @bzmrgonz
    @bzmrgonz 10 місяців тому +2

    You owe us a show-n-tell on nix on your phone m8!

  • @BrianKung
    @BrianKung Рік тому +14

    Hi Matthew, can you set the language for this talk to English so that UA-cam captions it automagically?

    • @matthewcroughan
      @matthewcroughan  Рік тому +15

      I never knew that this was required to generate those captions! Done, thank you.

    • @BrianKung
      @BrianKung Рік тому +5

      @@matthewcroughan thank you!

  • @laughingvampire7555
    @laughingvampire7555 Рік тому +1

    type systems are conquering the computer industry

  • @bonsairobo
    @bonsairobo 3 місяці тому

    TIL I should be using the Nix REPL more.

  • @Krazy0
    @Krazy0 Рік тому +1

    I remember when giving a talk there was a preview of the next slide, it's soykafingly helpful, it helped greatly with overdesigned slides with blank animations and some cringe memes such as the ones you've that appeared without any context beforehand.

  • @XenonG
    @XenonG Рік тому +2

    Nix/NixOS does what Docker Don't!

  • @restorebibleculture6581
    @restorebibleculture6581 7 місяців тому

    I never hit the notification bell. I hit it this time!

  • @biigsmokee
    @biigsmokee Рік тому +1

    i ran the rufzxp nix package as a joke in wsl2 on Windows 11 and it actually starts. unusable as the audio doesnt work right but surprised it displays at all. cant wait to try out nixos

  • @laughingvampire7555
    @laughingvampire7555 Рік тому +5

    NixOS is what Gentoo wants to be when it grows up. Sadly Portage is a virgin port manager and Nix is a Gigachad

  • @CaseyHancocki3luefire
    @CaseyHancocki3luefire Рік тому +2

    This sh** is amazing looking.

  • @k3ysyt
    @k3ysyt 5 місяців тому

    Hey Matthew, loved the talk! Can you tell me how you configured the conference network to distribute VMs through ssh. I would love to work on something like this as a demo project. Thanks.

  • @restorebibleculture6581
    @restorebibleculture6581 7 місяців тому

    20 minutes left to go. I’m going to have to start this video over and watch it again as soon as I’m finished.
    Amazing stuff!

  • @michaelsverdlik1924
    @michaelsverdlik1924 Рік тому +7

    Matthew thank you very much for this talk & interactive demo. A big thank you for repeating the questions from the audience!
    I have a couple of followup questions, would appreciate if you (or anyone else who knows the answer) can clarify these:
    What happens to a state (e.g data of a db) when you change a package? Does each version/derivation of a package has its own place to store state? Or does it depends on the package definition?
    The other question is about the software versions. Is there a way you can ask for hello v1 instead of what is latest in the nixpackages head? Or is the big idea is that you can get (and pin) the latest and if you need anything older than you need to find it in git and built it yourself? (or create a private derivation)
    Are there still any notoriously hard components to package out there left? Is there any popular software package that makes very broad assumptions that are just too hard to sandbox?
    A bit related to the previous one.. does something like systemd can work with nix?
    Appreciate your time!

    • @matthewcroughan
      @matthewcroughan  Рік тому +8

      Nix doesn't perform runtime sandboxing, you would need something like Nixpak for that. So if you run a program, its internal references may have been patched out by Nixpkgs recipes/derivations to refer to /nix/store/ paths, meaning the program will not look in common FHS paths like /lib /usr, etc. Nix doesn't have /lib, so if that occurs, then the program will crash, and we will have to fix it by patching it in Nix. I like to say to people that you don't really need runtime sandboxing with this property, but some people would disagree with me. I say to those people, why are you running software you don't trust?
      You can ask for any version of a piece of software you want, either by referring to an older version of Nixpkgs that happened to have an older version, or by overriding an existing nix recipe/derivation by using a Nix expression, which is a piece of Nix code.
      To get the Hello from nixos-22.11
      nix shell github:nixos/nixpkgs/nixos-22.11#hello
      To override the Hello from nixos-22.11 with the 2.8 version of GNU hello
      nix shell --impure --expr '(import (builtins.getFlake "github:nixos/nixpkgs/nixos-22.11") {}).hello.overrideAttrs (_:{ src = builtins.fetchurl "ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"; })'
      Every program that is compiled has different inputs, or else it occupies the same /nix/store path. So the fact that the URL was different for hello in my example above is what makes its hash/shasum in the /nix/store unique and different.
      Program state has nothing to do with Nix. If the Hello wants to write to ~/.config/hello, then Nix will not interact with that or modify that in any way.

  • @ianliu88
    @ianliu88 Рік тому +1

    How does this compare to Spack? Is Nix suitable for HPC, which usually requires fine tuning of compilation flags?

    • @capability-snob
      @capability-snob 11 місяців тому +1

      Compilation flags discussed at 1:59:15

  • @adammontgomery7980
    @adammontgomery7980 10 місяців тому +1

    I played with nixos for a bit the other day in a VM. My problem with it is, it feels like I can't do something unless I've done it before. I can't be the only one who has to copy/paste from someone else's vim/nvim config because I don't know what every single option is. For instance, Matt shows you can just enable the nginx service and have a web server; but nginx is nowhere to be seen in the list of system packages. How would someone know beforehand that nixos can just retrieve a service's dependency?

    • @matthewcroughan
      @matthewcroughan  10 місяців тому +3

      search.nixos.org/options?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=nginx

  • @jonnmostovoy2406
    @jonnmostovoy2406 Рік тому +1

    Hey, Matthew! Great talk! Do you hang out in London at all? Would be cool to have a Nix meetup. People just don't know about Nix.

    • @matthewcroughan
      @matthewcroughan  Рік тому +1

      www.eventbrite.co.uk/e/london-nix-user-group-tickets-620517152507

  • @TilmanBaumann
    @TilmanBaumann 11 місяців тому +1

    What's that nvim language server? I truly miss that currently in my (astro-nvim based) setup

  • @trapexit
    @trapexit Рік тому +1

    I'm sure I can look this up but... I'm not seeing versions mentioned. If you install python3 with numpy... what versions do I get? The lack of explicit versioning for all the settings and such seems odd. services.nginx.enable = true... but what nginx am I getting?

    • @matthewcroughan
      @matthewcroughan  Рік тому +2

      It gets the version that's in the revision/version of nixpkgs you're using. It is very explicit, if you want to change the version then you can use override/overrideAttrs

  • @herrpez
    @herrpez Рік тому +2

    For the next presentation, turn off whatever redshift thing you are using. It all looks extremely red on my end with additional redshift filter applied. 😉

    • @matthewcroughan
      @matthewcroughan  Рік тому

      I don't remember it looking that red for me in person, I'm wondering if their video capture pipeline screwed it up in some way, or maybe I just don't notice how red it gets!

  • @lucas.84
    @lucas.84 8 місяців тому

    What terminal font are you using? It looks super cool!

  • @merthyr1831
    @merthyr1831 Рік тому +1

    Great demo, but I do think you went a little fast in some parts (or at least did a lot simultaneously which was harder to follow).
    It's a shame my workplace relies on Windows and Mac so heavily because Nix would be a godsend for our developers

    • @andrewr7820
      @andrewr7820 9 місяців тому

      Nix package manager is available on macOS. en.wikipedia.org/wiki/Nix_(package_manager)
      For the Windows machines, I suppose you could do a bunch of different things - nixpkgs in WSL, full NixOS in (Hyper-V | Virtualbox | VMware), install NixOS on bare metal and run Windows as a guest in a VM (I do that). (Your users will bless your name forever.)

  • @danieleden1856
    @danieleden1856 Рік тому +1

    such a good presentation! btw Matthew, which nix lsp are you using for neovim ?

  • @lhxperimental
    @lhxperimental 7 місяців тому

    What happens if no nixos package is available like the bcc tools example?

  • @hoots187
    @hoots187 Рік тому +4

    Any links to slides pls? Thanks!

    • @matthewcroughan
      @matthewcroughan  Рік тому +9

      docs.google.com/presentation/d/1HEwiivu08gADnIpAtDpTPSXcXNI89HqzZsmNxLi_7tA/edit?usp=sharing

    • @hoots187
      @hoots187 Рік тому +1

      Thank you!

  • @lhxperimental
    @lhxperimental 7 місяців тому

    This is my first video on nix. I don't understand how he is running raspberry pi os on his machine is it a VM? Do nix builds run as VMs?

    • @matthewcroughan
      @matthewcroughan  7 місяців тому

      The raspberry pi image is a NixOS image built and flashed to an SD card, which I then plugged into the Raspberry Pi and booted. The result on screen is from a HDMI capture card.

  • @FareAlert
    @FareAlert Рік тому

    dang the ssh server is down

  • @colemickens
    @colemickens Рік тому +2

    :)

  • @shocka007
    @shocka007 Рік тому +1

    Mines a Nix Purple Pill

  • @FreeSpeechWarrior
    @FreeSpeechWarrior Рік тому +3

    I took public speaking two semesters in a row in college, and the first thing we're taught is to not rock side to side when we're speaking in front of an audience. That's a minor detail considering the fact that I enjoyed Matt's talk more than any other that I've ever heard in my entire 23-year career as a Sysadmin / DevOps engineer. I have managed several microservice infrastructures, and what Matt is showing us resolves almost all of the tough pain points that we face today in this business. Repeatability is the number one goal in any environment from high performance clusters in microbiology, to heterogeneous infrastructures with applications running on legacy application servers.

    • @matthewcroughan
      @matthewcroughan  Рік тому

      Physically rock back and forth on the toes, or do you mean rock back and forth between slides? I guess both are applicable!

    • @FreeSpeechWarrior
      @FreeSpeechWarrior Рік тому +4

      @@matthewcroughan I meant side to side. Hey Matt I want to apologize for my comments, after watching your talk. I am very impressed with your skill sets and knowledge. I believe Nix and NixOS are the answer to a lot of problems that have been plaguing the IT world for a very long time. I believe your involvement with the project has probably been integral to its rapid development and proliferation. Thanks for the great talk Matt.

    • @nandoflorestan
      @nandoflorestan Рік тому +2

      Yes, Matt rocks!

  • @laughingvampire7555
    @laughingvampire7555 Рік тому +2

    the next goal for nixos should be integrate qubesos

    • @matthewcroughan
      @matthewcroughan  Рік тому +5

      Or to use Nix to build an OS that is better than QubesOS spectrum-os.org/

    • @LinkEX
      @LinkEX Рік тому +1

      @@matthewcroughan Very interesting.
      Between Nix, this, and VanillaOS, there appear to be a lot of great Linux OS projects making advancements lately.

    • @laughingvampire7555
      @laughingvampire7555 Рік тому

      @@matthewcroughan that sounds interesting because the goal of qubesos is to guard software from illegal behavior, how does spectrum achieves that with nix?

  • @deephousefridays1911
    @deephousefridays1911 8 місяців тому

    tried nixos, had a really bad experience with getting vscode plugins to work, could not code so gave up.

    • @lololol338
      @lololol338 3 місяці тому +1

      Imagine using vscode

  • @jNaimXIII
    @jNaimXIII Рік тому +5

    Is this talk reproducable though? 🤔