gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
Synthetica has quit [Quit: Connection closed for inactivity]
drakonis_ has joined #nixos-chat
drakonis has joined #nixos-chat
nckx has quit [Ping timeout: 248 seconds]
nckx has joined #nixos-chat
pie__ has joined #nixos-chat
pie__ has quit [Remote host closed the connection]
pie__ has joined #nixos-chat
<pie__> migrated back on to ssd after being on an external hdd
<pie__> everything is so faaaast my brain cant keep u
<clever> lol
<clever> ive been living with my 2 primary systems on nvme for a while now, and going back to a usb flash drive, is just soo slooowww
<gchristensen> that error about /nix/store vs. / was me truncating the last 10 bytes from every cache request
<clever> gchristensen: do you know why ofborg flagged this as green, despite the bind tests failing? https://github.com/NixOS/nixpkgs/pull/61619
<{^_^}> #61619 (by dtzWill, 3 weeks ago, merged): bind: 9.12.4-P1 -> 9.14.2
<gchristensen> clever: failures to build never cause an X
<gchristensen> because they could be due to timeouts, or platform incompatibilit
<clever> this one was a timeout
<clever> but i cant see the full error
<gchristensen> yeah, I don't keep logs that long
<clever> ah
<clever> and because this targeted staging, it didnt hit master+unstable for a while
<gchristensen> ouch.
<clever> it only broke on hydra 3 days ago
<clever> and someone in #nixos found it today
<gchristensen> ouch :/
<pie__> that does not sound good<gchristensen> that error about /nix/store vs. / was me truncating the last 10 bytes from every cache request
<gchristensen> I wish github gave us a third status of "not great, but not exctly a blocker"
<clever> what if you just left it as pending?
<gchristensen> pie__: yeah, it didnt even do what I wanted. turns out zeroing the last half of every request did the trick.
<gchristensen> clever: hmm... I'll think on that!
<samueldr> pie__: gchristensen was torturing error conditions in nix :)
<pie__> samueldr, i saw that much
<pie__> but that error message is def not helpful
<pie__> why are we attempting to ingest bad data :V
<samueldr> make error better messages :D
<gchristensen> http://ix.io/1Lsi is what I came up with (drop the -vvvvv... bit to make it easier to follow)
<pie__> does nix not verify the things returned by binary caches
<clever> gchristensen: oh, and i have a reply in https://github.com/NixOS/nix/pull/2934
<{^_^}> nix#2934 (by grahamc, 9 hours ago, open): libstore: consider a resolution error as a NotFound
<samueldr> (yes, that was written in the wrong order, by design)
<gchristensen> it definitely does, pie__
<pie__> gchristensen, ok good
<pie__> so how does it get to /that/ error message 0_o
<gchristensen> indeed, it *was* verifying the data from the cache
<pie__> ahh wait that makes sense
<gchristensen> StoreDir: /nix/store
<samueldr> I love it when customer support on a big web store uses a human person stock photo for their avatar
<pie__> gchristensen, im disappointed in you in that thats not a nix script with a shellhook :P
<clever> `nix-copy-closure's --use-substitutes` is one thing that uses the flag i pointed out
<pie__> gchristensen, ok maybe its just me thats obsessed with doing that
<gchristensen> clever: but that won't build anyway, will it?
<clever> gchristensen: yeah, that flag is just to download things from the remote cache, to get the inputs for a remote build
<gchristensen> hmm
<clever> a remote build happens in ~4 phases
<clever> first, you query the slave to see what parts of the inputs its missing (which can optionally trigger cache downloads)
<clever> then you copy the remaining parts over ssh
<clever> build the whole thing
<clever> and copy the result back
<gchristensen> samueldr: so I'm in Montreal until Thursday if you're free sometime :)
<gchristensen> samueldr: there is a guy from RockPro64 here
<clever> gchristensen: can you tell quebec to fix its timezone? its constantly messing with my phone :P
<gchristensen> haha
<clever> ive had my alarm clock both go off twice in a row, and not go off at all
<gchristensen> :o
<clever> and one day, it was blinking between 1pm and 2pm, every second
<gchristensen> I'll put in a good word for you
<clever> i'm in range of the quebec cell towers, and it messes with the automatic timezone stuff :P
<clever> and in android, turning off automatic timezone, also turns off ntp
<gchristensen> :|
<clever> and then MFA tokens suffer
<gchristensen> :| :| :|
<clever> https://www.openstreetmap.org/#map=10/48.1157/-66.5634
<clever> i'm in dalhousie
<clever> the entire gaspe above NB, is one timezone over
<gchristensen> oh quite close
<pie__> lol
<clever> because somebody didnt want to split quebec into 2 timezones, despite a large chunk of it entirely being in another zone :P
<samueldr> clever: funny, I have a friend in Gaspésie, and they told me today they're having the reverse issue
<samueldr> your timezone messed up their workday!
<clever> lol
<samueldr> gchristensen: it would be nice, but unlikely considering the 3h travel time one way :)
<gchristensen> samueldr: oh, so far? I didn't realie
<gchristensen> oh, d'oh, yes I did know :|
<gchristensen> well I'll put in a good word for you.
<clever> gchristensen: 8 hour drive for me, lol
<samueldr> :) Québec isn't dense
<samueldr> tbf, 3h is also via autocar (coach bus, doesn't stop anywhere else), in the outermost montréal parts it's possible to do it in ~2h30
<gchristensen> ah
drakonis has quit [Quit: WeeChat 2.5]
<aleph-> Hmm I need to pin down this HDMI nug
<aleph-> bug*
drakonis_ has quit [Ping timeout: 248 seconds]
<samueldr> what's nugging you?
<pie__> joepie91, mood: looking at a simple nix file that uses recursion and not being able to answer a simple question about it https://github.com/NixOS/nix/blob/master/corepkgs/derivation.nix#L17
<pie__> "why doesnt this cause infinite rucursion" "probably laziness...uh...lol..."
drakonis_ has joined #nixos-chat
<clever> pie__: i dont think i see any recursion in that file
<clever> line 8 creates the raw derivation from the real primop
<clever> oh there
<pie__> clever, value refers to commonattrs refers to outputslist refers to
<pie__> outputtoblah
<clever> yeah, lazyness
<clever> yeah, commonAttrs is a thunk, that will later turn into a set
<clever> line 17's value, is a thunk that calls // with commonAttrs and a set
<clever> listToAttrs is lazy, and makes a set containing thunks
<pie__> i mean i was 90% sure its just laziness, but just understanding what the code does overall is making me feel tiny brain
<clever> and the keys that listToAttrs uses, is based on the outputList
<pie__> maybe the code just needs more comments?
<clever> so when line 10 combines 3 sets together, it knows which keys go to which sets
<clever> and untangles it all
<clever> no infinite recursion on the keys
<clever> so it basically turns into a weird `rec {`
<clever> pie__: let me go into more details...
<gchristensen> weird rec, but okay
<pie__> clever, i just figured as long as you dont try to evaluate .value strictly youre fine
<pie__> maybe im just going about it wrong - understanding code like this in the beginning?
<pie__> clever, how do you do it?
<pie__> do you just read it and it clicks?
<clever> pie__: ive read the parser for nix...
<clever> i know how nix turns this into an AST
<pie__> clever, im not talking about the parsing, i m talking about what it actually does
<pie__> i just heuristically assume most things are lazy and its been ok so far
<clever> and once you see the AST in your head, you can see where the loops arent
<pie__> ok so youre filtering noise
<clever> line 2287 sets up builtins.derivationStrict to point to a c++ function
<clever> line 2296 then grabs the path to derivation.nix
<pie__> clever, what do you do when the line numbers change? ;P
<clever> also, i memorized how the code looks, not its numbers
<clever> 2298 then evaluates the derivation.nix file, to get the function within it
<clever> and then 2299 assigns that function to builtins.derivation
<clever> evalFile takes a path, and a reference to an allocated but un-initialized Value
<clever> and 753 will then parse the file into an Expr object
<clever> 758 will then evaluate that Expr, in the default scope (one with just builtins, map, and other basic things), to create a Value (any global references like builtins and map get resolved)
<clever> and that creates a Value, in this case, of type function
<clever> pie__: behind the scenes, a lambda is actually just the Env it will be evaluated in, and the ExprLambda
<clever> so `eval(e, v);` isnt really resolving things or evaluating it
<clever> its just storing those into an object
<clever> pie__: following along so far?
<pie__> clever, sorry, was a bit sidetracked on the other channel
<pie__> hold on
<pie__> clever, to clarify, i didnt think my problem originates from not knowing the details of the evaluation model, but this might help so ill give it a shot
<clever> this is the type of an ExprLambda
<clever> and the parser helps to figure out what the args mean
<clever> the `arg` on line 229, is the symbol used to access whatever was given to the function
<clever> `this: ...`, `this @ { ... }: ...` and `{ ... } @ this: ...`
<clever> for `{ ... }: ...` the `arg` is "", so it has no way to refer to it
<clever> matchedAttrs is just a bool for the entire `{ ... }: ...` type, where you are matching on a set
<clever> and formats is the list of things in `{ a, b, c }: ...`
<clever> and finally, body is the actual return value of the lambda
<clever> when you call it, you create a new Env on the stack, that contains all of the formals and the arg, and then you eval whatever Expr was within it
<clever> so builtins.derivation is an ExprLambda, with arg = "drvAttrs", formats describes outputs (with a default) and that ... is present, and the body is an ExprLet
<clever> an ExprLet then contains an ExprAttrs and a body Expr, very close to `with { a=1; }; body`
<clever> vs `let a=1; in body`
<clever> `strict = derivationStrict drvAttrs` is then an entry in that ExprAttrs, that contains the `strict` symbol and an `Expr`
<clever> i believe it is the ExprApp function, which is the "" binary operator
<clever> think of it like how list1 ++ list2 is the ++ operator
<clever> and `func arg` is the "" operator
<clever> attempting to evaluate it later on, will run callFunction and pass it both `derivationStrict` and `drvAttrs`
<clever> the `drvAttrs` part, is done via maybeThunk, which is a performance thing
<clever> it will check the immediate scope to see if `drvAttrs` is in it, and if so, directly refer to it
<clever> but if not, it will create a thunk, that lazily searches up the scope chain to find it, at a later time
<clever> pie__: and in this case, its a primopapp, so it directly runs the c++ for it
<clever> next, is where the recursion starts to become tangled
<clever> line 10, it has 3 sets that are being merged with //
<clever> i believe it will get parsed like this: (a // b) // c
<clever> the parser turns that into an inner ExprOpUpdate on a/b, and then an outer ExprOpUpdate on inner/c
<clever> and this code will then grab pairs of key/value from both sets, and merge them together to create a new set
<clever> 1319 is where it decides to use the right side when keys conflict
<clever> and its only using keys, and copying the values (which can be thunks)
<clever> so the `a // b // c` returns a single set that contains all keys from the 3 sets, and whatever thunks those keys pointed to
<clever> 25 is a thunk, that will eventually contain `[ (outputToAttrListElement "out") ]`
<clever> (that 25)
<clever> which further turns into, [ { name = "out"; value = thunk; } ]
<clever> listToAttrs then converts it into { out = thunk; }
<clever> so you have, drvAttrs // { out = thunk; } // { all = thunk; inherit drvAttrs; }
<clever> which could be simplified to, drvAttrs // { out = thunk; all = thunk; inherit drvAttrs; }
<clever> that thunk, contains every key from the original result
<clever> so you can think of it like
<clever> (rec { a = drvAttrs // { out = a // {stuff}; all = thunk; inherit drvAttrs; }).a
<clever> the keys of a dont depend on the value of a.out
<clever> so you can compute a // {stuff} without knowing the full value of a.out
<clever> pie__: and this makes iqubic's wall of text look like a spec of dust :P
<pie__> clever, heavy shit man ;D
<pie__> ill probably have to get back to this later, but i appreciate it
pie__ has quit [Ping timeout: 258 seconds]
<eyJhb> Holy hell clever
<ar> now that's quite an elaborate explanation
endformationage has quit [Ping timeout: 258 seconds]
pie__ has joined #nixos-chat
<pie__> inb4 not elaborate enough
Jackneill has joined #nixos-chat
Jackneill has quit [Remote host closed the connection]
Jackneill has joined #nixos-chat
Jackneill has quit [Remote host closed the connection]
Jackneill has joined #nixos-chat
Jackneill has quit [Remote host closed the connection]
Jackneill has joined #nixos-chat
Jackneill has quit [Remote host closed the connection]
Jackneill has joined #nixos-chat
jasongrossman has joined #nixos-chat
Synthetica has joined #nixos-chat
__monty__ has joined #nixos-chat
cjpbirkbeck has quit [Quit: Leaving]
jasongrossman has quit [Quit: ERC (IRC client for Emacs 26.2)]
jasongrossman has joined #nixos-chat
jasongrossman has quit [Client Quit]
<Taneb> I'm not enjoying using KDE, I should change my desktop environment on my laptop before ZuriHac
jasongrossman has joined #nixos-chat
<Taneb> Maybe I should get back into XMonad...
<Synthetica> Sway! :D
Synthetica has quit []
Synthetica has joined #nixos-chat
<pie__> Taneb, my biggest problem with kde so far, not having used anything else, is that i cant figure out how to configure it from files properly -_-
<sphalerite> Taneb: yay more zurihac-goers
<Taneb> \o/
<sphalerite> I'm still trying to find a place to stay x)
<Taneb> Ouch
<pie__> Taneb, i...i didnt know zurihac is haskell D: i just thought its some generic hackaton
<pie__> now im sad
<pie__> because someone asked weeks ago if im giong
<pie__> and i said nahhh didnt plan to
<Taneb> pie__: well, there's always next year!
<Taneb> Or last minute plans ;)
<pie__> :C nyeh, next year ill be poor lol
<pie__> i think this week is going to be too difficult for that :D
<Taneb> That's a shame :(
<Taneb> sphalerite: have you tried asking on the ZuriHac Zuri-Slack? There's an accomodation channel there
averell has quit [Ping timeout: 272 seconds]
<Taneb> I'm staying at an AirB&B in Rüti with some coworkers
<kraem> to spin of (at a rather more simple example) on what pie__ asked; understanding nix code in the repos: I often find an option at https://nixos.org/nixos/options.html# and find myself wanting to understand what happens backend-wise when activating something but don't know how to proceed.
<pie__> kraem, if you click on an option it tells you where it's defined
<kraem> take `programs.chromium.homepageLocation` for example, if i click on the nixos/modules/programs/chromium.nix where its defined i can see default and example values - but how does this option actually set the homepage?
<kraem> pie__: yeah but i can't get my head around where to go next :)
<pie__> kraem, its used somewhere else, i forget the name of the thing but theres a section in modules for the actual implementations of the things that use these settings (scroll down?)
<pie__> kraem, right, the config =, options are defined in "options" and are used in config
<gchristensen> so, snapd is neat
<Shados> gchristensen: how so?
<gchristensen> it applies sandboxing to applications at run-time -- so they have to declare what they require ahead of time
<gchristensen> for example Cheese (webcam application) has to say it needs the webcam, and then the user will have to confirm that indeed cheese should get a webcam
<kraem> pie__ gchristensen thank you - i'm gonna reread the nix pill series to try to grasp how everything is working :) any other resource you recommend? or easy code snippets to look at?
<pie__> to be fair i never did manage to get myself to do the nix pills
<pie__> not sure why
<gchristensen> the pills don't really talk about the module system
<infinisil> I think somebody should write a new pill-like tutorial series that focuses more on nixpkgs
<infinisil> Although, the nixpkgs manual has a lot of info on that already
<Shados> gchristensen: So pretty much like most sandbox systems, but with capabilities requests forwarded to the user for approval...?
<gchristensen> and at run time
<__monty__> Sounds like smartphone permissions?
<gchristensen> yeah
<joepie91[m]> makes me wonder exactly how these permissions are enforced
<__monty__> I'd expect containers or cgroups or whatever the underlying tech is.
<joepie91[m]> right, the thing is that it's quite involved to make those contain stuff securely
<joepie91[m]> moreso when X11 is involved
<Shados> joepie91[m]: as a complete guess, seccomp
<Shados> ...huh, apparently both apparmor and seccomp are used
<Shados> so I was one-half right?
<__monty__> Anyone know how well bubblewrap sandboxes? https://github.com/projectatomic/bubblewrap
<sphalerite> Taneb: well that channel gave me the idea of camping, so that's a good start :D thanks
<sphalerite> infinisil: are you going to zurihac?
<joepie91[m]> Shados: hmm, right.
<infinisil> sphalerite: nope
<sphalerite> aw, why not? :D
<joepie91[m]> __monty__: arch wiki claims "Bubblewrap is a lightweight setuid sandbox application developed from Flatpak with a small installation footprint and minimal resource requirements."
<joepie91[m]> so, similar to flatpak maybe?
<infinisil> sphalerite: I didn't even know about it until recently
<sphalerite> __monty__: I know some people in the nix community use it quite extensively, can't remember who though
<sphalerite> infinisil: I registered yesterday, you might still get a spot if you want!
<infinisil> Hmm nah I'll pass, maybe next year
<infinisil> I'll probably have plans next weekend for something else as well
<sphalerite> ah fair enough
<__monty__> I'm definitely going next year too.
<__monty__> Also the FP days in NL.
<sphalerite> and nixcon ;)
<sphalerite> __monty__: where are you from again? Was it France?
<__monty__> I'm from the country that raised Dr. Evil : )
<__monty__> Adding nixcon to the agenda if it's close again.
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 268 seconds]
<infinisil> ,nixcon
<{^_^}> NixCon 2018 will be in London on 25-27 October, https://nixcon2018.org/
<pie__> its almost here */me clamors for someone to get a website up and do a CFP*
<pie__> arghrghrghrghrhgrgh :P
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-chat
<infinisil> ,nixcon = NixCon 2019 will be in Brno, Czech on 25-27 October, https://discourse.nixos.org/t/nixcon-2019-location/1259
<{^_^}> nixcon redefined, was defined as NixCon 2018 will be in London on 25-27 October, https://nixcon2018.org/
drakonis_ has joined #nixos-chat
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-chat
<andi-> infinisil: why not link to the website instead? https://2019.nixcon.org/
<__monty__> Thanks, will have to see if the logistics work out.
drakonis_ has quit [Ping timeout: 252 seconds]
<gchristensen> # ls /snap/bin/
<gchristensen> hello-world hello-world.env hello-world.evil hello-world.sh
<joepie91[m]> do we have some sort of AppArmor integration in NixOS yet?
<joepie91[m]> or well, nixpkgs
<gchristensen> Nix doesn't have a runtime
<infinisil> andi-: Ahh, didn't know the website was up
<infinisil> It's not mentioned in discourse..?
<infinisil> ,nixcon = NixCon 2019 will be in Brno, Czech on 25-27 October, https://2019.nixcon.org/
<{^_^}> nixcon redefined, was defined as NixCon 2019 will be in Brno, Czech on 25-27 October, https://discourse.nixos.org/t/nixcon-2019-location/1259
<joepie91[m]> gchristensen: not sure how to interpret that
<gchristensen> snap does this magic because it has a runtime which is wrapper the execution of everything snap provides
<gchristensen> Nixpkgs could, indeed, produce wrappers like that (firejail for example)
<joepie91[m]> right, that's the sort of integration I was thinking of
<gchristensen> gotcha
<joepie91[m]> but there's no such thing yet?
<__monty__> Would be cool if nix provided an optional generic wrapper, based on bubblewrap or firejail or similar.
<joepie91[m]> yeah
<joepie91[m]> something like "give me this package, but restrict access to _______"
<joepie91[m]> this seems like exactly the sort of thing that could be a 'system seller' for NixOS :)
<infinisil> Yeah that would be awesome
<gchristensen> if `derivation` learned about runtime capabilities
<etu> You could define containers
<joepie91[m]> I generally feel like so far, much of the focus in NixOS/nixpkgs has been on reaching package/feature parity with other 'traditional' distros, and not so much on providing end-user 'killer features' that only a system like Nix could reasonably provide
<etu> But it's not the same thing
<sphalerite> idk about bubblewrap but I'm not all too enthusiastic about firejail
<joepie91[m]> feels like wasted potential, in a way
<Shados> I'm not sure how much this would need "Nix" support per se -- as long as you have bubblewrap or w/e setuid program in a trusted source like nixpkgs, then the actual wrapping of programs can be implemented within nixpkgs or another package set, yes?
<pie__> andi-, wtf there is a website now?
<joepie91[m]> yes
<pie__> andi-, was anyone notified? :P
<pie__> spam it on the discourse thread! :PP
<pie__> (thats the only source of information id seen anywhere yet...)
<Shados> joepie91[m]: so start writing a set of capabilities/security profiles for derivations :P
<joepie91[m]> Shados: with "that only a system like Nix could reasonable provide", I'm not so much referring to first-class sandboxing support in the Nix runtime, but rather to the general (end-user) abstraction/composition/etc. characteristics of the language and runtime, that make things like "run X but with constraints Y" and "run X with complex WINE dependencies and configuration Y" relatively trivial to implement and use as an
<joepie91[m]> end user, without them having to learn an entirely new configuration system
<Shados> Ah
<joepie91[m]> and I feel like we're not capitalizing on that enough as a project
<pie__> joepie91[m], ive also gone on about this and i think someone probably does it every few days xD
<pie__> re: runtime capabilities
<joepie91[m]> pie__: yes, I was just about to mention you :)
<pie__> not sure if i actually started collecting links but theres some github issues
<joepie91[m]> lol
<joepie91[m]> pie__: I feel like you also generally share that feeling of "we should do more with the unique capabilities" :P
<pie__> joepie91[m], lol just reading the wine comment now
<pie__> joepie91[m], well tbf im just like LETS DO ALL THE THINGS
<Shados> joepie91[m]: so go do more :P
<joepie91[m]> lol
* pie__ sticks tongue out at Shados nyeh :P <3
<joepie91[m]> Shados: yes, it's a thing I'm working on. but the lacking documentation is presenting itself as a significant barrier :)
<joepie91[m]> so it involves a lot of yak shaving
<adisbladis> re capabilities: We're not even using systemd's sandboxing capabilities enough
* pie__ gives Shados another shovel
<pie__> start diggin son
<joepie91[m]> Shados: this is my most recent in-progress yak: https://gist.github.com/joepie91/ca811a0c8d8e085da787be36072daf8d
<pie__> if you can tell others to contribute more you can do it yourself ;D
<Shados> pie__: Mate, I started attempting to "do more" a couple of months back, and now I'm about 5 or 6 levels of recursion deep into fixing dependencies of one kind or another. I'm too deep in this hole for a shovel to help.
<Shados> I'm using the term "dependency" losely here
<pie__> Shados, completely honestly, i figured
<joepie91[m]> Shados: another yak being the papercut thread
<Shados> Because at one point I got annoyed at editor things and now I'm down that hole...
<pie__> your name is familiar for some reason and iirc you posted a nice explanation on the papercut thread of somehing
<pie__> Shados, i guess you jsut have to keep digging till you come out the other side :D
<joepie91[m]> anyway, I need to brb groceries
<pie__> i should get lunch...
<pie__> joepie91[m], im also afraid we're just going to drown under the mass of documentation
<Shados> Speaking of familiar, I know joepie91[m] from another context (vpsboard)
<pie__> we're building a configuration layer for the entire fucking world here ;~;
<pie__> i keep telling myself i need to go read an expert systems textbook...
<pie__> we need to get some experienced expert systems people in here
<pie__> maybe they can alleviate some foot shooting, not that id know
endformationage has joined #nixos-chat
<pie__> andi-, cross posting channels by accident. i quite like the zurihac page https://zfoh.ch/zurihac2019/
<pie__> the whole drowning under your own weight is why principles are important i guess :(
<pie__> thank goodness for functional programming
<pie__> gchristensen, any news on office hours? :)
<gchristensen> I'll post something shortly :)
<pie__> yay \o/
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-chat
<Synthetica> Does anyone have a good default .gitignore for Nix? If so, could they file a PR at https://github.com/github/gitignore ?
<etu> .result and .result-* for sure :)
<etu> Not sure about more things straight up like that
<kraem> any input as to why i get to build with this https://bpaste.net/show/76a5bf3323fe in my configuration.nix once? the service starts successfully when i boot up and the interrupt is disabled - when i try to nixos-rebuild the service fails for some reason though
* joepie91[m] returneth
<joepie91[m]> Shados: oh, huh, did you use the same nickname there? I don't recall it from there :P
<joepie91[m]> pie__: what do you mean with 'drown under the mass of documentation'?
<kraem> ah i figured it out - it's already disabled so the "disable" argument is invalid - thoughts on how to fix that?
<pie__> joepie91[m], there's still a lot of it and its all over the place, even if it doesnt have everything :P
<joepie91[m]> pie__: right, so that's a problem that extends beyond the documentation, there's no overarching Grand Strategy that encompasses all of the UX-related work (including docs) that's going on... this was part of my motivation for the papercut thread, actually - to shake loose some of the institutional knowledge (both problems and solutions), see what falls out, and inventory where we are on an ecosystem scale
<pie__> cool
<joepie91[m]> in that context, I am already declaring the papercut thread a success :P
<joepie91[m]> lots of stuff has fallen out already
<joepie91[m]> (though more is better, ofc)
<joepie91[m]> also I just realized that I'm doing the "being an information hub" thing again <.<
<joepie91[m]> difficult habit to shake lol
<pie__> not sure what you mean by that but it doesnt sound bad
<pie__> well except for you maybe :p
<joepie91[m]> pie__: I have a habit of accumulating information, talking to lots of people, reading lots of misc stuff that has no clear place in the bigger picture, and then dispensing information and/or "this is who you need to talk to" suggestions
<joepie91[m]> after building a bigger picture
<joepie91[m]> it's useful, but it also tends to turn my head into one giant todo list
<pie__> are you me (i havent been able to actually like...do it yet though)
<joepie91[m]> so I probably need to outsource more of that to written materials lol
<joepie91[m]> that is a question I have been asking myself repeatedly over the past few months :D
<joepie91[m]> pie__: I got most of my practice in that area during the whole anonops era
<joepie91[m]> trial by fire, so to say
<joepie91[m]> lots of stuff going on, f ast
<joepie91[m]> fast*
<pie__> oh no. i cant keep up.
<joepie91[m]> matter of practice :)
<joepie91[m]> pie__: anyway, that gist I linked for example, is an attempt to accumulate information from many sources into a single "objective -> solution" listing
<joepie91[m]> nixpkgs source, nix/nixos/nixpkgs manuals, issue threads, IRC conversations, and so on
<pie__> i keep thinking im a crappy librarian
<joepie91[m]> I've been considering reaching out to Actual Librarians though
<joepie91[m]> not just for Nix stuff
<pie__> yeah?
<joepie91[m]> but in general, on documentation / information related matters
<pie__> right
<pie__> doesnt seem like a bad idea
<pie__> question is what kind of librarian is the right one to ask
<cransom> i can't think of another group of people that would be happier to nerd out on documentation and information organization.
<joepie91[m]> exactly!
<joepie91[m]> except maybe documentation writers
<joepie91[m]> but those are a dying breed
<pie__> i mean i dont have much exposure to librarians but do they generally have documentation engineering experience :V
<joepie91[m]> because who hires documentation writers anymore... :|
<pie__> am i asking the wrong question
<joepie91[m]> pie__: well, the job of a librarian is basically analyzing, classifying, and conveying / directing towards information
<joepie91[m]> that's a significant part of what documentation entails
<joepie91[m]> not all of it, but still quite a bit
<pie__> get nixos more money, get a resident librarian :V
<pie__> (or make a crappy search engine)
<joepie91[m]> that might genuinely not be a bad idea
<pie__> have i daydreammed to you about that yet
<pie__> i have a document...
<cransom> they probably dont' know the answer, but they usually have 17 different things to point you at to find the answer.
<joepie91[m]> right
<joepie91[m]> also, I am more and more realizing that my "information hub" thing seems to translate to "I'm an accidental librarian" <.<
<pie__> joepie91[m], i f***in need a search engine for this cmon https://bpaste.net/show/424016d72aef
<pie__> (which is good but youre never gonna find it)
<joepie91[m]> yep
<joepie91[m]> pie__: search engine for that kind of stuff might be a good first pass, actually
<joepie91[m]> have you considered making one :P
<pie__> joepie91[m], i have no tiiiime to figure out how to make a search engine right now :'''(
<pie__> want to do it pretty bad tho
<pie__> someone else would have to host though :p
<joepie91[m]> pie__: do you speak PostgreSQL?
<pie__> no i dont
<joepie91[m]> hmm
<pie__> i can kind of sql but not really
<pie__> isnt elastic search the hotness?
<joepie91[m]> pie__: do you understand the basic concepts, tables, how to structure them, etc.?
<joepie91[m]> yes, but it is not necessarily the right option
<joepie91[m]> since PostgreSQL has pretty good full-text search capabilities apparently, and is much less maintenance-intensive
<joepie91[m]> (and much more accessible if you already know how to SQL)
<pie__> yeah i can kind of sql.
<joepie91[m]> pie__: I'd recommend just grabbing the PostgreSQL docs and looking at the full text search section then, and seeing if it looks doable to you
<joepie91[m]> it'll probably be easier than you expect :P
<pie__> nyeh :< ok maybe
<pie__> half of it is probably going to be figuring out how to ingest the data and plugging together runner stuff and idk
<joepie91[m]> totally unrelated
<joepie91[m]> I have this thing
<joepie91[m]> multiple strangers on the street have now randomly complimented me on how nice it is
<joepie91[m]> I fully expected it to be seen as nerdy (in the negative sense), but apparently not
<joepie91[m]> pie__: right, yeah. for what it's worth, mediawiki can do XML dumps
<joepie91[m]> nixos package/option search on the site is just a pile of JSON
<pie__> joepie91[m], i probably got it wrong https://imgflip.com/memegenerator/Ancient-Aliens
<pie__> joepie91[m], i mean https://i.imgflip.com/336x3z.jpg
<joepie91[m]> danish? :P
drakonis_ has joined #nixos-chat
<pie__> joepie91[m], i guess all this R pain im going through right now might be helpful for the data stuff
<Shados> to manage the project of setting up the more complex one....
<Shados> joepie91[m]: yep, same nick. I wasn't super active though, don't think I had more than a few hundred posts, and was usually idle in the irc. Re: "tends to turn my head into one giant todo list" obviously the first item on the list should be "set up a project management tool that can encompass all of it cleanly". Of course, then you'll need to bootstrap this complicated project with another todo list item to set up a simpler project managent tool with which
<pie__> on the other hand for that ingestion maybe i should just python or haskell
<pie__> i heard taskwarrior is pretty good
<joepie91[m]> pie__: heh, dunno, can't say anything about that. all my data ingestion code is JS, almost without exception
<joepie91[m]> there's a lot of readily available data processing tooling in JS
<joepie91[m]> for non-scientific data anyway
<pie__> i dont js :V mostly by coincidence probably, partly by language-hating
<pie__> (js actually seems kind of neat in some ways)
<pie__> (but anyway)
<joepie91[m]> Shados: I have given up the search for a task management system several years ago :D
<pie__> i think js has the kitchen sink at this point
<joepie91[m]> frankly JS is super well suited to this sort of usecase, with one exception: the garbage collection
<Shados> joepie91[m]: I'm slowly setting up a goddamn enterprise resource planning tool (odoo) to do the job of personal project management x.x
<joepie91[m]> which can get annoying with large volumes of data
<joepie91[m]> but then I really do mean large
<joepie91[m]> oh, and current stream implementations are kinda sucky but I am just rolling my own to deal with that, so :P
drakonis has quit [Ping timeout: 250 seconds]
drakonis1 has joined #nixos-chat
<joepie91[m]> Shados: I jumped ship before reaching that point of despair, and reverted to hand-written notes and in-place FIXME comments and text files
<joepie91[m]> it doesn't work great, but with a maintenance cost of nearly zero, it's difficult to beat on the cost:benefit ratio
<Shados> And on the top of becoming a librarian... I moved a couple of months ago, just tonight got around to shelving books on 2/3 of my bookshelves >.>
<Shados> joepie91[m]: Well, once I have sufficiently Nixified a bunch of annoying odoo things the maintenance cost will be near enough to zero, but getting there is not super trivial
drakonis_ has quit [Ping timeout: 250 seconds]
<pie__> and so we come to the great benefit of nixos (hopefully) \o/
<pie__> can we run sandstorm yet
* pie__ looks for package
<pie__> no package
<Shados> The main thing I have to deal with is setuptools-odoo and automatically generating expressions for odoo community association addons, which is sitting at like 50% done
<Shados> Ah, yeah, I have setuptools-odoo working, and just need a sane way of doing the oca addon expressions. Which will involve some custom fetch tool; they have this weird setup where they have a bunch of semi-related addons in a single repo, rather than either repo-per-addon or all-addons-in-one-repo, and then also they do a maintined branch per supported odoo version or something... oddball setup.
<Shados> pie__: papercut: you can't be sure there's no package without a recursive grep through a nixpkgs checkout, because the package search tools aren't consistent about package subsets :P.
<pie__> Shados, :p
<pie__> ye
<pie__> also soemtimes packages get removed
<pie__> maybe you want some outdated thing from 10 years ago! xD
<Shados> (amarok 1.4, orz)
<Shados> I still don't understand how amarok 2 went so wrong. And getting 1.4 to run would be non-trivial, even with Nix and a sufficiently old nixpkgs checkout, because it has the usual KDE runtime clusterfuckery
<joepie91[m]> pie__: :)
<pie__> joepie91[m], re: librarianing, i ask questions and write down lots of cricket chirping :p
<pie__> joepie91[m], no joke though once i get my personal site up im going to be putting up bibliographies, and ive been wanting to write a maltego clone for a while :V
<joepie91[m]> pie__: hello, fellow accidental librarian :P
<pie__> entirely unsure how accidental
<joepie91[m]> lol
<joepie91[m]> welp
<joepie91[m]> I fucked up copying my project dir to my SSD
<joepie91[m]> time to start over....
* joepie91[m] waits another hour or two
<joepie91[m]> some day, I will get around to that new NixOS install...
drakonis1 has quit [Ping timeout: 252 seconds]
drakonis1 has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis1 has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 258 seconds]
<joepie91[m]> uh
<joepie91[m]> Discourse just fell over
<joepie91[m]> ah, it's back
<joepie91[m]> briefly got a 502 and partially loaded pages
<pie__> joepie91[m], i edited my post, dunno if that shows up
<joepie91[m]> yeah
<pie__> ok im off for a bit
<joepie91[m]> lol
<joepie91[m]> pie__: now we just need integration of the two
<joepie91[m]> (* not a todo list item)
pie__ has quit [Ping timeout: 258 seconds]
<joepie91[m]> the nixos-install manpage lies
<joepie91[m]> it claims that there exists a -j flag
<joepie91[m]> > error: unrecognised flag '-j'
<{^_^}> error: syntax error, unexpected $undefined, expecting ')', at (string):254:26
cjpbirkbeck has joined #nixos-chat
<elvishjerricco> Just learned about AMD’s StoreMI... Why are there so many attempts at doing SSD caching at the hardware level? Just let the software do it...
<ar> elvishjerricco: it actually is a windows-only software solution, iirc
<joepie91[m]> I have the same question about hardware RAID cards lol
<ar> elvishjerricco: IIRC it's just some generally available "ssd cache" software, that's been rebranded and provided free of charge (it normally costs something between $20 and $50, but i can't remember the name)
<sphalerite> joepie91[m]: doesn't it make sense for e.g. offloading parity calculations from the CPU?
<joepie91[m]> sphalerite: CPU time consumed by that is negligible
<joepie91[m]> (in practice)
<sphalerite> ok
<joepie91[m]> with md-raid anyway :P
* sphalerite wonders if a ZFS accelerator would make sense
<cransom> back in the day, hardware assist for storage was a necessity. not so much currently, but doing software raid was suicide for performance.
<ar> sphalerite: xors (used in raid5/6) aren't expensive, mirrors and stipping are cheap
<cransom> have crypto operations in hardware on cpu now is pretty killer.
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 252 seconds]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 252 seconds]
drakonis_ has quit [Ping timeout: 250 seconds]
drakonis has joined #nixos-chat
drakonis_ has joined #nixos-chat
<gchristensen> see also why the FPU stuff in the kernel was such a crisis
<sphalerite> gchristensen: I'm guessing joepie91[m] means the CPU time is negligible on a modern CPU which has hardware acceleration for that sort of thing
<gchristensen> right
<gchristensen> afaik, in order to use some of those you need to coordinatewith the kernel
<sphalerite> yeah, and that's why we have the funny patch from Mic92 in our kernel now :D
<gchristensen> right.
<gchristensen> and hopefully other distros will too
<gchristensen> yea
<gchristensen> me too ^.^
<__monty__> joepie91[m]: Don't tease us like this next time. Expected to finally be vindicated in warning people off of giving up irc for discord.
<joepie91[m]> __monty__: huh?
* joepie91[m] is confused
<drakonis> let's not use discord ty
<ivan> discourse != discord
<drakonis> we shouldn't have dropped the mailing list for discourse tho
<drakonis> oh and apparently bcachefs will be upstreamed?
pie__ has joined #nixos-chat
<gchristensen> apparently Travis CI is going to support POWER
<__monty__> Apologies, guess I just wanted Discord to be down : )
<joepie91[m]> oh
<joepie91[m]> lol
<joepie91[m]> I definitely don't use Discord
<joepie91[m]> leaving here for later filing to papercut thread: CUPS scheduler service suffered from the "need to rebuild twice to make the service start" thing on a fresh system
<joepie91[m]> also my hydra-init service is inexplicably trying to create a user
<joepie91[m]> and then complaining that it already exists
<joepie91[m]> oh, postgresql user, nevermind
drakonis has quit [Ping timeout: 245 seconds]
drakonis has joined #nixos-chat
drakonis has quit [Ping timeout: 244 seconds]
drakonis has joined #nixos-chat
<joepie91[m]> well, my new NixOS install seems to be... working?
<joepie91[m]> and is fast
<joepie91[m]> definitely still a few papercuts :P
drakonis has quit [Read error: Connection reset by peer]
drakonis_ has quit [Ping timeout: 258 seconds]
cjpbirkbeck has quit [Quit: Leaving]
drakonis has joined #nixos-chat
averell has joined #nixos-chat
Synthetica has quit [Quit: Connection closed for inactivity]
<joepie91[m]> ,locate adb
<{^_^}> Found in packages: msf, axis2, oh-my-zsh, bash-completion, python27Packages.pwntools, python27Packages.adb-homeassistant, python37Packages.adb-homeassistant
<infinisil> I just spent like 30 minutes trying to debug why Nix's version of a source is not the same as the one I download manually
<infinisil> Now I just noticed, Nix has version, while I've been downloading the latest version which is
<infinisil> Damn version numbers
<drakonis> ,locate ed
<{^_^}> Found in packages: ed, atom, povray, busybox, bsdgames, sonic-pi, atom-beta, plan9port, glibc.debug, openssl.debug, aws-sdk-cpp.debug, glibc_memusage.debug
<drakonis> oh nice.
<drakonis> it exists...
<drakonis> time to fiddle with the standard editor
<eyJhb> I like how atom is a part of the locate
<eyJhb> ed <3
<infinisil> ,locate bin ed
<{^_^}> Found in packages: ed, busybox
<eyJhb> aww :(
<drakonis> ,locate bin doom
<{^_^}> Found in packages: doomseeker
<drakonis> ,locate bin gzdoom
<{^_^}> Found in packages: gzdoom
<drakonis> well that's neat
<samueldr> ,locate
<{^_^}> Use ,locate <filename> to find packages containing such a file. Powered by nix-index (local installation recommended)
<samueldr> hm, thought it had a bit about `bin` in the help text
drakonis has quit [Ping timeout: 245 seconds]
drakonis has joined #nixos-chat
<{^_^}> #63000 (by joepie91, 49 seconds ago, open): sidequest: init at 0.3.1
<joepie91[m]> I like this PR number
<samueldr> `git format-patch ... | git am --directory subdir` is a good way to transplant commits from projects being merged into a monorepo while the team continued working on the projects being unified
<samueldr> loses merges, but in this case it's not an issue
<Ralith> is there some reason that app can't be built from source?
<gchristensen> hell yeah joepie91[m]!
<samueldr> oof, it'd look like you'd need to be able to build the headset-side apps too
<samueldr> maybe it's possible to build the desktop app from source, while still using the release for the headset, but at that point prebuilt artifacts are already in use
<joepie91[m]> Ralith: that tends to quickly become nightmarish with Electron-based things, and there'd not be much point since this runtime-downloads other stuff anyway
<joepie91[m]> (by design)
<joepie91[m]> it's certainly not a perfect package, but better than none at all :)
<Ralith> oh, it's javascript? yeah that's a nightmare
<Ralith> electron isn't really the problem, you can just pull in the nixos electron package (and thereby work around the annoying duplication of binaries!), but javascript is always hell
<Ralith> I maintained a riot desktop package for a whole and ugh
<Ralith> shudder
<Ralith> maybe 1 in 4 releases built cleanly, and only after aggressive trial and error
veske has joined #nixos-chat
veske has quit [Quit: This computer has gone to sleep]
<joepie91[m]> Ralith: the problem isn't javascript :)
<joepie91[m]> the problem is the extra native libraries that it pulls in
<joepie91[m]> that's where things usually get iffy
<Ralith> javascript is always a problem, if perhaps not the problem
<Ralith> you mean it downloads native code from the internet when ran?
<Shados> It's an app store, which means it itself is basically a package manager, so that's not super surprsing
__monty__ has quit [Quit: leaving]
<joepie91[m]> Ralith: yes, and please stop the language bashing
endformationage has quit [Quit: WeeChat 2.4]
<joepie91[m]> sheesh, IRC bridge is laggy today
<samueldr> :/
<joepie91[m]> samueldr: only just now getting your messages from like 01:23 hours ago
<samueldr> hm? so Ralith is on matrix I guess?
<samueldr> and matrix pushes messages between users directly instead of going through the bridge?
<samueldr> or am I misunderstanding something?
* samueldr waits for the reply in 1h23 :)