For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | more biggestlou's commentsregister

fh is the CLI tool for FlakeHub. It's been around almost as long as FlakeHub itself. It's pretty standard fare, not really an abstraction per se.


‘Standard’ if you live in the flakehub ecosystem, which the vast majority of Nix users don’t.


Standard in the sense of "a non-magical CLI tool that wraps a platform's HTTP API," not standard in the sense of "used by a majority of users."


Out of curiosity, do you object to the existence of services like Cachix, Nixbuild, and Garnix, which also do not have open source backends?


Is that a fair comparison?

FTA:

> Even if you can (ideally) pull a path from a cache instead of building it, you still have to pay Nix’s evaluation tax in determining the derivation’s store path in the first place. [...] Fortunately, FlakeHub now offers an elegant solution to this problem: resolved store paths.

If I may paraphrase:

> [fundamental problem with Nix] -> [proprietary solution].

Cachix and nixbuild feel like they're solving something at a different layer. They fit into the existing Nix ecosystem (binary cache, builders) and just provide a hosted version of an existing concept. They don't change anything fundamental about Nix.

Maybe a better comparison would be devenv?


I don't object to the product, I object to DetSys moving CppNix into more of an de-facto open core product[1]. This is just a symptom. DetSys contributes the majority of the code that actually gets prioritized and merged (because the maintainer is a DetSys employee), but asking them to build better caching mechanisms into CppNix (which, to be clear, I never asked, that's just Luc's strawman of me) instead of their proprietary product is suddenly "asking Eelco to work for free".

[1]: https://discourse.nixos.org/t/announcing-determinate-nix/547...


If their founder was the person with principal control over what goes into CppNix, yes.


Is there a Nix-based company co-founded by Eelco Dolstra to which you wouldn't object?


Sure, but you seem to sidestep the primary accusation that Nix itself got neglected in favor of DetSys. Which is most certainly true for at least the installer.


I don't get this argument. It is clear that if it wasn't for DetSys making a better installer, we wouldn't have one, period.

And now there is some movement from NixOS to bring the new installer as a replacement of the old one: https://github.com/NixOS/experimental-nix-installer. It doesn't seem that Eelco or anyone in CppNix is actively trying to sabotage the improvement in the installer, but they simple don't care enough to improve the situation (that is fair enough, I assume most in the core team use NixOS).


The expectation seems to be that Eelco work on Nix full time for free lest he be accused of neglect. Is there a way for Eelco to make money that you would approve of?


I would've replied to you but HN's intransparent timeout mechanism hit me.

I'd invite everyone to wonder why Lix exists (and is better enough to be used in some parts of Nix's CI now), why CppNix stable was stuck 6 versions behind on nixpkgs until half a year ago, and what kept Lix contributors from working on CppNix instead. Tip: "I want free labor from Eelco" is not the answer.


Nobody said this. I suggest that you not escalate the discussion in this direction. You're obviously biased given involvement with detsys, nobody expects you to think differently. This crass dismissal off the issue with a strawman isn't right.


Blog post author here! Please feel free to ask me any questions directly in this forum :)


Can the evaluation tax be quantified in some way? In other words, how big is the problem that this solves?


Unfortunately, it's really hard to generalize. If the evaluation involves Nixpkgs, for example, Nix needs to copy Nixpkgs into the Nix store, which is many MB. And of course this needs to happen for all flake inputs. I've seen this evaluation take a few seconds and I've seen it take several minutes, but in general the more flake inputs the longer you can expect it to take.


> If the evaluation involves Nixpkgs, for example, Nix needs to copy Nixpkgs into the Nix store, which is many MB.

Only if you use flakes (and this behavior is a good reason to not use them).


Using flakes or not, any store path evaluation involving Nixpkgs is going to be computationally intensive, potentially too intensive for a memory-constrained device.


(DetSys Cofounder here) I've had Raspberry Pi's give up their last ghostly breath evaluating NixOS.


That sounds like a recipe for a social media platform that never has enough people on it to be even remotely interesting.


From my understanding of messing with Mastodon a bit, users can "subscribe" to other servers in the 'fediverse'. The proposed personal instance can act as a "Home" server and is a part of your handle in a way. It almost functions like a sub identifier. You can browse and interact all throughout the fediverse on a number of topics, while linking people back to the server you came from during engagement.


As a co-author of the book of the same name, I’m disappointed that you didn’t see fit to provide any kind of attribution


It was not intentional. I've corrected this oversight, and attribution is now provided - my apologies.


Ah! You asked about flakes as well. Just saw that. Basically flakes are a construct in Nix that enable you to (a) ensure that your Nix code is always "pinned" to specific revisions of your inputs (for example Nixpkgs but other inputs as well) and (b) to provide a simple and well understood system for sharing Nix code. So this command, for example, enables me to build Tailscale:

nix build github:tailscale/tailscale

I point Nix at an "address" and it knows which set of Nix build instructions to use. Basically that Tailscale repo has a flake.nix in the root that Nix looks at, specifically at the flake outputs. From there, it sees that there is an attribute called "packages" and then it sees that there's a package for the current system called "default," and then it builds that. So Nix expressions have universal "addresses" (they also did before flakes but flakes provide a standard structure for outputs and built-in pinning via flake.lock files).


you lost me at the first sentence. all i understood is that it is a thingamajig that I can manipulate to package the stuff into window Puerto Rico the fox flies over area 54. ok.


I've been meaning to write something pithy on this and this is a great spur to action. Basically Nix is something you use to build software reproducibly, that is, where you can take the same inputs and get the exact same bytes on disk every time you build it. The "software" here could be something simple-ish like a CLI tool or a UNIX utility, and it could be as complex as an entire functioning Linux system, and it could be something that you usually build using other tools, like Docker or Podman containers. Nix can do all of this. I'd say that the things people most often use Nix for are:

1. Project-specific development environments. You want everyone on your team to have the exact same version of Python, jq, Terraform, Cargo, and Bun in a specific project? Nix can do that. 2. Home environments. You want to replace your dotfiles and Homebrew and apt-get with something declarative that you have an actual language for? Nix can do that.

So yeah, development environments, home environments, whole Linux systems, OCI containers, standard packages (like CLI tools), things like VS Code extension, Neovim plugins... all of this stuff can be built using Nix. Pretty powerful stuff.


now that makes a lot of sense. in fact id like to have both! does this work in wsl?


Yes!

1. Enable systemd: https://devblogs.microsoft.com/commandline/systemd-support-i...

2. Install as normal:

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --determinate

3. https://zero-to-nix.com/ :)


I’m still loooking for intelligent life on this planet!


Can't you pass a mirror test and see yourself in the mirror? It is pretty good evidence for me, that intelligent life exists on this planet.


I'm still looking for intelligent life on this planet!


No


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You