Home freenode/#xmonad: Logs Calendar

Logs: freenode/#xmonad

←Prev  Next→
Page 1 .. 70 71 72 73 74 75 76 77 78 79 80 .. 397
39,606 events total
2021-01-01 19:13:46 <ElKowar> We had a prof who was super fascinated by lisp, he kinda inspired me to do some googling and then eventually get into haskell
2021-01-01 19:13:51 <andytoshi> i'm sorta approaching haskell from both sides, using Rust and running into limitations of its type system on one side, and studying category theory from a math/physics perspective on the other
2021-01-01 19:15:01 <andytoshi> and i guess, being forced to use it by xmonad on the third side :)
2021-01-01 19:15:04 <Solid> I have to say I've always found haskell a bit boring from the category theory side
2021-01-01 19:15:19 <Solid> leaving aside the fact that Hask is not even a category, that is ;)
2021-01-01 19:15:53 <ElKowar> haskell has spoiled me. I can't touch lowlevel stuff anymore without being utterly disgusted by how dumb a lot of the issues that one faces there are
2021-01-01 19:16:12 <ElKowar> idk why, it isn't even directly related to haskell, but,... There are just too many dumb issues
2021-01-01 19:16:14 <ElKowar> in life
2021-01-01 19:16:43 <Liskni_si> that feeling will pass
2021-01-01 19:16:50 <ElKowar> bruh, i doubt it
2021-01-01 19:17:03 <Liskni_si> I used to be a Haskell snob when I was your age
2021-01-01 19:17:24 <Liskni_si> now I'm like "gimme an interesting problem in any tech I don't care lol"
2021-01-01 19:17:36 <ElKowar> I've been trying to figure out how to properly deal with grand-children processes for a month now. It seems that the POSIX spec pretty much expects you to just say "hey, yea, we're leaking processes everywhere, pleaaaaasee just reboot once in a while"
2021-01-01 19:17:42 <ElKowar> again, not actually language related
2021-01-01 19:17:48 <ElKowar> just nothing that I'd touch in a typical haskell project
2021-01-01 19:17:55 <ElKowar> so i associate nice high-level problems with haskell
2021-01-01 19:18:03 <ElKowar> and dumb lowlevel hacks with - in this case - rust
2021-01-01 19:18:07 <ElKowar> even though rust is beautiful
2021-01-01 19:18:36 <andytoshi> Liskni_si: curious what tech you use day-to-day ... i write a lot of C and it really does get in my way constantly
2021-01-01 19:19:07 <andytoshi> and Rust, which is tricksy because it's expressive enough to lure you into creating elaborate type structures, then it smacks you down with "no higher-kinded types" or its weird object-safety rules
2021-01-01 19:19:15 <andytoshi> but it is beautiful
2021-01-01 19:19:33 <Liskni_si> ElKowar: it's more like "real world impact = some amount of dumb low level hacks necessary somewhere"
2021-01-01 19:19:42 <ElKowar> big ooph
2021-01-01 19:20:08 <Liskni_si> andytoshi: there isn't any real day-to-day really :-)
2021-01-01 19:20:15 <ElKowar> in this case, I'm really just trying to run some simple, userprovided shell scripts without leaking processes. that _shouldn't_ be hard. but it's nearly impossible
2021-01-01 19:20:40 <ElKowar> also, for me a good bit of "real world" has been haskell recently, with a lot of xmonad stuff and reading more and more KMonad code
2021-01-01 19:20:46 <andytoshi> ElKowar: if you're on linux you can probably use control groups somehow
2021-01-01 19:20:54 <andytoshi> though i've never figured this out tbh
2021-01-01 19:21:14 <Solid> yay for reading kmonad code \o/
2021-01-01 19:21:27 <ElKowar> yea, "somehow",.... there is a way, but it seems as though noone has actually figured this out
2021-01-01 19:21:31 <Liskni_si> andytoshi: at my last day job I used to code Elixir and deal with some dockers and jenkinses, at the job before that I did a lot of bash and jenkins, plus a mix of python/java/perl/whatever was necessary to fix the random issue that came up
2021-01-01 19:21:38 <andytoshi> lol whoaaa what is kmonad
2021-01-01 19:22:07 <ElKowar> it's a keyboard remapping tool that tries to approximate the featureset that you could reach with a QMK firmware keyboard, written in haskell
2021-01-01 19:22:24 <Liskni_si> andytoshi: now... I am on sabbatical, so I mostly just hack xmonad and vim plugins and bash scripts in ~/bin and little python scripts that interact with dbus or google api or something
2021-01-01 19:22:29 <andytoshi> ah, so if i already have a QMK keyboard maybe i won't get much value out of it?
2021-01-01 19:22:39 <ElKowar> not really, yea
2021-01-01 19:22:53 <andytoshi> ah ok, at first i thought it might've been a QMK firmware written in haskell
2021-01-01 19:22:58 <andytoshi> which would've been pretty incredible
2021-01-01 19:23:03 <ElKowar> although, if u own a laptop, and are missing some of the features from your fancy keeb, then you can repliacte these features software side with KMOnad
2021-01-01 19:23:10 <ElKowar> which is what I'm mainly using it for
2021-01-01 19:23:26 <coldpress> so your laptop keyboard can have a numpad :)
2021-01-01 19:23:26 <andytoshi> yeah that's a good point, i do miss my good keyboarfd when i'm typing on airplanes
2021-01-01 19:23:32 <andytoshi> i also miss airplanes :P
2021-01-01 19:23:37 <ElKowar> yea, then play around with kmonad ;D
2021-01-01 19:24:44 <ElKowar> I've been considering to just take the core of KMonad (as in, the multiplatform stuff etc) and just turn that into an XMonad style "config via code" application,... but not sure how performant i could get the "let's write a filter over input sequences" approach I'm imagining for that
2021-01-01 19:25:37 <Liskni_si> ElKowar: regarding your grandchildren process, I think the state of the art is to use pidfds and cgroups, and it's that kind of thing you probably don't want to write from scratch unless at faang-scale, so trying to use systemd-run or something might be wise
2021-01-01 19:26:06 <Liskni_si> bwrap might be a systemd-less alternative to not leaking processes
2021-01-01 19:26:18 <Liskni_si> if you don't mind pid namespaces
2021-01-01 19:26:29 <Solid> kmonad should already *almost* be configurable in haskell
2021-01-01 19:26:32 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
2021-01-01 19:26:33 <ElKowar> what I've been doing was a double fork to use process groups and so on, but,... it's just super super ugly - and now trying to make that async is gonna be horrible
2021-01-01 19:27:07 <Liskni_si> yeah it's a problem the linux process management world has been struggling with for dozens of years
2021-01-01 19:27:16 <Liskni_si> don't expect to solve it on your own in a month
2021-01-01 19:28:16 <ElKowar> I'm just still,... baffled by the fact that there is no proper solution. I have about 3 apps running this very second that _need_ that functionality, i.e. a bar that can run scripts to get data, a terminal, etc etc. and they all have to do that from scratch
2021-01-01 19:29:38 <Liskni_si> do they really _need_ it?
2021-01-01 19:29:49 <ElKowar> i mean, if they want to not leak processes, they do, no?
2021-01-01 19:29:54 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
2021-01-01 19:30:19 <Liskni_si> probably, but you may fix the source of the leak instead
2021-01-01 19:30:36 <ElKowar> well, given that it's user provided scripts, I can't really
2021-01-01 19:30:38 <Liskni_si> or wrap it in a systemd service, let it leak and restart it once a day to clean up
2021-01-01 19:31:30 <Liskni_si> if it's a user code then you probably want a container-like isolation anyway
2021-01-01 19:31:37 <ElKowar> (my application is a widget system more comparable to polybar than to something server-side, so going systemd for stuffr like that would be a pretty anoying solution)
2021-01-01 19:32:15 <Liskni_si> well there's systemd-run which isn't all that annoying, provided you control the environment
2021-01-01 19:32:47 <Liskni_si> if you don't, then maybe bwrap or something like that
2021-01-01 19:32:49 <ElKowar> In this case i don't, sadly - don't want to depend on systemd being present, i.e. because mac support is also something i want to provide
2021-01-01 19:32:54 <ElKowar> bwrap could actually work, i guess
2021-01-01 19:33:01 <Liskni_si> bwrap is linux specific, too
2021-01-01 19:33:09 <ElKowar> :/
2021-01-01 19:33:42 <Liskni_si> but if this is just an open source project as opposed to a paid service, can't you just say that the user is responsible for the leaks?
2021-01-01 19:34:01 <Liskni_si> add a recommendation to monitor it, systemd it or containerize it, and be done
2021-01-01 19:34:39 <Liskni_si> (I almost feel ashamed of being so pragmatic, this is not the usual me, but it's a useful thought experiment anyway)
2021-01-01 19:34:48 <ElKowar> issue is that it isn't necessarily a "leak". the user just provides a shellscript, which may contain child processes, etc. If i terminate that script, i can't really have grand-children of that stay alive (as in, if the script is "tail whatever | foo", foo should not continue to live here)
2021-01-01 19:34:57 <Solid> (as a runit user, please don't add a systemd dependency if you don't absolutely have to)
2021-01-01 19:35:22 <ElKowar> it _shouldn't_ be an issue anyways, as the shell should handle child processes properly, but i did have issues with leaked processes in the past,....
2021-01-01 19:35:38 <ElKowar> i won't, solid, no worries :P
2021-01-01 19:36:12 <ElKowar> (general question, is off-topic like this acceptable here actually? We really completely lost any xmonad related context at this point xD)
2021-01-01 19:36:32 <Liskni_si> (I wouldn't suggest anyone to actually add a systemd dependency if this was an oss project, that's why I added "provided you control the environment" :-))
2021-01-01 19:37:17 <Solid> I think as long as there isn't an xmonad-related conversation we're completely plowing over, this kind of off-topic is fine
2021-01-01 19:37:42 <Liskni_si> as long as we're not disrupting any xmonad users from getting their well deserved (/s) free support, it should be totally acceptable :-)
2021-01-01 19:37:49 <ElKowar> Nice!
2021-01-01 19:38:43 <Liskni_si> some amount of off-topic is important for a community to work, for people to get to know each other
2021-01-01 19:39:28 <ElKowar> good point, actually
2021-01-01 19:41:14 <Liskni_si> (also, incidentally, grandchildren processes aren't all that off topic here, see #434 :-))
2021-01-01 19:47:27 <Solid> it's so funny we went through all this trouble in #434 and then completely forgot to actually add the function to the startup hook :D
2021-01-01 19:47:51 <mc47> wait what now?
2021-01-01 19:48:27 <Solid> oh I wrote your name wrong when I used ?tell
2021-01-01 19:48:50 <mc47> omg I totally forgot about that
2021-01-01 19:48:54 <Solid> yes in statusBarPropTo we only have `(spawnStatusBarAndRemember cmd)' as a startup hook, we never actually kill the bars
2021-01-01 19:49:03 <Solid> so we may want to fix that :P
2021-01-01 19:49:20 <mc47> totally, Ill quickly push something
2021-01-01 19:49:24 <Liskni_si> to be fair the documentation does look like people are supposed to use cleanupStatusBars
2021-01-01 19:49:32 <Liskni_si> but it's not good UX
2021-01-01 19:49:41 <mc47> Yeah, we should add it
2021-01-01 19:50:25 <mc47> I didn't really test the final version because I have already started using a datatype for status bars in my config to see how it would look like
2021-01-01 19:50:51 <mc47> by datatype I mean a record
2021-01-01 19:52:21 <mc47> And tbh, I like the idea :-) I'll make a PR soon
2021-01-01 19:57:06 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
2021-01-01 20:03:50 <Solid> sounds good; how are you handling the keybindings?
2021-01-01 20:04:02 <Solid> I remember you wanted more freedom instead of only a toggle struts key
2021-01-01 20:05:31 <mc47> I defined a record with 4 things: a log-hook, a startHook, a key and an action
←Prev  Next→
Page 1 .. 70 71 72 73 74 75 76 77 78 79 80 .. 397

All times are in UTC.