4 ms·
Newcomer here. Could anyone tell if std [0] is a good way to bring more sanity into flake design, esp. in avoiding ivory towery custom approaches? Using devenv.
by rapnie 3y ago
Newcomer here. Could anyone tell if std [0] is a good way to bring more sanity into flake design, esp. in avoiding ivory towery custom approaches? Using devenv.sh is another option, but I liked emphasis on creating a common mental picture of the architecture and focus on SLDC that std provides.
[0] https://std.divnix.com https://std.divnix.com
- hamandcheese 3y agoI haven't used std, but I would like to point you at what I think is the ideal way to organize a lot of nix: readTree from the virus lounge[0]. It doesn't add kitschy terms like "Cell" and "growOn", it's just a way to standardize attribute names according to where things live in the filesystem. So in their repo, /foo/bar/baz.nix has the attribute path depot.foo.bar.baz I will say that to understand how it works you need to have a solid grasp of the nix language. But once established I think it's a pattern that noobs could learn in a very quick and superficial way. [0]: https://cs.tvl.fyi/depot/-/blob/nix/readTree/README.md https://cs.tvl.fyi/depot/-/blob/nix/readTree/README.md
- rapnie 3y agoThank you! I already bumped into the virus lounge, with their TVIX project [0] that I found quite interesting. [0] https://code.tvl.fyi/about/tvix https://code.tvl.fyi/about/tvix
- Cu3PO42 3y agoI really like this. In fact, I have an extremely similar home-grown abstraction. I might look into standardizing on this.
- OJFord 3y agoWhat on Earth is the background reading supposed to be for https://std.divnix.com/explain/why-std.html https://std.divnix.com/explain/why-std.html, a supposedly motivating page for newcomers? I've even used Nix a little bit (though early days, before flakes) and it makes absolutely no sense to me.
- rapnie 3y agoWell, I think that becomes clearer when reading comments on this HN thread. I found std after spending significant time to find out 1) wth is Nix/NixOS? 2) what would I use it for exactly? and 3) How to get going? Then on 3) I found reams of outdated or confusing docs making me doubt 1) and 2) again, as well as the frustrations of others on this. Then this std background of "We bring clarity, clear mental picture, manageable Nix projects throughout the lifecycle." appealed a lot.
- OJFord 3y agoDoes cell/cell block/target/actions terminology come from Nix then? I assumed that was std's solution (since it is under the heading Solution, and I haven't heard of it) so found the 'explanation' of it baffling. But if it comes from Nix it can be read sort of like a style guide for how to do what you're already doing with Nix? If the target audience is limited to those already highly experienced (and yet frustrated) with Nix then I guess it's fine.
- rapnie 3y agoAh, sorry I misinterpreted you before. Yes, these are std's abstractions to organize your Nix code and gradually 'grow' your solution. Rationale and explainers on these concepts are more spread about in the docs. The 'sales pitch' is another high-level txt than the one you passed on why to use std. (PS. This cell breakdown reminded me a bit of Atomic Design for front-end UI to make that easier.)