Live data from Hacker News

NixCon Live

2020.nixcon.org

41–50 of 50 posts

Re: NixCon Live

#41
post #37

> To watch the stream from VLC on your computer, run: > nix-shell --packages vlc --run "vlc https://dash.nixcon.net/dash/master.m3u8 " I thought this was pretty cool, but unfortunately, this doesn't work on macOS...

Won't really save you today, but you should be able to replace vlc with mpv; I'm currently viewing the presentations from macOS in this manner.

Thanks! This worked:

    nix-shell --packages mpv --run "mpv https://dash.nixcon.net/dash/master.m3u8"

Re: NixCon Live

#42

Earlier quoted context omitted.

True, which is absolutely sufficient for most use cases. I'm currently doing some work for ML and data science companies where full reproducibility and introspection is very much desired. So you need to run your own source cache to provide that guarantee, because you can't count on cache.nixos.org still providing the source code from a package built 4 years ago. But that's why I love the IPFS cache efforts. [1] Runni…

Software Heritage is also helpful here, and Guix is integrating with it - see e.g. https://guix.gnu.org/blog/2019/connecting-reproducible-deplo...

Nix is also integrating with the Software Heritage:

https://www.tweag.io/blog/2020-06-18-software-heritage/

Re: NixCon Live

#43

Earlier quoted context omitted.

There's a couple of challenges here with Rust. None are insurmountable, but there are just other things that are higher priority. There are 15,000 packages on Hackage, but 48,000 on crates.io. According to http://www.modulecounts.com/ hackage is getting about four new packages a day right now, and crates.io is getting 54. This means that expense is more of an issue. I don't know about Haskell, but in Rust, many proje…

If Rust does more inlining than Haskell, it does _a lot_ of inlining! Haskell doesn't monomorphise (it calls it specialise) much by default though.

FWIW, that is mostly gut feeling, I don't have good data on that. I probably should have softened that sentence. And it's not really that Haskell is missing some sort of optimization here, it's that these things all tie together: Rust tends to monomorphize a lot, which produces more code in general, including stuff to get inlined. It's one of the big challenges to get things to compile quickly; they're sort of inherently in tension with one another.

Re: NixCon Live

#44

Earlier quoted context omitted.

I'm confused with your first point? > No concept of source packages. There is only a binary cache (hydra) and the derivations in nixpkgs. NixOS _Only_ has a concept of source packages. The cache is a (sound) optimisation om top of it. just disable the binary cache and you can build all packages from source.

Nix packages don't contain any source code. The package definition describes how to fetch the source code from a source (like a Git repo or a hosted archive) and build it. The built result only contains what is necessary at runtime. A sizeable amount of packages don't even fetch source code but a prebuilt binary which is then fixed up to work with Nix. There is a source cache, but it is optional. As an example, check…

Binary packages make me sad too and I wish there were a way to mark them as such using a `meta` key.

It starts to become a bit of a grey area in some cases though. For instance - java packages. Is a .jar a binary? Probably. But so many java applications rely on pulling loads of .jars down from maven. Are we going to sit down and figure out how to build all those jars from source? It's not uncommon for there to be literally hundreds.

Re: NixCon Live

#45
Been using nix package manager on Ubuntu, so far the experience has been mixed, while the package management and nixpkgs is great but the tooling and documentation around the nix language are lacking.

It's one of those tools that are technically miles ahead of their competitors but struggle to gain traction because of beginners facing little cuts and bruises in using them.

That's why I'm interested in the Nix Modules proposal to be presented in the conference that aims to bring better usability to the language with types and docs.

Also the updated website is a lot easier to navigate now and explains the use cases of nix quite well

Re: NixCon Live

#46
post #44

Earlier quoted context omitted.

Nix packages don't contain any source code. The package definition describes how to fetch the source code from a source (like a Git repo or a hosted archive) and build it. The built result only contains what is necessary at runtime. A sizeable amount of packages don't even fetch source code but a prebuilt binary which is then fixed up to work with Nix. There is a source cache, but it is optional. As an example, check…

Binary packages make me sad too and I wish there were a way to mark them as such using a `meta` key. It starts to become a bit of a grey area in some cases though. For instance - java packages. Is a .jar a binary? Probably. But so many java applications rely on pulling loads of .jars down from maven. Are we going to sit down and figure out how to build all those jars from source? It's not uncommon for there to be lit…

I find that binary packages are quite rare for free/open source software. So avoiding proprietary software (with, e.g., allowUnfree = false) gets most of the way there.

I agree that it would be nice to tag (with meta) FOSS packages that aren't built from source, though. Every instance of that is a bug, IMO...

Re: NixCon Live

#47
post #46
post #44

Earlier quoted context omitted.

Binary packages make me sad too and I wish there were a way to mark them as such using a `meta` key. It starts to become a bit of a grey area in some cases though. For instance - java packages. Is a .jar a binary? Probably. But so many java applications rely on pulling loads of .jars down from maven. Are we going to sit down and figure out how to build all those jars from source? It's not uncommon for there to be lit…

I find that binary packages are quite rare for free/open source software. So avoiding proprietary software (with, e.g., allowUnfree = false) gets most of the way there. I agree that it would be nice to tag (with meta) FOSS packages that aren't built from source, though. Every instance of that is a bug, IMO...

> I find that binary packages are quite rare for free/open source software.

Unfortunately this isn’t the case with some languages that have their own package managers, the prime example being Java as the parent commenter mentioned. It’s near impossible to build Java applications without fetching tons of binary jars from maven that Debian just gives up on providing their own package in many cases[1]. While Nix does build Java applications from source, the dependencies are fetched from maven in binary form.

[1]: https://wiki.debian.org/Hadoop

Re: NixCon Live

#48
post #3

I hope Nix takes off for one reason. I don't want people to do same builds again and again especially for Rust it's painful. I want to install binaries with cargo instead of doing the same build again and again. Similar to https://cachix.org I don't honestly know why that isn't the case yet, perhaps storing binaries takes too much storage that Mozilla doesn't have money for. Or perhaps it can't do guarantees like the…

I don't need nix for C and C++, and several other compiled languages.

What is missing is cargo support for native libraries.

Re: NixCon Live

#49
post #48
post #3

I hope Nix takes off for one reason. I don't want people to do same builds again and again especially for Rust it's painful. I want to install binaries with cargo instead of doing the same build again and again. Similar to https://cachix.org I don't honestly know why that isn't the case yet, perhaps storing binaries takes too much storage that Mozilla doesn't have money for. Or perhaps it can't do guarantees like the…

I don't need nix for C and C++, and several other compiled languages. What is missing is cargo support for native libraries.

I find Nix incredibly useful for C and C++ development, though. It allows me to get a working development environment (including completion support) for any major open source C/C++ project by simply placing a default.nix or shell.nix file with the following content and running nix-shell:

    (import  {}).your-favorite-project
Post reply on HN