Andreas Fuchs' Journal

submited by
Style Pass
2024-04-27 18:30:10

With the Nix project currently undergoing major turmoil, it’s good to remind ourselves that everything is transient: Every project, no matter how technically sophisticated, will eventually fade away, but its best core ideas can - and should - be identified, documented, and get to live on in other projects. So, if nix went away tomorrow, what made it “it”?

That’s it, that’s the core idea. If all else gets lost, this is what I think we should remember, and re-build in another set of tools and a different kind of community (one that cares about governance, shares the power to direct it, and does its best to remain safe for people at risk of getting hurt by bad actors).

First, let’s look at the idea of yak shaving: A low-value activity you must complete in order to get to finish a higher-value activity. Say you have just gotten a new laptop and it’s very nice and shiny - but it’s a different platform from the one you’re used to (say, it’s apple hardware and you exclusively had linux machines before). No problem, you have dotfiles somewhere! But oh no, terminals you run inside tmux doesn’t support interacting with the system clipboard, but thankfully you only need to install reattach-to-user-namespace; but you also need to change your tmux configuration; but that tool isn’t compatible with linux, so how about making your configuration into a templated thing; and oh, but what templating system to use, and how do you decide how to identify the different platforms you care about in a way that doesn’t have bootstrapping issues? And suddenly you have approximately 18 browser tabs open, but at the end of the afternoon you have finally gotten the shell configured the way you need it and you can enjoy working with that new machine!

So fixing your issue took an afternoon. Can you do it faster? Sure, with experience and practice you can get good (know your tools), identify the attack patterns of the enemy (keep up with the shifting software landscape), maybe even exploit some unintended consequences of the level map geometry (find cool interactions between tools that weren’t originally intended to interact).

Leave a Comment