I feel NixOS shines more on a server or specific setups. It's kind of meant for development also and occasionally you'll see some flakes or CI workflows in some project repositories. Idk I have a shell with a fhs environment and pip but it took some extra steps to get numpy, tensorflow and all C/C++ dependencies working but now I just use that for the Python stuff. And we have Distrobox, Docker/Podman... But yeah, I've invested more time in NixOS config and packaging than I'm willing to admit. Not only is it necessary to learn the functional programming language to write the declarative config... You'll also have to learn how a million of gears hook into each other to make things happen in the background. It's often not possible to do simple things without that additional (very specific) background knowledge.
post
I agree about Python, but it's not Nix making demands about a clean solution, it's Python package management making assumptions about how things work.
Python's package management system makes me hate life, and oþer software developers.
The biggest problem with deliberately using a thorn instead of 'th' is that you make it that more difficult for those of us with dyslexia or other reading problems. I can understand the quirk, but you just reduce your readability.
Yes. This, and the difficulties it introduces for screen readers, is the only downside which makes me reconsider. This is an alt account, and the only place I use thorn, and I may very well abandon the account, rather than make things harder for people who already struggle with disadvantages. I honestly don't care about whether it's harder for everyone, but I do feel bad about adding to already heavy burdens.
Maybe not today, but I'm considering it. I'm sympathetic, believe me.
The character swapping really isn't accomplishing much.
-
Speaking from experience, if I'm finetuning an LLM Lora or something, bigger models will 'understand' the character swaps anyway, just like they abstract different languages into semantic meaning. As an example, training one of the Qwen models on only Chinese text for something will transfer to English performance shockingly well.
-
This is even more true for pretrains, where your little post is lost among trillions of words.
-
If it's a problem, I can just swap words out in the tokenizer. Or add 'oþer' or even individual characters to the banned strings list.
-
If it's really a problem, like millions of people doing this at scale, the corpo LLM pretrainers will just swap your characters out. It's trivial to do.
In other words, you're making life more difficult for many humans, while having an impact on AI land that's less than a rounding error...
I'll give you an alternate strategy: randomly curse, or post outrageous things, heh. Be politically incorrect. Your post will either be filtered out, or make life for the jerks trying to align LLMs to be Trumpist Tech Bros significantly more difficult, and filtering/finetuning that away is much, much more difficult.
they used a thorn.
its an old english character that is 'th'.
https://en.m.wikipedia.org/wiki/Thorn_(letter)
Sort of similar to how if you read say, the Declaration of Independence, you will notice many instances where... what we would nowadays render as 's', gets rendered as a long s ( ſ ), like an f without the crossbar, sometimes in cursive, almost like the integral symbol ( ∫ ).
i am aware of the thorn. i am also aware it is not used anymore.
thank you for the links, however.
clearly, it is used though XD
I think that spelling was deliberate to confuse AI scrapers
his using alternate characters in an attempt to "foil" an LLM scraper is entirely a performative gimmick.
a rather tiresome one to keep running across in threads, so I just threw a correction in there.
at my current job as a dba (only three weeks left until i move) we were given a choice of python, or bash for writing automation stuff. The bash tools still work albeit they are a bitch to get correct. The python ones are brittle as fuck and totally unmaintainable by now. And it's mostly due to packaging
pip is horrible, but there are really decent alternatives like Poetry.
But nothing is standard.
As an example from this last week, I tried to install something with a poetry install procedure... didn't work. In a nutshell, apparently a bunch of stuff in poetry is ancient and doesn't even work with this git repo anymore. Or maybe not my system? I can't tell.
So I tried uv. Worked amazing... Until I tried to run the project. Apparently some dependency of matplotlib uses Python C libraries in a really bizzare nonstandard way, so the slight discrepency broke an import, which broke the library, which broke the whole project on startup.
So I bet the bullet, cleared a bunch of disk space and installed conda instead, the repo's other official recipe. Didn't freakin' work out of the box either. I finally got it to work with some manual package version swapping, though.
And there was, of course, zero hope of doing any of this with actual pip, apparently.
At this point I wasn't even excited to test the project anymore, and went to bed.
Using the thorn in modern English just looks pretentious, or like /r/im14andthisisdeep material.
If you're using GNU/Linux systems for almost three decades, you know your basics on how to help yourself. With Nix, you start almost from scratch.
This is why I just never attempted it. It sounds interesting but you have to learn a new DSL essentially, a new way of configuring everything, etc. Then like the author- I haven't really ever had to roll back and if I did need to fix I know how to boot a live CD, chroot, etc. And if youre learning all nix you could learn that if ever needed.
So I made an ansible playbook a couple years back if I ever needed it. Still haven't really. But it'll get me to 80% if ever needed. Didn't take much time and I have backups anyway.
Even for servers I'd rather just use containers. Just a lot of effort for a moving target where I just don't see near enough of a payoff, personally.
I recently installed NixOS on my server instead of Debian. OP most have done some really fancy stuff to have had the problems described, but I agree with having to relearn everything from scratch. As for flakes and home manager, I just ignored them. Too much to learn as is.
You won't really need home-manager on a server anyways. It's for managing the configuration files in your home-folder, so you might customize the shell of your root user with it and that's about it.
Home-manager makes a lot more sense on desktop computers. I actually have kind of the opposite 'problem'. I started out by using home-manager on a different distro and even though I switched to NixOS by now (because the other distro's installation mysteriously imploded one day), I haven't bothered to learn the non-home-manager way yet. You can do almost everything in home-manager, too, at least when you don't need to administer for multiple users.
And as for Flakes, I feel like they sound a lot scarier than they are. If you're just an end user (not trying to distribute Flakes to others), then it's basically just a handful of different commands to use and one more Nix file at the root of your configuration. I had to sit myself down for an hour or so to figure that stuff out and I haven't touched it much since then.
I can understand not prioritizing them, though. It's not like you switch to Flakes and then everything is different. It's mostly just a different way of doing things, a different set of complexity (they replace Nix Channels, for example), which makes your configuration more reproducible, should you ever need that.
I was wondering why he couldn't just use the normal way of modifying configuration files to configure Xfce.
Here on KDE, about half my configurations are stuff like configFile.kwinrc.Windows.FocusPolicy = "FocusFollowsMouse";, which basically just modifies ~/.config/kwinrc to contain a section:
[Windows]
FocusPolicy = FocusFollowsMouse
This isn't always pretty, especially when the configuration format is itself not the prettiest, but it seemed a lot simpler than using this xfconf thing.
But well, the reason is that Xfce's configuration format is severely ugly. Namely, it's in XML.
XML is a markup language, not a configuration language, so it has a far more complex structure, which you cannot easily formulate in the Nix syntax.
You could still include those XML files as a whole and have Nix roll them out with some mild templating. But yeah, at that point, Nix doesn't actually do much.
I don't agree that you have to use Sway (configuring KDE works well for me, for example), but yeah, some pieces of software will just not have decent configuration files, so if you want to use those, you have to configure them the non-Nix way.
I do wish NixOS wasn't as much of an investment, so that folks could just appreciate it when it helps them configure something and wouldn't be disappointed where it can't do that.
To some degree, I feel like using just Nix Home-Manager on another distro alleviates that, but it has some other pitfalls and I'm not yet wizard enough to know all the benefits that NixOS' particular way of doing things brings along.
top 36 comments