[00:00.000 --> 00:16.480] Thank you. There's too many people there, I wasn't ready for that. If they told me I [00:16.480 --> 00:25.280] would have finished my slides sooner. So yeah, thank you everyone for being there. It's really [00:25.280 --> 00:31.440] energizing to see so many people interested in Nix, NixOS. So I work at a company called Twig. [00:31.440 --> 00:38.280] My name is Guillaume. We love Nix, a Twig. If you don't know about us, check out our blog. We have, [00:38.280 --> 00:48.920] it's okay. So while my job as work is more data science and software in general, I'm a Nix [00:48.920 --> 00:56.280] enthusiast. I started three years ago, could not stop since then. My rabbit hole was just managing [00:56.280 --> 01:05.640] CUDA basically. As a Nix enthusiast, I have one thing I can't stop thinking about, which is, [01:05.640 --> 01:12.960] I want everyone to use Nix. I want you to use Nix. I want you to use Nix. I want you to use Nix. [01:12.960 --> 01:24.320] I want, so before I start, does anyone not use Nix on a daily basis here? Okay, so I want you to, [01:24.320 --> 01:31.920] okay. So and to the other people in the room, guys, what are you doing? There's two people not [01:31.920 --> 01:46.040] using Nix. So as you might know, I want to be able to make anyone use Nix. But there is about, [01:46.040 --> 02:01.200] in the sentence, we have both anyone and Nix. In the same sentence, ideally this is what the [02:01.200 --> 02:14.600] combination of these words should mean. Nix uses no better. So Nix is not an easy tool to use, [02:14.600 --> 02:22.160] right? In order to be completely autonomous with Nix and NixOS, you need a vast amount of [02:22.160 --> 02:28.840] knowledge to model your way through all kinds of problems and before you get anything to run [02:28.840 --> 02:43.360] properly. However, I am a believer. I think we can, in fact, not have this, but reach this wonderful [02:43.360 --> 02:50.880] word where everyone can use it. So let me tell you a story that happened in a company that I might [02:50.880 --> 03:00.400] have heard about. So in this company, we have Emma. Say hello to Emma. The company didn't [03:00.400 --> 03:05.280] expect people to actually reply to that. I'm delighted that you are. Thank you. I feel less [03:05.280 --> 03:11.600] lonely there. The company being rather small, she has to handle all HR by herself because she's [03:11.600 --> 03:21.000] the HR, right? So she manages the employee's contract as any HR would and turns out that even [03:21.000 --> 03:30.800] though the company is small, she has processed a lot of contracts. I mean, really a lot. Oops. [03:30.800 --> 03:38.920] I spent too much time on this animation to let it go to waste. Sorry. So she has been using [03:38.920 --> 03:46.640] software for quite some time. You might recognize the logo. To process demo. And it has been going [03:46.640 --> 03:56.000] fine. But someday, a task come to her so huge is stupid. We all know this kind of stupid task, [03:56.000 --> 04:02.000] right? Let's say, for instance, that she has to go through all the contracts and find all the [04:02.000 --> 04:10.120] employees that have some specific terms. She now has to spend hours and hours and days doing, [04:10.120 --> 04:14.640] going through all each one contract reading, looking for the terms, et cetera, et cetera. And [04:14.640 --> 04:22.160] it is boring. It is repetitive. If only there was a way to do it without doing it manually. [04:22.160 --> 04:34.520] And as she's starting to drown in her own despair, suddenly appears in her slack. Someone who says, [04:34.520 --> 04:42.480] I think I can be of help. It's an engineer, she says. Little does she know that it's not just an [04:42.480 --> 04:50.160] engineer. Anyway, our hero knows that she uses a SAS to process the contract. And the SAS has an [04:50.160 --> 04:58.200] API. So it can be automated. So he says, I can do it in minutes. Is he a spy? He puts in his [04:58.200 --> 05:04.760] hacking gloves, starts typing furiously, and Emma is in awe. He says, give me access to your [05:04.760 --> 05:09.240] account and I will get the date on my machine and I will process it for you and I will pass it to [05:09.240 --> 05:16.560] you. But then Emma looks at him in fear. It's forbidden by law. Indeed, we now have to face a [05:16.560 --> 05:25.160] terrible foe. You should not have access to this data or we'll be in trouble. There were [05:25.160 --> 05:31.280] these close, these close to solving the problem. But our hero knows that it ain't easy to run a [05:31.280 --> 05:38.000] custom script on Novice computer, right? You would have to go through many challenges. Making [05:38.000 --> 05:45.440] someone use a terminal. Installing dependencies. Sending the code and most of it all fixed in [05:45.440 --> 05:54.560] it because it never works on the first trial. So if only there was a simple way to run a program [05:54.560 --> 06:03.960] on someone's computer without such hassle. If only there was. But fortunately for us, [06:03.960 --> 06:24.040] there is nix. A single flat road for the user. So step one, install nix. Step two, give one [06:24.040 --> 06:32.240] liner to run a program. Actually, this one. First one, you got the joke. But it's beautiful. And [06:32.240 --> 06:39.320] as you can imagine, this is sort of a true story. There really was an HR. There really was a [06:39.320 --> 06:52.040] company. And I can say it out loud. I got HR to use nix. The comment I just put you. Yeah, [06:52.040 --> 06:58.800] I really do consider it an achievement. I put it in my tiles. If only it could be displayed [06:58.800 --> 07:05.880] over my head. So when I submitted my talk, I put a subtitle and you've seen it on the first [07:05.880 --> 07:12.240] slide. It will be fine. When I wrote it month ago, it was supposed to be sarcastic, ironic. But [07:12.240 --> 07:19.040] I was supposed to roast nix. I'm in a toxic relationship, as you can see. But when I thought [07:19.040 --> 07:28.560] about this one story, I realized that in fact, it did work. And that was what was incredible at [07:28.560 --> 07:33.920] the time. I was just writing a script, a Python script in five. And shipping Python, I've done [07:33.920 --> 07:40.680] it to some other people for the same reason, like privacy. And it's always nightmare, because [07:40.680 --> 07:46.920] people really wanted to work on the machine and you can't touch it and stuff like that. So this [07:46.920 --> 07:57.560] is why I, this illustrates why I love nix. It just works. Machines are capricious. But nix makes [07:57.560 --> 08:06.360] like a highway for us to make things run on them. It pays the way for software to not just work on [08:06.360 --> 08:16.520] my machine, but on any machine. And I think this is what makes nix have such an impact. And if nix [08:16.520 --> 08:24.880] can just do that, it's already quite enough, right? So is it sometimes a pain to write packages, [08:24.880 --> 08:30.720] to have to debug them? Because you're using a recursive function that at the end doesn't work [08:30.720 --> 08:36.040] and you have really not the good error message. Yes, sure, it is a pain to use. But at the end [08:36.040 --> 08:43.680] of the day, if it's the only way we have to do what I just did, then isn't it worth it to know it? [08:43.680 --> 08:53.120] So my final word would be to all nixers here, let's not make other people use nix because [08:53.120 --> 09:00.480] it's cool tech. Let's make it because it makes someone else's life cooler. Thank you. [09:00.480 --> 09:13.560] So I have my minutes left. It was just a silly story to get you to breathe a bit between the [09:13.560 --> 09:33.760] interesting parts. But if you have any questions, oh, we do have questions. So the question is, [09:33.760 --> 09:40.760] in which company does HR not use Windows, which is a great tricky question that I purpose, I did [09:40.760 --> 09:49.440] on purpose to evade that fact. Yeah, it was on my quest, as you could have seen. Some companies, [09:49.440 --> 10:06.840] I guess. Yeah? Yeah? Sorry? So the question is, why do I use Windows? Because I can run [10:06.840 --> 10:14.360] nixOS on it anyway. And yeah, some software just don't work yet. If you can make Ableton work on [10:14.360 --> 10:33.560] nixOS, I'm taking it. Still questions. How many minutes left? Yeah? That's a very good question. [10:33.560 --> 10:40.640] And this is, sorry? Oh, yeah. So the question is, sorry. Why didn't I just build Docker image, [10:40.640 --> 10:47.960] basically, to run it? This is what I did a few years ago when I had to ship Python. And it turns [10:47.960 --> 10:54.080] out that Docker was a pain to get to use on someone's computer because there's too many buttons. [10:54.080 --> 11:01.480] Like Docker desktop to get running on someone's machine that just don't know or want to know how [11:01.480 --> 11:07.680] Docker works. Sometimes it's just like you have to turn it on, you have to wait for it to, like, [11:07.680 --> 11:16.400] it's too complex to use in this situation. Or you can argue against that, but in my case, [11:16.400 --> 11:23.920] it turns out to be, and I wanted to use nix to be fair. Last problem statement, you said that you [11:23.920 --> 11:31.520] need to teach the HR person, command line, package manager, and execute the script. Now, nix kind [11:31.520 --> 11:41.520] of solves three of those things. You still need the command line. Yes. Yeah. So the question is, [11:41.520 --> 11:49.080] I'm sorry, I just can't get that in my head. Thank you. So the question is, so yeah, I said there [11:49.080 --> 11:54.280] were different parts of the problem to solve, like installing dependencies and moving the [11:54.280 --> 12:01.400] scripts and getting people to use the command line to run the script, et cetera. So, but there's [12:01.400 --> 12:10.320] still the fact that we need to use the terminal. I bypassed that by giving things just to copy [12:10.320 --> 12:19.240] and paste, basically. And then terminal on Mac isn't that hard to find, actually. It wasn't the [12:19.240 --> 12:27.720] hardest part. The hardest parts were getting the API key from the SAS, because you have to make [12:27.720 --> 12:40.800] people click through the UI of the SAS. Yeah, I think that's about it. Thank you, everyone.