this post was submitted on 17 May 2024
6 points (80.0% liked)

FreeAssembly

75 readers
1 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
 

...except Liam can't decide whether to be a boomer or a piss baby about it.

top 12 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 7 months ago* (last edited 7 months ago)

I don't get the upset over forking. If the fork stops releasing and dies out, no problem. If it grows and advances the flag, then that's good, right? All of the reputational risk is being taken by the forkers. Who else is being hurt, here?

100% piss baby stuff imho.

Edit: "This is systemd, but for WOKE"

[–] [email protected] 8 points 7 months ago (1 children)

This post has "everything" in the same way as the buffet of the Beau Rivage at midnight: the goods are warmed over, but the overs are good warm.

the odd sobriquet of Auxolotl

Has the pendulum swung back already? I make it to parenthood just in time for puns to fall out of favor?

Now that Dr Dolstra has gone

Dr Dolstra

This particular curmudgeon, though, feels that this particular Nix fork missed a big opportunity: to automatically generate and manage more human-readable filesystems.

The cardinal sin of Nix is apparently naming things. Since Aux exists for any other reason than fixing this, it has not atoned and can never atone.

Nix works wonders by automatically storing code in a software-generated and software-managed directory hierarchy. This has a profoundly off-putting side-effect: it eliminates a human-readable filesystem.

A specter is haunting Linux - the specter of /nix/store.

This particular jaded old hack much prefers the approach of GoboLinux.

And what is the solution? ~~FreeBSD Ports~~GoboLinux!

What Gobo offers is akin to semantic versioning, but applied to the filesystem: a semantic filesystem layout, where folder names encapsulate versioning info and are more meaningful than the old 1970s reduce-typing-effort-at-all-costs approach.

Cool, semantic versioning, that will save us.

The thing is, though, that we were all beginners once, and anything that makes Unix even more forbidding for both beginners and veterans is a problem.

The last great addition to Linux was FHS 2.3, apparently.

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

oh i dunno, "what is wrong with you people" is a reaction with something to it

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

Liam adds in the comments section

Nix fans love it with a passion I have only seen previously for horribly obsolete text editors, but the odd thing is that they mostly keep quiet about it, which TBH I find a very endearing characteristic.

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

They most certainly do not keep quiet about it!!!

-- a person who has posted about programming on Mastodon

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

While the author is being a bit of a tool, they're right about one thing: everybody who jumped the gun prior to the board announcement is now left with an ostrich-sized amount of egg on their face and no obvious path towards reconciliation other than eating a very large omelette. In particular, Jake and the Aux team don't have an obvious technical roadmap, which is a serious problem for a nixpkgs fork; also, I feel bad for Xe, who has left the community entirely and condemned themselves to pre-Nix distros. Pride leads to hubris leads to self-flagellating blogposts.

...I say, as I continue quietly working on my own reimplementation of Nix...

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

that’s my biggest frustration with Aux. they’ve actually dropped the nixpkgs fork after the board announcement, but I haven’t seen many concrete plans after that. there’s so much low hanging fruit for improvement on NixOS’s mechanisms and processes and I’d love for someone to take a swing at fixing all that — but I don’t think Aux is currently anywhere near focused enough to be it

at least we got Lix out of things, which I think is an incredibly important project to have especially after the board announcement. Nix’s new governance structure has a gigantic gap in it in the form of the Nix evaluator, and I feel strongly that’s intentional. having an independent and modernized (but compatible) Nix implementation will be better for the ecosystem as a whole.

I’d love to hear about your Nix implementation when it’s in a shareable state. I’ve got a few Nix-related projects myself that need a good home — some finished ones are waiting for things to fully settle before I decide how they’ll be released, but one project I’d like to start (but don’t know where it should go) is much better directory-local evaluation — that is, lorri/nix-direnv/use nix but with just one vastly-improved implementation in the evaluator.

[–] [email protected] 4 points 7 months ago (1 children)

Yeah, Lix is good. It's not what it claims to be, but just being a CppNix fork is enough.

So, I'm not developing in secret. My code is here, in my rpypkgs flake, and as the .packages.${system}.reguix attribute of that flake. One would probably want this Cachix cache if they're on amd64 and want to avoid building PyPy or CPython. (Upstream discussion about this bootstrap path is here.) I'll send out a more serious round of invites once the lexer, parser, compiler, and evaluator can actually handle a real-world evaluation.

For posterity: Hi! I'm linking this to you because you'd like to contribute to Regiux. Cool! You need to know RPython, a dialect of Python 2.7 used to specify interpreters. In a nutshell, RPython is statically-typed with lots of metaprogramming, somewhere around Java or Haskell. You write a Python 2.7 program, it gets imported into memory, and then the RPython toolchain compiles from memory into C, optionally generating a JIT compiler. For a gentle explanation, check out Brown et al doing Brainfuck (1, 2); if you'd like to see what high-performance RPython looks like, check out my DIVSPL interpreter or my take on Brainfuck.

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

that’s awesome, and RPython seems like a great choice for a more comprehensible foundation for a Nix evaluator! I’ll definitely be digging into this more as time permits this weekend. feel free to start a thread for this if you’d like more eyeballs on it at any point in the future!

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

condemned themselves

I don't know if I'm correctly grasping whether this bit is meant satirically.

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

Check out their recent posts; they've been spending a lot of time trying to reconstruct their NixOS experience and finding it to be more work than they imagined.

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

Oh dear, ouch, and yup.