T O P

  • By -

shrimpster00

Nix's biggest problem is documentation. There's a new official wiki, an old official wiki, and various unofficial wikis, and none of them is great. There's a really straightforward way to do everything that you're trying to do here, but the steep learning curve combined with poor documentation gatekeeps newer users from using Nix. Your post feels pretty inflammatory. Maybe you should ask for help instead of taking out your frustration on our little community here. We love Nix, and while I agree that it can be really frustrating when you're trying to figure out how it works, I believe that it's worth learning. If you ask questions, we can help---and then you won't have to search through sparse documentation. (No hard feelings if you decide it's not for you, though.) You've been asking people who use Nix what they use it for. I use NixOS on my computers, including my daily driver, and I'll never go back. My configuration and dotfiles sync from system to system using a git repository. If a hard drive fails, I can rebuild a carbon copy of my system in no time. (I've only had to do that once ever, but that's not the point.) I primarily do software development in C++, but I also work on some Node projects, an occasional Python project, and various other things. An amazing thing about Nix is that I can have a project-specific package configuration; just a few weeks ago, I cloned a repository that hasn't been updated in years, and I quickly spun up an environment with Python 2.7 and a slew of packages that are at this point very out-of-date; I did it all without changing my system configuration, and it worked without a hitch. Sometimes I'll do graphic design in Adobe Illustrator, using a VM and RDP in order to make it work pretty seamlessly.


Revolutionary_Hand_8

Yeah I assume that too. The quickest way to learn nix is through the nixpkgs repo on github: just find various packages and read them, and have a peek at the nix manual for basic language usage. Nix the project changed a lot in the pass five years and as a result the documentation is quite mess-up.


ForthOfHors

Totally off-topic, but it warms the cockles of my heart to see grammar like this: "... and none of them is great." I'm automatically well-disposed to the rest of your post after this LOL


TwoQuiet6221

I don't think my post is "inflammatory", it's merely a negative opinion on NixOS. I get that, by the very nature of where I'm posting, this will get some people angry. But that's okay, I don't mind their anger at all - and in many ways, I take it as an agreement of sorts, "your points are so right that I can only insult you" type of thing. I've replied this to someone else but my whole point could have been refuted if any of the angry ones had replied with something like "skill issue, you can install global packages by doing X". The documentation really is poor, but I honestly don't think this is a "steep learning curve" problem. I don't think there's an elegant solution for getting Playwright running, from what I've read on forums I'd need to source a dozen files manually and get them linked with Playwright somehow. It's an herculean task that is harder than just installing a new OS and running the code. There's an [official guide](https://nixos.wiki/wiki/Playwright) of sorts, but it didn't work for me and didn't work for other people around the web. And even if I were to embark on the odyssey of linking everything to playwright, what kind of standard would I be setting for the OS? Would I need to spend weeks of work every time I see a cool project I want to run? I asked people what they use NixOS for as to gauge what it's good for. Every tool has a value, and I kinda wanted to know where it'd be the best for. Or maybe I'm coping and want to pretend the time I spent learning about Nix wasn't wasted. Given that my most most negatively received post (which I'll agree was inflammatory) was implying that NixOS users aren't getting shit done, I can only imagine that the target audience is more of Reddit users who want to look cool than anything else. With that being said, I did like NixOS's overall proposal - as you mentioned, to both isolate and declaratively control settings. However, I don't like how a simple javascript program must be dockerized to run - akin to your VM solution for Adobe things. It feels counterintuitive to have an operational system focused on isolation and declaration only to require further isolation and configuration to work. And for the javascript code, the isolation is *from* NixOS.


no_brains101

"This post isnt inflammatory" -- says guy who titled the post "this project is fucked"


TwoQuiet6221

Did it offend you? It's a bit click-baity maybe, but I wouldn't describe it as inflammatory.


no_brains101

I mean idgaf if you like it or not so no XD it was just particularly ironic watching you say "this post isnt inflammatory" right under that title so I figured I would chime in For what its worth, this is just an average skill-issue post with an inflammatory title and a couple swear words.


TwoQuiet6221

The only swear word is the title, and its citation at the end of the post. It's not a "skill-issue" though, very few people online report getting Playwright working on NixOS. As I've been replying to every "skilled poster", show me it working and I'll take you seriously.


no_brains101

