Just a shout out to nix-darwin[1]. It is nix, so initial setup is a bit involved. But then it truly makes it easy to configure everything in one place including mac defaults, homebrew apps declaratively and mas apps etc.
I have been exploring nix for the past few months and my experience with nix has been both exhilarating and frustrating, simultaneously. On one hand, I find it hard to imagine not using nix now, but on the other hand, I hesitate to recommend it to other colleagues due to its steep learning curve, ux issues and potential for footguns.
I sincerely hope that nix community improves the UX to make it more accessible to new users. Though for those willing to invest time in learning it, nix is extremely useful and highly recommended.
a) First was a personal use to carry my dotfiles/home config everywhere (office mac, home mac, virtual machines). Ended up configuring a flakes based home-manager setup.
b) Second is trying to get good devshell experience for the whole team. Especially in a monorepo setting with multiple languages and tools. Right now there is tons of setup required including installing right versions of java, python, nodejs, lots of instructions to get right python version, poetry install, setup aliases etc.
2. No, it is not. It didn't take much of research to conclude flakes are the way to go. Honestly, I am confused by so many responses about confusion between flakes and non-flakes as I don't think it take much effort to realize flakes are the way to go even if it is experimental.
Though, to be fair, it does hurt that two of the recommended resources - nix.dev and nix pills - do not cover flakes.
It is sad to see that more often than not, the top comments on any article are overly negative or even vitriolic and any interesting discussion languishes deeper in the article.
I read your draft, and it is full of excellent advice. Some of it being which I also find very important, some which gives me food for thought and some which I am happy to be reminded of again. I look forward to your finished post.
Isn't it really common though for people to advertise in related posts. For eg. I see one another self-promotion in this post too. I am just curious what makes this different.
I don't have a music background and so can't tell anything about ngrid.io, but usually people promoting related products (either self promotion or not) has been very helpful in the past.
Reading top comments might make someone feel that this article is not worth reading, but I encourage people to actually read it. Personally I find it really interesting.
For eg. reading about prebound methods here:
https://python-patterns.guide/python/prebound-methods/. Seasoned python programmers probably wouldn't find anything interesting there, but for me, it was quite useful including instances of where it is being done in python standard library and discussion around when and when shouldn't it be used.
I have been using emacs like forever. Finally decided to learn vim 4 years back, as had to use Intellij Idea, and the default keybindings are crap for editing. Now, I use Doom Emacs with evil keybindings.
I am glad I took time to learn vim. The editing concepts around motion keys, text blocks etc. are just so much more powerful than emacs way.
I recommend all emacs users to learn vim atleast give evil mode a try.
That kind of unit tests sounds great. I always reach for writing tests for eg. for library functions. Though I tend to skip when testing some app functionality which basically requires stubbing/mocking tons of services, and feeding them what output to expect on what input - in those cases, I don't find tests or TDD very helpful.
I find a lot of value in unit tests for isolated logic testing and in functional tests for end to end testing. Still that leaves a lot of code in a modern web application (like stackoverflow) where I find tests don't provide enough bang for buck.
You might like https://logseq.com/. It works with either markdown or emacs org-mode syntax. It also syncs with github, so you could do local editing too.
Wow, they are actually reducing models, and simplifying the range, but you make it sound as if they are increasing confusion by increasing the choices.