gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
KREYREEN has quit [Remote host closed the connection]
rajivr has joined #nixos-chat
KREYREEN has joined #nixos-chat
supersandro2000 has quit [Disconnected by services]
supersandro2000 has joined #nixos-chat
<Ashy> infinisil: i lived in vietnam for a year in 2016 and despite having an active google account since 2004 google assumed i was suddenly fluent in vietnamese somehow
<Ashy> it was an active fight to force various google pages and products back into english
<infinisil> Ugh
spudly111 has quit [Ping timeout: 256 seconds]
spudly111 has joined #nixos-chat
<samueldr> the trick is not to live in one of those pesky countries with multiple official languages
<samueldr> 4 is 4 too many
<samueldr> grunts and barks is enough to get the point across in a civilized nation
<infinisil> samueldr: 4?
<infinisil> I mean, Switzerland speaks 4 languages, but I doubt you meant that
<samueldr> might not be official language
<samueldr> but yes
<infinisil> Ah!
<samueldr> (not sure how many countries have "official languages" laws like Canada has)
<infinisil> All 4 are official
<infinisil> But no, youtube picked france because my ip is in actual france
<samueldr> high school research pays back its dividends in making IRC shit posts finally
<infinisil> lol
<samueldr> and if you didn't catch it, the amount of languages I aim for is zero
<samueldr> it's "odd", but not really, how you have a french IP address
<samueldr> I mean, I had for a long time IP addresses from the province western to me... which is what, 500km away?
<infinisil> Have a dedicated server in france from online.net, because it's super cheap :)
<samueldr> ah
<infinisil> And am using it as a VPN
<samueldr> then it's a bit different :)
<samueldr> it's like IP addresses weren't designed to identify a physical location for the end-user, or something like that
<infinisil> And actually the only reason I'm using it as a VPN is because my router at home apparently can't handle torrenting
<infinisil> (from my local host)
<infinisil> Something about too many TCP connections I think
<samueldr> plausible
<infinisil> (which is circumvented when all of that goes through a UDP connection)
<samueldr> and online.net is okay with that?
<samueldr> assuming it's not only linux distros
<infinisil> I think online.net is the kind of provider that doesn't give a shit :P
<infinisil> Well no, of course it's only linux distro's
<infinisil> And actually, I torrent from that server as well. The local torrent client is just still running because I can't be bothered migrating them
<infinisil> Because for some reason, moving torrents between clients is almost impossible
<abathur> online.net sounds like an ISP founding in 1996
<abathur> *founded
<samueldr> Founded1999; 21 years ago
<infinisil> I love how https://en.wikipedia.org/wiki/Human is written as if the writer wasn't human lol
iqubic has joined #nixos-chat
cole-h has joined #nixos-chat
andi- has quit [Remote host closed the connection]
andi- has joined #nixos-chat
<infinisil> Idea: What if we were to write programs while always explicitly specifying *why* something is being done
<infinisil> While by default nothing would be shown, you could turn on "explanation mode", and really dig into why each and every instruction was called
<infinisil> This may start at a high level, a function saying "I'm now going to initialize the database connection because I want to connect to it later"
<infinisil> But the database function can then give more detailed explanations for how it actually initializes the connection, and so on
<lukegb> We can't get people to write good commit messages, how are we going to get people to document their code :P
<infinisil> Umm, that's left as an exercise to the reader
<samueldr> infinisil: haven't rewatched the video, been a while since I saw it
<samueldr> but what you said made me think of https://www.youtube.com/watch?v=OrQ9swvm_VA
<infinisil> If we had something that, it would be really neat though. Debugging or understanding why things happen would be so much easier. computers wouldn't be a huge black box anymore
<samueldr> >> Programmers usually bark commands at computers. Never does the computer ask “why”, and never does the programmer explain themselves. What if we did? Annotate the purpose of your function calls. It may save your day!
<infinisil> Oh neat, I'll keep this open in a tab for later
abathur has quit [Quit: abathur]
abathur has joined #nixos-chat
<samueldr> just re-watched, and I think what you were saying basically goes on the same path
<pie_> infinisil: you are now retracing some computer science history
<pie_> infinisil: i just wish my memory was good enough to give pointers
<pie_> infinisil: the prototypical example is expert systems providing explanations
<pie_> not *quite* what you said but close enough i think
<pie_> samueldr: interesting title. thanks.
<infinisil> ,pointers
<{^_^}> 0x3A28213A 0x6339392C, 0x7363682E.
<infinisil> We've got em!
<infinisil> :P
red[evilred] has joined #nixos-chat
<red[evilred]> I just watched that video
<red[evilred]> I kinda like it
<red[evilred]> I think what tickles me about it is that if my code crashes with that - the 'why' is going to be on my stack and therefiore in my stacktrace
<red[evilred]> or if I'm using a lazy languge where the ordering of actual evaluation of closures may vary every execution - it owuld be useful in that case too
<supersandro2000> ,pointers
<{^_^}> 0x3A28213A 0x6339392C, 0x7363682E.
<supersandro2000> ?
<red[evilred]> Do you like pointers? ... because that's how you get pointers.\
<samueldr> red[evilred]: yeah, I was thinking something along the line, the strings would be somewhat associated with the part of the code at fault
<supersandro2000> are those special pointers?
<supersandro2000> I thought they are random
<supersandro2000> > dust off ten years worth of autotools sediment
<{^_^}> undefined variable 'off' at (string):437:6
<supersandro2000> 😂
<insep_> > dust "a"
<{^_^}> attempt to call something which is not a function but a set, at (string):437:1
<insep_> > dust
<supersandro2000> > dust dust
<{^_^}> "<derivation /nix/store/gb18lgrypj2ay0sw4plbk73g3ypwm39v-dust-0-91.drv>"
<{^_^}> attempt to call something which is not a function but a set, at (string):437:1
<supersandro2000> whut?
<supersandro2000> > dust latex
<{^_^}> undefined variable 'latex' at (string):437:6
<supersandro2000> > dust dust.override()
<{^_^}> error: syntax error, unexpected ')', at (string):437:20
<supersandro2000> > dust dust.override {}
<{^_^}> attempt to call something which is not a function but a set, at (string):437:1
<supersandro2000> > dust dust.override{}
<{^_^}> attempt to call something which is not a function but a set, at (string):437:1
<insep_> ah, dust is a package
<supersandro2000> Is the bot save or can I make it do funny things?
<supersandro2000> like build a package
<red[evilred]> muhahaha
<red[evilred]> supersandro2000++
<{^_^}> supersandro2000's karma got increased to 17, that's Numberwang!
<red[evilred]> "safe"[tm]
* red[evilred] continues to beat the Pi4 he's running NixOS on within an inch of its life
<supersandro2000> I never heard Numberwang
<supersandro2000> > <nixpkgs>
<{^_^}> /var/lib/nixbot/nixpkgs/master/repo
<supersandro2000> > fetchurl { url="https://ip.s6o.de"; md5 = "7e935a42428d63a387b3c048be0f2756"; }
<{^_^}> fetchurl does not support md5 anymore, please use sha256 or sha512
<supersandro2000> > fetchurl { url="https://ip.s6o.de"; sha256 = "03rk7imb2k3iass507rkr9chdnyk4h8ppyf20cdz3c2m3v1a5k9n"; }
<{^_^}> "<derivation /nix/store/c65bfg4cr73pm6b1lw21nqhk3b7pj6yh-ip.s6o.de.drv>"
<supersandro2000> > fetchurl { url="https://speed.hetzner.de/10GB.bin"; sha256 = "03rk7imb2k3iass507rkr9chdnyk4h8ppyf20cdz3c2m3v1a5k91"; }
<{^_^}> "<derivation /nix/store/l267843xz95kps2094v4i8y4d3grkrk4-10GB.bin.drv>"
<supersandro2000> -_-
<supersandro2000> > <nixpkgs> {}
<{^_^}> attempt to call something which is not a function but a path, at (string):437:1
<supersandro2000> > import <nixpkgs>
<{^_^}> <LAMBDA>
<supersandro2000> ... i have logging turned off on that service...
<infinisil> supersandro2000: The bot is very restricted, can only do nix evaluation :)
<supersandro2000> oh it did not do the actual request?
<infinisil> Which request?
<infinisil> Ah the fetching?
<supersandro2000> yeah
<infinisil> Nah that's just the computed .drv path, it didn't actually build it
<supersandro2000> that would have been to easy
<infinisil> > fetchurl { url = "this://url.does.not/exist"; sha256 = "0000000000000000000000000000000000000000000000000000"; }
<{^_^}> "<derivation /nix/store/ldvvljpyh853578rr3k27n7l4zd089cj-exist.drv>"
waleee-cl has quit [Quit: Connection closed for inactivity]
<infinisil> Btw, feel free to spam the bot in #bottest :)
<supersandro2000> na I think I am done with it
<supersandro2000> btw why are the so fo ffmpeg in ffmpeg.out?
<infinisil> > lib.getLib ffmpeg
<infinisil> > lib.getLib ffmpeg
<{^_^}> "<derivation /nix/store/6zry1nk5qics0lqsy6rnl3q629ibb0p3-ffmpeg-4.3.1.drv>"
<infinisil> > ffmpeg.out
<{^_^}> "<derivation /nix/store/6zry1nk5qics0lqsy6rnl3q629ibb0p3-ffmpeg-4.3.1.drv>"
<supersandro2000> this only has the lib
<supersandro2000> derp, ffmpeg only has the bin
<infinisil> I mean, as long as `lib.getLib` gets the derivation output with the lib, everything should be fine
<infinisil> Similarly, `lib.getBin` should get the derivation output with binaries
<infinisil> What if we introduced another letter, so we have 27 instead of 26. Then we could have a base64 encoding without special characters!
<supersandro2000> wouldn't that be a special character?
<infinisil> Well damn
<infinisil> I guess we'd have to travel back in time to make it non-special
<samueldr> infinisil: we already have more than 26 letters
<samueldr> in our alphabets
<samueldr> look around in europe and you'll find them :)
<supersandro2000> öäüß
<supersandro2000> well technically those are special characters
<samueldr> how so? :)
<infinisil> I can imagine samueldr was thinking about é, è, ç, and whathaveyounot
<supersandro2000> we could encode it in the russian alphabet. it has 33 chars
<samueldr> I wasn't actually thinking about diacritics
<supersandro2000> *letters
<samueldr> first off the end of the alphabet
<samueldr> ampersand was the 27th letter for a while
<infinisil> Is there an uppercase version of it?
<samueldr> yes
<infinisil> o.O
<samueldr> maybe only typographically speaking though
<samueldr> not sure if it's encoded in unicode
* samueldr searches for citation
<samueldr> I might have been misremembering
<infinisil> If you think about it, having two different casings is really unnecessary
<infinisil> Other than maybe for
<infinisil> > spongebobify "If you think about it, having two different casings is really unnecessary"
<{^_^}> value is a function while a set was expected, at (string):326:66
<infinisil> Damnit
<samueldr> meh, it's not like we have uppercase and lowercase numbers
<samueldr> (we do)
<infinisil> We do..?!
<samueldr> hm, can't seem to find anything about uppercase ampersands :/
<samueldr> kind of
cole-h has quit [Ping timeout: 246 seconds]
<samueldr> note that it's a font feature, and not encoded
endformationage has quit [Ping timeout: 256 seconds]
<infinisil> Guess we'll have to resort to ⅋
<infinisil> > spongebobify "If you think about it, having two different casings is really unnecessary"
<{^_^}> "If You THINK about It, HAVinG twO DifferENt CAsinGS IS reaLly UNneCEsSARY"
<infinisil> Perfect lol
<samueldr> it's about as important as punctuation
<insep_> spongebobify "."
<insep_> uhh
<insep_> > spongebobify "."
<{^_^}> "."
<supersandro2000> is it cool to just revert a commit to fix a package or should I do it as a part of a package upgrade?
<samueldr> (this is not the channel for on-topic discussions)
<supersandro2000> to many channels
<insep_> samueldr: everything is ontopic in offtopic
<samueldr> nope, actual NixOS questions, be it for the devs, or general, isn't on topic :)
<samueldr> two main reasons
<samueldr> (1) it shouldn't create a two-speed help conduit
<samueldr> (2) not every NixOS dev idle here in the -chat channel, so it's unfair and incomplete to have "on topic" discussions
<insep_> then should people who speak offtopic in offtopic be banned for speaking offtopic? :D
<samueldr> though, fleeting non-commital discussions about NixOS is fine
<iqubic> yeah, that makes sense.
<samueldr> YES
<samueldr> ;)
<iqubic> Is this conversation about what is and isn't offtopic offtopic or not?
<samueldr> it's not off-topic, smartypants here :)
<samueldr> it's also so the channel really stays about general more social chat than becoming yet another "business" chat
<insep_> ok then
<insep_> anyone here good with inkscape?
<insep_> i need to make gradient across multiple objects that doesn't look like shit
* insep_ uploaded an image: изображение.png (27KiB) < https://matrix.org/_matrix/media/r0/download/kde.org/f33e4729ef540b04e84a4d8d1f06e70b41962473/изображение.png >
<insep_> currently i'm getting this
<supersandro2000> do a new layer and do it on that?
<supersandro2000> can you like do a cut out of the area that it matches the other layer?
<supersandro2000> and make the old one zero color
<supersandro2000> but I have no clue just guessing
<supersandro2000> Can I tell bash to use a default command if it can't find a command in an pipe?
<supersandro2000> eg I do `rg wrapqtapp | darwin` a lot
<supersandro2000> maybe I could greplace the pipe with another symbol and alias that to ` | grep`?
<samueldr> using the "Create and edit gradients" (G) tool, I took all the lines and brought them together, same start, same end
<samueldr> (having selected my four ugly rectangles)
<samueldr> note that they don't overlap
<samueldr> insep_: overlap and a gradient that doesn't rely on transparency https://stuff.samueldr.com/screenshots/2020/11/20201129023632_t2wn3f7ephuoeto6l.png
<samueldr> so I guess it really depends on what *is* in the example you gave
<insep_> samueldr: i selected those 9 elements, connected top with bottom using gradient tool, changed colors and got that result
<samueldr> are they overlapping? using the same gradient?
<insep_> at this point i assume that some of those elements have some connection that inkscape doesn't tell me about
<insep_> they are not overlapping
<insep_> i've sent file that i'm trying to edit
<insep_> oh i didn't
<samueldr> there's also the possibility that you put the end at the start and the start at the end
<insep_> here
<samueldr> like I've done here
<samueldr> you can also drag that same tool (G) on something that isn't one of those lines and it will force a fresh new path for the gradient
da_dada has quit [Ping timeout: 240 seconds]
<samueldr> for all element, and the same path
<insep_> i also tried selecting elements and applying linear gradient in fill and stroke, looks even worse
<samueldr> (I was just about to leave, so I won't look at your document, sorry :))
da_dada has joined #nixos-chat
* insep_ uploaded an image: изображение.png (22KiB) < https://matrix.org/_matrix/media/r0/download/kde.org/defa37aa43b461d514ad3304339e5bcfaeda1e8b/изображение.png >
tilpner has joined #nixos-chat
red[evilred] has quit [Quit: Idle timeout reached: 10800s]
irc_bot[m] has quit [Quit: Idle for 30+ days]
inlaw[m] has quit [Quit: Idle for 30+ days]
FRidh has joined #nixos-chat
<eyJhb> Yay, just bought four OnePlus Ones used/broken for 300 DKK (40 EUR), so finally a new cover/backplate!
<eyJhb> But maybe at some point, I should switch to something new. But I know that there is a least a couple in here that keeps driving older things :D
<patagonicus> I've been thinking about replacing my OnePlus 5T since it doesn't get official updates anymore and I don't want fiddly custom ROMs for my daily driver. But I've ordered a Pinephone for fiddly things. :D
<eyJhb> patagonicus:! It is basically brand new then!! - I think LineageOS works quite well btw. :p
<patagonicus> Well, I did put LineageOS on my Pixel C … and then two months later they dropped support for it.
<insep_> sounds like perfect device for pmos
<patagonicus> I mean, I'd love that, but Linux support seems terrible. I found a repo from a few years ago where someone managed to get Arch booted on it, but not even sound was working. And since I mainly use it to watch videos these days that's kinda important.
<insep_> link to that port?
<patagonicus> Especially look at "What is broken?". And the fact that it hasn't been touched for almost two years.
<patagonicus> mobile-nixos on it would be amazing.
<insep_> sound was working last time when i tried
<insep_> well, that wasn't on pixel c
<insep_> but on switch
<insep_> but kernel stuff should be the same
<patagonicus> Huh? The Switch has the same hardware as the Pixel C?
<patagonicus> Ah, same Tegra X1, I wonder how much is part of that and how much is other chips.
<insep_> the same soc
<insep_> and i believe sound is a part of soc on tegra x1
<patagonicus> Yeah, but sound for example is not part of it, according to a quick skim of the wiki page.
<insep_> but that might also not be true
<insep_> oh well
<insep_> what wiki page?
<patagonicus> Hmm, although it does mention "SoCs and platforms with comparable specifications (e.g. audio/video input, output and processing", so maybe it is.
<patagonicus> But I'm not sure if I want to spend the time to figure out what makes it boot to then update it with a new kernel.
<insep_> ah
<insep_> i don't think wiki would contain that info :D
<insep_> that project just needs some more activity
<patagonicus> Well, yeah. But for now I'd rather play with my Pinephone (once it arrives) and then move on to the Pinebook Pro. Maybe afterwards I'll feel motivated to work with something were running Linux wasn't a design goal. :D
<siraben> Is there a tool to remove all whitespace from a folder recursively?
<siraben> On a quick search there's a couple of solutions using coreutils but I was wondering if was a specialized one
<sphalerite> > pkgs.detox.meta.description
<{^_^}> "Utility designed to clean up filenames"
<sphalerite> siraben: ^ ?
<siraben> Ah not from filenames but in the contents of files
<siraben> > pkgs.detok.meta.homepage
<{^_^}> attribute 'detok' missing, at (string):440:1
<siraben> > pkgs.detox.meta.homepage
<sphalerite> huh, that seems like an odd thing to want to do?
<lukegb> Removing all whitespace from a folder sounds like a very amusing problem to be trying to solve
<siraben> Trailing whitespace
<lukegb> OH
<siraben> Heh didn't specify that important part
<sphalerite> riiiight that makes more sense :D I'd probably use find and sed
<lukegb> yeah
<sphalerite> be careful not to hit .git if it exists though. I thoroughly trashed a repo by doing that once.
<lukegb> and also other binary files, etc.
<siraben> Of course
__monty__ has joined #nixos-chat
<ldlework> made my own minecraft mechanic called wards http://logos.ldlework.com/caps/2020-11-29-12-38-45.mp4
<siraben> hey ldlework :)
<ldlework> yo
<siraben> anyone else here know about styx?
iqubic` has joined #nixos-chat
iqubic has quit [Ping timeout: 264 seconds]
<__monty__> That it's a thing? Yes.
<leonardp> siraben: Domo Arigato, Mr. Roboto
<leonardp> i've played around with it for a little, but in the end setteled for zola
<infinisil> samueldr: Just watched the justified programming video, and yes, this very much sounds like what I thought of, nice!
<infinisil> I'll consider using such an approach in the future
<__monty__> Justified programming?
<infinisil> Linking it again: https://www.youtube.com/watch?v=OrQ9swvm_VA
<__monty__> Have a TLDW?
<__monty__> DDG didn't turn anything up.
<infinisil> Basically annotating each action a program does with a reason why it does it
<__monty__> In comments or contracts or something?
<infinisil> In the code itself. E.g. in one example of the video, a mutex lock function is annotated with a `why :: String` parameter, so that in case of an error it can show why it wanted to lock it
<infinisil> If the lock succeeded, it would store this reason in an object field as well
<infinisil> So that the error could be "Lock is currently acquired by <reason1>, but <reason2> wanted to lock it as well"
<infinisil> This is only a very simple example though, I can imagine having whole "why-traces", which exactly show why a certain action was done, with everything leading up to it
<MichaelRaskin> So basically the benefit is automated pruning of backtrace?
<MichaelRaskin> Well, dynamic trace
<MichaelRaskin> Oh right, in normal languages it is not cheap to get
<infinisil> Not exactly. A backtrace doesn't require the programmer to give a reason why functions are called
<infinisil> The comment section also has a great example: Somebody implemented such an approach for a chat bot. So e.g. if you asked it "what is the capital of englang?", it would respond with "london"
<infinisil> But then you could also ask "Why did you say that?", and it would respond with "You said 'what is the capital of england?', which seemed to be a geography question, so I asked Wolfram Alpha and it said 'London', so I said 'London' "
<__monty__> Sounds like "Excellent error reporting."
<infinisil> If this idea was applied to the whole software stack, it would make computers much less blackboxy
<infinisil> __monty__: It's not only about errors imo. Things may not error, but you can still wonder why it was done this way
<infinisil> But yeah, errors would be a great use of this information
<MichaelRaskin> infinisil: given that a lot of balckboxiness is intentional obfuscation, by this or other name
<__monty__> While I agree it would be excellent, it's a little like "good documentation is important." Something everyone kinda knows but doesn't want to put the time in?
<infinisil> I don't think this idea of it being a good idea to give reasons to actions is something everybody knows
<infinisil> I personally never thought of this concept before yesterday
<__monty__> You've never read code and gone "Why?!"
<infinisil> Well yeah, but I've never actually thought about encoding the why into the program itself :)
<__monty__> Yeah, most of the time it's comments.
<__monty__> Java kinda has it with the ridiculous naming.
<MichaelRaskin> Like every way of improving program structure, I expect it to lead to even greater mess.
<infinisil> Actually it kind of seems like you'll want to give a reason every time you call the same function multiple times. So it seems that this kind of undoes abstraction itself for explaining stuff
<MichaelRaskin> Just like small functions doing just one thing often lead to «everything happens elsewhere»
<infinisil> Program structure stays the same I'm pretty sure
<MichaelRaskin> Yeah, might get away with just runtime overhead
<infinisil> Hmm, maybe this kind of thing could have nice support by the programming language itself
<MichaelRaskin> Oh wow. echo '"qwe"' > direct.nix; nix-shell -p nixUnstable --run 'nix-instantiate --eval-only --pure-eval direct.nix'
<MichaelRaskin> Guess what happens…
<lukegb> SIGSEGV
<MichaelRaskin> Well, fortunately not exactly
<infinisil> Well, advent of code is coming up, I might try out this kind of approach a bit and see how it goes :)
<MichaelRaskin> In a sense, I would prefer SIGSEGV here
<__monty__> infinisil: I wonder if it'd make malignant software easier or harder to spot. The placebo effect of "Why are you doing this?!" "For innocent reason X." could maybe trick unsuspecting users.
<infinisil> Hm yeah
<infinisil> What if the compiler inspected the git blame to show the author of each reason shown. Or even, show a green check mark if the commit is GPG signed and you trust it :P
<infinisil> Although, by just running the code you implicitly trust it already
<MichaelRaskin> … to not be competently enough malicious to break out of nsjail
<infinisil> Yeah..
<siraben> gchristensen: would using NIXOS_LUSTRATE be a good way to do the same as https://grahamc.com/blog/erase-your-darlings ?
<lukegb> If you NIXOS_LUSTRATE when you've already lustrated, do you end up with /old-root/old-root
<gchristensen> I'm supposed to hand some companies my resume, but I haven't updated it since 2014 🤡
<pie_> Like every way of improving program structure, I expect it to lead to even greater mess."
<pie_> Raakins first llaw
<pie_> ive personally experienced it with nix
<pie_> *Raskins
waleee-cl has joined #nixos-chat
endformationage has joined #nixos-chat
<gchristensen> I love it when log messages are so useless you have to grep the source code to see what it means
cole-h has joined #nixos-chat
<MichaelRaskin> At least they are unique
<MichaelRaskin> And we all know that strace output can be easier to understand than both program output and source code
sorki has joined #nixos-chat
sorki has quit [Remote host closed the connection]
<andi-> Yeah, it is great how much syscalls tell you in complex systems. All that glue code above syscalls somehow becomes redundant...
<MichaelRaskin> Just reveals how rarely we use computers as information processing tools
<MichaelRaskin> For actual computations strace is much less revealing, to say the least
<andi-> Or how bad they are at that :D
sorki has joined #nixos-chat
<MichaelRaskin> Nah, we don't even try
<andi-> or maybe FSs are all we need for processing? :D
<MichaelRaskin> I do use FS that can be an interface for _some_ processing, actually. But normally, well, that's not what happens
<gchristensen> I've been tinkering with a fuse fs this weekend and I'm a bit stymied by how annoying it is to do all the bookkeeping with inode numbers
<MichaelRaskin> Wait a minute, why do you even need to?
<gchristensen> the library doesn't talk about paths except in readdir, creat, etc.
<MichaelRaskin> Get a better library maybe?
<gchristensen> as far as I know, libraries that deal in names are lying to you
<andi-> maybe get a lib that maps some inode to a user defined struct that you can then work on?
<siraben> anyone also have a setup like https://grahamc.com/blog/erase-your-darlings ?
<MichaelRaskin> gchristensen: I mean, libfuse itself already provides a wrapper that deals in paths
<MichaelRaskin> In a way that is sensible enough to use, unlike the default event loop that makes assumptions about approximately everything
<MichaelRaskin> (the default event loop, I tried to wrap in Common Lisp and failed; the next level with callbacks, I use just fine)
<gchristensen> hm.
<gchristensen> maybe I'll just make this the lazy way in python then
<gchristensen> or go, sigh
<f0x> siraben: i've slowly been experimenting with that too, yes
<MichaelRaskin> You started in Rust but it doesn't have a friendly enough library and you do not want to unsafe-wrap yourself?
<f0x> but not enough time and not enough nixos knowledge to actually use it for anything, so was just in some local kvm's
<sphalerite> siraben: gchristensen does ;P
sorki has quit [Remote host closed the connection]
sorki has joined #nixos-chat
cole-h has quit [Ping timeout: 256 seconds]
FRidh has quit [Quit: Konversation terminated!]
FRidh has joined #nixos-chat
rajivr has quit [Quit: Connection closed for inactivity]
kalbasit has joined #nixos-chat
<siraben> f0x: are you using ZFS?
<siraben> sphalerite: of course, hehe
<f0x> siraben: yeah, and should also be doable with btrfs
<siraben> Not a FS expert, how do they compare?
<etu> siraben: I have a setup like that, but on tmpfs as /
iqubic` has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
iqubic has joined #nixos-chat
<siraben> etu: don't you need a lot of ram for that?
<siraben> I recently lustrated my system to see what state would be lost and things like wireless and bluetooth connections were
FRidh has quit [Quit: Konversation terminated!]
<gchristensen> for the sake of my resume, what are the best things I've done for the nix community / ecosystem?
<hexa-> ofborg?
<etu> siraben: Nah, I bindmount and symlink the things I want to keep. In general it's not too much cruft around on /. It's more a matter of control.
<gchristensen> hexa-: I must really be riding on those coat tails x)
sorki has quit [Remote host closed the connection]
<MichaelRaskin> The relative impact was pretty hard to see from outside, but you clearly was one of the key people in establishing the current RFC process…
<MichaelRaskin> (and negotiating Nix Core team establishment on the path towards it)
sorki has joined #nixos-chat
<gchristensen> oh yeah
<hexa-> mind you, I'm not part of nixos for very long :p
<MichaelRaskin> Also hard to measure exact impact from outside, but what was your exact level of involvement in convincing Packet to go pretty bullish on NixOS?
<gchristensen> 100%
<gchristensen> that was my idea and implementation, and still a relationship I foster / keep alive
<infinisil> r13y.com, status.nixos.com, channels.nix.gsc.io
<MichaelRaskin> It seems to be a pretty significant part of the tooling compute resources
<MichaelRaskin> Like, majority?
<gchristensen> yea...
<gchristensen> true
<MichaelRaskin> status.nixos.org I hope. We do not mention .com here
<gchristensen> :x
<infinisil> Oh whoops
<gchristensen> not sure they need a status page
<sphalerite> huh, I thought nixos.com was dead. Apparently not.
<sphalerite> It definitely was temporarily.
<MichaelRaskin> Hmmm, grep says you are maintainer of lorry package?
<gchristensen> it was taken down because they stopped replying to their administrative mail
<gchristensen> which is justification to take down a domain, and after 1y put it up for auction ... and I had $1,000 bids on all the auction sites to buy it
<gchristensen> and on month 11 they responded and got it back.
<sphalerite> awwww :(
* lukegb looks at r13y.com
<lukegb> can we remove python2 from the iso_minimal closure yet
* lukegb prepares to shave some yaks
<MichaelRaskin> And replace it with pypy2!
<sphalerite> gchristensen: besides all the things you've done yourself, a whole lot of good things in the nixos world are results of nerd snipes performed by you :p
<gchristensen> oh gosh
<gchristensen> sphalerite: on my resume I called it "community organizing" :P
<lukegb> we shouldn't need two versions of python3 either >:)
<MichaelRaskin> Just pypy2 and pypy3!
<lukegb> Is Jython still a thing? We definitely need that.
<energizer> gchristensen: i think erase-your-darlings is increasingly influential
<gchristensen> oh cool yeah
<lukegb> yeah
<energizer> siraben: i use `impermanence` on btrfs
<energizer> it would be nice to have the erasures be more frequent than once per boot. is that what your sandboxing setup accomplishes MichaelRaskin?
<MichaelRaskin> 'Well, I do have things that live on real system, but a ton of stuff runs in freshly created transient environments, yes
<energizer> eg if some app tries to write into /etc or ~/.config it's actually writing into a tmpfs?
<MichaelRaskin> If some app tries to write into a generic /etc/ path not earmarked as writeable, it can go away. /etc is a symlink into store
<MichaelRaskin> Many apps get ~/.config, with the ones I care about getting their ~/.config things be a symlink to a repository
<MichaelRaskin> A sandboxed app writing to ~/.config writes to tmpfs or to a single-use directory in /tmp
<MichaelRaskin> Aaaand /tmp gets mkfs on boot
<energizer> sweet
<MichaelRaskin> But that is more of a garbage collection measure; different app isntances get different directories in /tmp and different UIDs to boot
<samueldr> seriously
<samueldr> what is up with github's notifications?
<samueldr> there is a repo I'm watching, where only one out of nine changes got an "unread" notification status
<samueldr> is someone else reading my notifications?
<MichaelRaskin> Or _something_!
<MichaelRaskin> (while being so inconsiderate as to mark them read in the process)
<samueldr> is it you?
<samueldr> you seem awfully guilty
<MichaelRaskin> And also trying to blame inanimate objects?
<MichaelRaskin> But no, I am not reading your notifications. I just have so many unread ones that GitHub runs out of unread notification slots and you don't get any
supersandro2000 has quit [Ping timeout: 260 seconds]
<colemickens> man, I have no fucking patience for FUD
<gchristensen> +1
<samueldr> same
<samueldr> even when FUD aligns with my point of view
<hexa-> colemickens: are you reading up on the rspamd systemd pull request?
<gchristensen> uh oh, link?
<colemickens> No. I'm catching up on Discourse.
kalbasit has quit [Ping timeout: 256 seconds]
<colemickens> is it just me? https://i.imgur.com/qzvRZkO.png (ancient pic of me, mic92 on the right)
<samueldr> no, it's not just you, it's you and Mic92
<colemickens> -_-
* samueldr will collect golf claps
<samueldr> you did this to yourself :)
<Mic92> colemickens: my girlfriend is in denial.
* samueldr wonders if he should continue with shitposting in answer
<samueldr> maybe you should help her, there's crocodiles in the nile
<pie_> samueldr: i honestly didnt know what other answer to expect :P
<pie_> <>Im on this picture and I dont like it
<samueldr> do you also look like both of them?
<pie_> no but that would be funny
<pie_> Them? I only see one person on this picture.
<pie_> For extra effect view it like one of those stereoscopic images
<pie_> 3d colemic92kens
<gchristensen> I can tell already that sway has mixed up some memory and will crash at any moment
<colemickens> was it after you moved a window?
<hexa-> was it after a rebuild?
<gchristensen> I dunno, maybe
<pie_> why not both
<colemickens> I had to block sway reloading on rebuilds, it was a guaranteed crash for me.
<gchristensen> ah, I don't have that happen automatically -- is that a HM thing?
<hexa-> yep
<gchristensen> gotcha
<gchristensen> I should probably try that sometime
maljub01 has quit [Quit: Ping timeout (120 seconds)]
maljub01 has joined #nixos-chat
supersandro2000 has joined #nixos-chat
<MichaelRaskin> Because windows are darlings too?
red[evilred] has joined #nixos-chat
<red[evilred]> I know that the subject of politics here is probably verbotten
<red[evilred]> so - please completely ignore the political content of the following image and just take it at face value: <3
<red[evilred]> So
<red[evilred]> Setup: "I think the NixOS foundation has been doing fundraising wrong all these years..."
<red[evilred]> Punchline:
<red[evilred]> (I didn't actually know it was possible to spend that much on a mac)
<lovesegfault> I wish ddevault wasn't so anti-rust
<infinisil> lovesegfault: Does he give any reason?
<lovesegfault> this is part of it
<infinisil> Huh, yeah I definitely don't agree with some of his points..
<lovesegfault> Yeah, most of them don't hold any water
<infinisil> "Yes, Rust is more safe. I don’t really care."
<lovesegfault> I take even more issue with the premise that language features are a bad thing
<lovesegfault> and that "solving problems by writing more code" is a good approach
<pie_> how could you say something so controvercial and yet so brave <MichaelRaskin> Because windows are darlings too?
<pie_> red[evilred]: wha can they *possibly* put in that xD
<MichaelRaskin> infinisil: isn't wl_roots design memory unsafe even comparedc to moderately careful C?
<gchristensen> yes
<samueldr> but it's fine
<infinisil> wl_roots is rust?
<samueldr> bugs shouldn't happen
<lovesegfault> no, it's C
<lovesegfault> and it breaks all the goddamn time
<lovesegfault> if my monitor goes to sleep swaylock crashes and leaves my system unlocked
<lovesegfault> it's really *chefs kiss*
<MichaelRaskin> It does thinks C people find unsafe, yes, there are such things
<infinisil> (then I'm missing MichaelRaskin's point)
<lovesegfault> infinisil: They mean that it's unsafe even for a C codebase
<MichaelRaskin> Well, you say «if only he wasn't so anti-Rust»
<MichaelRaskin> What about not being anti-basic-memory-safety regardless of a language
<lovesegfault> Yes, perhaps that's the core issue
<__monty__> But he likes Go, which is garbage collected?
<gchristensen> I think he just really likes needing to use gdb
<lovesegfault> He's financed by the big-GDB
<andi-> Yall remember that awesome wm spin-off for wayland that was written in Rust and the final blog post of the author?
* lovesegfault nods
<lovesegfault> That was also unfortunate
<gchristensen> tno
<andi-> Ahhh way cooler.... that was the pun...
<lukegb> Yeah, lifetimes are hard when they're external to your program
<samueldr> I think "for wayland" is unfair, it was "for wlroots"...
<lovesegfault> In the discussion for that post someone, I think pcwalton, managed to solve the core issue discussed in the post wrt. lifetimes
<MichaelRaskin> The problem is Wayland is a lie
<lovesegfault> alas it was too late
<MichaelRaskin> I guess once the same extensions for screen casting are used for multiple Wayland compositors, wayland can be looked at
<MichaelRaskin> So far I am happy with Xorg.
<lovesegfault> screen casting is the achilles' heel of wayland right now
<lovesegfault> it's really unfortunate
<andi-> 2020 didn't help with that at all..
<lovesegfault> Yeah :/
<andi-> Also we still can use X for that as you can still run Xwayland. It feels like we are in the XP -> Vista transitioning right now where you still have those nasty stupid legacy programs and the shiny new world isn't polished enough yet.
<MichaelRaskin> lovesegfault: I consider this a symptom, not the main issue
<MichaelRaskin> It is just high-profile enough that
<lovesegfault> MichaelRaskin: define "this"?
<MichaelRaskin> Screencasting
<lovesegfault> Ah
<lovesegfault> What's it a symptom of then?
<samueldr> ugh, "nasty stupid legacy programs" feels like such an arrogant way to put that
<MichaelRaskin> I would also want compositor-independent lockscreen animations
<andi-> samueldr: well in the XP -> Vista era it was kinda like that. Scanner drivers stopping to work and all that good stuff
<andi-> breaking for no good readon
<andi-> because the developers just didn't have to touch it for a very long time
<samueldr> yikes
<MichaelRaskin> andi-: so Wayland is a way to solve the mess of extensions, and of lack of protocol-level security, and it currently comes as a mess of incompatible sets of extensions, and nobody has any idea how to do security well
<MichaelRaskin> It is not legacy programs
<andi-> that depends on your perspective
<samueldr> an unfinished shoe-horned idealistic replacement driven by "break fast and ship things"
<andi-> Vista, as I said :-)
<andi-> I am not saying now is great
<MichaelRaskin> andi-: sorry? I do not see anywhere finished server side
<andi-> s/is/this/
<samueldr> and now everything that was still working fine and still _is_ working fine for the environment they were designed for is now at fault?
<MichaelRaskin> Not even a _design_ for a server side
<samueldr> that's... a pretty horrible take
<gchristensen> all I care is that mixed DPI and hotplug monitors work
<lovesegfault> I'm confused, how can there be "not even a design for a server side"? What coes that mean
<MichaelRaskin> Yeah, I _actively_ do not want hotplug
<lovesegfault> gchristensen: Yup
<andi-> samueldr: I never said that I think the current solution is better but from thos working on wayland X11 is "legacy"
<MichaelRaskin> lovesegfault: when there is a unified screencasting spec for Wayland and not every compositor doing a different thing…
<andi-> thus the Vista comparison, everything older was legacy
<samueldr> I really don't follow then
<MichaelRaskin> I like Vista comparison
<MichaelRaskin> It promised three big things, and delivered on one, cool window decorations
<MichaelRaskin> I do expect Wayland to get better eventually
<samueldr> because to me the way you described "nasty stupid legacy program" you're making it their fault that the world is advancing at break-neck speed
<andi-> samueldr: my point is we are at a stage where there is a shift happening to something that must happen but isn't entirely polished. Yet you still have/need users to progress and have to slowly migrate the programs as well.
<samueldr> and it almost feels like a judgement against X11 users
<samueldr> wayland is FAR from being usable to me from what I read
<MichaelRaskin> You do not need to migrate all the programs, Xwayland could work
<MichaelRaskin> Wayland misses the server side
<samueldr> and I really don't want to use any of the duopoly, either of gnome or sway
<samueldr> so now I'm a stupid nasty legacy user?
<andi-> no..
<samueldr> then that must be as I said, I don't follow :)
<andi-> I give up. I should stop discussing on the internet..
<samueldr> sorry
<andi-> It is not you... I just spent waaaay too much time reading nixpkgs/nix issues today and I'm in a terrible mood.
<samueldr> oh
<samueldr> sorry to pile up on them
<samueldr> one thing I'm still unclear with
<samueldr> (unrelated to what you said
<samueldr> is thware a WaylandX or whatever it should be called to run wayland programs on X11?
<samueldr> is there*
<lovesegfault> not AFAIK
<MichaelRaskin> winit or something?
<andi-> I think there is no wayland only stuff yet unless you skip all the "standard" toolkits
<samueldr> because I'm sure it's going to happen soon that some entitled developer à la drew devault decides all their GUI programs are wayland only
<lovesegfault> I mean, why would you need that? Most toolkits support both
<samueldr> for now
<lovesegfault> only electron supports X11 only
<lovesegfault> (still)
<andi-> You can run sway on X11 IIRC
<lovesegfault> Oh, and Chrome
<samueldr> it's bound to happen
<andi-> and then spawn wayland apps in there
<andi-> So it is probably possible
<lovesegfault> Uh
<lovesegfault> Can I run sway on xWayland on sway on xWayland on sway on xWayland on sway?
<andi-> maybe. You can keep the parts
<MichaelRaskin> It will crash
<andi-> but it shouldn't ;-)
<MichaelRaskin> Sway? Shouldn't crash?
<samueldr> it shouldn't
<samueldr> not saying it doesn't
<samueldr> but it shouldn't
<MichaelRaskin> I think with all the pointer-casting crashing sometimes might end up being a design goal
<MichaelRaskin> A secret design goal
<andi-> I remember GTK2(?) or something having magic values at the top of most of the structs so they could detect invalid pointer casting.. Is that still a thing?
<andi-> (might also have been glib or something)
<MichaelRaskin> Hmm, glib could
<samueldr> unrelated, mostly, but another higher level library for C http://libcello.org/
<MichaelRaskin> I mean, GTK would then inherit this
<samueldr> where it uses some kind of "fat pointer" design http://libcello.org/learn/a-fat-pointer-library
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-chat
tilpner has quit [Remote host closed the connection]
tilpner_ has joined #nixos-chat
tilpner_ has quit [Remote host closed the connection]
tilpner has joined #nixos-chat
kalbasit has joined #nixos-chat
<infinisil> Oh my, this ramen I have right now is spicy as hell
<infinisil> Spiciest I've ever had
<gchristensen> in a bad way?
<gchristensen> b/c if so: ouch, and :(
<lovesegfault> Recently I've started combining chipotles and mango into my vegan curry
<lovesegfault> It's made it really spicy
<lovesegfault> but it's so good
<infinisil> In a bad way, but I like pain, so it's good :P
<gchristensen> hah
<lovesegfault> Same
<gchristensen> my gut can't do that stuff anymore
<lovesegfault> I like looking like I had a workout after I eat :P
<infinisil> Phew, drinking the broth is tough
<infinisil> You need to really pay attention to just flush it down and not let it touch your throat for any more than a split second
<infinisil> Otherwise it's *really* ad
<gchristensen> #regret
<infinisil> bad
<infinisil> And yes, that just happened to me lol
<samueldr> infinisil: "You need to really pay attention to just flush it down and not let it touch your [...]" that went somewhere else in my mind
<abathur> just don't cough
<infinisil> Hehe
<infinisil> that probably too samueldr
<abathur> I sneezed with toothpaste in my mouth once
<infinisil> Was impossible not to cough
<infinisil> Phew done, I have tears in my eyes lol
<infinisil> Yeah tbh, not sure, this one might have been a bit too spicy for me :')
MichaelRaskin has quit [Quit: MichaelRaskin]