Sorry I'll shut up about Nix at some point :) BUT I'm preparing a presentation to introduce Nix to my team and I wondered if anyone was using it in a professional capacity at the moment. I'd love to know how it's implemented and how it's being used etc. #nix#nixos
Well it took me literal months to get #hyprland working (not as bad as it sounds because that's 5-minute snatches here and there), but it finally came up (#nix, woo!) and porting over my basic config from #sway has taken about 15 minutes.
My weekend project https://github.com/gridbugs/nix-shell-locked is a tool for starting transient shells with some temporarily-installed packages on #Nix systems where packages are taken from a version of nixpkgs according to a flake lockfile. This can be helpful when you want to temporarily try out a program without installing it, and want to make sure it's compatible with your system or home-manager configuration, if you manage those configs with flakes. #NixOS
@hazelweakly@fasterthanlime Well when using #nix I do feel like peering in the hidden foundations of computer science, shaping entire universes from few commands while being completely immune to mere mortals base concerns like global state, versions or compatibilities
So #Nix is when Haskell people make a package manager, a language, an OS and a build system all entangled with each other both physically and conceptually?
I'm getting into #Nix and now installed it on my personal machine as well (thanks new installer!), but the error messages are from another planet. I don't see what fundamental complexity there is in Nix to make it this difficult to understand.
I'm making an effort to learn #Nix. It's a good idea but judging from what I'm seeing and the strong path dependance, I'm not sure if the issues are fixable within the project.
It would be best for somebody to do a clean and humane re-implementation on top of the Nix store concept.
I have started learning Nix and Home Manager. Along this journey I'll be compiling some articles showing the process I am taking to configure and convert my existing fish shell dotfiles over to the nix and home manager setup.
Guix maintainers Janneke Nieuwenhuizen @janneke and Ludovic Courtès @civodul have announced just today that their "seed" C compiler "Mes" is now in production in Guix OS. Mes can, after several boostraping stages eventually compile GCC which in turn compiles Linux, Guile, and Guix. The bootstrap program (as I understand it) is written in Guile Scheme, and compiles to a 357 byte binary. Now when you do guix pull you will see that the entirety of the core operating system (some 22,000 expressions) all depend on that single 357-byte bootstrap program. The idea is to eliminate the footprint of trusted binaries that build the software for the OS and compiler toolchain -- the famous "Trusting Trust" problem outlined by Ken Thompson which he presented while receiving his Turing Award. Thanks to their hard work, we now have an operating system for which every stage of the build can be verified by a human. https://guix.gnu.org/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/
Nix OS people do not need to feel left out, a new issue on the Nix OS GitHub page has announced that they will begin a similar project. https://github.com/NixOS/nixpkgs/pull/227914
#Rust and #Nix has this thing in common, people excited about them manage to drag it in to every discussion, and will derail it to talk about their pet thing talking down at others and just kill the good discussion that was there.
Great, it looks like whatever they changed in Chrome no longer trusts Kitten’s¹ local certificate authority (installed and trusted by the system trust store, as you’d do in a spit enterprise).
Applies to previously trusted and working certificates too.
(The directly related module is Auto Encrypt Localhost²)
Going to look into it today and see if I can’t find a workaround.
@aral you can try #nix as an account level package manager. Yes, I know, nix is kind of a love or hate it thing, but it will never install anything system wide, everything is contained in the nix store and easy to get rid of if you figure you don't like it.
Talked to @davebloggt today, he told me he worked with some colleagues on a #NixOS machine someone else (who doesn't work there anymore) set up at his workplace. I think this is an interesting case study on the new-to-NixOS-experience, which is why I'm writing this down.
They tried to change something in the sway config. Searching "sway nixos" led them to the NixOS wiki, which said something about if sway is enabled in the NixOS config at /etc/nixos/configuration.nix, which it was, it overwrites any home-manager config for sway. However, the sway config file was a symlink to a home-manager path in the store, even after running nixos-rebuild switch.
Searching "home-manager" led them to the NixOS wiki again, which said something about the home-manager config being in ~/.config/nixpkgs/home.nix or a NixOS module. This file however didn't exist, and theconfiguration.nix` didn't contain anything mentioning home-manager.
This ended in confusion, them not being able to determine where the home-manager stuff came from, and finally them simply deleting the symlink and changing stuff manually.
The solution we worked out together was that the system was built from a flake in some repo. The file in /etc/nixos/configuration.nix was probably just a leftover, which is why it contained stuff that didn't make sense. When they ran nixos-rebuild without --flake it took the old config file, which didn't contain any home-manager stuff. That left the system in an inconsistent state.
Some learnings we might take from this:
If you google something about NixOS, in most cases, the wiki will be the first thing to pop up, because it's the only place that really contains the kind of "you want X? do Y" instructions for practical stuff.
I think the NixOS wiki isn't really up to that task as de-facto landing page for novices. It's neither really comprehensive nor up-to-date and seemingly not even official anymore and now now operated independently because of... some stuff that happened?
The flake/non-flake split of the ecosystem doesn't make things easier.
The person who set up that machine probably should have documented their deployment.
His company should really hire me as a #Nix consultant!
nix is weird, awesome, frustrating, and there's really nothing else quite like it. i wanted to try to explain it and show off specific scenarios where i thought it helped me personally
I'm looking for a back end / devops / SRE role that can hire me in Vancouver, BC (happy to do remote/hybrid)
I'm experienced and can be trusted around computers, especially ones that aren't my own.
I love #nix and functional languages (such as #clojure#elixir) and have experience with all the fancy industry standard tools (#terraform#kuberenetes#docker#ansible) as well as with all the other things expected of my role (cloud providers, CI/CD, IaC, networking, postgres)
I'm wading into a nicely written but very complex docker ecosystem. Build times are up to my chest, and when I look down, I can't see my feet from the web of interconnected install.sh files. All the while my brain is going: #nix solves this. #nixos (https://twitter.com/kubukoz/status/1516821150583689222)
After several years, I've finally built some specialty #Nix flakes tooling for #Elixir projects and am working on the first hard documentation pass. Code refinement comes next, but it's quite usable IMO - I dogfood it continually.