!tPxtoBdChSsxHuBlNW:nixos.org

NixOS Marketing

266 Members
NixOS website + marketing team: https://nixos.org/community/teams/marketing.html58 Servers

Load older messages


SenderMessageTime
1 May 2024
@infinisil:matrix.orginfinisil djacu Actually maybe it's best to just post it in a Nix issue so that the Nix team can briefly bikeshed and check it? :P 08:05:04
@infinisil:matrix.orginfinisil It looks really cool though, let's get that posted soon! 08:05:26
@tomberek:matrix.orgtomberekPerhaps a mention that builtins exist? A full pverview is out of scope, but it might be good to point out.08:47:55
@tomberek:matrix.orgtomberek* Perhaps a mention that builtins exist? A full overview is out of scope, but it might be good to point out.08:48:10
@raboof:matrix.orgraboofgood point, maybe point to 'further references' like https://nixos.org/manual/nix/stable/language/builtins.html and https://nixos.org/manual/nixpkgs/unstable/#id-1.4 ? Getting hard to fit in, though, I can imagine ;)09:07:40
@mjolnir:nixos.orgNixOS Moderation Botchanged room power levels.15:06:50
@djacu:matrix.orgdjacu
In reply to @raboof:matrix.org
maybe use 'attribute set' rather than just 'set' in that description? ('set' may invoke different expectations to people not familiar with nix)
Yeah ideally I would use 'attribute set' here but it didn't fit on a single line. Space is a premium so I shortened it to set. Thinking about just removing the word 'set` here. Since it is a continuation from the previous three examples, it should be clear that it is still an attrset
15:11:05
@djacu:matrix.orgdjacu
In reply to @raboof:matrix.org
cool! the 'bind set arguments' (bottom-right) can't decide between 'set' or 'args' it seems?

The inspiration was the nixcademy cheat sheet.
https://nixcademy.com/cheatsheet.html

I changed the bind arguments variable to args because it's contextually different. Also a lot of examples I've seen usually call that variable args or inputs in the case of flakes.

15:13:17
@djacu:matrix.orgdjacu

Wow thanks for all the feedback everyone. For reference, we are trying to emulate something similar to the nixcademy cheat sheet (https://nixcademy.com/cheatsheet.html). This one being just for the nix language.

The design goals I am working with are

  • printable (so we can hand them out at cons)
  • start with just the nix language (no nix commands for now)
  • ideally 1 page
  • cover enough basics that users can get going (i.e. it's not comprehensive)

We could go to 2 pages but ideally it would be 1 for the nix language and 1 for nix commands.
Built-ins would be a great addition. Trying to figure out how to make it all fit.
Creating this in latex. The default font size, which you all see, is 10pt. I could try 9pt... would need to do some test prints to see if it would look okay.

15:20:26
@djacu:matrix.orgdjacu

Doesn't it still hold true in this case?

nix-repl> (x: rec {inherit x;}) 10
{ x = 10; }
nix-repl> :p (x: rec {inherit x;}) { y = { z = 20; }; }
{ x = { y = { z = 20; }; }; }
15:28:54
@raboof:matrix.orgraboofMakes sense, then it should be 'args.x' and 'args.y' right?15:29:44
@djacu:matrix.orgdjacu
In reply to @raboof:matrix.org
good point, maybe point to 'further references' like https://nixos.org/manual/nix/stable/language/builtins.html and https://nixos.org/manual/nixpkgs/unstable/#id-1.4 ? Getting hard to fit in, though, I can imagine ;)
We really need to get our own URL shortener
15:31:04
@djacu:matrix.orgdjacuah yes i see what you mean. i caught that right after i posted it last night. forgot to mention it. thanks for calling it out!16:20:27
2 May 2024
@ibizaman:matrix.orgibizaman I searched about the following keywords online but didn’t find anything compelling.
Did we ever market/talk about the whole Nix ecosystem as an artifact builder?
In my limited experience trying to spread Nix love at work, I was originally faced with push backs because ppl were thinking of Nix as a competitor to docker because docker can do things that nix do: ppl use docker to setup dev environments, docker containers (duh) and has thus overlap with Nix that made it not obvious how Nix fit in.
But then I switched to first explaining Nix as an artifact builder. And everything flows naturally from that. I then explain the sandboxing and how that relates to inputs and output and the hashing. Since this sandboxing goes all the way down, we can build a full BoM up to the exact commit of the shell used to build the Go compiler (we’re essentially a Go shop) that we use to compile our binary. Then I introduce that Nix has fine grained caching so we don’t need to rebuild the world each time. That ppl then realized it can build binaries but also config files, systemd services, ISOs, wholes OSes and docker containers. This means the dev environment has the exact same packages as the docker container which eliminates one of our frustrations at work. And that this includes all dependencies since it can package anything.
I can continue forever so I’ll stop here but I just wanted to share this - currently in its early infancy - approach I’m using to explain Nix and everyone - literally everyone - I talked to see a great appeal to it that way. IMO this fits nicely in our work environment because it fixes our dev env which is in need of love but no one likes to take care of.
01:26:51
@ibizaman:matrix.orgibizaman * I searched about the following keywords online but didn’t find anything compelling.
Did we ever market/talk about the whole Nix ecosystem as an artifact builder?
In my limited experience trying to spread Nix love at work, I was originally faced with push backs because ppl were thinking of Nix as a competitor to docker because docker can do things that nix do: ppl use docker to setup dev environments, docker containers (duh) and has thus overlap with Nix that made it not obvious how Nix fit in.
But then I switched to first explaining Nix as an artifact builder. And everything flows naturally from that. I then explain the sandboxing and how that relates to inputs and output and the hashing. Since this sandboxing goes all the way down, we can build a full BoM up to the exact commit of the shell used to build the Go compiler (we’re essentially a Go shop) that we use to compile our binary. Then I introduce that Nix has fine grained caching so we don’t need to rebuild the world each time. That ppl then realized it can build binaries but also config files, systemd services, ISOs, wholes OSes and docker containers. This means the dev environment has the exact same packages as the docker container which eliminates one of our frustrations at work. And that this includes all dependencies since it can package anything.
I can continue forever so I’ll stop here but I just wanted to share this - currently in its early infancy - approach I’m using to explain Nix and everyone - literally everyone - I talked to see a great appeal to it that way and seem to understand how Nix and nixpkgs and NixOS all fit together. At least this fits nicely in our work environment because it fixes our dev env which is in need of love but no one likes to take care of.
01:29:10
@ibizaman:matrix.orgibizaman * I searched about the following keywords online but didn’t find anything compelling.
Did we ever market/talk about the whole Nix ecosystem as an artifact builder?
In my limited experience trying to spread Nix love at work, I was originally faced with push backs because ppl were thinking of Nix as a competitor to docker because docker can do things that nix do: ppl use docker to setup dev environments, docker containers (duh) and has thus overlap with Nix that made it not obvious how Nix fit in.
But then I switched to first explaining Nix as an artifact builder. And everything flows naturally from that. I then explain the sandboxing and how that relates to inputs and output and the hashing. Since this sandboxing goes all the way down, we can build a full BoM up to the exact commit of the shell used to build the Go compiler (we’re essentially a Go shop) that we use to compile our binary. Then I introduce that Nix has fine grained caching so we don’t need to rebuild the world each time. That ppl then realized it can build binaries but also config files, systemd services, ISOs, wholes OSes and docker containers. This means the dev environment has the exact same packages as the docker container which eliminates one of our frustrations at work. And that this includes all dependencies since it can package anything. Which solves a second pain we have which is bootstrapping a new engineer’s laptop. I can continue forever so I’ll stop here but I just wanted to share this - currently in its early infancy - approach I’m using to explain Nix and everyone - literally everyone - I talked to see a great appeal to it that way and seem to understand how Nix and nixpkgs and NixOS all fit together. At least this fits nicely in our work environment because it fixes our dev env which is in need of love but no one likes to take care of.
01:36:10
@tomberek:matrix.orgtomberekYes! I've used a very similar flow to help describe Nix. I usually add the term "... with very good bookkeeping".03:17:27
3 May 2024
@sigmanificient:matrix.orgSigmanificient An old mention of 80 000 packages was forgotten in NixOS webpage, I just made a pr to update
https://github.com/NixOS/nixos-homepage/pull/1414
03:22:27
@tomberek:matrix.orgtomberekThanks!03:33:41
@ibizaman:matrix.orgibizaman

I'm being overly pedantic here on purpose so feel free to push back. With that in mind:

  • For Path, change to Path with context? Or string with context? This would give ppl a keyword to search for
  • in the let ... in example, isn't there too many times the word "return"?
  • Merge attribute sets using //, I would use a nested attribute for x on the left side, this way in the second example where the right attrset overrides x, it is clear that the value of the right attrset replaces completely the value on the left. So { x.a = 1; } // { x = 2; } => { x = 2; }
  • concatenate paths and strings IMO is confusing because it doesn't answer the questions what and why is there a difference between a path and a string
  • Named arguments as attribute set; I would rename this to Attribute set as first argument. IMO it makes it a bit more obvious that it's a function with one argument that is an attribute set.
06:04:28
4 May 2024
@theophane:hufschmitt.net@theophane:hufschmitt.net left the room.15:55:46
@ss:someonex.netSomeone S changed their display name from SomeoneSerge (is taking time off and doesn't want to hear about it) to SomeoneSerge (Way down Hadestown).21:03:58
8 May 2024
@idabzo:matrix.org@idabzo:matrix.orgI won't be able to attend the meeting today, but I left two notes in the meeting agenda.17:48:28
@garbas:matrix.orggarbasI also won't be able to attend. I'm too exhausted.18:35:49
@avocadoom:avocadoom.deavocadoom
In reply to @garbas:matrix.org
I also won't be able to attend. I'm too exhausted.
Same goes for me
18:39:05
@albertc:matrix.orgAlbert ChaeI also can't make it today, haven't worked much more on my issues/PRs but will have an update by next sync18:39:36
@djacu:matrix.orgdjacuOnly Tom and I were able to attend. Since there are some important topics on the agenda, we decided to wait until the next meeting to discuss them with the rest of the team. Other than that, I added an update to the minutes about the cheat sheet. Hope you all get some good rest. Catch ya next time. 👋19:10:14
9 May 2024
@ss:someonex.netSomeone S changed their display name from SomeoneSerge (Way down Hadestown) to SomeoneSerge (UTC+3).17:11:48
10 May 2024
@djacu:matrix.orgdjacuHey marketing teeeeeeeeeeeeam https://github.com/NixOS/marketing/pull/706:11:59
@garbas:matrix.orggarbasI'm sending you a virtual hug. This is awesome!14:10:51

Show newer messages


Back to Room ListRoom Version: 6