2025-04-29 00:00:24 +0200 | <int-e> | I wonder if it has opinions on WorldCoin |
2025-04-29 00:01:16 +0200 | <davean> | I' |
2025-04-29 00:01:29 +0200 | <davean> | ve started to loath a new trend |
2025-04-29 00:01:44 +0200 | <davean> | In issues, people throwing the thing at ChatGPT or whatever, and " |
2025-04-29 00:01:50 +0200 | <davean> | pasting" its answer as a solution |
2025-04-29 00:02:01 +0200 | <davean> | It make me want to lock the issues and never fix it |
2025-04-29 00:02:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-04-29 00:02:14 +0200 | <davean> | Its so actively unhelpful I wonder if people are doing it to troll |
2025-04-29 00:02:28 +0200 | <davean> | esp when what it pastes is self-evidently non-helpful |
2025-04-29 00:02:35 +0200 | <davean> | Which, so far, is all I've seen |
2025-04-29 00:02:44 +0200 | <haskellbridge> | <sm> I wouldn't mind if it's something helpful |
2025-04-29 00:02:57 +0200 | <haskellbridge> | <sm> I think I posted one of those myself recently |
2025-04-29 00:02:59 +0200 | <davean> | Its litterly never been, and it mean it kinda obviously won't be? |
2025-04-29 00:03:05 +0200 | <davean> | ... yah, you are one of the people I was thinking of |
2025-04-29 00:03:24 +0200 | <davean> | Yours was a great example of self-evidently not helpful |
2025-04-29 00:03:33 +0200 | <haskellbridge> | <sm> yikes! where was that |
2025-04-29 00:03:38 +0200 | <haskellbridge> | <sm> called out on my first attempt 🤣 |
2025-04-29 00:03:39 +0200 | <davean> | The wiki one |
2025-04-29 00:04:14 +0200 | <davean> | Where it suggested A) uncommenting a commented out line (How do you think it got commented out in the first place? If yhou had a question, check the git history) and B) generated an invalid CSS statement |
2025-04-29 00:04:52 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 00:05:16 +0200 | <int-e> | davean: I understand that it gets worse when there's a monetary incentive (bug bounties) |
2025-04-29 00:05:37 +0200 | <davean> | Oh god, I wouldn't be surprised if it did |
2025-04-29 00:05:46 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
2025-04-29 00:05:51 +0200 | <davean> | sm: on the plus side, your chatgpt response annyoed someone else enough to just fix it :) |
2025-04-29 00:05:54 +0200 | <haskellbridge> | <sm> https://github.com/haskell/haskell-wiki-configuration/issues/56#issuecomment-2822104811 |
2025-04-29 00:06:38 +0200 | <davean> | sorry, the "A" side was simplified out from you IRC posting, not the full length one. |
2025-04-29 00:07:18 +0200 | <haskellbridge> | <sm> I thought it gave some potentially useful context to my previous (human generated, terse) comment, to someone trying to fix this, and if not, would be easy to ignore. |
2025-04-29 00:08:31 +0200 | <davean> | It made it very evident it was splurting out some tutorial and nothing related to the actual config |
2025-04-29 00:08:52 +0200 | <haskellbridge> | <sm> to you. Obviously people like me trying to help don't have the same insight |
2025-04-29 00:09:12 +0200 | <haskellbridge> | <sm> I'll me more cautious on this tracker in future |
2025-04-29 00:09:16 +0200 | <haskellbridge> | <sm> be |
2025-04-29 00:09:44 +0200 | <davean> | The state at that comment was https://github.com/haskell/haskell-wiki-configuration/blob/beb924470357d8cc008a5c8118211066897a48e… |
2025-04-29 00:09:45 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-04-29 00:09:57 +0200 | <davean> | You'll note a several line block of it commented out |
2025-04-29 00:10:31 +0200 | <davean> | Someone didn't write all that and comment it out by "accident" |
2025-04-29 00:11:27 +0200 | <davean> | Which is the sort of theory-of-mind ChatGPT seems to seriously lack |
2025-04-29 00:11:54 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) paotsaq |
2025-04-29 00:11:56 +0200 | <haskellbridge> | <sm> I pointed that out myself, but didn't know why (there was no explanation) |
2025-04-29 00:11:56 +0200 | <davean> | anyway, sm, you're hardly the worst person with this ever |
2025-04-29 00:12:33 +0200 | <davean> | Oh the CSS side I sohuld finish |
2025-04-29 00:12:49 +0200 | <davean> | it was a CSS directive that targeted displayed text, it clearly mixed up context between display and syntax |
2025-04-29 00:12:56 +0200 | <davean> | anyway, sm, you are HARDLY the worst |
2025-04-29 00:13:06 +0200 | <davean> | Its a real plauge lately though |
2025-04-29 00:13:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 00:14:03 +0200 | <haskellbridge> | <sm> I know that I'm not the worst. I was trying to be helpful. No need to beat up a volunteer for an unhelpful post, I've said I'll be more cautious |
2025-04-29 00:15:07 +0200 | <davean> | For an explanation of why it was commented out, it was commented out because the repo contains the code, but not in a runable state - it requires a specific build procedure to be run before it is a valid extension. As it was just a stylistic display issue I didn't feel like learning a PHP build sytem to get the wiki back online after the great wiki disaster and I hoped something obvious like that |
2025-04-29 00:15:09 +0200 | <davean> | would get anyone to step up and assist since I didn't want to end up owning the wiki just because I rescued it. |
2025-04-29 00:15:33 +0200 | <davean> | tolt happened to find a place they had actually already run the build system though, which made it easy to fix |
2025-04-29 00:16:53 +0200 | <davean> | Hopefully tolt having made a test vm setup thing for it other people might try working on it. |
2025-04-29 00:18:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 00:19:31 +0200 | <haskellbridge> | <sm> I became annoyed enough at the 6 month breakage to try to spend some more time helping. Without access or any insight / status reports I couldn't do more than blind research. I'm glad it helped remind people of the problem, even it if was annoying. It's just another github issue. |
2025-04-29 00:20:18 +0200 | <davean> | Hum? That is a full container config for the wiki in that repo |
2025-04-29 00:21:13 +0200 | <davean> | That is litterly the wiki, minutes its data |
2025-04-29 00:22:36 +0200 | <haskellbridge> | <sm> I'm irritated. Sorry, I'll drop this |
2025-04-29 00:28:00 +0200 | harveypwca | (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) |
2025-04-29 00:28:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 00:31:41 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-04-29 00:34:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 00:34:38 +0200 | <haskellbridge> | <hellwolf> 🫠 tragedy of the gift economy... which needs more cheerleaders |
2025-04-29 00:35:12 +0200 | <int-e> | . o O ( it's spelled "grift" ) |
2025-04-29 00:35:16 +0200 | sprotte24 | (~sprotte24@p200300d16f1e9b00643a7ed1094ff735.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-04-29 00:38:04 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-04-29 00:42:05 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
2025-04-29 00:44:40 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 00:44:57 +0200 | tolgo | (~Thunderbi@199.115.144.130) |
2025-04-29 00:45:22 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-29 00:49:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 00:49:44 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) justsomeguy |
2025-04-29 00:51:25 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-04-29 00:55:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 00:55:13 +0200 | califax_ | (~califax@user/califx) califx |
2025-04-29 00:56:00 +0200 | califax | (~califax@user/califx) (Ping timeout: 264 seconds) |
2025-04-29 00:56:26 +0200 | califax_ | califax |
2025-04-29 00:59:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-29 01:01:45 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-04-29 01:10:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 01:15:58 +0200 | Buliarous | (~gypsydang@46.232.210.139) (Remote host closed the connection) |
2025-04-29 01:16:26 +0200 | Buliarous | (~gypsydang@46.232.210.139) Buliarous |
2025-04-29 01:17:26 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-29 01:18:38 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) (Quit: Client closed) |
2025-04-29 01:19:25 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-04-29 01:21:39 +0200 | <monochrom> | darkling: Actually our department chair has also received students' escalated tickets "I answered something but my prof gave me 0". >:) |
2025-04-29 01:22:28 +0200 | <monochrom> | There were 3 such cases and the profs were all different. It is becoming a meme across the board. |
2025-04-29 01:23:47 +0200 | <int-e> | . o O ( I asked ChatGPT and it said I should receive full marks. ) |
2025-04-29 01:27:19 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) (Quit: Client closed) |
2025-04-29 01:27:31 +0200 | jespada_ | (~jespada@r179-25-42-1.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2025-04-29 01:28:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 01:30:25 +0200 | tolgo | (~Thunderbi@199.115.144.130) (Ping timeout: 276 seconds) |
2025-04-29 01:32:34 +0200 | <monochrom> | Oh yeah have you heard of this old joke: If you think you know everything, you can get a Bachelor's. When you find out you don't know anything, you can get a Master's. When you also find out that your thesis supervisor doesn't know anything either, you can get a PhD. |
2025-04-29 01:32:50 +0200 | <monochrom> | I have upgraded that to a modern version. |
2025-04-29 01:33:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-29 01:33:43 +0200 | <monochrom> | If you think LLMs know everything, you can get a Bachelor's. When you find out that LLMs don't know anything, you can get a Master's. When you find out that your thesis supervisor is also relying on LLMs, you can get a PhD. |
2025-04-29 01:33:46 +0200 | <darkling> | You learn more and more about less and less, until you know everything about nothing... |
2025-04-29 01:34:02 +0200 | <darkling> | (At which point, they give you a PhD to get rid of you). |
2025-04-29 01:35:52 +0200 | <darkling> | Somewhat glad I'm not in academia any more. Should have got out much earlier. Would have given me more time to get burned out and recover from industry... :/ |
2025-04-29 01:37:36 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f61394430d048071491.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2025-04-29 01:44:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 01:45:51 +0200 | harveypwca | (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving) |
2025-04-29 01:46:48 +0200 | <EvanR> | I would like my Master's now |
2025-04-29 01:47:20 +0200 | <EvanR> | 🫴 |
2025-04-29 01:47:45 +0200 | <darkling> | Don't bother. It's not worth it. :) |
2025-04-29 01:48:00 +0200 | Googulator47 | (~Googulato@2a01-036d-0106-093f-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Quit: Client closed) |
2025-04-29 01:48:14 +0200 | Googulator47 | (~Googulato@2a01-036d-0106-093f-1dc7-297e-fae3-e794.pool6.digikabel.hu) |
2025-04-29 01:48:40 +0200 | <monochrom> | Nah, Master's is OK, just don't get sucked into PhD. :) |
2025-04-29 01:48:42 +0200 | <int-e> | EvanR: those aren't requirements, they're consequences |
2025-04-29 01:49:01 +0200 | <int-e> | (also it's a joke) |
2025-04-29 01:49:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 01:50:05 +0200 | <EvanR> | how do you I wasn't joking! |
2025-04-29 01:50:09 +0200 | <EvanR> | know |
2025-04-29 01:50:36 +0200 | <monochrom> | <poker face>Everyone is not joking</poker face> |
2025-04-29 01:50:39 +0200 | <int-e> | EvanR: I don't |
2025-04-29 01:51:17 +0200 | <EvanR> | this joke is serious |
2025-04-29 01:51:24 +0200 | <int-e> | EvanR: I mean, you were clearly joking. But I'm not sure what exactly you were joking about ;-) |
2025-04-29 01:54:15 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-04-29 01:59:01 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-04-29 02:00:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 02:05:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-29 02:05:21 +0200 | gadot | (Angelz@user/angelz) (Ping timeout: 268 seconds) |
2025-04-29 02:07:34 +0200 | mange | (~user@user/mange) mange |
2025-04-29 02:10:18 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:42ff:c32a:d7a0:a5f4) |
2025-04-29 02:10:28 +0200 | msa | (msa@msa.planetofnix.com) (Read error: Connection reset by peer) |
2025-04-29 02:15:47 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 02:18:59 +0200 | msa | (msa@msa.planetofnix.com) |
2025-04-29 02:21:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 02:31:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 02:31:54 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e) (Remote host closed the connection) |
2025-04-29 02:32:23 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-04-29 02:33:53 +0200 | califax | (~califax@user/califx) califx |
2025-04-29 02:34:34 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:88e0:76ff:fe9c:b21e) hgolden |
2025-04-29 02:36:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-29 02:41:16 +0200 | otto_s | (~user@p4ff27ad7.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2025-04-29 02:42:22 +0200 | otto_s | (~user@p5de2faf5.dip0.t-ipconnect.de) |
2025-04-29 02:43:40 +0200 | Angelz | (Angelz@angelz.oddprotocol.org) |
2025-04-29 02:47:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 02:51:08 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-04-29 02:54:03 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-29 02:54:36 +0200 | juri_ | (~juri@implicitcad.org) (Ping timeout: 265 seconds) |
2025-04-29 02:56:05 +0200 | juri_ | (~juri@implicitcad.org) juri_ |
2025-04-29 02:57:28 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2025-04-29 02:57:45 +0200 | gorignak | (~gorignak@user/gorignak) gorignak |
2025-04-29 02:57:50 +0200 | euleritian | (~euleritia@dynamic-176-006-135-001.176.6.pool.telefonica.de) (Remote host closed the connection) |
2025-04-29 02:58:42 +0200 | euleritian | (~euleritia@dynamic-176-006-135-001.176.6.pool.telefonica.de) |
2025-04-29 02:59:36 +0200 | euleritian | (~euleritia@dynamic-176-006-135-001.176.6.pool.telefonica.de) (Remote host closed the connection) |
2025-04-29 03:00:26 +0200 | euleritian | (~euleritia@dynamic-176-006-135-001.176.6.pool.telefonica.de) |
2025-04-29 03:00:27 +0200 | euleritian | (~euleritia@dynamic-176-006-135-001.176.6.pool.telefonica.de) (Remote host closed the connection) |
2025-04-29 03:05:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 03:05:52 +0200 | notdabs | (~Owner@2600:1700:69cf:9000:79ef:6a68:163c:c553) (Quit: Leaving) |
2025-04-29 03:07:05 +0200 | <EvanR> | haskell is usually taken as using lazy evaluation while e.g. javascript is eager evaluation. If you were to specify "evaluation strategy is not specified", would that force you to write like haskell, or like javascript, or neither, if you didn't care about side effects, exceptions, and performance |
2025-04-29 03:08:22 +0200 | <EvanR> | (haskell isn't specified to be lazy, though I'm not sure how relevant it is to this) |
2025-04-29 03:10:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 03:11:46 +0200 | <c_wraith> | Haskell isn't specified to be lazy, but it is specified to terminate if any evaluation order will do so. It's hard to get that behavior without default laziness |
2025-04-29 03:12:29 +0200 | gorignak | (~gorignak@user/gorignak) (Ping timeout: 265 seconds) |
2025-04-29 03:13:18 +0200 | <monochrom> | If evaluation isn't specified, then I would need strictness to be specified. The Haskell Report specifies non-strict. |
2025-04-29 03:15:30 +0200 | <EvanR> | if neither are specified? |
2025-04-29 03:18:34 +0200 | <EvanR> | in some sense lazy evaluation subsumes eager evaluation, so does it mean with no other information you would default to eager? |
2025-04-29 03:18:47 +0200 | <monochrom> | If unspecified, then I cannot assume for example const () bottom = (), so pessimistically I will have to write like, well, I don't want to get js involved, but I can work with SML or Racket. |
2025-04-29 03:19:00 +0200 | <monochrom> | Yeah, that. |
2025-04-29 03:21:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 03:21:27 +0200 | <EvanR> | that sucks! |
2025-04-29 03:22:52 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2025-04-29 03:23:46 +0200 | gorignak | (~gorignak@user/gorignak) gorignak |
2025-04-29 03:24:56 +0200 | <monochrom> | But I haven't really needed to resort to that. Most languages are sufficiently specified or at least suffciently de-facto'ed. |
2025-04-29 03:25:32 +0200 | <EvanR> | they are, though I was wondering to what extent that was necessary |
2025-04-29 03:25:58 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 03:26:58 +0200 | <EvanR> | predicting performance aside, the main issue is going into an infinite loop because of insufficient laziness |
2025-04-29 03:27:01 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-04-29 03:30:22 +0200 | <EvanR> | which is where haskell's guarantee comes in |
2025-04-29 03:30:43 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-04-29 03:32:12 +0200 | gorignak | (~gorignak@user/gorignak) (Ping timeout: 252 seconds) |
2025-04-29 03:36:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 03:41:35 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-29 03:52:47 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 03:56:14 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:42ff:c32a:d7a0:a5f4) (Ping timeout: 245 seconds) |
2025-04-29 03:56:58 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds) |
2025-04-29 03:58:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-29 04:00:13 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) Raito_Bezarius |
2025-04-29 04:08:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 04:13:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 04:16:39 +0200 | tavare | (~tavare@150.129.88.189) tavare |
2025-04-29 04:16:40 +0200 | tavare | (~tavare@150.129.88.189) (Changing host) |
2025-04-29 04:16:40 +0200 | tavare | (~tavare@user/tavare) tavare |
2025-04-29 04:17:19 +0200 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-04-29 04:20:14 +0200 | td_ | (~td@i53870908.versanet.de) (Ping timeout: 252 seconds) |
2025-04-29 04:21:59 +0200 | td_ | (~td@i53870912.versanet.de) |
2025-04-29 04:24:22 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 04:25:20 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) |
2025-04-29 04:30:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-04-29 04:31:35 +0200 | Sgeo_ | (~Sgeo@user/sgeo) Sgeo |
2025-04-29 04:34:10 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 252 seconds) |
2025-04-29 04:38:09 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds) |
2025-04-29 04:39:50 +0200 | prdak | (~Thunderbi@user/prdak) prdak |
2025-04-29 04:41:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 04:44:04 +0200 | prdak | (~Thunderbi@user/prdak) (Ping timeout: 252 seconds) |
2025-04-29 04:46:01 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) Feuermagier |
2025-04-29 04:46:09 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2025-04-29 04:46:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-29 04:57:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 04:58:32 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-04-29 04:59:18 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2025-04-29 05:02:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-29 05:13:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 05:18:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-29 05:28:26 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2025-04-29 05:28:57 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 05:29:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 05:35:22 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-29 05:35:43 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 05:35:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-04-29 05:36:34 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 05:40:18 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 05:41:55 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 05:45:40 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 05:46:42 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 05:47:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 05:48:05 +0200 | michalz | (~michalz@185.246.207.205) |
2025-04-29 05:51:20 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 05:52:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-29 06:03:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 06:04:39 +0200 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2025-04-29 06:04:41 +0200 | fp | (~Thunderbi@87-94-239-173.bb.dnainternet.fi) fp |
2025-04-29 06:10:42 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-04-29 06:15:04 +0200 | Fijxu | (~Fijxu@user/fijxu) (Quit: XD!!) |
2025-04-29 06:17:41 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2025-04-29 06:17:54 +0200 | Fijxu | (~Fijxu@user/fijxu) fijxu |
2025-04-29 06:18:40 +0200 | Digit | (~user@user/digit) (Ping timeout: 260 seconds) |
2025-04-29 06:21:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 06:21:23 +0200 | Fijxu | (~Fijxu@user/fijxu) (Quit: XD!!) |
2025-04-29 06:22:19 +0200 | gabiruh_ | (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds) |
2025-04-29 06:26:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-29 06:27:25 +0200 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2025-04-29 06:30:06 +0200 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
2025-04-29 06:31:05 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-04-29 06:32:14 +0200 | Fijxu | (~Fijxu@user/fijxu) fijxu |
2025-04-29 06:32:14 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 272 seconds) |
2025-04-29 06:36:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 06:42:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 06:47:51 +0200 | zlqrvx | (~zlqrvx@2001:8003:8c8b:e00:374a:bdcb:457c:d1e3) (Read error: Connection reset by peer) |
2025-04-29 06:48:22 +0200 | zlqrvx | (~zlqrvx@101.175.150.247) |
2025-04-29 06:50:13 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2025-04-29 06:52:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 06:53:19 +0200 | Digitteknohippie | Digit |
2025-04-29 06:57:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-04-29 07:01:27 +0200 | elnegro | (elnegro@r186-50-156-231.dialup.adsl.anteldata.net.uy) elnegro |
2025-04-29 07:05:54 +0200 | j1n37- | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 07:08:23 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 07:08:59 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 07:10:42 +0200 | elnegro | (elnegro@r186-50-156-231.dialup.adsl.anteldata.net.uy) () |
2025-04-29 07:15:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 07:22:14 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 07:22:33 +0200 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-04-29 07:23:22 +0200 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 276 seconds) |
2025-04-29 07:25:46 +0200 | fp | (~Thunderbi@87-94-239-173.bb.dnainternet.fi) (Ping timeout: 252 seconds) |
2025-04-29 07:25:52 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 07:26:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 07:27:40 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-04-29 07:29:16 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 07:31:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 07:32:19 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 07:34:27 +0200 | akegalj | (~akegalj@83-131-244-60.adsl.net.t-com.hr) akegalj |
2025-04-29 07:41:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 07:47:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-04-29 07:52:10 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f61394430d048071491.dip0.t-ipconnect.de) |
2025-04-29 07:55:48 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-04-29 07:57:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 08:00:31 +0200 | dutchie | (~dutchie@user/dutchie) (Remote host closed the connection) |
2025-04-29 08:01:41 +0200 | mikess | (~sam@user/mikess) mikess |
2025-04-29 08:02:22 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 08:06:17 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 08:10:14 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2025-04-29 08:10:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2025-04-29 08:11:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 08:16:21 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-04-29 08:22:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 08:24:00 +0200 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
2025-04-29 08:27:39 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-04-29 08:27:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-04-29 08:28:22 +0200 | acidjnk_new | (~acidjnk@p200300d6e71c4f61394430d048071491.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2025-04-29 08:38:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 08:42:54 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-04-29 08:45:47 +0200 | acidjnk_new | (~acidjnk@p54ad5829.dip0.t-ipconnect.de) |
2025-04-29 08:54:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 08:56:14 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-04-29 09:00:04 +0200 | akegalj | (~akegalj@83-131-244-60.adsl.net.t-com.hr) (Ping timeout: 260 seconds) |
2025-04-29 09:00:05 +0200 | caconym7 | (~caconym@user/caconym) (Quit: bye) |
2025-04-29 09:00:43 +0200 | caconym7 | (~caconym@user/caconym) caconym |
2025-04-29 09:01:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-04-29 09:05:27 +0200 | dutchie | (~dutchie@user/dutchie) dutchie |
2025-04-29 09:07:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-04-29 09:12:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-04-29 09:12:25 +0200 | akegalj | (~akegalj@144-188.dsl.iskon.hr) |
2025-04-29 09:18:25 +0200 | akegalj | (~akegalj@144-188.dsl.iskon.hr) (Ping timeout: 276 seconds) |
2025-04-29 09:20:58 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-29 09:21:47 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-04-29 09:22:36 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2025-04-29 09:23:08 +0200 | Lord_of_Life_ | Lord_of_Life |
2025-04-29 09:30:04 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2025-04-29 09:30:30 +0200 | dutchie_ | (~dutchie@user/dutchie) dutchie |
2025-04-29 09:32:48 +0200 | dutchie | (~dutchie@user/dutchie) (Killed (NickServ (GHOST command used by dutchie_))) |
2025-04-29 09:32:51 +0200 | dutchie_ | dutchie |
2025-04-29 09:33:38 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-04-29 09:34:39 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 272 seconds) |
2025-04-29 09:43:29 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2025-04-29 09:43:46 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
2025-04-29 09:48:15 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2025-04-29 09:51:44 +0200 | Guest17 | (~Guest17@2a01:4b00:84f0:ef00:382c:2ec8:780c:c40) |
2025-04-29 09:52:02 +0200 | Guest17 | (~Guest17@2a01:4b00:84f0:ef00:382c:2ec8:780c:c40) (Client Quit) |
2025-04-29 09:52:09 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-04-29 09:55:37 +0200 | aku | (aku@65.108.245.241) (Quit: Lost terminal) |
2025-04-29 09:56:22 +0200 | Guest17 | (~Guest17@2a01:4b00:84f0:ef00:382c:2ec8:780c:c40) |
2025-04-29 09:56:46 +0200 | aku | (aku@65.108.245.241) eagleflo |
2025-04-29 09:57:03 +0200 | Guest17 | (~Guest17@2a01:4b00:84f0:ef00:382c:2ec8:780c:c40) (Client Quit) |
2025-04-29 09:58:54 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2025-04-29 10:02:54 +0200 | nernst | (~nernst@188.214.9.73) |
2025-04-29 10:04:20 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-29 10:07:14 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-04-29 10:14:11 +0200 | akegalj | (~akegalj@95.168.121.7) |
2025-04-29 10:19:36 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-04-29 10:21:50 +0200 | ft | (~ft@p4fc2a6e6.dip0.t-ipconnect.de) (Quit: leaving) |
2025-04-29 10:27:33 +0200 | mikess | (~sam@user/mikess) (Ping timeout: 252 seconds) |
2025-04-29 10:32:36 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:cf62:b619:dd0:f1a5) |
2025-04-29 10:37:22 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-04-29 10:38:22 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:cf62:b619:dd0:f1a5) (Ping timeout: 276 seconds) |
2025-04-29 10:39:01 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 276 seconds) |
2025-04-29 10:44:06 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-04-29 10:51:14 +0200 | Googulator71 | (~Googulato@94-21-139-144.pool.digikabel.hu) |
2025-04-29 10:54:06 +0200 | Googulator47 | (~Googulato@2a01-036d-0106-093f-1dc7-297e-fae3-e794.pool6.digikabel.hu) (Ping timeout: 240 seconds) |
2025-04-29 11:01:00 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2025-04-29 11:03:16 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 11:03:44 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
2025-04-29 11:06:49 +0200 | dhil | (~dhil@5.151.29.137) dhil |
2025-04-29 11:19:58 +0200 | dhil | (~dhil@5.151.29.137) (Ping timeout: 276 seconds) |
2025-04-29 11:23:56 +0200 | chele | (~chele@user/chele) chele |
2025-04-29 11:32:36 +0200 | dhil | (~dhil@openvpn-125-1069.inf.ed.ac.uk) dhil |
2025-04-29 11:37:58 +0200 | dhil | (~dhil@openvpn-125-1069.inf.ed.ac.uk) (Ping timeout: 252 seconds) |
2025-04-29 11:40:17 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-04-29 11:43:44 +0200 | kindlyremote79 | (~ernie@188-115-167-65.broadband.tenet.odessa.ua) |
2025-04-29 11:47:51 +0200 | kindlyremote79 | (~ernie@188-115-167-65.broadband.tenet.odessa.ua) () |
2025-04-29 11:50:20 +0200 | dhil | (~dhil@5.151.29.139) dhil |
2025-04-29 11:55:08 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-04-29 11:55:39 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 260 seconds) |
2025-04-29 11:58:09 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-04-29 12:01:04 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-04-29 12:02:34 +0200 | califax | (~califax@user/califx) califx |
2025-04-29 12:11:04 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:709f:303f:f5cb:a092) |
2025-04-29 12:18:05 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Quit: fp) |
2025-04-29 12:18:14 +0200 | fp2 | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-04-29 12:20:40 +0200 | fp2 | fp |
2025-04-29 12:21:12 +0200 | talismanick | (~user@2601:644:937c:ed10::ae5) (Ping timeout: 272 seconds) |
2025-04-29 12:23:37 +0200 | tromp | (~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) |
2025-04-29 12:38:55 +0200 | wlhn | (~wlhn@130.41.101.92) wlhn |
2025-04-29 12:39:17 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:709f:303f:f5cb:a092) (Ping timeout: 268 seconds) |
2025-04-29 12:39:48 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-29 12:45:07 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 276 seconds) |
2025-04-29 12:49:10 +0200 | nernst | (~nernst@188.214.9.73) (Read error: Connection reset by peer) |
2025-04-29 12:49:26 +0200 | <haskellbridge> | <Liamzee> the Maybe type is a horrible mistake |
2025-04-29 12:49:34 +0200 | nernst | (~nernst@188.214.9.73) |
2025-04-29 12:49:55 +0200 | <haskellbridge> | <Liamzee> or more correctly, Stream s => Maybe s |
2025-04-29 12:50:40 +0200 | akegalj | (~akegalj@95.168.121.7) (Read error: Connection reset by peer) |
2025-04-29 12:51:02 +0200 | <haskellbridge> | <Liamzee> See, I'm hand-building a parser from Text.Strict.Text to Maybe ByteString.Strict on the assumption that the input data is chars between '0' and 'f' inclusive |
2025-04-29 12:51:56 +0200 | <haskellbridge> | <Liamzee> and, the number of chars is even |
2025-04-29 12:51:58 +0200 | <haskellbridge> | <Liamzee> if these conditions aren't met, it'll return a Nothing |
2025-04-29 12:52:04 +0200 | <haskellbridge> | <Liamzee> HOWEVER, it breaks composition, doesn't it? |
2025-04-29 12:52:26 +0200 | <haskellbridge> | <Liamzee> because either the function composition or the <$> operator will be checking for the Nothing type, causing the entire stream to be actualized |
2025-04-29 12:52:32 +0200 | <haskellbridge> | <Liamzee> erm, Nothing value |
2025-04-29 12:52:39 +0200 | <haskellbridge> | <Liamzee> any ideas? |
2025-04-29 12:53:31 +0200 | <haskellbridge> | <Liamzee> The problem is that I'm depending on ByteString.Strict.pack, so I'm out of luck; it's breaking function composition, otherwise I could do it with a foldr |
2025-04-29 12:56:52 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2025-04-29 12:58:15 +0200 | Digit | (~user@user/digit) (Ping timeout: 260 seconds) |
2025-04-29 12:59:55 +0200 | mari72280 | (~mari-este@user/mari-estel) mari-estel |
2025-04-29 13:00:05 +0200 | nernst | (~nernst@188.214.9.73) (Read error: Connection reset by peer) |
2025-04-29 13:00:59 +0200 | mari-estel | (~mari-este@user/mari-estel) (Read error: Connection reset by peer) |
2025-04-29 13:01:47 +0200 | <tomsmeding> | Liamzee: yes, producing a 'Maybe a' means that you have to tell whether you will return _anything_ before you get to return something |
2025-04-29 13:02:08 +0200 | <tomsmeding> | in return, a consumer gets to know whether there is info here before starting to process said info |
2025-04-29 13:02:41 +0200 | <tomsmeding> | a stream type that can raise an error later during processing allows a producer to start producing data already before it knows whether the whole process will be successful |
2025-04-29 13:02:49 +0200 | <haskellbridge> | <Liamzee> is there a way around it? I'm working with Hasql and I'm trying to replicate its explicit exception philosophy |
2025-04-29 13:03:04 +0200 | <tomsmeding> | in return, a consumer is forced to already start consuming data before knowing whether there is even supposed to be data in the first place |
2025-04-29 13:03:06 +0200 | <haskellbridge> | <Liamzee> i'm also learning "hey, force / ! on inputs when you're going into IO is a good idea!" |
2025-04-29 13:03:19 +0200 | <tomsmeding> | neither is always better than the other |
2025-04-29 13:03:39 +0200 | <haskellbridge> | <Liamzee> i mean the target is a strict bytestring |
2025-04-29 13:03:48 +0200 | <haskellbridge> | <Liamzee> so it's known that the data will be extant on use |
2025-04-29 13:03:56 +0200 | <haskellbridge> | <Liamzee> source: strict text, target, strict bytestring |
2025-04-29 13:04:03 +0200 | <tomsmeding> | "target" of the producer or the consumer? |
2025-04-29 13:04:14 +0200 | <haskellbridge> | <Liamzee> also, Bytestring.pack points to packBytes, which on strict uses List.length |
2025-04-29 13:04:15 +0200 | haskellbridge | Liamzee giggles |
2025-04-29 13:04:33 +0200 | <tomsmeding> | there's little else it can do, is there? |
2025-04-29 13:04:51 +0200 | <haskellbridge> | <Liamzee> the output of the strict bytestring |
2025-04-29 13:05:28 +0200 | <tomsmeding> | so you want to transform a strict text to a strict bytestring, and be able to bail out halfway through if it turns out the Text wasn't valid somehow? |
2025-04-29 13:05:44 +0200 | <haskellbridge> | <Liamzee> https://paste.tomsmeding.com/mFWq0v2a |
2025-04-29 13:05:46 +0200 | <haskellbridge> | <Liamzee> yeah |
2025-04-29 13:05:49 +0200 | <tomsmeding> | without having to check the whole Text before starting to write the ByteString |
2025-04-29 13:06:03 +0200 | <haskellbridge> | <Liamzee> also the massive if is because i'm not going to import data.map for this |
2025-04-29 13:06:59 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-04-29 13:07:01 +0200 | <tomsmeding> | uh, what about `\c -> if '0' <= c && c <= '9' then ord c - ord '0' else 10 + ord c - ord 'a'`? |
2025-04-29 13:07:02 +0200 | <haskellbridge> | <loonycyborg> wouldn't it stop processing automatically once it determines that input is invalid? |
2025-04-29 13:07:09 +0200 | <tomsmeding> | less code, clearer, and faster |
2025-04-29 13:08:23 +0200 | <tomsmeding> | Liamzee: for completeness, you can write what I think you want manually using ST: allocate a mutable array in ST, and write stuff into it monadically; if you succeed, freeze the array to a bytestring with some of their unsafe functions, and if not, just bail out and leave the array to be picked up by GC |
2025-04-29 13:08:29 +0200 | <haskellbridge> | <Liamzee> you're right, the both of you |
2025-04-29 13:08:37 +0200 | <tomsmeding> | it's not particularly compositional, but it does work |
2025-04-29 13:08:44 +0200 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-04-29 13:09:05 +0200 | <tomsmeding> | streaming libraries probably abstract over this pattern |
2025-04-29 13:09:06 +0200 | <haskellbridge> | <loonycyborg> or you want to load bytestring itself in chunks? |
2025-04-29 13:09:44 +0200 | <tomsmeding> | Liamzee: worth noting here is that if you're starting from a strict Text, then you won't stream that -- it's strict, after all |
2025-04-29 13:09:48 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds) |
2025-04-29 13:09:59 +0200 | Digitteknohippie | Digit |
2025-04-29 13:10:07 +0200 | <haskellbridge> | <Liamzee> ? |
2025-04-29 13:10:21 +0200 | <tomsmeding> | so the only upside of traversing it once (and writing the ByteString along the way) -- as opposed to doing a checking pass and then an always-successful writing pass -- is that you don't read the input twice |
2025-04-29 13:10:27 +0200 | <haskellbridge> | <Liamzee> If I have a streaming function operating on the strict text, the text is discrete, but the work being done on the text should be streamable |
2025-04-29 13:10:41 +0200 | <tomsmeding> | there is no such thing as "streaming work" |
2025-04-29 13:10:50 +0200 | <tomsmeding> | there _is_ such a thing as streaming data |
2025-04-29 13:11:12 +0200 | <tomsmeding> | or actually, I guess "streaming work" could be a different way to say "loop fusion" |
2025-04-29 13:11:23 +0200 | <haskellbridge> | <Liamzee> ya |
2025-04-29 13:11:32 +0200 | <haskellbridge> | <Liamzee> the code is disgusting, but i should go finish the library first |
2025-04-29 13:11:40 +0200 | <haskellbridge> | <Liamzee> i wonder if anyone would help fix it, but someone already pointed out it's a bad idea |
2025-04-29 13:11:58 +0200 | <tomsmeding> | but if you're talking about "streaming work", then there should be work to stream -- if you're going from strict text to strict bytestring, then there is no other work to fuse with this |
2025-04-29 13:12:23 +0200 | <haskellbridge> | <Liamzee> in the sense that the code is obviously doing multiple streams |
2025-04-29 13:12:32 +0200 | <tomsmeding> | GHC is not going to magically eliminate e.g. the intermediate strict bytestring if you process the bytestring immediately after creating it |
2025-04-29 13:12:36 +0200 | <tomsmeding> | mostly because it's strict |
2025-04-29 13:12:49 +0200 | <haskellbridge> | <Liamzee> chunksOfTwo does a full allocation of the list first |
2025-04-29 13:12:57 +0200 | <tomsmeding> | if you use a _lazy_ bytestring, you can stream the data, and hence laziness will produce in some kind of "work streaming" too |
2025-04-29 13:13:26 +0200 | <tomsmeding> | oh I see |
2025-04-29 13:13:33 +0200 | <tomsmeding> | so you already have two passes here |
2025-04-29 13:14:03 +0200 | <haskellbridge> | <Liamzee> fmap ByteString.pack |
2025-04-29 13:14:14 +0200 | <haskellbridge> | <Liamzee> so it'd need to know whether the output of the intermediate types is Nothing or Just |
2025-04-29 13:14:14 +0200 | <haskellbridge> | <Liamzee> which is fine |
2025-04-29 13:14:27 +0200 | <tomsmeding> | I've never worked with streaming libraries personally, but I would look into prior art here, even if you don't decide to use such a library as-is but build your own thing |
2025-04-29 13:14:46 +0200 | <haskellbridge> | <Liamzee> thanks for the suggestion |
2025-04-29 13:15:01 +0200 | <tomsmeding> | the ST thing I described is what you want to happen operationally |
2025-04-29 13:15:05 +0200 | <haskellbridge> | <Liamzee> the setup is that I'm trying to build something at least 3 people have said is a bad idea, but when has that ever stopped me? |
2025-04-29 13:15:09 +0200 | <tomsmeding> | everything else is, somehow, an abstraction over that |
2025-04-29 13:15:16 +0200 | <haskellbridge> | <Liamzee> ya, of course |
2025-04-29 13:15:17 +0200 | <tomsmeding> | heh |
2025-04-29 13:15:33 +0200 | <haskellbridge> | <Liamzee> trying to build sane safe defaults for a login library |
2025-04-29 13:15:47 +0200 | <tomsmeding> | Liamzee: https://github.com/Bodigrim/linear-builder is an interesting bit of prior art perhaps |
2025-04-29 13:15:50 +0200 | <haskellbridge> | <Liamzee> so, you have functions that call into postgresql for you without needing you to write any code |
2025-04-29 13:16:12 +0200 | <tomsmeding> | it's not a full streaming library, doesn't model "bailing out" |
2025-04-29 13:16:17 +0200 | <haskellbridge> | <Liamzee> and let you have a simple way to set up a login / registration system |
2025-04-29 13:16:21 +0200 | <haskellbridge> | <Liamzee> ah |
2025-04-29 13:16:29 +0200 | <tomsmeding> | but maybe it gives inspiration |
2025-04-29 13:16:50 +0200 | <haskellbridge> | <Liamzee> this is just part of my library since I generate a random bytestring (512 bytes) as an authcode for validation |
2025-04-29 13:17:05 +0200 | <tomsmeding> | re login library: that sounds like a thing that looks good to people who've written 2 crud applications, and is a bad idea to people who've written 10 |
2025-04-29 13:17:11 +0200 | tomsmeding | has written <=2 |
2025-04-29 13:17:48 +0200 | <tomsmeding> | personally I'd separate the application-level logic from the database interaction logic |
2025-04-29 13:18:02 +0200 | <tomsmeding> | i.e. have your library take user hooks for actually writing to and reading from the database |
2025-04-29 13:18:06 +0200 | <haskellbridge> | <Liamzee> yeah of course |
2025-04-29 13:18:06 +0200 | <shapr> | GOOD MORNING HASKELL LAND! |
2025-04-29 13:18:07 +0200 | <haskellbridge> | <Liamzee> it's just functions |
2025-04-29 13:18:10 +0200 | <tomsmeding> | that separates it from a particular DB implementation |
2025-04-29 13:18:12 +0200 | <haskellbridge> | <Liamzee> i spent 2 weeks learning enough |
2025-04-29 13:18:16 +0200 | <haskellbridge> | <Liamzee> GOOD MORNING SHAPR |
2025-04-29 13:18:19 +0200 | <shapr> | w00! |
2025-04-29 13:18:20 +0200 | <tomsmeding> | shapr: hello! |
2025-04-29 13:18:26 +0200 | <shapr> | Hiya tomsmeding ! |
2025-04-29 13:18:28 +0200 | <shapr> | Hello Liamzee! |
2025-04-29 13:18:35 +0200 | <tomsmeding> | not morning any more here though :) |
2025-04-29 13:18:51 +0200 | <shapr> | It's true, morning is a temporary thing |
2025-04-29 13:18:56 +0200 | <shapr> | It's a beautiful day for code! |
2025-04-29 13:18:59 +0200 | <haskellbridge> | <Liamzee> I spent 2 weeks learning enough postgreSQL-simple, lucid, and twain to build half a login and authentication system |
2025-04-29 13:19:01 +0200 | <tomsmeding> | so it is |
2025-04-29 13:19:14 +0200 | <tomsmeding> | sounds like a fun way to learn these things |
2025-04-29 13:19:15 +0200 | <haskellbridge> | <Liamzee> time has no meaning for me, there is only the eternal now (and not now) |
2025-04-29 13:19:26 +0200 | <shapr> | Hm, that does sound familiar |
2025-04-29 13:19:34 +0200 | <tomsmeding> | "not now" is an important one |
2025-04-29 13:19:46 +0200 | <haskellbridge> | <Liamzee> so i just want to abstract it so that people need less knowledge in order to slap together a basic Haskell web application |
2025-04-29 13:19:54 +0200 | <haskellbridge> | <Liamzee> (not now implies death) |
2025-04-29 13:20:06 +0200 | <tomsmeding> | it doesn't, there are many things I will not do now |
2025-04-29 13:20:14 +0200 | <tomsmeding> | such as graduate |
2025-04-29 13:20:23 +0200 | <shapr> | are you on the path towards graduation? |
2025-04-29 13:20:33 +0200 | <tomsmeding> | <1 year to phd graduation, if everything goes according to plan |
2025-04-29 13:20:38 +0200 | <haskellbridge> | <Liamzee> welp, not going to get into a complicated philosophy discussion |
2025-04-29 13:20:39 +0200 | <shapr> | w00t! |
2025-04-29 13:20:43 +0200 | <tomsmeding> | at least, my contract runs out in <1 year :p |
2025-04-29 13:20:54 +0200 | <haskellbridge> | <Liamzee> that is to say, our certainty of "now" is greater than our certainty of the past or the future |
2025-04-29 13:21:01 +0200 | <shapr> | Ah, Utrecht? |
2025-04-29 13:21:03 +0200 | tomsmeding | has no clue about philosophy |
2025-04-29 13:21:06 +0200 | <tomsmeding> | yep |
2025-04-29 13:21:12 +0200 | <haskellbridge> | <Liamzee> we have direct experiential knowledge of what happens now, but what happened before is only something we know from memory |
2025-04-29 13:21:35 +0200 | <tomsmeding> | (Liamzee saying "not going to do X" before proceeding to do X) |
2025-04-29 13:21:41 +0200 | <haskellbridge> | <Liamzee> consequently we live in an eternal now, at any time we are alive, we constantly experience the now as privileged toward the past |
2025-04-29 13:21:47 +0200 | <shapr> | CHAD looks like fun |
2025-04-29 13:21:48 +0200 | <haskellbridge> | <Liamzee> i do this too often :( |
2025-04-29 13:21:57 +0200 | <tomsmeding> | hacking on chad right now, actually! |
2025-04-29 13:22:39 +0200 | <tomsmeding> | debugging the simplifier of my toy language, it does incorrect simplifications sometimes |
2025-04-29 13:24:01 +0200 | jacopovalanzano | (~jacopoval@86.24.252.106) |
2025-04-29 13:24:27 +0200 | jacopovalanzano | (~jacopoval@86.24.252.106) (Client Quit) |
2025-04-29 13:24:47 +0200 | statusbot12 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) statusbot |
2025-04-29 13:25:30 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer) |
2025-04-29 13:26:45 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2025-04-29 13:27:17 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-04-29 13:27:49 +0200 | akegalj | (~akegalj@144-188.dsl.iskon.hr) |
2025-04-29 13:28:11 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2025-04-29 13:32:34 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 276 seconds) |
2025-04-29 13:39:29 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 248 seconds) |
2025-04-29 13:46:07 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-04-29 13:46:14 +0200 | <shapr> | @quote |
2025-04-29 13:46:14 +0200 | <lambdabot> | jonrafkind says: every time you use a list as an ad-hoc datastructure, a kitten dies |
2025-04-29 13:46:29 +0200 | <tomsmeding> | I'm currently using a list as an ad-hoc data structure |
2025-04-29 13:46:38 +0200 | <shapr> | they're virtual kittens, it's okay |
2025-04-29 13:46:48 +0200 | <tomsmeding> | phew |
2025-04-29 13:52:40 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-04-29 13:52:43 +0200 | internatetional | (~nate@2404:c0:2020::118:9ffb) internatetional |
2025-04-29 13:52:55 +0200 | tromp | (~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-29 13:53:54 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 268 seconds) |
2025-04-29 13:54:15 +0200 | <haskellbridge> | <Liamzee> some people use kitten emojis as substitutes for the >>= operator. Reducing bind traversals improves performance, so killing 🐱 operators is fine. |
2025-04-29 13:54:38 +0200 | haritz | (~hrtz@152.37.68.178) |
2025-04-29 13:54:38 +0200 | haritz | (~hrtz@152.37.68.178) (Changing host) |
2025-04-29 13:54:38 +0200 | haritz | (~hrtz@user/haritz) haritz |
2025-04-29 13:55:29 +0200 | Typedfern | (~Typedfern@135.red-83-37-43.dynamicip.rima-tde.net) typedfern |
2025-04-29 13:58:26 +0200 | internatetional_ | (~nate@2001:448a:20a3:c2e5:5b6:e1f9:afcb:86c5) internatetional |
2025-04-29 14:02:28 +0200 | internatetional | (~nate@2404:c0:2020::118:9ffb) (Ping timeout: 276 seconds) |
2025-04-29 14:05:36 +0200 | <shapr> | Is there a good IRC channel where I can ask about denotational semantics? |
2025-04-29 14:06:29 +0200 | yin | (~yin@user/zero) zero |
2025-04-29 14:07:23 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-04-29 14:08:07 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:f526:bfbc:714e:5dfd) |
2025-04-29 14:08:35 +0200 | <tomsmeding> | you _might_ try ##dependent or #agda, but no guarantees -- I lurked in ##dependent for a bit because people invited me there and all I got was politics, so I left again |
2025-04-29 14:09:22 +0200 | <tomsmeding> | math on irc is slightly impractical because only text, no formatting |
2025-04-29 14:09:30 +0200 | mari72280 | (~mari-este@user/mari-estel) (Ping timeout: 272 seconds) |
2025-04-29 14:09:37 +0200 | meritamen | (~meritamen@user/meritamen) meritamen |
2025-04-29 14:10:38 +0200 | meritamen | (~meritamen@user/meritamen) (Remote host closed the connection) |
2025-04-29 14:11:10 +0200 | <shapr> | tomsmeding: I just write raw LaTeX and expect the readers to use the rendering engine in their brain. |
2025-04-29 14:11:23 +0200 | <tomsmeding> | that works for simple stuff, yes |
2025-04-29 14:11:32 +0200 | <shapr> | Although now I'm tempted to try writing an ERC plugin for LaTeX formatting |
2025-04-29 14:11:49 +0200 | <yin> | shapr: there are some iirc |
2025-04-29 14:12:18 +0200 | <shapr> | tomsmeding: do you happen to know roughly what crosses outside of one line raw LaTeX? |
2025-04-29 14:12:27 +0200 | <shapr> | yin: what do you suggest? |
2025-04-29 14:12:35 +0200 | <tomsmeding> | as in other communication channels? |
2025-04-29 14:13:05 +0200 | <tomsmeding> | I'm not sure, I'm not much into math. I know there's a Zulip that's mostly about Lean, but gathers mathematicians in this area broadly, too |
2025-04-29 14:13:27 +0200 | <shapr> | oh, good idea |
2025-04-29 14:14:02 +0200 | <shapr> | I dunno if I'm into math, but Haskell convinced me that math has the best abstractions, if only I can learn them. |
2025-04-29 14:14:09 +0200 | <shapr> | It's been a long process |
2025-04-29 14:14:14 +0200 | <tomsmeding> | never been there, but given the subject area, I would be highly surprised if they don't have a channel somehow that's just about semantics :P |
2025-04-29 14:14:23 +0200 | <tomsmeding> | math does have good abstractions sometimes |
2025-04-29 14:14:32 +0200 | <tomsmeding> | sometimes CS has better ones |
2025-04-29 14:14:38 +0200 | <tomsmeding> | (for programming, that is) |
2025-04-29 14:14:42 +0200 | <yin> | shapr: i'm using irssi and kitty terminal. although i don't remember using it, kitty has a latex plugin so that would satisfy my needs |
2025-04-29 14:14:55 +0200 | <shapr> | tomsmeding: got any in mind that programming does better than math? |
2025-04-29 14:15:12 +0200 | <shapr> | yin: oh, I'm using kitty, but I've only used the image kitten, I'll try the LaTeX plugin, thanks! |
2025-04-29 14:15:26 +0200 | <tomsmeding> | well the easy cases center around math, as a whole, not caring about "performance" -- it's not even well-defined what that means in math world |
2025-04-29 14:15:29 +0200 | <yin> | shapr: no problem |
2025-04-29 14:15:49 +0200 | <tomsmeding> | anything that involves "ensuring you don't compute a value more than once" is something that CS cares about and math does not |
2025-04-29 14:16:01 +0200 | <tomsmeding> | we have various abstractions to deal with our petty performance concerns |
2025-04-29 14:16:03 +0200 | <shapr> | tomsmeding: that's a good point, hm |
2025-04-29 14:16:43 +0200 | <shapr> | Early in the book I'm reading Joseph Stoy relays that Dana Scott says "we can't have real functions in a computer because computers are so small compared to all the values" |
2025-04-29 14:16:48 +0200 | tromp | (~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) |
2025-04-29 14:17:10 +0200 | <tomsmeding> | sometimes math happens to have stuff that's useful for performance too, like Cayley transformation (i.e. "difference lists") or Coyoneda (which I have no clue about, but iirc was a generalisation that can be used to reassociate (>>=) where Cayley reassociates (<>)) |
2025-04-29 14:17:12 +0200 | <shapr> | So I currently lean towards "CS has a smaller view because computers are so tiny right now" |
2025-04-29 14:17:28 +0200 | <yin> | computers were a mistake and we got too carried away |
2025-04-29 14:17:42 +0200 | <shapr> | Or maybe "CS *must have* a tiny view" ? |
2025-04-29 14:17:44 +0200 | <shapr> | Something like that. |
2025-04-29 14:18:09 +0200 | <shapr> | I'm reading "Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory" with exarkun |
2025-04-29 14:18:15 +0200 | <tomsmeding> | shapr: I'm thinking, but perhaps laziness is one of those CS-only abstractions? |
2025-04-29 14:18:30 +0200 | <shapr> | Because I have zero formal math education, it's rough going |
2025-04-29 14:18:40 +0200 | <tomsmeding> | I can imagine :p |
2025-04-29 14:18:59 +0200 | shapr | thinks |
2025-04-29 14:19:01 +0200 | tomsmeding | would probably have the same, just given the title, despite actually having some formal math education |
2025-04-29 14:19:13 +0200 | <shapr> | Yeah, I could see laziness being unimportant in pure math. |
2025-04-29 14:19:25 +0200 | <tomsmeding> | now, lots of CS considers laziness a bad idea too |
2025-04-29 14:19:29 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-04-29 14:19:33 +0200 | <tomsmeding> | but it definitely has uses, and it's sometimes a really good abstraction |
2025-04-29 14:19:39 +0200 | <shapr> | I've bounced off several category theory books previously, but this 1976(?) book is working for me. |
2025-04-29 14:19:44 +0200 | <tomsmeding> | lol |
2025-04-29 14:19:50 +0200 | <tomsmeding> | that's cool! |
2025-04-29 14:20:05 +0200 | <yin> | shapr: which book is it? |
2025-04-29 14:20:11 +0200 | <shapr> | I think partially because it's very concrete. |
2025-04-29 14:20:19 +0200 | <shapr> | yin: https://www.goodreads.com/book/show/1404132.Denotational_Semantics |
2025-04-29 14:20:27 +0200 | <yin> | ty |
2025-04-29 14:21:05 +0200 | <shapr> | Another reason this is working better is that I'm in a reading group, where I get stuck is not where exarkun gets stuck. |
2025-04-29 14:21:18 +0200 | <shapr> | Mind you, that's why I started this IRC channel, because I was unable to teach myself Haskell |
2025-04-29 14:21:24 +0200 | <tomsmeding> | hah |
2025-04-29 14:21:39 +0200 | <tomsmeding> | having someone to bounce ideas off is great, yeah |
2025-04-29 14:21:43 +0200 | <tomsmeding> | or non-ideas |
2025-04-29 14:22:10 +0200 | <shapr> | Yeah, early days were Igloo and Heffalump and ski and a few others. |
2025-04-29 14:22:28 +0200 | <yin> | i wish i thought of that when i was teaching myself haskell |
2025-04-29 14:22:37 +0200 | <tomsmeding> | it's cool to see that some of those are still around :) |
2025-04-29 14:22:39 +0200 | <shapr> | yin: you're here now! hurrah! |
2025-04-29 14:22:59 +0200 | <shapr> | tomsmeding: a decent chunk of the early crowd now have their own PhD students |
2025-04-29 14:23:03 +0200 | <shapr> | soon it'll be you! |
2025-04-29 14:23:18 +0200 | <tomsmeding> | maybe :p |
2025-04-29 14:23:19 +0200 | <yin> | wait, are you talking about *this* channel? |
2025-04-29 14:23:23 +0200 | <shapr> | yin: yes! |
2025-04-29 14:23:49 +0200 | <yin> | shapr: oh great! well, thank you then |
2025-04-29 14:23:51 +0200 | <tomsmeding> | probably a few irc networks earlier, or was it freenode in the beginning already? |
2025-04-29 14:23:54 +0200 | jespada | (~jespada@r167-61-148-73.dialup.adsl.anteldata.net.uy) jespada |
2025-04-29 14:23:58 +0200 | <shapr> | Mind you, we moved from EFNet to, uh, OPN, and now to Libera |
2025-04-29 14:24:16 +0200 | <tomsmeding> | EFNet -> OPN -> Freenode -> Libera? |
2025-04-29 14:24:21 +0200 | Square2 | (~Square4@user/square) Square |
2025-04-29 14:24:30 +0200 | <shapr> | Right, though OPN got renamed to freenode, so roughly the same thing |
2025-04-29 14:24:37 +0200 | <tomsmeding> | I only barely know the existence of EFNet from earlier mentions |
2025-04-29 14:24:39 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-04-29 14:24:39 +0200 | <tomsmeding> | ah |
2025-04-29 14:24:57 +0200 | tomsmeding | discovered freenode after the rename, apparently |
2025-04-29 14:24:59 +0200 | <shapr> | yin: this channel was started in the first few months of 2001 |
2025-04-29 14:25:18 +0200 | <yin> | i was around in freenode! i remember ski helping me understand recursive tree traversal |
2025-04-29 14:25:25 +0200 | <shapr> | yeah! ski is brilliant! |
2025-04-29 14:25:35 +0200 | <haskellbridge> | <Liamzee> he's also very nice |
2025-04-29 14:25:37 +0200 | <shapr> | I met them when I lived in Sweden so long ago |
2025-04-29 14:25:53 +0200 | <shapr> | I've met a good number of the early denizens. |
2025-04-29 14:25:53 +0200 | wlhn | (~wlhn@130.41.101.92) (Ping timeout: 248 seconds) |
2025-04-29 14:25:57 +0200 | <haskellbridge> | <Liamzee> also, is it correct to say that IO actions are always inlined, but as actions? |
2025-04-29 14:26:24 +0200 | <JuanDaugherty> | it was impressive |
2025-04-29 14:26:43 +0200 | <shapr> | Hello JuanDaugherty ! |
2025-04-29 14:26:45 +0200 | <JuanDaugherty> | the whole hs namespace and its users moved in a matter of hours |
2025-04-29 14:26:57 +0200 | <JuanDaugherty> | yello shapr |
2025-04-29 14:27:00 +0200 | <JuanDaugherty> | ! |
2025-04-29 14:27:07 +0200 | <haskellbridge> | <Liamzee> from freenod eto libera or efnet to OPN? |
2025-04-29 14:27:39 +0200 | Inst | (~Inst@user/Inst) Inst |
2025-04-29 14:27:44 +0200 | <shapr> | The libera shift was the most dramatic, imo |
2025-04-29 14:28:03 +0200 | <JuanDaugherty> | sounds like what I meant |
2025-04-29 14:28:22 +0200 | <JuanDaugherty> | i.e. the move of the haskell irc channel namespace from freenode to here |
2025-04-29 14:28:43 +0200 | <yin> | matrix and discord are going strong too |
2025-04-29 14:28:52 +0200 | <JuanDaugherty> | which occured in about a half day of the action at freenode |
2025-04-29 14:29:42 +0200 | <JuanDaugherty> | at the user level there's not a lot to irc |
2025-04-29 14:30:02 +0200 | <shapr> | Yeah, that's one reason I like the IRC protocol |
2025-04-29 14:30:06 +0200 | <JuanDaugherty> | but nothing of its size moved like #hs |
2025-04-29 14:30:14 +0200 | jacopovalanzano | (~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) |
2025-04-29 14:30:51 +0200 | <JuanDaugherty> | many lang spaces took weeks and igess some are still there |
2025-04-29 14:31:17 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) lisbeths |
2025-04-29 14:31:21 +0200 | <shapr> | Haskell is great at allocating space for new values? |
2025-04-29 14:31:45 +0200 | <tomsmeding> | and then quickly forgetting about those values again |
2025-04-29 14:31:48 +0200 | <shapr> | I haven't written much Haskell the past months, maybe I'll pick up kudzu again |
2025-04-29 14:31:55 +0200 | <shapr> | tomsmeding: yeah, garbage collection! |
2025-04-29 14:31:55 +0200 | <haskellbridge> | <Liamzee> kudzu? |
2025-04-29 14:32:23 +0200 | <JuanDaugherty> | as a community hs is pretty feckless in the face of the capitalism but there are catalytic situations igess |
2025-04-29 14:32:24 +0200 | <shapr> | Yeah, I wrote a cheesy property based testing library that figures out how many random values is enough by using code coverage |
2025-04-29 14:32:38 +0200 | <shapr> | but it needs splitting into library specific pieces |
2025-04-29 14:33:02 +0200 | <shapr> | The core of kudzu is almost nothing: https://github.com/shapr/kudzu/blob/split-deps/kudzu-core/src/Kudzu/Core.hs |
2025-04-29 14:33:28 +0200 | <JuanDaugherty> | shapr, u used to be big here |
2025-04-29 14:33:29 +0200 | <haskellbridge> | <Liamzee> is there a good book or resource to understand the operational function of GHC without learning the GHC compiler source code? |
2025-04-29 14:33:38 +0200 | ski | glances around nervously |
2025-04-29 14:33:43 +0200 | <shapr> | The whole idea is "use HPC at runtime to see if there's new code coverage after running a property test" |
2025-04-29 14:34:05 +0200 | <shapr> | JuanDaugherty: meh, I lost weight. It was healthy. |
2025-04-29 14:34:10 +0200 | <shapr> | :-D |
2025-04-29 14:34:15 +0200 | <JuanDaugherty> | :) |
2025-04-29 14:35:22 +0200 | <haskellbridge> | <Liamzee> hello ski! |
2025-04-29 14:35:51 +0200 | <JuanDaugherty> | k, ski u was always big, now and forever |
2025-04-29 14:36:05 +0200 | <haskellbridge> | <Liamzee> it's sort of an idle question on my part, i.e, is it reasonable to understand IO actions (values of form IO a) as being effectively an interpreted eDSL? |
2025-04-29 14:36:24 +0200 | <ski> | i wasn't on the EFNet version (can't even recall hearing that was originally a thing). i came into the Open Projects Network (OPN) version, back in 2001 |
2025-04-29 14:36:50 +0200 | <ski> | we were around 15 - 20, to begin with ? |
2025-04-29 14:37:45 +0200 | <JuanDaugherty> | undernet took most of the EGnet mojo, a slightly toned down version with more stuff/services but the two networks make a space |
2025-04-29 14:37:46 +0200 | ski | still recalls shapr showing off their unicycle, even getting John Hughes to try it out |
2025-04-29 14:38:15 +0200 | <JuanDaugherty> | *EFnet |
2025-04-29 14:39:09 +0200 | <JuanDaugherty> | which igess allowed EFnet to stretch its legs as a hellhole |
2025-04-29 14:39:24 +0200 | <ski> | i found the IRC channel from the HaWiki (which was running MoinMoin. former version of HaskellWiki, now running MediaWiki, iirc); which i found from the Usenet newsgroup <news:comp.lang.functional> |
2025-04-29 14:39:57 +0200 | <ski> | (i had briefly seen IRC used before, but not gotten into it. #haskell was my first IRC channel) |
2025-04-29 14:40:02 +0200 | <JuanDaugherty> | i first recall u from the original ##prolog |
2025-04-29 14:40:27 +0200 | <JuanDaugherty> | u was pl b4 hs |
2025-04-29 14:40:30 +0200 | <shapr> | hej hopp ski! |
2025-04-29 14:40:33 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2025-04-29 14:40:39 +0200 | ski | bounces on chair |
2025-04-29 14:40:51 +0200 | shapr | hops cheerfully |
2025-04-29 14:40:56 +0200 | <shapr> | ski: I have more unicycles now |
2025-04-29 14:41:00 +0200 | <ski> | oh ? |
2025-04-29 14:41:23 +0200 | <shapr> | Yeah, I still have that one, but I bought a newer one three years ago, and I'm in the process of purchasing yet another. |
2025-04-29 14:41:45 +0200 | <haskellbridge> | <Liamzee> do you have a motorized unicycle? |
2025-04-29 14:41:46 +0200 | <shapr> | Would love to write more Haskell though |
2025-04-29 14:42:03 +0200 | <shapr> | Nah, they're all manual. I'm tempted to get in on the next geared hub order. |
2025-04-29 14:42:11 +0200 | <ski> | yea, after some time, i branched out to ##prolog and #scheme, JuanDaugherty |
2025-04-29 14:42:27 +0200 | <ski> | i started in #haskell, though |
2025-04-29 14:42:38 +0200 | <shapr> | This is my primary unicycle: https://recurse.social/@shapr/114155438798005645 |
2025-04-29 14:43:10 +0200 | <shapr> | What's the hot new things in the Haskell world? |
2025-04-29 14:43:52 +0200 | <JuanDaugherty> | oh didn notice maybe cause i didn start with hs till c. '08 about the time sbcl forked from cmucl |
2025-04-29 14:44:38 +0200 | <shapr> | ski: maybe my memory is wrong and this channel never was on EFNet? |
2025-04-29 14:44:46 +0200 | <shapr> | I bet your memory is better than mine. |
2025-04-29 14:44:52 +0200 | <ski> | (but yes, i got a little taste of Prolog, in a "computer math" course in "high school" (?), after a "C/C++" one, and before later learning Java, Haskell, Prolog (properly), also checking out C more, Scheme, SML, .. before all that, i started with BASIC, at age 6.5 (programmable pocket calculator with 544 bytes of RAM available for BASIC programs), then (BASIC and) 6502 assembly on Commodore 64, a little bit |
2025-04-29 14:44:56 +0200 | <haskellbridge> | <Liamzee> https://kf8nh.com/_heisenbridge/media/matrix.org/aWRsyGBptPdeFDXjaSNcUiVr/8qPtsH3bWlo/MisoCounteri… |
2025-04-29 14:44:58 +0200 | <ski> | 680x0 assembly on Amiga) |
2025-04-29 14:45:03 +0200 | <ski> | i'm not sure, shapr |
2025-04-29 14:45:33 +0200 | <JuanDaugherty> | well maybe in the 90s |
2025-04-29 14:45:35 +0200 | <haskellbridge> | <Liamzee> ugh, it's not playing |
2025-04-29 14:45:45 +0200 | <ski> | i recall when clog was logging the channel, and that started on OPN, i think. that doesn't refute it possibly being on EFNet a little while before, though |
2025-04-29 14:45:48 +0200 | <JuanDaugherty> | (#hs on efnet) |
2025-04-29 14:45:59 +0200 | <JuanDaugherty> | seems unlikely tho |
2025-04-29 14:47:06 +0200 | <ski> | looks pretty nice, shapr ! |
2025-04-29 14:47:19 +0200 | <JuanDaugherty> | at some point u get a common ancestor effect since efnet is primordial |
2025-04-29 14:48:08 +0200 | <ski> | JuanDaugherty : i certainly have had a love for logic programming, a long time, as well, roughly for as long as functional in any case |
2025-04-29 14:48:23 +0200 | <JuanDaugherty> | i c |
2025-04-29 14:50:27 +0200 | <ski> | Liamzee : "is it reasonable to understand IO actions (values of form IO a) as being effectively an interpreted eDSL?" -- yes, more or less (although i'd skip the "interpreted", probably) |
2025-04-29 14:50:40 +0200 | koz | (~koz@121.99.240.58) (Ping timeout: 244 seconds) |
2025-04-29 14:52:01 +0200 | <shapr> | I gotta split kudzu into test framework specific parts and upload those new libraries. |
2025-04-29 14:52:07 +0200 | <yin> | shapr: the "new thing in haskell" is probably linear types? |
2025-04-29 14:52:37 +0200 | <shapr> | I haven't tried that, could be fun. |
2025-04-29 14:52:38 +0200 | <haskellbridge> | <Liamzee> ski: i mean, zero cost calls to IO actions, low-cost calls to IO functions |
2025-04-29 14:52:40 +0200 | <yin> | for some definition of "new" |
2025-04-29 14:52:47 +0200 | <shapr> | I've been writing a bunch of Rust, and those are affine types |
2025-04-29 14:53:19 +0200 | koz | (~koz@121.99.240.58) |
2025-04-29 14:54:05 +0200 | <haskellbridge> | <Liamzee> since an IO function implies that the function arguments are allocated onto the heap until no longer needed |
2025-04-29 14:54:18 +0200 | tolgo | (~Thunderbi@199.115.144.130) |
2025-04-29 14:54:37 +0200 | JuanDaugherty | ColinRobinson |
2025-04-29 14:55:07 +0200 | <ski> | you can easily make your own `IO'-type as `data IOProgram = End ExitCode | Openfile FilePath IOMode (Handle -> IOProgram) | HGetChar Handle (Char -> IOProgram) | HPutChar Handle Char IOProgram | ...' and `newtype IO a = MkIO ((a -> IOProgram) -> IOProgram)' (iow `Cont IOProgram a'), and interpret that into the usual `IO' with `runIO :: IO a -> System.IO.IO a' |
2025-04-29 14:57:26 +0200 | <yin> | for some definition of "easily" |
2025-04-29 15:00:13 +0200 | <ski> | originally, Haskell had "dialogue"-based I/O, where `type Dialogue = [Response] -> [Request]', and `data Request = OpenFile FilePath IOMode | HGetChar Handle | HPutChar Handle Char | ...' with `data Response = FileOpened Handle | HCharGot Char | HCharPut | ...', and then you can write wrappers like `hGetChar :: Handle -> (Char -> Dialogue) -> Dialogue' (iow `Handle -> Cont Dialogue Char') as `hGetChar h k |
2025-04-29 15:00:19 +0200 | <ski> | ~(HCharGot c:resps) = HGetChar h : k c resps' |
2025-04-29 15:00:37 +0200 | <ski> | so, here you effectively get `Cont Dialogue' as `IO' |
2025-04-29 15:01:08 +0200 | <ski> | and you can interpret the former `IO' into this `Cont Dialogue' (instead of into `Cont IOProgram') |
2025-04-29 15:02:40 +0200 | <haskellbridge> | <Liamzee> ski: i was trying to analogize the IO type to free monads actually |
2025-04-29 15:03:45 +0200 | <haskellbridge> | <Liamzee> since you actually have runRW# fun #Real World# or something like that, then you call a continuation |
2025-04-29 15:03:47 +0200 | <ski> | if you prefer, you could use a GADT instead of `IOProgram', like `data IO :: * -> * where Return :: a -> IO a; ExitWith :: ExitCode -> IO a; OpenFile :: FilePath -> IOMode -> IO Handle; HGetChar :: Handle -> IO Char; HPutChar :: Handle -> Char -> IO ()'; ...', and then interpret that as usual. you could have `(>>=) :: IO a -> (a -> IO b) -> IO b' here walk the tree on the left, to graft the continuation |
2025-04-29 15:03:53 +0200 | <ski> | argument into all leaves, effectively splicing new subtrees in place of the leaves .. or you could instead add a `Bind :: IO a -> (a -> IO b) -> IO b' data constructor |
2025-04-29 15:05:53 +0200 | <ski> | but the main point here is that you *can* think of `IO' as an "instruction tree", or as being defined in terms of `IOProgram', being an instruction tree. *or* defined in terms of `Request' & `Response', which are used in tandem (with lazy pattern matches, the `~', which is crucial here, and easy to mess up, hence abstracting it away behind CPS operations like `hGetChar') |
2025-04-29 15:06:12 +0200 | <ski> | and you an possibly conceive of more ways |
2025-04-29 15:06:22 +0200 | tolgo | (~Thunderbi@199.115.144.130) (Ping timeout: 265 seconds) |
2025-04-29 15:06:34 +0200 | <ski> | (iirc Hugs didn't use the CPS version, but something a bit different, for `IO') |
2025-04-29 15:06:37 +0200 | <haskellbridge> | <Liamzee> ehhh, i guess i'm more being operational about it, since my habit right now in Haskell is not to care about function calls etc |
2025-04-29 15:06:51 +0200 | <haskellbridge> | <Liamzee> treating them as zero or low-cost |
2025-04-29 15:07:17 +0200 | <ski> | having the primitive `IO' operations be data constructors is the "deep embedded DSL" version |
2025-04-29 15:07:38 +0200 | <ski> | defining in terms of `Dialogue' is more a shallow embedding |
2025-04-29 15:07:49 +0200 | <haskellbridge> | <Liamzee> since an interpreter model of how GHC is managing IO actions is treating them like it's zero cost to call an IO action and low cost to call an IO function, in comparison to an imperative language where stack allocation is happening |
2025-04-29 15:08:10 +0200 | <ski> | you can clearly see the "instructions" of the DSL, in the former. in the latter, your main operations |
2025-04-29 15:08:27 +0200 | <ski> | are those DSL constructs, but there's no "interpretation" of them, since we don't build a tree of them |
2025-04-29 15:08:43 +0200 | <ski> | (instead being defined in terms of the more primitive `Request' and `Response') |
2025-04-29 15:09:01 +0200 | <ski> | yin : you could try it, as an exercise. it's not too hard |
2025-04-29 15:09:20 +0200 | <haskellbridge> | <Liamzee> it's just a free monad afaik |
2025-04-29 15:09:24 +0200 | <ski> | it helps to have seen some CPS (Continuation-Passing Style) or `Cont' before, though |
2025-04-29 15:09:29 +0200 | <haskellbridge> | <Liamzee> erm, iiuc |
2025-04-29 15:10:31 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-04-29 15:10:49 +0200 | internatetional_ | (~nate@2001:448a:20a3:c2e5:5b6:e1f9:afcb:86c5) (Ping timeout: 252 seconds) |
2025-04-29 15:10:58 +0200 | internatetional | (~nate@2001:448a:20a3:c2e5:701e:e3ed:2d04:6885) internatetional |
2025-04-29 15:11:13 +0200 | <ski> | "since you actually have runRW# fun #Real World# or something like that, then you call a continuation" -- yea, GHC uses a state-passing internal implementation, which is only valid if the `RealWorld#' is being passed around uniquely (and this still doesn't properly describe exceptions, nor concurrency, nor things like `unsafeInterleaveIO',`unsafePerformIO') |
2025-04-29 15:12:01 +0200 | <ski> | "i was trying to analogize the IO type to free monads actually" -- yea, the last `IO' version i sketched is basically the free monad version |
2025-04-29 15:12:33 +0200 | jespada_ | (~jespada@r179-25-126-65.dialup.adsl.anteldata.net.uy) jespada |
2025-04-29 15:12:56 +0200 | j1n37- | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-04-29 15:13:02 +0200 | <ski> | "in comparison to an imperative language where stack allocation is happening" -- yea, calls don't push stack in Haskell, but *pattern-matching* (`case'-`of', as well as the sugar for that) still does |
2025-04-29 15:14:00 +0200 | <ski> | yin : note that linear types are not quite the same as affine or unique ones (those two are quite similar, the only difference is whether you're allowed to drop an item on the floor or not) |
2025-04-29 15:14:40 +0200 | jespada | (~jespada@r167-61-148-73.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds) |
2025-04-29 15:15:30 +0200 | <ski> | with uniqueness, you're promised that your reference to an item/value have not been duplicated in the *past* (but you could still duplicate in future, unless, say, you have to return it as still being unique). with linearity, you promise to not duplicate it in the *future* (but it could already have been duplicated in the past, before giving up the ability to duplicate) |
2025-04-29 15:16:02 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-04-29 15:16:47 +0200 | <haskellbridge> | <Liamzee> that's interesting, i thought Haskell didn't use stack? |
2025-04-29 15:16:49 +0200 | <haskellbridge> | <Liamzee> welp, no shade intended |
2025-04-29 15:18:46 +0200 | tromp | (~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-29 15:19:49 +0200 | mari-estel | (~mari-este@user/mari-estel) (Ping timeout: 260 seconds) |
2025-04-29 15:21:00 +0200 | <ski> | not using stack is not the same as not using call stack |
2025-04-29 15:21:51 +0200 | internatetional_ | (~nate@2001:448a:20a3:c2e5:9930:c729:580e:9aa0) internatetional |
2025-04-29 15:24:02 +0200 | <ski> | btw, in Scheme, calling a procedure doesn't push stack, either, but evaluating procedure call arguments (and well as the function expression), and introducing new local variables (e.g. with `let'), or doing branching (like `case',`if',`cond', or e.g. a library pattern-matcher as `match'), does. or, in general, introducing a non-tail context |
2025-04-29 15:24:59 +0200 | internatetional | (~nate@2001:448a:20a3:c2e5:701e:e3ed:2d04:6885) (Ping timeout: 245 seconds) |
2025-04-29 15:25:07 +0200 | <ski> | in Haskell, it's basically the same, except that the "evaluating procedure call arguments" part is skipped. a call `f x' will not evaluate `x' (but will still evaluate `f' itself, which could cause stack usage) |
2025-04-29 15:25:26 +0200 | internatetional | (~nate@2001:448a:20a3:c2e5:1ee8:b348:b41a:5570) internatetional |
2025-04-29 15:26:13 +0200 | internatetional_ | (~nate@2001:448a:20a3:c2e5:9930:c729:580e:9aa0) (Ping timeout: 252 seconds) |
2025-04-29 15:27:27 +0200 | mange | (~user@user/mange) (Quit: Zzz...) |
2025-04-29 15:27:39 +0200 | <ski> | in Scheme, you have evaluation contexts like `C[] ::= [] | (E ... E C[] E ... E) | (if C[] E E) | (case C[] (P E ... E) ... (P E ... E)) | ..' |
2025-04-29 15:28:28 +0200 | <ski> | in Haskell, `C[] ::= [] | C[] E ... E | if C[] then E else E | case C[] of P -> E; ... P -> E | ..' |
2025-04-29 15:29:10 +0200 | <ski> | (yes, `case' in Haskell doesn't directly correspond to `case' in Scheme (which is more like a C `switch'), but rather `match', but that doesn't matter too much here, for the comparision) |
2025-04-29 15:31:36 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2025-04-29 15:31:55 +0200 | <ski> | Liamzee : anyway, tail calls and tail recursion is still important in Haskell .. but tends to be a bit less important, due to non-strictness (typically implemented using laziness) making it easier to often describe loops as incremental algorithms, only computing the result piece-by-piece, so that the caller will drive looping over this, demanding more result pieces, for as long as it wants to, as opposed to |
2025-04-29 15:32:01 +0200 | <ski> | a tail-recursive loop, which will always be bulky, not return any part of the result until the whole loop is done |
2025-04-29 15:33:18 +0200 | <ski> | but you still don't want to build up more and more context, when doing a long-running loop (e.g. with `IO'), if you can avoid it, and in such cases, reasoning about tail calls can be quite important to prevent space leakage (in the Haskell sense) |
2025-04-29 15:33:49 +0200 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-04-29 15:33:57 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-04-29 15:40:24 +0200 | mari-estel | (~mari-este@user/mari-estel) (Ping timeout: 252 seconds) |
2025-04-29 15:45:24 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2025-04-29 15:54:55 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 276 seconds) |
2025-04-29 16:05:21 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2025-04-29 16:13:12 +0200 | Leary | (~Leary@user/Leary/x-0910699) (Ping timeout: 276 seconds) |
2025-04-29 16:13:18 +0200 | Inst | (~Inst@user/Inst) (Remote host closed the connection) |
2025-04-29 16:14:42 +0200 | Leary | (~Leary@user/Leary/x-0910699) Leary |
2025-04-29 16:16:00 +0200 | jacopovalanzano | (~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) (Quit: Client closed) |
2025-04-29 16:31:40 +0200 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |