93 karma · joined April 15, 2022
I’ve been running it for a couple years, you can use it to try Nix without as much up front learning.
Almost 1000 stars!
https://github.com/dustinlyons/nixos-config
Edit: Just crossed 1k! Thanks HN
Maybe mixing sudo / user permissions during initial installation broke it. Nix is pretty unforgiving with not great error messages.
Also, no more docker! docker on macOS was always a pain.
I made it easy for others to try if you’re interested, almost 800 stars now:
Dev environment issues are a thing of the past, once you’ve defined your configuration.
If something is broken with a package, I don’t have to figure it out myself —- I just rollback, wait for someone to fix it upstream in nixpkgs and pull down the patch later.
I hate using docker on Mac and have since replaced it with flakes and devenv.
My configuration with a step by step guide (600+ stars): https://github.com/dustinlyons/nixos-config
2. Use your README to grab the attention of the user. I have a list of features, videos, etc. at the top.
3. I regularly post on various subreddits, Hacker News, etc. trying to support new Nix users. Sometimes I link to my project as an example of code that may help them. I've done this over a couple of years, so there's now a collection of posts people are finding and driving traffic.
4. My experience was that in the beginning, I had to grind out each star one by one. The project never went "viral". But after a certain growth point, Github will pick it up and start recommending it to others.
5. Reddit and Github are now my biggest sources of traffic.
Hope this helps!
What that means is if something is broken in Emacs, the community will fix it, and all I need to do is run `nix flake update` to grab the latest commit and then `nix run .#build-switch` to alter my system. Easy.
Thanks for the heads-up on the 404s! I've fixed those links.
In re: to org-agenda, I don't use that as much anymore. But I heavily, heavily using org-roam w/ org-roam-dailies everyday to build my own networked graph of notes. For tasks, nowadays I just use simple docs for projects and Asana to keep a catalog of everything.
Keeping my NixOS machine on my desk and Macbook in sync seamlessly is also super cool.
Plus, you have to jump through hoops to install non-free software, which goes against the ethos of Guix anyway.
IMHO, Nix is clearly "the winner" here and we'll see more and more adoption as it improves. Lots of folks are doing exciting work (see https://determinate.systems/, https://devenv.sh/, https://flakehub.com/). And the scale and organization around nixpkgs is damn impressive.
I love Nix. I use it every day to manage multiple local dev environments. And I use devenv instead of docker for sharing project-specific environments with others.
Who wants to use docker on a Mac anyway?
I've spent over a year making my personal Nix config work well for others: https://github.com/dustinlyons/nixos-config
The line editor experience of building a stack and calling a function, I have not really found again. Lisp REPLs are nice but something about using the stack abstraction as the whole language.
So many amazing memories.
It was summer, 1994. I was 12, we had to move houses and my parents let me buy a 50ft phone cord to connect a modem in my room. My mom was a teacher and found me access to our local university's Internet dialup. Dialup terminal programs to connect into their VMS server. VMS had telnet which was enough to connect to all the MUDs I read about on my local BBS. I think I had just upgraded to 14.4, 28.8 wasn't even out yet.
During the summers, I would stay up all night, lay in bed pretending asleep when my dad had to get up for work in the morning, and then get back up to keep at it.
Entire virtual worlds to explore, basically text MMOs, in 1994. I was in Kentucky, felt like the only person who knew. It changed the course of my life forever, just the magic of it all.
Lots of "anthropomorphic Furry" MUCKs and TrekMUSE.
The best of times.
It was incredible though; I was big into books like Redwall, Watership Down, etc. So a social game of animals seemed fun.
The language was MUF; Multi User Forth. Stack based, push, pop, etc.
I helped port software into other MUCKs, like FluffMUCK. The people there were so kind and taught me all sorts of things about Linux, programming, building PCs, etc. I wouldn't be who I am today without the early MUCK communities.
Nix is so easy to share across machines (including Mac) that it ends up being pretty cool when you pair it with something like syncthing. I can jump around, get up to speed with something new, and have it everywhere without much setup now that my machines share some Nix code and data.
Mac support is pretty great with nix-darwin; I'm able to update my flake, run nix-build and my terminal/system level apps, Mac app store apps, homebrew apps, and dock shortcuts all get updated at once. My dock points to apps in the Nix store. Sure I could do that with some scripts, but Nix ends up being way more robust.
I also still use Emacs and the community emacs-overlay is pretty awesome.
But after you're up and running, Nix makes all this stuff generally seamless is my point. There have been times I can't update due to some upstream thing, but 80% of the time it's fixed for me in nixpkgs a few days later.
nixpkgs has like 80,000+ packages the last time I looked, and is growing.
I haven't had a use case to stray outside of Docker + terraform for my work related stuff, but it's amazing for sharing dev environments on a team. Flox is a new thing to check out
My repo if it helps anyone get started: https://github.com/dustinlyons/nixos-config
In addition to that, check out this Shopify video series:
- https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4...
- https://shopify.engineering/what-is-nix
I share a bunch of configuration between my M1 Macbook and x86 desktop in my office. I use home-manager with config that is organized like nixos/*, macos/*, and common/*. The first two just import the latter. Here's a link if it's helpful:
Did you know you can even install Mac App Store apps?
Here are the relevant bits where my config does it: https://github.com/dustinlyons/nixos-config/blob/main/macos/...
For those who don't mind a little extra work (I argue Backblaze is almost no work using their Web UI), syncthing is a really great solution.
"Run it on your desktop computers and synchronize them with your server for backup."