I've been stubbornly trying to understand nix flakes for probably a year now. This is by far the most concise and clear info I have found. The line by line breakdown for the flake config was incredibly helpful. So many tutorials are rushed and lack critical context, but you do a fantastic job of not just explaining what goes where but the even more critical WHY. Thank you for this video and I'm hoping to see more of your work in the future!
Totally agree. General > specific > context = [defines] specialization. A 5 minute hello world example explains nothing on its own outside of interfacing the flake system and creating a standard, feature-less flake (as an example). This guy's vid covers a great deal surrounding thus supporting interaction & maintenance with the technology; definitely one of, if not the, best videos on the subject.
@@univera1111 for myself. I want to build a generative artificial intelligence. After I build it then I want to bring in collaborators to train it. I believe nixos is good to set up identical configurations across machines compared to other distros. Therefore, bringing in collaborators who have never wrote a line of code before should be easier. I think building a collaboration platform on nixos machines should be almost as simple as sharing a proven configuration file.
Your videos on LAs and Sigrok got me back into the electronics hobby after a decade of just software engineering. Thanks for the videos, great to see you back!
I can't believe you're back. I watch through your videos so often the past few years... But had completely forgotten your channel name. So when it popped up in my subscription and I clicked it I was stunned to see your return
Jesus, it was yesterday that i checked your channel videos. And was afraid you stopped your channel. And now you release a new video. Could no wait to see it before answering. Good to have you back.
I too didn't realise this existed... Great explanation, it's always nice to have tools like this in the back of your mind if you hit specific problems.
Hi sir, new to the channel here, I am currently using debian, because it's a very stable distro, but after watching this, I think I am gonna give nix a try, thank you, and I can watch u all day.
>Be me >Learning programming, with a huge interest over functional paradigms. >Dualboot Windows and Linux (Fedora), also on Linux primarily recently because easier to dev? >And on a youtube rabbit hole binge of watching software engineers being software engineers >Gets this in my recommendation "The algorithm gods have blessed me."
Love the channel. Surprised to see it back. Watched the entire video, and didn't get it. Seems like another tool from the people who like to make things complicated like cmake. 40 years C programming and I can't grasp cmake. Like others, I'd been thinking about this channel yesterday before the video appeared - premonition is real.
CMake is quite a mess, but if you want a portable high-level build language, it still does better than any of the alternatives as far as I am aware. If you use modern targets-based methods it's not so bad. The purpose of using Nix and CMake is certainly not about complicating things - rather the opposite. Creating portable reproducible build environments is a hard problem and Nix's approach, although somewhat unusual, allows it to do the right thing in cases where other systems would struggle.
Love the idea of Nix, just wish it had a few more new user friendly tools or better documentation. It'd be my daily driver if it was more in either or both areas.
there is also nixops A Nix based deployment and provisioning tool allowing declarative specification of remote NixOS systems, VMs and containers; supports AWS, Hetzner, GCE and some other cloud providers out of box. NixOS is the distribution
4:06 when a step like that comes from any tool, what I usually do is start a new shell in the same place, or just start a new tab and if it doesn't break then I close the other tab.
I'm one of those living under a rock. There distros that everyone has heard about in the top 5 or so. Then, a briefly passed over a reference to it a few days ago, but didn't stop to investigate. Then, I went to investigate the installation of a software install that stated "if you have Nix install with such-and-such installed..." (What the heck is Nix???)... I had to investigate. I really don't like Windows and MS just keeps on piling crap on and making it harder to remove said crap. But, a lot of games I've gravitated to over the years live on Win. I got tired of the not being available or trying to get them to work on Linux. But, I also found hard to deal with all the dependencies and dealing with the package managers due to all the programming languages and development tools I'm interested in. If I can find some peace in NixOS, then maybe it would be the one!
I wish there was a course that taught how to make programs in python with a great variety of libraries, including flask, using nix as the environment to ensure that a program can be reproducible.
I think I summoned you?🤔 Me last night, to my wife, after watching your videos on reverse engineering: “this guy made great videos. It’s too bad he hasn’t made one in 3 years” You: **poof of dark smoke**** 😂
I wonder: When the goal is reproducible builds, why didn't you have to specify your used compiler, clib, cmake, make? Are they not fetched via nix? IMO, these have to be specified to let the project be reproducible.
I'm going to cover this in the next video, but the answer is in the flake.lock file, which is a JSON file that contains the commit ids and hashes of the inputs.
The idea is that these are locked in specific version(s)/commit(s) in nixpkgs, and your project uses a specific version/commit of nixpkgs. Nixpkgs lets you use nix with what "looks like" a regular software distribution (a cohesive set of updated packages), but the magic of nix is that you can simply use a different version of your toolchain by simply switching the nixpkgs commit you're using (or even using a different repository, or even packaging the toolchain yourself), and even mix and match: e.g. you can have package A and package B depend on conflicting versions of package C, being used together as dependencies of package D.
One of my favourite channels is not abandoned. What a great day!
I've been stubbornly trying to understand nix flakes for probably a year now. This is by far the most concise and clear info I have found. The line by line breakdown for the flake config was incredibly helpful.
So many tutorials are rushed and lack critical context, but you do a fantastic job of not just explaining what goes where but the even more critical WHY.
Thank you for this video and I'm hoping to see more of your work in the future!
Totally agree.
General > specific > context = [defines] specialization.
A 5 minute hello world example explains nothing on its own outside of interfacing the flake system and creating a standard, feature-less flake (as an example).
This guy's vid covers a great deal surrounding thus supporting interaction & maintenance with the technology; definitely one of, if not the, best videos on the subject.
I have not watched the video but why nix os why not any other distro
@@univera1111 for myself. I want to build a generative artificial intelligence. After I build it then I want to bring in collaborators to train it. I believe nixos is good to set up identical configurations across machines compared to other distros. Therefore, bringing in collaborators who have never wrote a line of code before should be easier. I think building a collaboration platform on nixos machines should be almost as simple as sharing a proven configuration file.
Your videos on LAs and Sigrok got me back into the electronics hobby after a decade of just software engineering. Thanks for the videos, great to see you back!
But when the world needed him most...
HE RETURNED!
I can't believe you're back. I watch through your videos so often the past few years... But had completely forgotten your channel name. So when it popped up in my subscription and I clicked it I was stunned to see your return
Also would love to see some more hardware content from you in the future if you get around to that type of thing again
A big praise: I stumbled upon NixOS by chance and can't get out of the amazement. I find it the best Linux concept I know so far.
Jesus, it was yesterday that i checked your channel videos. And was afraid you stopped your channel. And now you release a new video. Could no wait to see it before answering. Good to have you back.
I too didn't realise this existed... Great explanation, it's always nice to have tools like this in the back of your mind if you hit specific problems.
Hi sir, new to the channel here, I am currently using debian, because it's a very stable distro, but after watching this, I think I am gonna give nix a try, thank you, and I can watch u all day.
Nice to see you back!
Glad to see you back!
Great content as always
>Be me
>Learning programming, with a huge interest over functional paradigms.
>Dualboot Windows and Linux (Fedora), also on Linux primarily recently because easier to dev?
>And on a youtube rabbit hole binge of watching software engineers being software engineers
>Gets this in my recommendation
"The algorithm gods have blessed me."
Hi! Hope you're well and glad to see some new content!
Welcome back! Glad to see you sharing good knowledge.
Love the channel. Surprised to see it back. Watched the entire video, and didn't get it. Seems like another tool from the people who like to make things complicated like cmake. 40 years C programming and I can't grasp cmake. Like others, I'd been thinking about this channel yesterday before the video appeared - premonition is real.
CMake is quite a mess, but if you want a portable high-level build language, it still does better than any of the alternatives as far as I am aware. If you use modern targets-based methods it's not so bad.
The purpose of using Nix and CMake is certainly not about complicating things - rather the opposite. Creating portable reproducible build environments is a hard problem and Nix's approach, although somewhat unusual, allows it to do the right thing in cases where other systems would struggle.
Absolutely love your style! So clear, articulate, and organized nicely!
Just found an subscribed to the channel for the stuff on Nix. Very well made videos. You do this very well! Looking forward to more Nix stuff!
Happy to see you back 🤗
Great video! I liked the hint on the security aspect. And also the explanation of flakes.
Good to see you again
Hey Man! Welcome back!
Gonna have to watch this a couple more times but a very interesting tool.
Welcome back!
Love the idea of Nix, just wish it had a few more new user friendly tools or better documentation. It'd be my daily driver if it was more in either or both areas.
Glad to see you again
The last thing blowed my mind!
there is also nixops A Nix based deployment and provisioning tool allowing declarative specification of remote NixOS systems, VMs and containers; supports AWS, Hetzner, GCE and some other cloud providers out of box. NixOS is the distribution
4:06 when a step like that comes from any tool, what I usually do is start a new shell in the same place, or just start a new tab and if it doesn't break then I close the other tab.
We need more videos like tis one!,will be great a video how to keep nix update,it was difficult for me!! thanks
Love the "studenv" :D Standard Environment :>
I'm one of those living under a rock. There distros that everyone has heard about in the top 5 or so. Then, a briefly passed over a reference to it a few days ago, but didn't stop to investigate. Then, I went to investigate the installation of a software install that stated "if you have Nix install with such-and-such installed..." (What the heck is Nix???)... I had to investigate. I really don't like Windows and MS just keeps on piling crap on and making it harder to remove said crap. But, a lot of games I've gravitated to over the years live on Win. I got tired of the not being available or trying to get them to work on Linux. But, I also found hard to deal with all the dependencies and dealing with the package managers due to all the programming languages and development tools I'm interested in. If I can find some peace in NixOS, then maybe it would be the one!
Not only are you back... you've got a face too! ;)
Could you cite the source where you're getting this "Number of packages in repository" graph? This is the graph shown at 10:57
I wish there was a course that taught how to make programs in python with a great variety of libraries, including flask, using nix as the environment to ensure that a program can be reproducible.
I'm testing NixOS in a VM and it has been buggy. Sometimes the UI locks up.
I think I summoned you?🤔
Me last night, to my wife, after watching your videos on reverse engineering: “this guy made great videos. It’s too bad he hasn’t made one in 3 years”
You: **poof of dark smoke**** 😂
Welcome back !!!
Great video. Guix for the win! 😁
i tried to install NixOS on my old laptop. but it does not work. it needs GPT partion, MBR not work.
YOOOOOO WELCOMEBACKK
Hes alive!
alive!
Nixos is the best linux distro period
You can run packages WITHOUT even dowloading them??? It's all just temporarily cached? That's crazy, man.
Please start an Academy . I'm in
each app you install is going to be added to $PATH? this is insane.
❤ ❤ ❤
Yasss
now do a guix tutorial
So right now it is most useful for some developers, not users, ok.
I wonder: When the goal is reproducible builds, why didn't you have to specify your used compiler, clib, cmake, make? Are they not fetched via nix? IMO, these have to be specified to let the project be reproducible.
I'm going to cover this in the next video, but the answer is in the flake.lock file, which is a JSON file that contains the commit ids and hashes of the inputs.
The idea is that these are locked in specific version(s)/commit(s) in nixpkgs, and your project uses a specific version/commit of nixpkgs.
Nixpkgs lets you use nix with what "looks like" a regular software distribution (a cohesive set of updated packages), but the magic of nix is that you can simply use a different version of your toolchain by simply switching the nixpkgs commit you're using (or even using a different repository, or even packaging the toolchain yourself), and even mix and match: e.g. you can have package A and package B depend on conflicting versions of package C, being used together as dependencies of package D.
stdenv =standard environment
3:08 6:14 watch later
Das wird doch eh nix.
Welcome back!
welcome back!