this post was submitted on 21 Jun 2024
28 points (100.0% liked)

FreeAssembly

75 readers
6 users here now

this is FreeAssembly, a non-toxic design, programming, and art collective. post your share-alike (CC SA, GPL, BSD, or similar) projects here! collaboration is welcome, and mutual education is too.

in brief, this community is the awful.systems answer to Hacker News. read this article for a solid summary of why having a less toxic collaborative community is important from a technical standpoint in addition to a social one.

some posting guidelines apply in addition to the typical awful.systems stuff:

(logo credit, with modifications by @[email protected])

founded 8 months ago
MODERATORS
 

They invited that guy back. I do have to admit, I admire his inability to read a room.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 6 months ago (2 children)

You don't have to release anything. Most of my flakes are on private storage in my homelab, including my homelab configuration, and I don't feel any obligation to contribute anything upstream right now.

Don't let them take the Nix language from us. Focus on what's important: nixpkgs can be forked trivially and everything will continue to work, because that's the point of Nix. They can't disempower us other than by insisting that we don't have voices on their committees.

[–] [email protected] 5 points 6 months ago

You don’t have to release anything. Most of my flakes are on private storage in my homelab, including my homelab configuration, and I don’t feel any obligation to contribute anything upstream right now.

that is true! there’s a ton of Nix stuff I’m keeping entirely personal now too. my projects fall into roughly three categories:

  • awful.systems infrastructure and its offshoots. this is the stuff that really needs to be released, because the administration of this instance should be as public and replicable as possible.
  • projects that use Nix as a build and environment setup tool. these should see the light of day too since they have value outside of Nix, but unfortunately most of them don’t build without Nix, and (because Nix is technically excellent) there’s usually no easy replacement for it. this particularly includes some of my hardware projects: I use Nix to keep modified embedded firmware, cross compilation tools, and userland images in sync, and it fulfills a similar role (from the ground up) for my lambda calculus reducer project, but there it manages HDL dependencies too. as far as I know there’s no tool* that does what Nix does here.
  • projects that pertain to how I use and deploy NixOS systems. these shouldn’t see the light of day. these include personal deployments, usability libraries, embedded system flakes, and flakes that deploy reusable Nix appliances. the biggest part of this is the NixOS sub-distro that I use on my desktops and laptops; it features a doom emacs UI, a ton of fixes to make EXWM work more reliably, and a few other services that make NixOS work generally more like a lisp machine (and which make elisp work more like Nix). a lot of these systems have upstreamable fixes I haven’t bothered with. again, this is an area where it feels like there’s no* real substitute for NixOS.

[*] guix would work fine (and for the sub-distro it’d have an advantage in that everything would speak Lisp), but given the sheer fucking number of GNU shitheads I’ve seen supporting Jon, switching from Nix to Guix feels a lot like moving out of your abusive parents’ house so you can rent out your abusive parents’ guest house

and the fridge in the guest house has a lock on the freezer so you can’t have ice cream, but don’t worry, nobody will notice (for now) if you remove the lock with some bolt cutters

I’m willing to be wrong about guix — I really want a reasonable out from the current Nix ecosystem — but this doesn’t feel like a healthy choice

[–] [email protected] 4 points 6 months ago (2 children)

Agreed that releasing stuff isn’t necessary, especially stuff propping up the ecosystem.

Unfortunately, I think the rest of your statements are exactly inverted: the nixpkgs repo is pretty difficult to fork (moves fast, needs expensive CI/caches to properly operate), and while we may still have the nix expression language (and hey, lix is a good implementation of it!), I’m getting more and more convinced that it is not such a blessing.

The phd thesis though, that one is pretty good (currently reading it for realsies); lots of good ideas in it, regardless one’s thoughts about the expression language (:

[–] [email protected] 7 points 6 months ago

beyond anything technical, the question that’s been burning up my hope is:

why in fuck was this such an easy win for the techfash shitheads operating in the open?

seriously. these fuckers employed the most obvious tactics imaginable to damage the Nix community beyond repair, and it worked. it wasn’t even hard for them to come fuck up the only enjoyable tool I use.

and hardly anybody even managed to tell them no in a way that fucking mattered. the Nix governance changes were an obvious ploy that everybody fucking bought into! and I thought I was being fucking unfair for thinking this’d be the exact outcome!

and somehow, after all this bullshit happening in the open, there’s no viable fork? Aux got right to the edge of it — one of my systems ran auxpkgs without much trouble — then they let a bunch of bad faith assholes steer the project away from that, and now I don’t know what Aux is, but it’s not focused enough for me to contribute to.

the only ones who successfully said no were Lix, so the Nix language will survive! and as you pointed out, as it is right now that’s not great. it’s a lot like elisp — it’s janky as fuck but there’s a couple things it does uniquely well. unfortunately, the folks in control of nixpkgs control the Nix standard library, and they’d prefer the language remains obscure and janky. in short, these fucking jackasses want Nix to become as hard to use as Urbit, because it’s very easy to turn a priesthood of experts with obscure knowledge into a right-wing think tank. I’m sure it works even better if, unlike with Urbit, the underlying technology actually fucking works.

[–] [email protected] 5 points 6 months ago (1 children)

the nixpkgs repo is pretty difficult to fork

For this reason, Tvix (a modular Nix implementation) cites compatibility with nixpkgs as one of their goals:

The package collection is an enormous effort with hundreds of thousands of commits, encoding expert knowledge about lots of different software and ways of building and managing it. It is a very valuable piece of software and we must be able to reuse it.

https://tvl.fyi/blog/rewriting-nix

[–] [email protected] 4 points 6 months ago

Yup, there are a few efforts out there like that, I would group aux and lix in with them, as ecosystem-compatible parts.

My feeling these days is that the ecosystem is kinda screwy on a fundamental level, and I’m willing to blame the unhealthy focus on “purity” (both the word and the concept) for a good part of that. The language you use to define packages and systems doesn’t need to be lazily evaluated and purely functional; nothing needs to be, that is a lesson freely available to be learned coming out of the early 2000s.

Anyway, here I am slowly reading through the doctoral thesis, picking out the (several) grains of corn that make up the really good and solid ideas that make it a useful system; maybe a thing can be made that adds a bit of pragmatism… and then a lot of effort can be poured into that, unpragmatically.