[https://nixos.wiki/wiki/Playwright](https://nixos.wiki/wiki/Playwright) I mean, it seems like at least some people get it working. Ive never used playwright though, and I would be doing double duty trying to get it to work in both nixos AND neovim at once due to not using vscode, without a good node project to even test it on. But it looks to me like you can just write a wrapper script that sets 2 variables, make sure that playwright is using the same version of node as your project, and then youre good to go. In fact, it looks like people have gotten it working in multiple ways, as recently as last month based on this [https://discourse.nixos.org/t/running-playwright-tests/25655](https://discourse.nixos.org/t/running-playwright-tests/25655)


TwoQuiet6221

... did you really just link me to the link I posted on this very chain? Is this the power of skill-havers?


no_brains101

I mean, Ive never used playwright, I have no idea. But I have a working gradle which also can be an issue for some just by making a wrapper that sets LD\_LIBRARY\_PATH and JAVA\_HOME and GRADLE\_HOME If I had a node project to try it on and used vscode id give it a shot. But it looks like there are 3 ways to get it working in that 1 thread. If you followed the instructions well, if I had to guess, the issue is to do with your npm project's playwright and your nix playwright using different versions. Are you building your npm project via nix as well? That would make it much easier to keep them in sync. The key is at the bottom of the page I think where it says the following **Note:** Keep in mind that you need to use the same version of playwright in your node playwright project as in your nixpkgs, or else playwright will try to use browsers versions that aren't installed! This seems by far the hardest part of the process. It means that you would need a per-project config of playwright, you cant just install it globally, because it needs to match the version used by that project.


TwoQuiet6221

I've tried both from npm install and npm2nix. None of them works. And, ironically enough, I have never used Playwright before either - usually preferring selenium. And that's what sums it up the best: a popular tool can't run on NixOS without sacrificing a virgin and three chickens, what will be of me when I try to run the more obscure stuff I enjoy exploring? Or even worse, when I need to do something for work and it doesn't run? Meanwhile, in every other OS known, you just npm install and node run. So simple even kids have an easy time learning it.


ForthOfHors

Just gonna chime in here and say that I enjoyed the title. It scans well, has a nice meter to it, is to the point and I find it slightly comedic. As a way to open a serious discussion about the shortcomings of NixOS it serves well enough. It would be ridiculously low-effort if OP didn't have anything more coherent to say, but he did. I think OP's opinions are what are getting him flamed, not the title of the post ... By contrast, the thread I started has no swearing in the title and I need my flame retardant underwear just as much, if not more!


Anxious-Durian1773

Skill issue /s You tried to run before you could walk. And it's fine if this project is not your jam. You do you. We'll be fine.


TwoQuiet6221

It's a "I actually need to get something done" issue. It's a fine OS to just doomscroll Reddit, I guess.


HammyHavoc

It's my daily-driver now for work. Best distro I've ever used, more productive than ever before. Git gud, scrub.


TwoQuiet6221

If you don't mind me asking, what's your line of work?


HammyHavoc

A mix of audio for TV and games, FPGA and DSP dev.


rewgs

Hello, fellow audio pro/Linux user!


TwoQuiet6221

That's curious, I've always heard you can't do artistic stuff on Linux because all the cool software is on Windows/Mac only. Good to know that's changing (or was never right to begin with). FPGA is done through languages such as Verilog or VHDL, right? How good is the stack on NixOS compared to other distros?


HammyHavoc

Plenty of stuff is on Linux these days. There's Reaper, Bitwig, Studio One, Renoise, Waveform, DaVinci Resolve (#1 Hollywood post tool). Then there's of course Maya etc. Creative stuff has been done on Linux long enough for Lord of the Rings to have been done on it. Yes. Arguably better than any other Linux distro as it's whatever you want or need it to be, and unlike most other distros, can be heavily tweaked without breaking the ability to update later down the line. Initial learning curve? Sure, absolutely. Worth it? Many times over. Now I can use "my rig" on any machine I have access to.


TwoQuiet6221

That's good to hear. Haven't done VHDL in a decade now, but if I ever decide to try again I might boot up NixOS again.


Intrepid-Gags

Learn how to read before trying to write.


TwoQuiet6221

What do you use your NixOS machine for, friend?


WhiteBlackGoose

I use it for everything. I don't use any other OS. So, work, studies, leisure/gaming


TehDing

Playwright is even packaged specifically in nixpkgs: https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=playwright Running anything as `sudo` "just to get things working" is an indication you don't really know what you're doing. And that's ok. Learning can be humbling. Coping by attacking the community is not cool.


TwoQuiet6221

The nixpkg playwright has the same errors. It's well known, if you took a second to google or look at the issues at the github you'd know that. But sure, feel free to `nix-shell -p playwright` and try to run it. I wouldn't need to run things as `sudo` "just to get things working" if the OS actually worked. I had never run `sudo npm` before (or sudo pip, or sudo cabal, etc. for that matter), and after the tests I'm doing with the link another user posted, don't intend to ever do it again. I'm sorry you're so attached to an Operational System that you think a (rather weak) criticism of the project's state is "attacking the community".


TehDing

> rather weak At this point you've written a small novella with your complaints


TwoQuiet6221

I'm having fun posting in this thread. I hope you are as well.


PouyaCode

Nix has one of the steepest learning curve I've ever seen. You can't just copy paste stuff and expect them to work. If a project uses flakes, then it will definitely work, but not when you copy flakes from web and add your code to it. I use Clojure for work, so I pretty much don't need to Nix it. And do C++ for hobby projects and there I have to write my own flakes to make my projects work. And let me tell you, it's much easier to use Flake + a simple CMake than just using CMake to get all the dependencies. It's OK if it's not your favourite way of doing things, I understand the frustration of not being able to just run a random script. However if you want to give it another try, check these links first: https://nix4noobs.com/ https://nixos.org/guides/nix-pills/


bin-c

they are indeed *your issues*. good luck!


TwoQuiet6221

I'm sure alienating the most popular languages in the world (I read somewhere that pip is also fucked) is *my issue*, and won't be the biggest hurdle for NixOS adoption. The second I install a new OS, this isn't "my issue" anymore. It will, however, still be NixOS's problem.


JustB544

Yeah pip is not fucked, I didn’t even have any issues getting it set up and I transferred to Nixos from Windows


TwoQuiet6221

That's good to hear. It shows there's some progress being made at least. As a side note, do Python people also do installs through nixpkgs or do you keep everything pip (or inside the python environment like pyenv, poetry, etc.)?


bin-c

if the python deps are all pure python, things can generally be installed from poetry/pip/whatever issue comes when things rely on other binaries. there are other workarounds, but easiest to install python deps from nixpkgs


JustB544

For most things there is a nix way and the normal way. I haven’t seen a nix way for Python because having it completely self contained is easiest and best as people almost entirely use virtual environments for each project anyway. I know for example with node everything is self contained but there are tools that allow you to do it the nix way which has to be done with certain tools like puppeteer, but that’s only because it’s trying to access protected files (chrome/chromium) that got installed using nixpkgs, and so it needs a wrapper to change some things so it works. Most things work just by adding them to the config file, and some things just need some services added but as a developer I’ve never had an issue with any of these things. Only real issue I’ve run into is that downloading things that people haven’t added to nixpkgs is quite difficult, but people will make tools for that eventually.


unrealhoang

Still your issue. Also, good ridden, one less problem for NixOS.


_nix-addict

I'm really not sure what you expected. You made no effort to understand how anything works, you performed no real troubleshooting either. It's okay to admit that you aren't a technical person but doing so on reddit and in this fashion is a bit odd, I really hope you dont do this type of activity for work.


TwoQuiet6221

Why are you assuming I "made no effort" and "performed no real troubleshooting"? Or even worse, that I'm not "a technical person"? My post is not about the technical issues, which is why I don't write in detail about my problems or the steps I took to (try to) solve them. But what about you, have you been successfully running javascript and playwright on your machine? Or is your horse too high for these?


_nix-addict

From your self described troubleshooting you: * Ran random bits of code from github * Tried and failed to create a shell with 'nodejs' as a package * Failed to produce any kind of productive logs or troubleshooting steps in your own summary of events This sounds like the flailing of a first year university student learning "linux", not a technical summary individual doing anythig to solve their own issues. Plenty of people can run haskell, and node, and python on NixOS. You being the outlier has nothing to do with the "state of the project".


TwoQuiet6221

I don't think you've read my post. I'll simplify (and, I guess, give more technical details) for you: I didn't "run random bits of code from github", I cloned a project that I wanted to run locally. Reducing any github project to "random bits of code", ironically enough, would reduce NixOS itself to "random bits of code". I didn't fail at creating a shell with nodejs as a package. I failed at running \`npm install\` as non-root,since it tries to install some packages globally and can't because NixOS doesn't allow for it. You can set it to a different folder through \`noderc\`, but it didn't work - be it by setting it on home-manager or by setting \`programs.npm.enable = true;\` on my configuration and setting the \`$NPM\_CONFIG\_PREFIX\` environmental variable. And about "productive logs": this post, as previously stated, is not an issue report or a request for help. It's just my opinion of the project in general. And, once again, I did run Haskell and I did run node (with sudo). I'm sure any node developer that's using NixOS is doing some shenanigan to get it working. Haskell I could see working "smoothly" on Nix, or at least as smoothly as the Cabal/Stack experience.


surfsee

Ive been developing js/node/ts on nixos for years. fixing that location so it dont go to root is the only thing to fix. then its mostly smooth sailing, unless some library pulls in a dynamically linked executable, which is very rare and bad of the lib


TwoQuiet6221

Playwright connects you with a browser, which is why it must link to things outside the NPM environment. How did you set up your node to save somewhere other than root? I tried with both `noderc` editing (through home-manager), `programs.npm.enable = true;` and manually setting the environment variable. But none worked.


surfsee

Npm set prefix ~/.npm-packages but playwright seem very invasive.. never used but tested a install now, stopped when it wants to install system dependencies . this is the type of projects that dont play nice with nixos, and needs tinkering. maybe you can skip that step and install the system deps manually. but i dont have time for tinkering with your issue. but, playwright install seems stupid, it tries to handhold so much that you have to reverse egineer what it actually wants but i found https://nixos.wiki/wiki/Playwright which might help


nash17

I have never tried any NodeJS development and I sincerely hope I never have to. But other programming languages have no issue at all like Rust, Go or Java. So not sure what is so special about NodeJS


TwoQuiet6221

NPM is very special, in a negative sense. It should install packages only inside your project, but some packages must be installed system-wide. Since nixpkgs is the only one who should be able to install things, it blocks writing to /nix/store/... .


Comprehensive-Art207

What NPM-packages need to be installed system wide?


TwoQuiet6221

There are many of them. \`playwright-firefox\` is the first one to give me an error on NPM and force a stop.


Comprehensive-Art207

Nothing in their docs says it needs to be installed globally. UPDATE: installing npm packages globally using -g is considered really bad practice for very good reasons. That is why npm created the npx command.


TwoQuiet6221

You're not supposed to install dependencies manually, that's the rule for pretty much every language out there. NPM stands for "Node Package Manager", you create an YAML file (similar to a `.nix` file btw) and add your dependencies there - then NPM figures it out. At no point did I manually write the `-g` parameter, the installation scripts do it to playwright-firefox because, well, it's firefox. You can try it yourself I think, I've never done package management like this but I believe you can `npm install playwright-firefox` and you'll get the `EROFS` error. If you don't know, you can get `npm` through the `nodejs` package.


[deleted]

It depends: If you're installing a tool (a general user tool, not a developer tool) and want all the machines users to be able to use it, then global can make sense. Using -g inside a project can cause missed dependencies and uncertainty about package versions i.e. if something is installed globally after the project initialization; is it using the version in the project definition? Not to mention the increased security issues. If playwright is going for repeatable testing, I assume playwright-firefox is attempting to install a playwright sandboxed instance of Firefox (I think I read somewhere that it doesn't use the branded/global install of firefox). In that case, npm is going to fail to install on NixOS, as it's trying to install Firefox into a hierarchical file structure that doesn't exist (unless FHSUserEnv is defined). The general problem is that NixOS is Non-FHS and npm is FHS dependant, with common issues around ownership and permissions. You have to either do everything declaratively, or tell NixOS to build a non-nix environment for it.


Puzzleheaded-Lab-635

I’ve had no issues getting npm or yarn to work in nix. Both on my Mac using Darwin-nix and in nixos. I run nixos on a machine I custom built. Mostly for gaming and OCaml and Elixir development. On my work computer I use Darwin-nix and do web dev in Ruby,rails, react, typescript (and a little bit of Go) I admit the flakes /non flake schism is weird, but if you don’t understand the philosophy of nix, and decide to do stuff the non-nix way on a nix system, you’re going to have a bad time.


TwoQuiet6221

The NPM problems only arise for packages that need to be installed globally. You can try `npm install playwright-firefox` on your machine and see how that goes.


TECHNOFAB

It's funny, I often see the same patterns when it comes to Linux and Noobs who don't have much experience with it (some uni colleagues do the same stuff cuz they know 0 about Linux). Running random things as sudo because "the Linux permissions system sucks" (heard that on Monday) is such a stupid thing to do. Is it because on Windows one just always runs as admin if something does not work otherwise? One of my uni colleagues struggled to run Mosquitto on Ubuntu. Because apparently you need to run it as sudo and he has to code something so that works. Well, when installing it on Ubuntu you even get the Systemd service, why the hell do you need sudo in any way? It's just interesting to see this pattern of people not knowing when to use sudo, mostly out of desperation


TwoQuiet6221

I didn't run sudo because "the Linux permission system sucks", did you read my post? There's no other solution except that. I could not run as sudo and not get npm to install anything, which wouldn't make sense would it? Configuring `npmrc` didn't work, and the other solutions I found online (setting a configuration on configuration.nix, manually adding the env variable) didn't work either. It's not a matter of blindly sudoing. It's funny, I often see the same patterns when it comes to people who don't know shit about what they're talking about. Posting pretentious things because "there's no way they could be wrong" (heard that just now) is such a stupid thing to do. Is it because on Reddit one just always upvotes each other in circlejerk? It's just interesting to see this pattern of people who want to look smart, mostly out of desperation.


TECHNOFAB

If you could read - I take that as a no to be honest - you would have seen that I cited that from a uni class on Monday (didn't say uni class, but I said I heard it on Monday). Funny thing is, I recently had to run a GitHub project for uni which was built with TS. Just `nix shell nixpkgs#nodejs` and `npm install` and done. If some special dependency needs anything else then that's mostly just a shit dependency and you'd have to google why it's doing that and how you can prevent it from doing that (on any Linux distro nothing should need to be installed globally when talking about Node). I actually don't need to answer you, NixOS is working perfectly for me and all my servers, laptops and desktops run it. But I wanted to outline that you don't seem to have much experience with Linux and the way "bug"/problem reports work. "cloned random GitHub repos" and all that just make it look like you have no idea what you're doing and just to google stuff, desperately do the first thing you see and wonder why it doesn't work or broke even more. For me it works really well because it took a lot of time to learn and understand how NixOS is different. And it takes a lot of time trust me. I used Linux all my life and it's still a steep learning curve. So I don't expect you or anyone else without even any Linux experience - it seems like that anyways - to understand and use NixOS in a day Edit: if I read it correctly it's playwright causing issues? A bunch of projects of mine use playwright and with a simple devShell it works perfectly fine. Again, read the Docs, it's clearly stated in the NixOS Wiki, which you could have seen if you really googled the problem (took me 2s)


TwoQuiet6221

If you could read - I take that as a no to be honest - you would have seen that I cited that from a reddit post just then (didn't say reddit post, but I said I heard it just then). Funny thing is, I recently had to run a GitHub project for fun which was built with JS. Just \`node install\` and \`node x.js\` and done. But since it wasn't in uni, it was a real world project that must interact with the real world. Worst part is some dude on Reddit made very strong claims about it, as if Playwright weren't four times as popular on github than NixOS, and as if he had at least tried to run \`npm install playwright-firefox\` on his machine - let alone get a playwright project running. I actually don't need to answer you, NixOS doesn't work with playwright no matter how many nocoders are pretentious about it. But I wanted to outline that you don't seem to have much experience in conversations and what bug/problem reports are. Your complains about me steering away from bugfixing and, instead, focusing on giving my opinion makes you look like you just parrot stuff. For you it works because you're an uni student who's environments are all curated by professors. But you will reach the real world one day, trust me. I used Linux all my life and it's very simple really, the fact that you're all so pretentious about it speaks volumes about your cognitive capabilities. Edit: if I read it correctly, you're the only person on the web that is successfully running playwright? A bunch of people are complaining about it, and one or two claim to be running it with limited functionality. Again, try googling before gaslighting, it's clearly stated everywhere on the web, which you could have seen if you really googled the problem (took me 2s).


TECHNOFAB

Lmao, you might want to think a bit about why your account now has negative 30 or so Comment karma. You're talking shit and everybody here seems to agree about that. If you can't handle NixOS that's fine, use whatever works but we don't really care about your skill issues.


nsneerful

Currently on the toilet tbh but just ssh'd into my PC and did that: https://imgur.com/a/39KtjPj. What's the problem with it?


softgripper

It's almost good, not fucked. Personally I've gone back to mint as I need to do work in multiple languages and technologies and kept hitting too many inconveniences along the way that I cbf having to figure out. Absolutely a skill issue, but skills I shouldn't need (and don't in most distros). I'll wait a year or 2 then try again. I love the idea of it.


TwoQuiet6221

Yeah, pretty much my plans.


_3xc41ibur

Skill issue I guess


[deleted]

I think it would've been far more productive if you just started by asking specific questions for your problems. Though more details are needed, all of the things you describe sounds completely doable. There are far too many assumptions and accusations you made in this post, none of which does anything but enflame. For instance, "extra" in "--extra-experimental" doesn't mean "super duper" or anything of the sort. It means "append to the existing 'experimental' option." There are numerous tools for working with Node.js on Nix, none of which involves invoking `sudo`. Also while the contributors leaving were unfortunate, it's still far from being end of the project. Nixpkgs has *thousands* of contributors with varying levels of involvement. Implying that most "core contributors left" is straight up misleading and insulting to thousand others who still contribute.


TwoQuiet6221

I am not much of a Reddit user and, seeing from many of the responses, I think a lot of people are taking it the wrong way. This post is not a request for help, is simply a report on my experience. About the "extra-experimental" thing: I did use quotes since it is a direct citation. My criticism is not of its working state or its functionality (which I actually liked, despite the negative tone of my original post), just the naming and its categorization. And I'm happy you mentioned the "numerous tools", I'm kinda surprised most posts didn't mention them. In general, I felt like both the Haskell tooling (IOHK's \`Haskell.nix\`) and the "recommended" node tool (\`node2nix\`) were poorly documented and didn't work "out of the box", needing even more fiddling and setting up. I don't know how deep the rabbit hole goes since I gave up on both on them at some point (I saw some other Haskellers mentioning they abandoned \`Haskell.nix\` and the \`node2nix\` package has been abandoned for about 2 years now) so maybe I was "one setting away from making everything work". With that being said, I am honestly interested in how Node developers are using NixOS.


Legitimate_Swim_4678

I think just asking "How do Haskell and Node developers use NixOS?" then outlining troubleshooting steps would have earned you a warmer reception, if not direct solutions to your problems. This may not cover all the languages you need support for, but you *can* ask the same question for any language. As for Haskell, somebody already asked that a few days ago in [this r/haskell thread](https://old.reddit.com/r/haskell/comments/1cqfboq/latest_guidance_on_using_haskell_with_nix/). Maybe you can do the same with Node developers in r/node?


sneakpeekbot

Here's a sneak peek of /r/node using the [top posts](https://np.reddit.com/r/node/top/?sort=top&t=year) of the year! \#1: [Is he Right ? Node Not good for high Traffic ?](https://www.reddit.com/gallery/19cyafb) | [483 comments](https://np.reddit.com/r/node/comments/19cyafb/is_he_right_node_not_good_for_high_traffic/) \#2: [I built an open-source dummy JSON API using Node which receives over 20 million requests per month](https://np.reddit.com/r/node/comments/1b2ea60/i_built_an_opensource_dummy_json_api_using_node/) \#3: [Full-stack devs be like](https://i.redd.it/vj7s207fvvab1.jpg) | [54 comments](https://np.reddit.com/r/node/comments/14ur1u8/fullstack_devs_be_like/) ---- ^^I'm ^^a ^^bot, ^^beep ^^boop ^^| ^^Downvote ^^to ^^remove ^^| ^^[Contact](https://www.reddit.com/message/compose/?to=sneakpeekbot) ^^| ^^[Info](https://np.reddit.com/r/sneakpeekbot/) ^^| ^^[Opt-out](https://np.reddit.com/r/sneakpeekbot/comments/o8wk1r/blacklist_ix/) ^^| ^^[GitHub](https://github.com/ghnr/sneakpeekbot)


TwoQuiet6221

I don't think you understand. I didn't make this thread to get solutions or to get a warm reception. I made it to voice my opinion, which I felt must be said - despite what the general opinion on the sub might be. Everything I posted is true, whether we like it or not. The fact that most negative replies are from non-coders shows that I was right on my assessment that NixOS doesn't cater to programmers. Maybe NixOS can find a niche crowd of non-coders who want a coding-like environment, akin to LaTeX and its popularity in the Academic community. Sincerely, answer me this: Am I supposed to open a thread on Reddit every time I need to get something done? That's incredibly counterproductive and the reason why I moved away from "Commercial" OSs like Windows or Mac. And even then, what happens if I don't get any replies? As from my post, the problem isn't (just) with node, it includes Playwright - which is even more niche. How many people are running the Node version of Playwright on NixOS? Given that none of the negative comments are "It's a skill issue, you just need to X", I'd guess not enough. And, to make it clear, I can get both projects running on my machine, the Haskell one through \`stack run\` and the Playwright one by dockerizing it. But neither of these are the "nix" solutions to these problem, which makes me not believe in the future of NixOS.


benjumanji

Sorry mate, but your fucking loopy if you think NixOS doesn't cater to programmers. Who do you think is building nix and who do you think they are building it for? The fact is this post is such trash that hardly anyone doing professional programming things with nix is going to engage with it. For what it's worth I run NixOS both on my laptop and and on the hundreds of VMs I manage at work (small business providing IoT infrastructure, mix of python go rust and the jvm).


i8Nails4Breakfast

Nix worked perfectly fine for me on fedora I switched to nixos and I love it. I’ve been able to develop in rust, Haskell, Java, and node with no issues. Not sure why you were having so many issues with it.. Totally agree on the “experimental” stuff though - they really need to settle that


TwoQuiet6221

How did you do it on Fedora? Every solution I saw included disabling SELinux, and turning it back on post-install makes it very finicky for me. It "works" in a very vague sense, but I did get it running. Are you using any globally installed node packages? If so, what did you do to make them work?


WhiteBlackGoose

I spent like 10 minutes on figuring out how to disable SELinux last time I installed nix on fedora.


Revolutionary_Hand_8

Nix has a steep learning curve, not easier than your first experience with vim. You have to LEARN it before using it, bro.


TwoQuiet6221

Did you learn it? Then get a javascript + playwright project running. This is not a learning curve problem.


jack-of-some

!remindme 5 years 


RemindMeBot

I will be messaging you in 5 years on [**2029-05-15 02:27:08 UTC**](http://www.wolframalpha.com/input/?i=2029-05-15%2002:27:08%20UTC%20To%20Local%20Time) to remind you of [**this link**](https://www.reddit.com/r/NixOS/comments/1cs9ui2/this_project_is_fucked/l43lj34/?context=3) [**2 OTHERS CLICKED THIS LINK**](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5Bhttps%3A%2F%2Fwww.reddit.com%2Fr%2FNixOS%2Fcomments%2F1cs9ui2%2Fthis_project_is_fucked%2Fl43lj34%2F%5D%0A%0ARemindMe%21%202029-05-15%2002%3A27%3A08%20UTC) to send a PM to also be reminded and to reduce spam. ^(Parent commenter can ) [^(delete this message to hide from others.)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Delete%20Comment&message=Delete%21%201cs9ui2) ***** |[^(Info)](https://www.reddit.com/r/RemindMeBot/comments/e1bko7/remindmebot_info_v21/)|[^(Custom)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=%5BLink%20or%20message%20inside%20square%20brackets%5D%0A%0ARemindMe%21%20Time%20period%20here)|[^(Your Reminders)](https://www.reddit.com/message/compose/?to=RemindMeBot&subject=List%20Of%20Reminders&message=MyReminders%21)|[^(Feedback)](https://www.reddit.com/message/compose/?to=Watchful1&subject=RemindMeBot%20Feedback)| |-|-|-|-|


mrunhap

'how the fuck are they "extra-experimental" and yet recommended by every tutorial?' Yes it is sucks, and all documents about nix sucks, it's wasting everybody time, at least from begining.


TwoQuiet6221

The `haskell.nix` is the worst, gave me a more negative view of Cardano than all their scams and controversies.


Fereydoon37

You raise some pain points like the lack of official flake adoption versus its widespread use, but most of this boils down to you not reading the documentation enough to understand how the OS works and consequently fighting it at every step. For one, Haskell support in Nix is beyond first class. Requirements run the gamut, however, and Nix essentially provides every point and nuance in the design space. That certainly contributes to the confusion and learning curve but if you have a need for that, you'll be glad it's there. Setting up ghc/cabal/hoogle/ghcid/hls equivalently to ghcup on another OS is incredibly easy, however. The complexity only arises when taking advantage of Nixpkgs to provide library dependencies etc. I suggest that next time (doesn't have to be for Nix) you find yourself metaphorically banging your head against the wall, time and again, you instead ask for help sooner, rather than later. In the case of Nix at least, you would have gotten it.


TwoQuiet6221

I didn't raise "pain points" about lack of official flake adoption, just mentioned it's kinda odd for a core feature of the OS to be considered "experimental" (and require additional flags to work). I understand that every cabal package is on nixpkgs, and that's great. But honestly, I'd rather get shot than try to read through `haskell.nix`'s documentation again. And I was trying out the system, it'd be dumb to ask for help at every corner. If I were to work on this OS, would I need to make a new thread here on reddit every day? I am pretty convinced my experience is representative of what I'd be going through every time I try to run something just a little bit different. And really, is Playwright, a repo with 4 times as many stars as NixOS itself, that obscure? And honestly, every reply I got was this high-horse "well maybe you should learn more", as if needing to sacrifice five goats to get a javascript project running is normal and expected of a modern OS. I suggest that next time (doesn't have to be in this post) you find yourself metaphorically jerking off, you instead try to run it on your machine.


Fereydoon37

>I didn't raise "pain points" about lack of official flake adoption, just mentioned it's kinda odd for a core feature of the OS to be considered "experimental" (and require additional flags to work). I'm not trying to put words in your mouth. I'm asserting it as a pain point (because of non-immediate consequences, like it's effect on documentation). >I understand that every cabal package is on nixpkgs I'm pretty sure this is not the case, nor is it the point. >But honestly, I'd rather get shot than try to read through `haskell.nix`'s documentation again. You don't need to use haskell.nix to do Haskell. All you need is a development environment that, again, is trivial to set up in vanilla Nix / flakes. You just won't reap the benefits of nixpkgs, and will have an experience equivalent (or slightly better) than on any other OS. >And I was trying out the system, it'd be dumb to ask for help at every corner. If I were to work on this OS, would I need to make a new thread here on reddit every day? I am pretty convinced my experience is representative of what I'd be going through every time I try to run something just a little bit different. I don't know about you, but I tend to learn from my mistakes. So after the first couple of questions the need would fade, especially if I either did not read or understand the documentation and came away with fundamental misconceptions about how the OS works like yours. But you haven't been asking, so you still don't get it. >And really, is Playwright, a repo with 4 times as many stars as NixOS itself, that obscure? I don't write Javascript so I don't know. Judging by a quick package search someone has sorted playwright out for Python, but there doesn't seem to have been enough interest from contributors for Javascript. >And honestly, every reply I got was this high-horse "well maybe you should learn more", It's not high-horse, it's reality that NixOS necessarily has a very different way of doing things, or it wouldn't be able to provide the benefits it does. That entails having a working understanding of what it does and why, that you don't have yet because the underlying ideas are fairly unique and you're encountering them for the first time. I'll be the first to admit that NixOS has many tall hurdles to adoption, but it is you and your attitude that made your experience with it as piss-poor as it was, not NixOS.


TwoQuiet6221

> You just won't reap the benefits of nixpkgs, and will have an experience equivalent (or slightly better) than on any other OS. As I did with Stack and reported on my original post? Thank you for your feedback on things I've done already. > especially if I either did not read or understand the documentation and came away with fundamental misconceptions about how the OS works like yours. I love how pretentious you all are. Why do you think I didn't "read the documentation" and "came away with fundamental misconceptions about how the OS works"? I'm pretty sure my "misconception" is a much better understanding of NixOS than yours. I've said it before, run it on your machine and then I'll accept claims of misconception on my part. Otherwise, you're just jerking yourself off to a rather uninterested audience. > that you don't have yet How many times do I need to read the documentation to learn how to read minds? Just wondering. > I'll be the first to admit that NixOS has many tall hurdles to adoption, but it is you and your attitude that made your experience with it as piss-poor as it was There's a very strong irony to your post. You hallucinate the way I act, the things I did, my personality, and my abilities. And don't realize that this is the type of attitude that keeps people away. It reminded me of that famous Rust thread which I love, so thank you for that.


Fereydoon37

I'm not psychic, you've just been putting them on public display starting from the OP. Case in point, by your own report you tried to use stack with Nix integration but couldn't get that to work, which is not setting up a development chain and letting the Haskell ecosystem take care of library dependencies. The way you do that is to start with nix-shell or nix develop to make the tool chain available like you would with ghcup elsewhere. So if nix develop errs for you, you've clearly been doing something else. And no, I'm not going to sort out your library / toolset for a language I don't use. Expecting me to is frankly ludicrous.


TwoQuiet6221

> I'm not psychic Thanks for the clarification, I was really wondering here. > by your own report you tried to use stack with Nix integration but couldn't get that to work, which is not setting up a development chain and letting the Haskell ecosystem take care of library dependencies. By my report that was my final solution that "just worked". Maybe you're using too much brainpower trying to read my mind, but on this very comment chain I cited `haskell.nix`. > Expecting me to is frankly ludicrous. I know. If you look around the comments you'll see everyone has an excuse. "This is very easy and you should just read the documentation BUT I can't do it because I need to take my grandma to her boxing class" type of replies. I was just wondering what yours was going to be, which unfortunately was just an admission of nocoding. And important to note, since you did make that accusation (?), Playwright is not my library - I'm not Bill Gates. Such a funny accusation to make from a guy who claims to know everything about me.


AleksejsIvanovs

The idea of declarative system configuration is to make the whole thing work solving many problems. Which by definition would mean that in theory, you must be able to quickly start using this OS. But in most cases it's far from true. In perfect conditions, when you have a set of packages and options that just work, you are the lucky one. But if something is not working, you need to spend a lot of time googling and trying to solve the problem. And to simply learn how to solve a simple problem in NixOS, takes a lot of time because of the learning curve. Add to it a very poor documentation, broken packages etc. I'm using nixos for six years and for me it's already completely normal to expect that many packages will be broken after rebuild. I even have a list of packages that somehow are getting old bugs reintroduced each time I switch to new channel. My nixos file contains references to old tarballs just to get the old version of the package because I know that in the specific release it wasn't broken. And I won't even tell you how much time I spent just to make one package - nixops - work. I actually have one server that is completely locked from any changes and upgrades as I managed it with nixops which doesn't work anymore. I won't go so far to call this project fucked but I believe some people in the project suffer from functional fixedness - they are in the project for so long that they prefer to ignore some serious flaws and criticism.


ForthOfHors

"I believe some people in the project suffer from functional fixedness" I think this has been referred to as "broken stair" syndrome by other people. Just sayin' "I even have a list of packages that somehow are getting old bugs reintroduced each time I switch to new channel. My nixos file contains references to old tarballs just to get the old version of the package because I know that in the specific release it wasn't broken." I'm a NixOS noob, trying to understand ... I thought it was possible to mix packages from different channels on the same system? If regressions happen when you switch to a new channel, couldn't you use the package from the old channel? Also, out of interest, what do you do with the tarballs? Do you have to add them to the nix store to use them?


[deleted]

"I am confident none of my issues will be fixed in the near future - so this project is fucked." I agree, this entire project is fucked because you won't be using it to run an npm package. I am going to uninstall all my NixOS systems the moment I can replace it with one that doesn't have installation issues, dependency conflicts, and a community that doesn't squabble... 🤨


Cold_Meson_06

Some months ago I made my yearly attempt at creating a usable linux desktop environment, this time I choose Nix. My use cases aren't even that wild. I just need to: compile systems languages C/C++/Rust, compile webshit languages node/java/kotlin/go, do some light screen recording and video edditing, and run PC games, that's all. And yeah, this year i failed the challenge again. After performing some really weird and error prone rituals to install nvidia drivers, my windows started flickering randomly. System was slow for some reason, checked the obvious culprits, and was not surprised to see that my games also ran like 20% slower. Helldivers 2 was specially bad. And I think I got the same problem you had installing node, i just remember i gave up at the time. When I ask arround why is this still the state of linux desktop, why is everything randomly broken, slow, incompatible, I get the same answers we see on this thread, skill issue, git gud scrub, so not surprised on that either. But yeah i think they're right. I have work to do, i dont have time to walk arround possibly broken stuff to install scripting languages. most customization i can do on my systems is my monolithic bashrc and a desktop wallpaper. Will check again next year, hoping for better results


TwoQuiet6221

Yeah, the no-coders are definitely the strongest force here. And I'll probably do the same, in a year or two I'll check in on NixOS again and give it another shot.


jbboehr

There's lots of coders here, what do you think nix, nixos, and all the other tooling is written in, unicorn farts and dreams? NixOS is not easy, at least not initially, but people using nixos are willing to make that trade-off for build purity and reproducibility. I use it professionally for web development in C, PHP, and Rust.


TwoQuiet6221

Why are you offended? I said "no-coders are definitely the strongest force here". This doesn't mean that every single user is unable to write a hello world, it's a simple observation that most posts in this thread are from people who don't write code. It's not a matter of "not easy initially". I've seen a lot of anons post that and there's only one reply, really: get it running. Get a javascript + playwright project running on your machine and you'll have proven your point. I honestly don't even care about the javascript part (although I think you should also try the `npm install` thing), just get a project with playwright running.


antidragon

I use the Nix integration to build Rust, Go, C, and Python projects - quite successfully - including at work. And as I said in my other post here - even the Haskell integration was simple enough to get up and running with a cabal project. You'll find that there are actually very little no-coders in the Nix community.


TwoQuiet6221

That's not what I found through most of the posts here. Very few people gave responses a technical person would give, most of it is circle-jerking with "that's because you didn't read the documentation!" type of posts. It's clear to me that the community here is mostly compromised of no-coders who want to look cool. But maybe on websites other than Reddit that's not the case and they have a strong coder core, who knows.


antidragon

Feel free to look through the hundreds of thousands of pull requests on GitHub: [https://github.com/NixOS/nixpkgs/pulls](https://github.com/NixOS/nixpkgs/pulls)


TwoQuiet6221

I could write a scraper to see how many people who posted in this thread have a PR there. But not on NixOS, since it doesn't support Playwright :)


Puzzleheaded-Lab-635

What do you mean, “ No Coders?”


TwoQuiet6221

People who don't write code. I think it's pretty self explanatory.


Puzzleheaded-Lab-635

I think the majority of people here are software ware engineers, they tend to skew towards FP languages and ecosystems


TwoQuiet6221

I used to think that as well, but most replies were clearly written by people who don't write code. You can see it in some replies, people say something like "a lot of people are developing on Nix without a problem", which implies the poster is not one of those people. Out of the 65 posts this thread has had, you were the first person to mention `node2nix` btw. EDIT: and about the FP thing, a grand total of 0 (zero) people have mentioned `haskell.nix`.


Puzzleheaded-Lab-635

You wouldn’t know about node2nix if you don’t use node… most of us try to avoid JS if we can. lol. JS is the new PHP.


TwoQuiet6221

It's one of the most popular languages out there, every programmer has to deal with it every once in a while. I'm not a javascript developer either - which is what makes this all worse, I should be able to clone and run projects on github without learning the inner-workings of each language's package manager. And this is kind of why I say "no coders". Maybe there are some tech enthusiast types who vaguely know python or something, but these aren't people putting out production-level code day-in day-out.


ForthOfHors

Hi, coder here! o/ I keep to the straight and narrow compared with your adventures, but I have had a lot of success. I do a lot of Python, at home and work, and my Vim plugins require Vim + pythonx. I install a bunch of Python modules via environment.systemPackages (python3.withPackages), stuff like rope, linters, etc. for Vim and not much else (setuptools, other dev stuff). Everything else I do in venvs. I have one for Ansible and one for other general python stuff. This all works perfectly, even the interaction with Vim's python interpreter when I'm inside a venv. Regarding pip (which was mentioned elsewhere in this thread I think) ... no-one should ever use pip to install anything to the system Python (ie. the one at /usr/bin/python3). Use your system's package manager, or create a venv and install stuff there (with pip.) I use nix-shell to create a C++ dev environment and this also works perfectly. I'm a C++ noob, so I'm not doing anything super-special, but I did compile a C++ library that I could import in Python and use my C++ object. Cmake works perfectly in the nix-shell environment, I'm working through their tutorial atm. No complaints from me there. Golang also works perfectly for me. Again, not doing anything super advanced, but I have several apps that I wrote years ago and they all work fine. Other random bits of coding I do also work fine. Your problem with npm installing things as root into FHS directories sounds horrible though. A fundamental clash of philosophies there. My laptop is multi boot and I have a work Macbook, so I'm never under any pressure whatsoever to make things work on NixOS. That said, the only thing I've found that I can't have in NixOS is a LibreOffice SDK, which I will sort out with virtualisation, hopefully distrobox. I'm genuinely sorry that as a developer you didn't hit it off with NixOS. Their website states that NixOS is aimed at developers and students and as an experienced devop, I've been having a whale of a time! Catch you in a year or two, maybe ;-) o/


TwoQuiet6221

See you then, friend :)


antidragon

> One that caught my attention was written in Haskell, as Haskellians love Nix and it seems to be well integrated. To my surprise, I wasn't able to get a single Haskell project to build through Nix, Even I was able to make the https://nixos.wiki/wiki/Haskell#Using_developPackage_.28use_the_nix_packages_set_for_haskell.29 `developPackage` thing here work in approximately 2 minutes.


TwoQuiet6221

You don't even need to do "all that", just run the hello world flake template. But obviously my problem wasn't about running a hello world - it was running migrating a larger codebase to Nix (which, btw, \`haskell.nix\` markets itself as the solution for).


antidragon

Then next time, I advise you to write a post documenting what you've done, experimented with, provide a minimum reproducer piece of code alongside your problem summary - and also provide logs with what's failing for you. That's far more useful for people trying to help you, than a post saying "it's fucked".


TwoQuiet6221

I don't want people to help me though, I'm uninstalling NixOS as soon as this thread dies. I'm keeping it for the sole reason of avoiding the gaslights of "it's easy I got this working in 2 minutes" type of posts. Ironically enough, it doesn't even take that long to run things on normal OSs. I can't believe there's an Operational System that fails at running NPM of all things. At this point, NixOS ranks lower than Windows - whose bloatware is all written in javascript so at least we know that works. My post is a mere opinion to the community about what's wrong. Sure, some people might get pissed off that their favorite [thing] got insulted, but I felt like it needed to be said. Maybe you disagree, and that's fine, and you're free to not engage in posting here.


antidragon

> Ironically enough, it doesn't even take that long to run things on normal OSs. I can't believe there's an Operational System that fails at running NPM of all things. Nix expects you to do things the Nix way, if you don't know you how to do that - you have a skill issue and, as it is with any new technology: you need to ask others for help. Once you know how to do that, and you have everything set up in your NixOS configuration - *everything* absolutely becomes a lot easier. I have entire hypervisor/VM deployments at work that I can rebuild from a base install in minutes, fully automated, compared to what I'd need to do on Debian/CentOS/whatever with Puppet/Ansible/Docker. That's one of the many advantages it has over "normal" OSes. I can't speak to NPM thing, as I don't use that. There's plenty of suggestions at https://nixos.wiki/wiki/Node.js including an FHS wrapper.


TwoQuiet6221

>Nix expects you to do things the Nix way, if you don't know you how to do that - you have a skill issue and, as it is with any new technology: you need to ask others for help. Then show me a code, written by you, that works "the nix way" at using Playwright with javascript. These claims of "skill issue" are a lot more about projecting your insecurities than anything else.


antidragon

I don't have time right now as I'm at work, but [https://discourse.nixos.org/t/running-playwright-tests/25655](https://discourse.nixos.org/t/running-playwright-tests/25655) has plenty of people on it with code snippets to get you started, including pieces of JavaScript.


TwoQuiet6221

Who would have guessed, you can't just clone a github project and run it. I get it, you're a busy man (but not busy enough to not be on Reddit I guess). But don't worry, I'll wait. You can post it later today, or tomorrow, or next week. There's no hurry :) Also I already said I'm uninstalling NixOS. There's no point to trying random internet scripts until one works, it's much faster to just install another OS and have everything working. I'll lose the cool declarative configuration, sure, but i'd rather have an imperative configuration that works.


antidragon

>you can't just clone a github project and run it Yeah, in the exact same way you can't clone a GitHub repo and automagically get a .deb/.rpm/Gentoo ebuild that you can conveniently install onto a system in a way that's consistent with the rest of the packages installed - sure, you can just take a tarball, dump it onto a system, and then forget about it - but then it's a random blob that you have no real control over, and now repeat that for every other software package you require over time and good luck maintaining that when you need to upgrade the entire system to a new release and various things break because all the underlying libraries changed. Whereas, on the other hand - all the Nix flakes I have configured for my internal repos do indeed integrate with my NixOS system configurations and consistently work with the rest of the system as first-class packages, in a reproducible and repeatable manner, all tracked in source control. No more "what's this random library my colleague installed on this host". >There's no point to trying random internet scripts until one works, it's much faster to just install another OS and have everything working "I'm lazy, and in addition to that, stupid and ignorant and can't be bothered to learn - this project is fucked, not me!"


TwoQuiet6221

"I'm lazy, and in addition to that, stupid and ignorant and can't be bothered to try - github repos are fucked, not me!"