gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
<samueldr> I still can't believe it's not butter^W^W possible to do this lol https://github.com/NixOS/ofborg/blob/0ea0c736efd193b097d515ac791bda0166a4f831/ofborg/src/outpaths.nix#L1-L3
<gchristensen> haha
<gchristensen> btw Ralith it *is* in the spec
<Ralith> point me at the section? I scanned around a bit but couldn't find anything
<gchristensen> Explicit typing is denoted with the bang (!) symbol. Application types should include a domain name and may use the caret (^) to abbreviate subsequent types.
<gchristensen> also in the current spec https://yaml.org/spec/1.2/spec.html
<Ralith> "type annotations" is a looooong way away from arbitrary code execution
<gchristensen> yeah but we now know how it went from a type annotation from code execution
<Ralith> oh, I didn't read up
<Ralith> hm
<Ralith> gchristensen: still not seeing the link
<gchristensen> well yaml decodes to plain ruby/python/etc types, so what is a possibly natural-feeling way to implement these explicit types? create the object and pass the typed data in as its constructor
<Ralith> you could say the same for any extensible encoding scheme, no?
<gchristensen> I'm talking about yaml
<Ralith> yeah, I'm just trying to understand the mindset that let this happen
<gchristensen> I think I just explained a very feasible way to get there
<Ralith> you did
<Ralith> it just implies a worryingly general error
<gchristensen> yeah
waleee-cl has quit [Quit: Connection closed for inactivity]
Drakonis has joined #nixos-chat
ajirx has joined #nixos-chat
endformationage has quit [Ping timeout: 244 seconds]
ajirx has quit [Quit: Leaving]
ajirx has joined #nixos-chat
jtojnar has quit [Quit: jtojnar]
ajirx has quit [Remote host closed the connection]
ajirx has joined #nixos-chat
cjpbirkbeck has quit [Quit: Quitting now.]
ajirx has quit [Remote host closed the connection]
__monty__ has joined #nixos-chat
<eyJhb> `http2: server sent GOAWAY and closed the connection` aww :(
<etu> eyJhb: It doesn't like you? :(
<eyJhb> etu: Nope :( Guessing 100 threads sending a total of 5.000 requests times threeis too many
<eyJhb> three is*
<eyJhb> Wondering how Gitlab will feel when we do that times two? Plus uploading lets say.. 7.6 GB of data
<eyJhb> I feel like I am not going to be popular
<__monty__> Gitlab's not exactly known for dealing well with large amounts of data elegantly. At least that's the impression I've gotten.
<__monty__> Self-hosted instance maybe?
<manveru> does it do lfs?
<eyJhb> __monty__: using the issue system, so it is going to be around 1.5 mb pr. issue, and I am creating 5100 issues
<eyJhb> And I have no clue what the rules are for that
<manveru> hmm, wrong topic :D
<eyJhb> Could also just hotlink to the images on Tumblr, but don't know Tumblrs policy for that
<eyJhb> Yeah :D I am also very vague, so I don't blame :D
<eyJhb> So.. Hotlinking or uploading, any opinions? It is for the plaintext offenders
<__monty__> Pretty sure gitlab's not gonna like it. Try uploading at 100-or-less per hour or something.
<manveru> holy crap, what a list...
<__monty__> Actually, even better would be to contact gitlab support. Explain your situation, ask what the limits are or how to schedule to make it easier on them.
<manveru> yeah
<manveru> i really shouldn't be surprised, but... man
<eyJhb> But MANY of these websites are OLD. And there has been no way of marking them as resolved....
<eyJhb> Which is kinda sad
veske has joined #nixos-chat
<manveru> there is https://plaintextoffenders.com/reformed ... not sure that counts?
<eyJhb> Did't notice that, I might use that to close issues after import
<__monty__> But can you trust them never to do it again?
<eyJhb> Nope, but then it can easily be reopened
ajirx has joined #nixos-chat
<eyJhb> Don't know how to feel about that
<manveru> what are you even trying? building a new website for this?
<eyJhb> Basically yeah, building a static website based on Gitlab issues instead of that Tumblr hell
<manveru> sounds fun :)
<eyJhb> Hoping to set it up using Gitlab CI, so that it requires close to 0 interaction from me
<manveru> http://mpickering.github.io/posts/2019-06-24-overkill-or-not.html also just wrote about doing something like that
<manveru> guess you also use haskell based on the error message?
<manveru> ah, that's go
<eyJhb> Yeah sorry, I am a sucker for Go :p
<manveru> hey, i don't mind go :)
<manveru> can't stand the `nil` thing, but i wrote a ton of code in it anyway
<joepie91> pie_: not sure I understand what exactly you mean with 'interfaces'
<joepie91> like, conceptually
<joepie91> Ralith: the reason for yaml allowing arbitrary code execution, is because for a while it was meant for a similar purpose as pickles in Python and serialize in PHP; as a language-native trusted serialization format that could persist application state to disk and recover it, with ~full language support
<joepie91> (afaik)
<joepie91> but unlike pickles and serialize, YAML started being used outside of Ruby-land
<joepie91> it's one of those "maybe you shouldn't assume in what context this is going to be used, in your security model, because there's gonna be tears" cases :)
<__monty__> And here's me thinking the code execution was added after the fact because it turned out not to be powerful enough for the puppet configuration management usecase.
<manveru> i thought YAML started in perl?
<joepie91> I might be wrong!
<joepie91> but afaik it was originally a Ruby-native thing
<joepie91> I'm definitely going from memory here though :)
<manveru> nah, _why built a YAML library a bit after the spec was released, if my memory servers right
<manveru> *serves
<joepie91> seems like I did misremember!
<joepie91> can't help but feel like maybe this wasn't the best demonstration of "breaking free of angle brackets", considering the parser edge cases...
<manveru> lol
<manveru> yeah... it feels like a phyrric victory
pie_ has quit [Ping timeout: 252 seconds]
<manveru> i remember using YAML::Store a bunch when i was just learning ruby
<manveru> who needs databases anyway
<joepie91> man, this is too good: https://www.youtube.com/watch?v=uyuHrcmeZmM
<eyJhb> Ohh tumblr.. Go away... Who the hell formats "August" as "Augu"...
<joepie91> eyJhb: uwu joke goes here
<eyJhb> :( Rate limit exceeded
<eyJhb> uwu?
<eyJhb> Guess time to do other stuff
<joepie91> nevermind :P
<joepie91> eyJhb: also, what rate limit did you exceed?
<eyJhb> joepie91: tumblrs. THey don't like my scraping
<eyJhb> Like I don't like the way they do, most things
<joepie91> ah
<joepie91> yeah, tumblr is... special
<eyJhb> E.g. months.. April (5 chars), August? Nope, not Augus, just.. Augu
<etu> eyJhb: Because commonly know abbrevs is for suckers, so Aug would not work :p
<eyJhb> Precisely. Also.. They do th, rd, nd, st
<eyJhb> I regret making this threaded, seeing as two threads reach the limit too
ajirx has quit [Remote host closed the connection]
ajirx has joined #nixos-chat
<eyJhb> 0.5 thread
<joepie91> eyJhb: fwiw, I think there's a few people in #datahoarder who have done tumblr scraping in the past
<manveru> maybe just get it from archive.org?
<eyJhb> I finally figured out, why they do "Augu", and I don't care to admit why :(
<eyJhb> Hmm, will look into it, if this fails. It is just the initial import, so I can just split it up into batches
<Drakonis> a relevant thing, since red hat will put down xorg in the near future
<__monty__> eyJhb: Is it for similarity to a naughty word or something?
<manveru> hmm, they want to replace pulseaudio too?
ajirx has quit [Ping timeout: 246 seconds]
<eyJhb> __monty__: nope, just me being stupid.. You can basically find out why from my pastebin :p
<Drakonis> manveru: for a while now actually
<Drakonis> they're also taking a swing at video too
ajirx has joined #nixos-chat
<manveru> first time i heard of it :)
<Drakonis> its going to be a key piece of the wayland stack
<manveru> basically been ignoring all those new developments until they support nvidia...
<manveru> or i can justify buying some new hardware
<Drakonis> they're supporting nvidia
<Drakonis> i'd just buy the new hardware though
<Drakonis> amd's got the goods now.
<__monty__> eyJhb: Ah, so *you*'re the ID-10t?
<Drakonis> i realized something now, pipewire replaces all the fiddling with applications from inside containers
<Drakonis> this is great.
<Drakonis> it also replaces JACK it seems.
<Drakonis> at least this will finally end the PRs aimed at offing pulseaudio on nixpkgs
<eyJhb> __monty__: maaybe
<etu> drakonis: you think? I think people will be upset about pipewire the same way people are upset about pulseaudio :p
<etu> It's change and all change is bad ;)
<Drakonis> its a drop-in replacement
<Drakonis> they wont even notice it this time
<Drakonis> apparently its a whole lot better than previous attempts
<etu> hehe, high promises
<etu> pulseaudio is a drop in replacement for alsa
<etu> always been
<etu> But then the kernel had super buggy alsa drivers
<joepie91> etu: I mean, the main reason people hated pulseaudio was because it was initially super buggy
<joepie91> constant glitches, pops, other audio artifacts
<joepie91> that kind of screwed its reputation from the start
<joepie91> (these weren't exaggerated issues, either; I got to use it fairly early on because I used opensuse, and it really was a very frustrating pile of audio issues)
ajirx has quit [Remote host closed the connection]
ajirx has joined #nixos-chat
<etu> joepie91: Yeah, I remember when it was put as default in ubuntu :)
<etu> joepie91: afaik it was mostly due to buggy kerneldrivers
<joepie91> whatever the reason, the bugginess was what put people off :P
<joepie91> so if pipewire can avoid that, I think they'll be fine
<Drakonis> it seems to already be doing quite well
<Drakonis> the only thing that sucks about pipewire right now is that none of the distributions ship the drop-in replacements yet
<Drakonis> so i can't see how it behaves
<etu> joepie91: If it's pulseaudio compatible. The kerneldrivers are fixed this time around. So less hassle there :p
<Drakonis> its modular...
<Drakonis> hm, apparently its already 4 years in
Synthetica has joined #nixos-chat
<eyJhb> It is 13.45, and I am considering going to bed... "400 {message: {error: Spam detected}}" - Gitlab... Me against the APIs I guess
<eyJhb> And basically doing a CSV import is somewhat useless - `CSV files must contain a header row where the first column header is title and the second is description. _If additional columns are present, they will be ignored._`
<colemickens> sounds like we should get a pipewire nixos module going
samueldr has quit [Ping timeout: 245 seconds]
<andi-> I'd love to see that. I read their website a few months ago and decided to not yet try to spent time on it.
samueldr has joined #nixos-chat
nckx has quit [Quit: Updating my GNU Guix System — https://guix.gnu.org]
monsieurp has left #nixos-chat [#nixos-chat]
nckx has joined #nixos-chat
Drakonis has quit [Quit: WeeChat 2.4]
pie_ has joined #nixos-chat
<pie_> what do you mena <samueldr> I still can't believe it's not butter^W^W possible to do this lol https://github.com/NixOS/ofborg/blob/0ea0c736efd193b097d515ac791bda0166a4f831/ofborg/src/outpaths.nix#L1-L3
<pie_> i dont follow <gchristensen> well yaml decodes to plain ruby/python/etc types, so what is a possibly natural-feeling way to implement these explicit types? create the object and pass the typed data in as its constructor
<pie_> joepie91, the problem is i dont _have_ a conceptual basis for the interfaces
<pie_> its just "i want to be able to screw this code into other code
<samueldr> pie_: "run" nix code like a bog standard script
<samueldr> e.g. ~/nixpkgs/ $ ~/Projects/ofborg/src/outpaths.nix
<pie_> or rather, library authors should be able to screw code into generic things (how many nixers does it take to screw in a light bulb jokes when?) through a consistent interface
<samueldr> and this runs the nix-env call exactly like ofborg
<pie_> samueldr, ah :D
<samueldr> self-contained, instead of needing something like a wrapper bash script
<samueldr> and one of the funnest part is the use of `--argstr path $PWD`
<pie_> samueldr, yeah i get whats going on there but didnt really get the $pwd
<pie_> i didnt stare at it too hard tho
<samueldr> most software will work with cwd being the cwd of the inheriting process, but nix has no concept of cwd, it all acts relative to files (which is good)
<samueldr> so, to make the invocation as a script work as one would expect, the nix-shell invocation uses $PWD which comes from the shell, which is just wherever you're cd'd
ajirx has quit [Remote host closed the connection]
endformationage has joined #nixos-chat
<eyJhb> 60 down, 5040 to go
Jackneill has quit [Ping timeout: 252 seconds]
Jackneill has joined #nixos-chat
buckley310 has quit [Remote host closed the connection]
veske has quit [Ping timeout: 248 seconds]
jackdk has quit [Quit: Connection closed for inactivity]
__monty__ has quit [Ping timeout: 268 seconds]
__monty__ has joined #nixos-chat
<adisbladis> colemickens: andi-: There is already a pipewire service?
<andi-> oh
<andi-> must have missed that
<adisbladis> etu: Pipewire is still a long ways to go imho.. Do they even have a story for bluetooth audio for example?
<colemickens> Interesting. I'll have to give it a shot.
<gchristensen> I fonud a case when deploying everything with iPXE kinda sucks
srk has quit [Ping timeout: 258 seconds]
Twey has quit [Ping timeout: 258 seconds]
Twey has joined #nixos-chat
<andi-> Bootstrapping?
<gchristensen> when your environment's iPXE infra is down :)
<gchristensen> so I can't reboot ... or boot new
<ar> is your infra for deploying everything from ipxe also booted from ipxe now?
<gchristensen> my upstream provider handles iPXE, and its infra is down
Jackneill has quit [Read error: Connection reset by peer]
<joepie91> ouch
<gchristensen> very
<andi-> Brave new world
<gchristensen> oh?
<gchristensen> netlify.com but for ipxe
<eyJhb> Circle dependencies are the best
<pie_> samueldr, oh WUT you can get env vars in that string? i see! :O
<samueldr> "no", but "yes"
<pie_> ???
<samueldr> the --run parameter is just a string ran by the shell
<samueldr> nix-shell -p stdenvNoCC --run 'true;echo hi; echo there'
<samueldr> so *that* shell can make use of env vars :)
<samueldr> pie_: makes sense?
<pie_> samueldr, ok i didnt read carefully, its a nix shebang line calling nix through the shell again
<pie_> not sure id have thought of doing that
<samueldr> yep, that's it
<samueldr> just a round-about way to do the wrapper script inline :)
Jackneill has joined #nixos-chat
ericnoan has quit [Ping timeout: 245 seconds]
ericnoan has joined #nixos-chat
jackdk has joined #nixos-chat
__monty__ has quit [Quit: leaving]
Jackneill has quit [Remote host closed the connection]
<kraem> a litte bit of OT but here goes: In nix you can create a lambda function like this `mul = a: (b: a*b)` - how would one do that in haskell? Is lambda function in nix = higher order function in haskell?
nckx has quit [Quit: Updating my GNU Guix System — https://guix.gnu.org]
<jackdk> functions are curried by default in Haskell, so you can write `mul a b = a * b`, or `mul = \a b -> a * b` or `mul = \a -> \b -> a * b` and they'll all work mostly the same, modulo some optimisation details that are seldom relevant IME
<kraem> jackdk: thanks, that makes sense - guess i'm a little bit confused by some of the concepts of lambda calc. and FP but the "curried by default" really helped me :)
<gchristensen> nix also lets you do, simply, mul = a: b: a * b;
nckx has joined #nixos-chat
joepie91 has quit [Quit: Konversation terminated!]
joepie91___ has joined #nixos-chat
joepie91___ is now known as joepie91
<pie_> joepie91, ...i want everything to feel like what it feels like to use zfs