jasongrossman has quit [Ping timeout: 264 seconds]
Synthetica has quit [Quit: Connection closed for inactivity]
LnL has quit [Ping timeout: 268 seconds]
jasongrossman has joined #nixos-chat
jasongrossman has quit [Read error: Connection reset by peer]
drakonis has quit [Read error: Connection reset by peer]
sir_guy_carleton has joined #nixos-chat
lassulus_ has joined #nixos-chat
lassulus has quit [Ping timeout: 244 seconds]
lassulus_ is now known as lassulus
sir_guy_carleton has quit [Quit: WeeChat 2.2]
jasongrossman has joined #nixos-chat
tilpner has quit [Ping timeout: 250 seconds]
endformationage has quit [Quit: WeeChat 2.3]
pie_ has quit [Remote host closed the connection]
pie_ has joined #nixos-chat
hedning has joined #nixos-chat
jackdk has quit [Ping timeout: 250 seconds]
__Sander__ has joined #nixos-chat
__Sander__ has quit [Ping timeout: 258 seconds]
__Sander__ has joined #nixos-chat
Synthetica has joined #nixos-chat
hedning has quit [Quit: hedning]
__monty__ has joined #nixos-chat
hedning has joined #nixos-chat
<andi->
I spent 2 days debugging the debian CD builder... They have a weird approach to generating the "closure" of all packages requested, they are removing the version strings somewhere... images might not always be bootable.. Now I found the perl code in nixpkgs that does the same but uses an actual interface to the package manager for dependency resolution... <3 Nix(pkgs/OS)
<srhb>
samueldr: Oh, it probably is. I never gave it much thought actually.
* samueldr
ducks under the tree, where there's a big ol' branch stifcking from the ground... feels like there should be a word for it, germans probably have one
<srhb>
Oh, that would be a more sensible meaning for trunk :P
<Synthetica>
samueldr: You mean a Baumwurzelhöhle?
<srhb>
Haupstamm?
* Synthetica
isn't actually German
<gchristensen>
how about /nix/etwas/
<gchristensen>
then you're getting something from nothing
<Synthetica>
Nix is based on the Dutch "niks", actually
<Synthetica>
So it would be /nix/iets
* Synthetica
_is_ a swamp German :P
<srhb>
xD
<gchristensen>
/nix/iets is better anyway (obviously I knew Eelco is Dutch, but google translate said "Nix" was German for Nothing, despite it not bueing Nichts so I assume it is slang... but typing in Nix for Dutch became just Nix)
<Synthetica>
(I mean, there is a reason Eelco's handle is niksnut, it's Dutch for good-for-nothing :P)
<srhb>
I propose a Heideggerian localisation for Nix.
<srhb>
Closure -> Dasein
* samueldr
thought it was "nuts for nix"
<LnL>
heh
<Synthetica>
Yeah, it's a pretty good bilingual pun that gets lost on 90% of people :P
<cransom>
TIL
tilpner has joined #nixos-chat
__Sander__ has quit [Quit: Konversation terminated!]
<infinisil>
Synthetica: I can at least confirm for Swiss German that Nix is slang meaning Nichts
<infinisil>
I say it all the time and my friends make jokes about it because it has a double meaning for me xD
pie_ has quit [Remote host closed the connection]
pie_ has joined #nixos-chat
<gchristensen>
huh
endformationage has joined #nixos-chat
<Synthetica>
infinisil: same, "what you're doing?" "Niks" "Niks-OS?" Is something I've heard more then once
<Synthetica>
countKarma could probably be better done with a map and a sum, instead of with explicit recursion
<infinisil>
Synthetica: I personally like the explicit recursion, it makes stuff pretty obvious without any magic
<infinisil>
And it works really well with pattern matching
<infinisil>
I guess it might be slower though
<jasongrossman>
I have been bothered by how slow the karma function is.
<infinisil>
Haha
<Synthetica>
You use decodeFileStrict, might be nicer to use eitherDecodeFileStrict to get a error message from aeson itself
<infinisil>
Ah, I actually never bothered to look for an either version of decodeFileStrict, yeah that's a good point
<Synthetica>
You also explicitly check whether the file exists, can't you just open it and beg for forgiveness instead of asking for permission? I think it's a race condition otherwise
<Synthetica>
(But that might just be the Python speaking :P)
<infinisil>
Synthetica: But then I'd have to handle some IOException, right?
<Synthetica>
I'm not sure what aeson does in that case, I'd expect it gives Nothing/Left to cover that case as well
<Synthetica>
(Untested)
<Synthetica>
The if at the end of rateLimited can be done nicer with something like `when tooMany (chanMsg ...); return $ not tooMany`
<Synthetica>
I'm not sure if this is intentional or not, but karma that is not given out due to rate limiting seems to count towards the rate limit
<infinisil>
decodeFileStrict indeed throws an exception if the file doesn't exist, so I'd rather check for whether it does first
<Synthetica>
Oh, yikes
<infinisil>
Synthetica: Yeah that's intentional, you think it shouldn't be?
<Synthetica>
... Maybe? Could go either way
<Synthetica>
Instead of the \case in line 81, you could use a unless instead
<infinisil>
Ah yeah, (you probably meant 91)
<Synthetica>
Oh, hadn't pulled 😅
<Synthetica>
Yes, 91
<infinisil>
Ahh
<infinisil>
Synthetica: Can I do unless pointless?
* infinisil
tries
<infinisil>
I don't think it works
<infinisil>
rateLimited channel inputUser >>= unless ??? $ do ...
<Synthetica>
\limited -> unless limited $ do ... should work right?
<Synthetica>
or perhaps even `flip unless $ do ...`
<Synthetica>
but that's uggly
<infinisil>
Ah yeah probably :P
<Synthetica>
For results, you use an Either, but you never use the Left case (historical reasons, I think?)
<infinisil>
Synthetica: Yeah, originally I reported all users that weren't known, the uncommented line below
<infinisil>
But then stuff like c++ would still make the bot spam
<Synthetica>
Ah, understandable
<infinisil>
I guess I can use rights now
<infinisil>
Data.Either.rights
<Synthetica>
Or just use a Maybe
<infinisil>
Ah yeah
<Synthetica>
Then you can use a `when` instead of the \case on line 96
<Synthetica>
I think
<Synthetica>
Actually, no
<infinisil>
Oh actually, I haven't set up state migrations, so I can't actually change the KarmaEntry type without manually fixing all karma entry files..
<Synthetica>
You could make a manual FromJSON instance? That should do the trick
<infinisil>
Ah yeah that could work. I never wrote a manual instance though, would have to look that up
<infinisil>
Synthetica: Thanks, I incorporated your review :D
<etu>
pie_: Like what flags are available on different projects of the same tools? Like bsd vs coreutils?
<samueldr>
oh, unix-like, not nix
<pie_>
etu, yeah
* pie_
shrugs, just felt like plopping that in here for some reason x)
<Synthetica>
That's a really cool idea actually
<pie_>
1) port nix to more OS-s, 2)build automated tooling, 3) win?
<pie_>
ofc documentation isnt machine interpretable so idk how that could actually work :P
<etu>
And even if you wrote a parser that would detect all flags, which may be possible with work. And then ran it on all platforms with all different tooling. Parsing the actual docs to see if different flags does different things. Oh man :p
<gchristensen>
run the program under gdb to watch for differences in execution
<Synthetica>
This sounds like one of those things you could massively over-engineer
<gchristensen>
oh my yes
<Synthetica>
Scroll through nixpkgs commits to get different versions of tools
obadz has quit [Quit: WeeChat 2.3]
<pie_>
i just figured you could get the flags out of the man pages
<pie_>
doesnt have man pages? the tool can fuck itself :P
<pie_>
i do have a maybe somewhat viable idea though: once you have the man pages, split them up and make a nice UI for people to pair stuff up
<pie_>
or just write a recaptcha tool lol
<pie_>
"are these two commands the same"
<pie_>
or something
<pie_>
s/tool/service
<Synthetica>
But what if the manpage is lying 🤔
<pie_>
then you're screwed?
__monty__ has joined #nixos-chat
jackdk has joined #nixos-chat
hedning has quit [Quit: hedning]
tilpner has quit [Ping timeout: 268 seconds]
jabranham has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<andi->
Noooess now that the new machine has ZFS on Linux
<samueldr>
andi-: stick to LTS :)
<gchristensen>
I wouldn't fret
<gchristensen>
I wouldn't take a single pissy email to mean the project is dead. a bunch of companies depend on it, some of which are members of the linux foundation. and failing that,
<gchristensen>
there are alternative implementations to crc32c.
<mdash>
gchristensen: the obvious answer is "there are no good alternatives to zfs"
<samueldr>
nah, zfs is dead :^)
<gchristensen>
haha
<mdash>
(if the objection is 'tainted by oracle' then it should be noted that btrfs was originally an oracle project too)
<samueldr>
I don't think it's the first time zfs has trouble with a new kernel release, and probably won't be
<samueldr>
probably won't be the last*
<gchristensen>
someone in #zfsonlinux is running around with their hair on fire as if a single email can throw the project in the trash
<simpson>
Isn't the entire point of ZFS-on-Linux to ignore kernel folks and then whine when they get broken?
<samueldr>
IRC is only good for drama
<gchristensen>
LOL
<gchristensen>
samueldr: but... but...!
<simpson>
Like, the project's foundational goal is to ignore the Linux VFS design, right?
<gchristensen>
I don't think that is a fair characterisation
<andi->
I am not worried about it.. Worst case there will be a patchset that we carry on for the next century..