<infinisil>
"Most implementations only support having one property with a given name in a section. The second occurrence of a property name may cause an abort, it may be ignored (and the value discarded), or it may override the first occurrence (with the first value discarded). Some programs use duplicate property names to implement multi-valued properties."
<infinisil>
toINI could get another parameter, `allowDuplicates ? false`
<aanderse>
yeah, pretty loose format... but mysql does the latter
<aanderse>
i like that :)
<infinisil>
Or maybe `listsAsDuplicateKeys ? false`
<aanderse>
yeah
<infinisil>
Hm I'm now wondering whether such parameters should be supported by #75584
<cole-h>
Maybe it was listed in the docs PR or something
<cole-h>
Yeah, I agree that they look really nice
<drakonis>
it was brought up recently when docs talk came up
<drakonis>
in irc even
<drakonis>
they have a dsl for writing docs!
<drakonis>
and books!
<cole-h>
👀
<drakonis>
its so beautiful
<drakonis>
there's even a book called beautiful racket, written in a dsl by the guy who wrote the book
<infinisil>
I know you didn't say this exactly, but I heard "There's a book, written by the guy who wrote the book" lol
<cole-h>
infinisil: Could you briefly explain what `mkKeyValue ? mkKeyValueDefault {} "=",` means? Does that allow the use of a custom `mkKeyValue` function?
<cole-h>
(in that toINI PR)
<infinisil>
cole-h: Yeah
<cole-h>
Just making sure I'm parsing it correctly
<cole-h>
Thanks :)
* cole-h
still hasn't read the entire Nix/Nixpkgs manual
<infinisil>
I don't think anybody has!
<cole-h>
:D
<cole-h>
Looks like a relatively elegant solution
<cole-h>
s/relatively//
<infinisil>
Yeah I like how these parameters are done
<cole-h>
Every time I see the HomepageUpdateStuck I think of "Door stuck!"
<aanderse>
thanks infinisil !
<infinisil>
:D
waleee-cl has quit [Quit: Connection closed for inactivity]
<lovesegfault>
Dealing with US regulations is so weird
<lovesegfault>
Since starting my immigration proceedings I have basically become a bureaucrat
<lovesegfault>
I sent an email today basically saying "It seems like I fall under 8 CFR 103.2(10), and in turn 8 CFR 103.2(10)(ii) and CFR 274a.12(b)(20), although on the latter only §214.2 is applicable to me, meaning the interim benefits are on hold until 8 CFR 103.2(8)(ii) has been appropriately filed"
<lovesegfault>
What am I doing with my life
<lovesegfault>
I'm the "you can't file for this form without first having this other form" guy
<cole-h>
zzz see you in 20 years
<lovesegfault>
Yeah, it's... something
<cole-h>
Just be born here lol
<lovesegfault>
So much of my mind is taken by USCIS regulations it's insane
<infinisil>
Laws feel like some ugly-ass spaghetti code everybody has been adding to for centuries, without ever removing or simplifying anything
<lovesegfault>
infinisil: readin the e-CFR is like reading old perl
wildtrees has quit [Remote host closed the connection]
wildtrees has joined #nixos-chat
<eyJhb>
joepie91: are you available for some CSS help?
<eyJhb>
Or anybody for that case. Using UIKIT an have no clue why it won't show 100% width when on phone
<samueldr>
eyJhb: it *could* be that the HTML document doesn't declare the right viewport, or even worse, be in quirks mode, but the latter is inlukely
<samueldr>
unlikely*
<samueldr>
though "won't show 100% width", I'm not sure what that means
<eyJhb>
`<meta name="viewport" content="width=device-width">` is in the head
<emily>
languages that don't support ADTs include: Nix :'(
<gchristensen>
man, printers.
<andi->
They are great if they just work? :)
<samueldr>
so they're not great, I see
<andi->
depends, if you are the person in charge actually printing something then probably not
<gchristensen>
I have one which refuses to wake from sleep
<gchristensen>
and 20.03 seems to be breaking it
<andi->
Sounds like we need a virtual printer for a test?
<gchristensen>
absolutely not
<gchristensen>
this is unique to my junky setup
<infinisil>
Oh, I'm pretty sure this must exist already, but is there a company that prints stuff for you, then sends it via mail?
<infinisil>
For people who almost never need to print anything
<andi->
I am actually looking for a (decent) reverse service.
<samueldr>
better: sends it to other people
<samueldr>
scanning mail? I think there are in the US
<samueldr>
now you only need to move :)
<infinisil>
reverse would be nice too
<andi->
We also have some here but either they charge you >1€ per mail or there is no proper API / automated way to retrieve stuff without clicking on the website..
<colemickens>
I try to wait until I'm near a UPS/FedEx type place that have printers you can use for a dollar or two
<colemickens>
again maybe US centric though?
<andi->
I wouldn't mind paying 1€ per page I need to print.. I would rather not pay that per page that was scanned :D
<gchristensen>
this breakage has to do with some grayscale thing
<adisbladis>
What's the big selling point of morph?
<gchristensen>
is there a list of fun things a hacker (developer) like me can do with yubikeys?
<andi->
adisbladis: no local state, it feels less clunky for me
<andi->
it doesn't do provisioning, just deployment
<andi->
and it feels more hackable :/
<andi->
(and more alive)
<adisbladis>
gchristensen: Ohh boy. Where to start?
<gchristensen>
:)
<adisbladis>
What would you like to achieve?
<adisbladis>
andi-: "no local state" - fixable in nixops
<adisbladis>
andi-: "it feels less clunky for me" - Id like this quantified if possible
<adisbladis>
I'm genuinely curious
<andi->
adisbladis: yeah, not arguing it is better just different and maybe more suites for some very simple use cases.
<lovesegfault>
adisbladis: for me it was way easier to grok morph than NixOps
<andi->
adisbladis: I always had a bad time finding the right incarnation to handle my "deployments" (or whatever it is called). Then I did run into random runtime errors.. and looked at the python code and decided to move on and do something else
<lovesegfault>
module some wonkyness around cross-compiling with morph
<joepie91>
adisbladis: to me, morph is very much a "does what it says on the tin" tool
<joepie91>
it's super easy to reason about it, how it behaves, exactly what it adds on top of NixOS
<joepie91>
no "wtf, how does that even work" surprises
<__monty__>
What I wonder is why morph gets all the love and krops is rarely mentioned?
<joepie91>
I can just assume that it will work as I intended, every time - whereas with NixOps I regularly had to dive into the source to debug some edge case, or to figure out where a bit of seemingly-corrupted state was hiding, etc.
<adisbladis>
__monty__: Imho krops is hardly an improvement over `nixos-rebuild --target-host=...`
<__monty__>
adisbladis: What does morph do beyond that?
<joepie91>
adisbladis: (also, I suspect that a big part of all of the above comes from the fact that morph has a clear, singular purpose; whereas NixOps tries to be an ~infrastructure manager~ and it's not even clear how big that scope is, let alone how all the pieces relate to each other)
<adisbladis>
joepie91: Thats fair :)
<adisbladis>
__monty__: Well, nothing I think ?
<lovesegfault>
adisbladis: do you use NixOps?
<adisbladis>
Yes
<__monty__>
adisbladis: Well, hence my wonderment re the love for morph and the lack of love for krops : )
<joepie91>
emphasis on "arbitrary" -- "must store it in passwordstore" is not good enough when you're dealing with credential config files for applications
<infinisil>
joepie91: For my own tool, what secret stores would you need?
<infinisil>
(For research for my own tool)
<joepie91>
infinisil: the filesystem
<lovesegfault>
adisbladis: that looks... super simple
<joepie91>
infinisil: with morph I can just say "copy this file into that path on the target system"
<joepie91>
and it doesn't touch the nix store
<adisbladis>
lovesegfault: Because it is :)
<lovesegfault>
adisbladis: do you not pin nixpkgs?
<infinisil>
joepie91: Yeah that's currently how I do it too with nixoses (in some rather fancy way)
<infinisil>
I'm wondering whether people need other things as well
<gchristensen>
adisbladis: well, for example, I have a program running as root. it takes a request from a not-root user. I'd like to have the program require a tap-of-the-key to proceed
<gchristensen>
but like, a specific, registered key
<__monty__>
joepie91: Are you sure you can't achieve a similar result with password-store? I know you can pretty much store arbitrary files.
<adisbladis>
lovesegfault: It's a git submodule of my config
<joepie91>
__monty__: afaik all files in passwordstore are encrypted
<joepie91>
that is not a desirable property for config files that need to be accessible by services :)
<lovesegfault>
adisbladis: yeah, I see that now :)
drakonis has joined #nixos-chat
<__monty__>
joepie91: You can get them decrypted at runtime though.
<joepie91>
__monty__: I don't like unnecessary complexity in my infrastructure
<joepie91>
that just constitutes a new thing that can break
<lovesegfault>
Hmm, one of our servers has ssh MFA enabled
<lovesegfault>
I have a CLI that generates the otp
<lovesegfault>
does anyone have any ideas on how to input it automatically?
<lovesegfault>
so I don't have to ssh and then paste the otp+enter
<johanot>
with morph, I feel we've some time been at a crossroads where we either start implementing a lot of extra features for very specific use-cases, or we find a way to make it more extendable / pluggable / hookable. :) that's especially the case when it comes to handling of secrets.
malSet has joined #nixos-chat
<johanot>
lovesegfault: sorry, have been busy. did you resolve your cross-build issue with morph?
<lovesegfault>
johanot: Yes!
<lovesegfault>
No worries
malSet has quit [Read error: Connection reset by peer]