![](https://infosec.pub/pictrs/image/05e382b8-b45e-43fc-86d9-0be0834b4ea7.jpeg)
![](https://lemmy.world/pictrs/image/4271bdc6-5114-4749-a5a9-afbc82a99c78.png)
Nixos has made me a better software engineer, I hope it takes off
Nixos has made me a better software engineer, I hope it takes off
I can add, podman was ignored in previous years at my day job because there were some reliability issues either with GPU access or networking I forget, however these issues have been resolved and we’re reimplementing it pretty much effortlessly
Ruby was recommended to me by my comparative programming languages professor. I haven’t picked it up, but there were memes that this professor was so good at programming he was secretly built by the university in C++ to teach students how to write better code.
Gimme a wedge pillow to keep my ass above my head and I’m in
I don’t mind using discord, but I think it’s best to consolidate all project management communications on a single platform
Exactly, like ansible.
Unused packages aren’t typically a problem unless you imperatively change your systems state. Otherwise, If you remove it from your configuration.nix, it’s removed when you switch to your next build. Previous builds/generations keep those versions of those packages, which wastes space, but you can specify garbage collection to remove generations older than a month
My only complaint so far is the best way to properly make a development shell for a python project is either with a still somewhat experimental feature called flakes, or a 3rd party solution poetry2nix. Im probably going to switch to using docker/podman for python projects.
On the other hand, pip is the worst package manager, so being incentivized away from it is kind of a plus
Man I still suck at NixOS and it has it’s kinks/learning curve, but if you’re tired of tweaking things constantly the nice thing about NixOS is all your little tweaks get recorded into a single file which builds your base OS into your particular configuration. So after you tweak it and get it right, you’ll never have to tweak it again even if you change computers
If you go down this route, even as a noob, whatever tech issues you may run into, it will likely be easier to find command line interface [CLI] solutions that you can copy and paste into your terminal aka console.
I know it seems extra and harder because it looks like something a hacker would do. But telling someone where to click a mouse over and over again is so much harder than “copy this into a terminal app, and send back the output”
If rainbow 6 ever gets Linux support, I think I can fully uninstall windows. Unfortunately if I need to have windows installed for something, I might as well compartmentalize Linux for productivity, and windows for gaming
Combined with a Bluetooth keyboard and ssh it’s honestly not a bad emergency tool
The point of kde plasma is extensive customizability and aesthetics at the cost of performance. I don’t like default kde, but after tweaking everything with kvantum manager I can’t go back
Can’t hear you over the sound of my GPU crashing 😎
Software engineering is usually distinct from programming in that it isn’t about the logic behind programming, but about the project management that all software projects typically have in common.
Besides agile methodology, a lot of software engineering involves creating reproducible environments. While NixOS doesn’t provide anything that much different from tools like Ansible,
NixOS follows a functional/declarative design paradigm, functional/declarative design paradigms communicate similar logic for solving the same problem. It’s a restrictive paradigm. Consider how javascript is not restrictive, as in, you can code with any design paradigm in javascript, and how it’s ugly for that.
I also think functional paradigms mirror the natural language closer than imperative paradigms. That’s subjective, but I would still argue Math is a logical language that is a subset of the natural language, and since functions in programming represent a process of doing something, functions make for natural verbs. Meaning, understanding the naming convention for the functions, is a natural naming convention for when I communicate with other software engineers, even when I’m not asking about making configurable/reproducible systems in NixOS
Or when I look at how to config things like firewall, ssh, vpn servers, user group permissions… it’s a minimalist description that I could communicate to other people configuring even on a debian server
So, it’s hard because it’s restrictive, but if you’re willing to put up with a learning curve, you get a language agnostic framework for describing computing environments, more or less. Then there’s more advanced stuff with nix flakes, which still doesn’t make sense to me functionally/linguistically, but I’m starting to see the value in parallel package management and the precision in reproducibility they provide by requiring sha256 git commits