From 5fd533a8716219ef84e50a136134f68bb45aa87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Thu, 31 Aug 2023 08:59:40 +0300 Subject: [PATCH] nixos: quote the response --- content/log/2023/nixos-subjective.md | 83 ++++++++++++++-------------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/content/log/2023/nixos-subjective.md b/content/log/2023/nixos-subjective.md index 45775dd..26d84a4 100644 --- a/content/log/2023/nixos-subjective.md +++ b/content/log/2023/nixos-subjective.md @@ -12,47 +12,48 @@ things I did with NixOS. After publishing the post, my friend promptly asked: Here is my response: -My journey to NixOS has been bumpy ride: it's been over a year since I looked -at first, and I still sometimes feel I did not escape the beginner level. The -learning curve is steep, and it is best to take it on gently or have a good -mentor nearby. I started by installing NixOS on my primary laptop, which was a -mistake. The annoyance of "I can do this in Debian in 5 seconds, and I am an -hour in without an end of sight in this thing" was very discouraging at times. - -I reinstalled my laptop back to Debian and took a few slow months to provision -2 personal servers (the thing that's detailed in the blog). Taking it slow has -been fantastic experience. The folks in Matrix are very helpful where -documentation, especially high-level, is patchy. Now I feel comfortable enough -to retry NixOS on my laptop again. - -Recently I realized that what I originally perceived as immaturity later turned -out lack of knowledge and/or lack of high-level documentation. Technicals are -good. Granted, I have found some bugs (though trivially [fixed][nixos-prs]), -but they mostly come from the power to configure it and thus the huge surface -area. Also, variety does not help: for example, there are [10 deployment -tools][deployment-tools] in the wiki ("nixops related" counts too). It is hard -to choose when I don't know what to expect, much less know what's possible. It -is also nontrivial to ask for a "high-level" advice: a beginner will just tell -their favorite system, not knowing the trade-offs or alternatives. An expert -will tell "depends on what you want to do". Moving beyond such answer requires -time and a beverage, which brings it's own constraints. In this concrete case, -I spent quite some time learning krops, which later turned out to be a -dead-end. Later moved to deploy-rs, which turned out to be a good decision so -far. - -As far as recommendations go. For smaller companies, especially where -developers are also taking care of operations/deployments/infrastructure, I -can't recommend NixOS enough. For medium-large size companies it would -certainly bring a lot of value (I can already see how many things mine or my -sister-team at Uber had to re-implement which come out of the box in NixOS), -but, like with anything that has a different paradigm, requires a mentality -shift, which may be very hard organizationally. - -There is at least one large-ish company I know that uses NixOS -([proof][canva]). I did not look, I found it by accident. I also know a few -folks in Tweag; their primary consulting stream is helping companies onboard to -Bazel and/or Nix. They won't tell who they are, but there are "quite a few, of -different sizes, flying under the radar". +> My journey to NixOS has been bumpy ride: it's been over a year since I looked +> at first, and I still sometimes feel I did not escape the beginner level. The +> learning curve is steep, and it is best to take it on gently or have a good +> mentor nearby. I started by installing NixOS on my primary laptop, which was +> a mistake. The annoyance of "I can do this in Debian in 5 seconds, and I am +> an hour in without an end of sight in this thing" was very discouraging at +> times. +> +> I reinstalled my laptop back to Debian and took a few slow months to +> provision 2 personal servers (the thing that's detailed in the blog). Taking +> it slow has been fantastic experience. The folks in Matrix are very helpful +> where documentation, especially high-level, is patchy. Now I feel comfortable +> enough to retry NixOS on my laptop again. +> +> Recently I realized that what I originally perceived as immaturity later +> turned out lack of knowledge and/or lack of high-level documentation. +> Technicals are good. Granted, I have found some bugs (though trivially +> [fixed][nixos-prs]), but they mostly come from the power to configure it and +> thus the huge surface area. Also, variety does not help: for example, there +> are [10 deployment tools][deployment-tools] in the wiki ("nixops related" +> counts too). It is hard to choose when I don't know what to expect, much less +> know what's possible. It is also nontrivial to ask for a "high-level" advice: +> a beginner will just tell their favorite system, not knowing the trade-offs +> or alternatives. An expert will tell "depends on what you want to do". Moving +> beyond such answer requires time and a beverage, which brings it's own +> constraints. In this concrete case, I spent quite some time learning krops, +> which later turned out to be a dead-end. Later moved to deploy-rs, which +> turned out to be a good decision so far. +> +> As far as recommendations go. For smaller companies, especially where +> developers are also taking care of operations/deployments/infrastructure, I +> can't recommend NixOS enough. For medium-large size companies it would +> certainly bring a lot of value (I can already see how many things mine or my +> sister-team at Uber had to re-implement which come out of the box in NixOS), +> but, like with anything that has a different paradigm, requires a mentality +> shift, which may be very hard organizationally. +> +> There is at least one large-ish company I know that uses NixOS +> ([proof][canva]). I did not look, I found it by accident. I also know a few +> folks in Tweag; their primary consulting stream is helping companies onboard +> to Bazel and/or Nix. They won't tell who they are, but there are "quite a +> few, of different sizes, flying under the radar". [nixos-prs]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+author%3Amotiejus+is%3Aclosed [deployment-tools]: https://nixos.wiki/wiki/Applications#Deployment