I've done project rewrites. This minimizes the problem solving to mostly just syntax, sometimes a new paradigm if the framework is different enough. But in my experience a rewrites goes so much faster than I expect it, since theres a very clear goal to achieve while rewriting. If someone has an existing project to rewrite, I recommend it. If not, you could implement some project in a framework your comfortable with, and then do a rewrite in the new thing.
rutrum
When you install something, it is added to the store. The store is used as cache and won't be delete until you run nix-garbage-collect. Do you have experience with it redownloading?
Do you have recommendations for a new controller? I've been looking at 8bitdos: https://www.8bitdo.com/ultimate-2.4g-wireless-controller/
I think its best to move past bluetooth, if we can. I dont think it was ever a great protocol. But things like phones can't always have dongles either, so it's necessary.
A home media server is a good start (jellyfin, for instance.) I also think nextcloud is a swiss army knife, and spinning up the nextcloud AIO would get you're feet wet with relatively little effort to how much stuff nextcloud can do (all the differents apps you can install from the web interface. I use news, cookbook, bookmarks, frequently.)
Just gonna throw out HJSON as another alternative: https://hjson.github.io/
I thinks a great idea but I have never seen it used in the wild, unforunately.
What software did you use to make this image? Its very well done
There's two ways to create a dev-environment, which is how you should start. Don't worry about building a project with nix until you get a dev shell with all your (runtime) dependencies. You can do this by creating a shell.nix
or use flakes and have an output for devShells.default
. You can use mkShell
to accomplish this. I would give you a reference config, but I can't do that at the moment. If you need help with this later reach out and I'll get something together.
After that you can work on building it. This involves making a derivation that contains the runtime dependencies of your code, as well as the source itself. If its python, this would include, likely, the entirety of your project. This could be a little tricky, but a lot of people package python code, so there's things in nixpkgs meant for packages python projects. This article might be helpful, or out-dated: https://nixos.wiki/wiki/Python but it should point to some useful things in nixpkgs to build python projects.
Then, you can focus on containerization, if you really need it. I don't know how much you know about nix, but building in nix inherently isolates dependencies away from one another, so if you get the process above working you know it is reproducible. But unlike a container, the above build structure only works on a machine with nix. So if you want to distribute your project as a container, while utiltizing your nix build process, you can look into something like dockerTools from nixpkgs: https://nix.dev/tutorials/nixos/building-and-running-docker-images.html
Let me know if you have more questions.
Do you use a dock or bar? I find it hard to justify it these days. It tells me the time, thats about it.
Add this to your nix.conf: experimental-features = nix-command flakes
Then check out nix --help.
Here's an example of a tutorial that uses flakes and the new cli. You might glance through here to see how the syntax compares: https://zero-to-nix.com/start
They have resolved this exact problem. There is an "experimental" cli tool that fixes a lot of your complaints about nix-env, nix-channel, etc. Itcs wrapped together with "flakes". This newer feature is a little different, and working with or without flakes segments the community AND the types of articles about nix, like this one.
As far as I know though, nixos related thing still have a bizarre set of commands, and even with flakes "nixos-rebuild switch --upgrade" is still how you switch configs.
And as far as installation goes, using nix-env -iA really is a bad practice. Thats installing something ad hoc like you would in any other package manager. That defeats the point of nixos, where your configuration file explicitly defines all the packages you need installed, and nothing else. Nix will remove any packages you didnt specify.
Just learned my VPN has one of these tiles. Thanks.