2025-05-07 00:08:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 00:10:21 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-05-07 00:11:04 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds) |
2025-05-07 00:13:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 00:16:31 +0200 | prdak | (~Thunderbi@user/prdak) prdak |
2025-05-07 00:20:35 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Read error: Connection reset by peer) |
2025-05-07 00:20:40 +0200 | prdak | (~Thunderbi@user/prdak) (Ping timeout: 252 seconds) |
2025-05-07 00:20:54 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-05-07 00:22:13 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-07 00:24:17 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) |
2025-05-07 00:24:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 00:25:37 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2025-05-07 00:29:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 00:36:10 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-07 00:40:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 00:42:12 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 264 seconds) |
2025-05-07 00:42:28 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
2025-05-07 00:42:31 +0200 | <hellwolf> | https://x.com/deusaquilus/status/1919866616331800614 shots fired at monad; why do people keep coming up with syntax just to hide things? |
2025-05-07 00:43:22 +0200 | hellwolf | looking at the mirror, but feeling content that it's all {-# LANGUAGE ... #-} to blame. |
2025-05-07 00:43:43 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-05-07 00:43:59 +0200 | <EvanR> | IO as an example monad might not be wise, at some point someone questioned if it was even a monad xD |
2025-05-07 00:45:18 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 00:45:43 +0200 | <hellwolf> | does it looks like a monad, and quarks like a monad? |
2025-05-07 00:46:05 +0200 | <hellwolf> | (though monad is supposed to be an ugly fish) |
2025-05-07 00:46:24 +0200 | <hellwolf> | there is a crypto bro project called monad. but don't look it up, it might ruin your day. |
2025-05-07 00:46:45 +0200 | hellwolf | feel self-deprecating about being in the crypto again. |
2025-05-07 00:47:55 +0200 | <monochrom> | What is crypto bro? |
2025-05-07 00:49:40 +0200 | <hellwolf> | crypto project that has a bro vibe. |
2025-05-07 00:50:21 +0200 | drewr | (~drew@user/drewr) (Ping timeout: 252 seconds) |
2025-05-07 00:52:31 +0200 | sayurc | (~sayurc@169.150.203.34) sayurc |
2025-05-07 00:53:47 +0200 | <monochrom> | You know, I agree with that post, and take it to its logical conclusion: Just write SQL itself, it is literally 100% better than any encoding of SQL. |
2025-05-07 00:55:16 +0200 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 276 seconds) |
2025-05-07 00:55:17 +0200 | Lears | (~Leary@user/Leary/x-0910699) Leary |
2025-05-07 00:56:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 00:57:04 +0200 | mistivia | (~mistivia@user/mistivia) mistivia |
2025-05-07 00:57:35 +0200 | mistivia_ | (~mistivia@user/mistivia) (Read error: Connection reset by peer) |
2025-05-07 00:57:41 +0200 | <haskellbridge> | <Liamzee> you still need to deserialize the return types |
2025-05-07 00:58:28 +0200 | Leary | (~Leary@user/Leary/x-0910699) (Read error: Connection reset by peer) |
2025-05-07 00:58:52 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2025-05-07 00:59:23 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-05-07 01:00:36 +0200 | <hellwolf> | So, what do you think of quasiquote template haskell based approach? |
2025-05-07 01:00:40 +0200 | <monochrom> | Just for the sake of being the devil's advocate: Why? |
2025-05-07 01:00:48 +0200 | Square | (~Square@user/square) Square |
2025-05-07 01:01:01 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-05-07 01:01:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 01:01:14 +0200 | gentauro | (~gentauro@user/gentauro) gentauro |
2025-05-07 01:01:36 +0200 | <hellwolf> | what do you mean? |
2025-05-07 01:01:50 +0200 | <monochrom> | Why do I still need to deserialize the return types. |
2025-05-07 01:02:15 +0200 | <monochrom> | Deserialize to what, and who needs it, and why. |
2025-05-07 01:02:36 +0200 | <haskellbridge> | <Liamzee> to Haskell types, I mean, the result of the query |
2025-05-07 01:03:01 +0200 | sprout | (~sprout@2a02-a448-3a80-0-c61c-b515-5509-58e7.fixed6.kpn.net) (Ping timeout: 268 seconds) |
2025-05-07 01:03:05 +0200 | <monochrom> | Why to Haskell types? Why not get rid of even that Haskell program, for example? |
2025-05-07 01:03:48 +0200 | <haskellbridge> | <Liamzee> too obviously socratic |
2025-05-07 01:04:01 +0200 | <monochrom> | Maybe I should describe one of my use cases. |
2025-05-07 01:04:34 +0200 | sprout | (~sprout@84-80-106-227.fixed.kpn.net) sprout |
2025-05-07 01:04:56 +0200 | <int-e> | You could simply not answer inane "what do you think of" questions that are asked without motivation or other direction or context that would confine the scope of the answer. |
2025-05-07 01:05:34 +0200 | <monochrom> | I have a lot of student marks to process. Various marking platforms give me student marks as CSV. In the past I wrote my own Haskell program with cassava to read, compute, write. But I can see a future where I just use sqlite, in fact even just the sqlite command line. My Haskell program will be obsoleted. |
2025-05-07 01:06:22 +0200 | <monochrom> | Read: My role as a Haskell programmer to maintain that Haskell code is also obsoleted. |
2025-05-07 01:06:44 +0200 | <haskellbridge> | <Liamzee> advantages of such an approach: simplicity. disadvantages of such an approach: how performant is going straight through the database? how safe is using sqlite instead? |
2025-05-07 01:06:45 +0200 | <EvanR> | the grass is always greener |
2025-05-07 01:06:59 +0200 | <haskellbridge> | <Liamzee> If I say "Scanners Live in Vain", would anyone get the reference? |
2025-05-07 01:07:11 +0200 | <EvanR> | I keep all my accounts for self employment in sqlite and then came to same conclusion, why? |
2025-05-07 01:07:15 +0200 | <haskellbridge> | <Liamzee> nope, and that just makes me annoying |
2025-05-07 01:07:16 +0200 | <int-e> | . o O ( meet my haymaker ) |
2025-05-07 01:07:47 +0200 | <EvanR> | some other thing would have been easier since I wouldn't have to maintain it |
2025-05-07 01:10:12 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-07 01:10:36 +0200 | shr\ke | (~shrike@user/shrke:31298) (Ping timeout: 252 seconds) |
2025-05-07 01:10:41 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 248 seconds) |
2025-05-07 01:10:53 +0200 | sprotte24 | (~sprotte24@p200300d16f36aa00202cf2be69d2c7e4.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-05-07 01:11:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 01:17:06 +0200 | bdmg_ | (~myJebba@177.138.161.234) |
2025-05-07 01:18:35 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 01:20:41 +0200 | shr\ke | (~shrike@user/paxhumana) paxhumana |
2025-05-07 01:20:41 +0200 | shr\ke | (~shrike@user/paxhumana) (Changing host) |
2025-05-07 01:20:41 +0200 | shr\ke | (~shrike@user/shrke:31298) shr\ke |
2025-05-07 01:23:34 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2025-05-07 01:25:10 +0200 | <haskellbridge> | <Liamzee> oh, and to fill out the useless reference, "Scanners Live in Vain" refers to a short story by a US army intelligence guy (who was also a disclosed CIA officer after his death) about a fraternity of space pilots who went grueling and dehumanizing hardship to safely chaperone people across worlds. One day, someone invents a technological workaround that renders their job irrelevant, so they connive to have the guy... |
2025-05-07 01:25:15 +0200 | <haskellbridge> | ... murdered and his project covered up. Of course, it's a pulp science fiction story, so their plot is foiled, but to some extent it seems relevant to modern software development, no? |
2025-05-07 01:25:50 +0200 | <haskellbridge> | <Liamzee> /s/ who went/ who went through/ |
2025-05-07 01:26:23 +0200 | geekosaur | was afk but knew the reference |
2025-05-07 01:26:35 +0200 | <geekosaur> | Vonnegut's first story iirc |
2025-05-07 01:26:53 +0200 | <haskellbridge> | <Liamzee> no, Cordwainer Smith / Paul Linebarger (real name, wrote under pseudonyms due to the nature of his work) |
2025-05-07 01:27:04 +0200 | <geekosaur> | ah, whoops |
2025-05-07 01:27:15 +0200 | <geekosaur> | too many old SF shorts writers |
2025-05-07 01:29:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 01:33:43 +0200 | <hellwolf> | question to emacs user again: why haskell-mode does not indent function parameters in new lines? |
2025-05-07 01:34:03 +0200 | <hellwolf> | *in the next line? not sure how to speak english anymore |
2025-05-07 01:34:26 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 01:34:32 +0200 | <hellwolf> | https://paste.tomsmeding.com/vDyxr8yb |
2025-05-07 01:34:48 +0200 | <hellwolf> | I don't find this default indentation experience (using <tab>) is very nice. |
2025-05-07 01:37:28 +0200 | <hellwolf> | just tried out https://ormolu-live.tweag.io to see the difference |
2025-05-07 01:38:17 +0200 | <hellwolf> | hmm, not sure I like ormolu one neither, but certainly looks nicer than mine. |
2025-05-07 01:42:10 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 01:44:02 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 276 seconds) |
2025-05-07 01:45:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 01:50:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 01:54:45 +0200 | adamCS | (~adamCS@70.19.85.77) (Ping timeout: 244 seconds) |
2025-05-07 01:59:18 +0200 | <haskellbridge> | <sm> cool SF reference, and speaking of which, I just found this fine story on HN: |
2025-05-07 01:59:18 +0200 | <haskellbridge> | https://standardebooks.org/ebooks/e-m-forster/short-fiction/text/the-machine-stops |
2025-05-07 02:01:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 02:01:15 +0200 | adamCS | (~adamCS@70.19.85.77) adamCS |
2025-05-07 02:04:31 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-05-07 02:04:41 +0200 | jespada_ | (~jespada@r179-24-30-150.dialup.adsl.anteldata.net.uy) (Ping timeout: 268 seconds) |
2025-05-07 02:06:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 02:12:37 +0200 | sajenim | (~sajenim@user/sajenim) sajenim |
2025-05-07 02:17:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 02:21:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 02:27:25 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-05-07 02:28:24 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2025-05-07 02:29:41 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f5301468c1cc0256076.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2025-05-07 02:29:59 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
2025-05-07 02:30:13 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-05-07 02:30:55 +0200 | euleritian | (~euleritia@dynamic-176-006-137-036.176.6.pool.telefonica.de) |
2025-05-07 02:31:40 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-07 02:32:17 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Remote host closed the connection) |
2025-05-07 02:32:47 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 02:34:08 +0200 | Axma83103 | (~Axman6@user/axman6) Axman6 |
2025-05-07 02:36:27 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 248 seconds) |
2025-05-07 02:37:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 02:41:11 +0200 | <hellwolf> | today is a good day. after trial and errors, I finally got a working type signature. |
2025-05-07 02:41:25 +0200 | hellwolf | can have a sound sleep today. |
2025-05-07 02:43:44 +0200 | Square2 | (~Square4@user/square) Square |
2025-05-07 02:47:10 +0200 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
2025-05-07 02:48:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 02:53:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 02:54:56 +0200 | bdmg_ | (~myJebba@177.138.161.234) (Remote host closed the connection) |
2025-05-07 02:55:51 +0200 | xff0x | (~xff0x@2405:6580:b080:900:bd8f:49eb:d362:d8a3) (Ping timeout: 268 seconds) |
2025-05-07 02:56:15 +0200 | <haskellbridge> | <Liamzee> congrats |
2025-05-07 02:56:49 +0200 | ystael | (~ystael@user/ystael) (Ping timeout: 248 seconds) |
2025-05-07 02:58:29 +0200 | Axma83103 | Axman6 |
2025-05-07 03:04:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 03:08:51 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 03:10:09 +0200 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 248 seconds) |
2025-05-07 03:13:09 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-07 03:13:19 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 245 seconds) |
2025-05-07 03:16:31 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
2025-05-07 03:19:26 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-05-07 03:19:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 03:24:14 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) (Ping timeout: 268 seconds) |
2025-05-07 03:24:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 03:25:01 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) manwithluck |
2025-05-07 03:33:46 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) (Remote host closed the connection) |
2025-05-07 03:34:36 +0200 | manwithluck | (~manwithlu@2a09:bac5:5081:2dc::49:f6) manwithluck |
2025-05-07 03:35:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 03:40:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-05-07 03:49:45 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-05-07 03:51:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 03:52:12 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-05-07 03:58:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 04:04:33 +0200 | <monochrom> | I don't know why emacs haskell-mode doesn't indent function parameters the way I want. But I take it to be equivalent to "why is my immune system easily fooled by HIV COVID etc" so I don't ask. We already know the answer: "It's complicated". |
2025-05-07 04:05:30 +0200 | <monochrom> | Alternatively if you think it's easy to fix then "patched welcome". |
2025-05-07 04:09:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 04:14:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-05-07 04:22:48 +0200 | td_ | (~td@i5387093E.versanet.de) (Ping timeout: 268 seconds) |
2025-05-07 04:24:04 +0200 | td_ | (~td@i5387091E.versanet.de) |
2025-05-07 04:25:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 04:30:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 04:31:15 +0200 | mceresa | (~mceresa@user/mceresa) (Read error: Connection reset by peer) |
2025-05-07 04:31:24 +0200 | mceresa | (~mceresa@user/mceresa) mceresa |
2025-05-07 04:34:08 +0200 | tessier | (~tessier@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 272 seconds) |
2025-05-07 04:35:41 +0200 | tessier | (~tessier@ip68-8-117-219.sd.sd.cox.net) tessier |
2025-05-07 04:37:17 +0200 | tessier | (~tessier@ip68-8-117-219.sd.sd.cox.net) (Remote host closed the connection) |
2025-05-07 04:37:43 +0200 | j1n37- | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 04:41:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 04:41:27 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 04:45:46 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 04:56:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 05:00:58 +0200 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-05-07 05:01:16 +0200 | califax | (~califax@user/califx) califx |
2025-05-07 05:02:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-07 05:05:57 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 05:09:24 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 05:12:22 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 05:12:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 05:14:29 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
2025-05-07 05:15:22 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 05:17:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-05-07 05:25:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 05:30:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 05:41:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 05:45:29 +0200 | aforemny | (~aforemny@2001:9e8:6ce9:2000:c495:2bb2:ad61:d989) aforemny |
2025-05-07 05:46:25 +0200 | aforemny_ | (~aforemny@2001:9e8:6cc8:6800:9956:496f:fbf1:8d53) (Ping timeout: 248 seconds) |
2025-05-07 05:47:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 05:59:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 06:03:47 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 06:06:13 +0200 | tavare | (~tavare@150.129.88.189) |
2025-05-07 06:06:13 +0200 | tavare | (~tavare@150.129.88.189) (Changing host) |
2025-05-07 06:06:13 +0200 | tavare | (~tavare@user/tavare) tavare |
2025-05-07 06:06:13 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 06:09:26 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 06:10:23 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 06:10:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 06:11:27 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.6.2) |
2025-05-07 06:12:58 +0200 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
2025-05-07 06:13:30 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 06:14:43 +0200 | tavare | (~tavare@user/tavare) (Remote host closed the connection) |
2025-05-07 06:15:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 06:16:24 +0200 | tessier | (~tessier@ip68-8-117-219.sd.sd.cox.net) tessier |
2025-05-07 06:19:56 +0200 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2025-05-07 06:22:57 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 06:26:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 06:31:26 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 06:32:10 +0200 | prdak | (~Thunderbi@user/prdak) prdak |
2025-05-07 06:36:34 +0200 | prdak | (~Thunderbi@user/prdak) (Ping timeout: 252 seconds) |
2025-05-07 06:42:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 06:46:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-05-07 06:50:28 +0200 | sp1ff | (~user@c-67-160-173-55.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
2025-05-07 06:57:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 07:02:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 07:05:27 +0200 | euleritian | (~euleritia@dynamic-176-006-137-036.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-07 07:05:46 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
2025-05-07 07:09:05 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 265 seconds) |
2025-05-07 07:11:35 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 07:12:36 +0200 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
2025-05-07 07:13:15 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2025-05-07 07:16:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-05-07 07:19:05 +0200 | bcksl | (~bcksl@user/bcksl) (Ping timeout: 252 seconds) |
2025-05-07 07:20:14 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-05-07 07:21:25 +0200 | FragByte | (~christian@user/fragbyte) (Ping timeout: 248 seconds) |
2025-05-07 07:21:35 +0200 | FragByte | (~christian@user/fragbyte) FragByte |
2025-05-07 07:22:50 +0200 | bcksl | (~bcksl@user/bcksl) bcksl |
2025-05-07 07:26:03 +0200 | ByronJohnson | (~bairyn@MAIL.DIGITALKINGDOM.ORG) (Ping timeout: 252 seconds) |
2025-05-07 07:26:11 +0200 | ByronJohnson | (~bairyn@MAIL.DIGITALKINGDOM.ORG) ByronJohnson |
2025-05-07 07:27:17 +0200 | aku | (aku@65.108.245.241) (Ping timeout: 248 seconds) |
2025-05-07 07:27:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 07:27:26 +0200 | aku | (aku@65.108.245.241) eagleflo |
2025-05-07 07:29:43 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (Ping timeout: 252 seconds) |
2025-05-07 07:29:51 +0200 | Jonno_FTW | (~come@api.carswap.me) |
2025-05-07 07:29:51 +0200 | Jonno_FTW | (~come@api.carswap.me) (Changing host) |
2025-05-07 07:29:51 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) Jonno_FTW |
2025-05-07 07:29:56 +0200 | prasad | (~Thunderbi@c-73-246-138-70.hsd1.in.comcast.net) (Remote host closed the connection) |
2025-05-07 07:30:10 +0200 | weary-traveler | (~user@user/user363627) (Read error: Connection reset by peer) |
2025-05-07 07:30:12 +0200 | prasad | (~Thunderbi@c-73-246-138-70.hsd1.in.comcast.net) |
2025-05-07 07:30:35 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-05-07 07:31:11 +0200 | roconnor | (~quassel@rocq/roconnor) (Ping timeout: 252 seconds) |
2025-05-07 07:31:52 +0200 | roconnor | (~quassel@rocq/roconnor) roconnor |
2025-05-07 07:32:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 07:34:13 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
2025-05-07 07:34:27 +0200 | <haskellbridge> | <Liamzee> https://www.reddit.com/r/haskell/comments/1kg07xh/scrap_your_iteration_combinators/ sm |
2025-05-07 07:34:31 +0200 | <haskellbridge> | <Liamzee> this is interesting when not taken literally, while I find Tom very nice, he's also a maximalist sometimes. |
2025-05-07 07:35:21 +0200 | <haskellbridge> | <sm> why not discuss the ideas, not the person |
2025-05-07 07:35:33 +0200 | <haskellbridge> | <Liamzee> the interesting idea is that effect-scoped for is equivalent to a particular iteration combinator |
2025-05-07 07:35:33 +0200 | euleritian | (~euleritia@dynamic-176-006-137-036.176.6.pool.telefonica.de) |
2025-05-07 07:36:07 +0200 | sp1ff | (~user@c-67-160-173-55.hsd1.wa.comcast.net) sp1ff |
2025-05-07 07:36:13 +0200 | <haskellbridge> | <sm> sorry, just a friendly reminder based on past threads. Carry on |
2025-05-07 07:36:44 +0200 | <haskellbridge> | <Liamzee> which is a natural and a substantial improvement to an imperative language, i guess the struggle is to see when it's applicable to Haskell (not that I'm saying it's never applicable to Haskell) |
2025-05-07 07:37:17 +0200 | <haskellbridge> | <Liamzee> the maximalism is relevant insofar that I think that if you don't take a maximalist position or try to skim it out of the article, it's a great article |
2025-05-07 07:39:45 +0200 | <haskellbridge> | <sm> I agree it's a fine article |
2025-05-07 07:40:54 +0200 | <haskellbridge> | <sm> I don't find it convincing as general advice for haskell programmers. Or if that's not its goal, I misunderstood it |
2025-05-07 07:41:33 +0200 | <haskellbridge> | <Liamzee> i guess i agree with you there |
2025-05-07 07:42:08 +0200 | <haskellbridge> | <Liamzee> a lot of maximalist tendencies, you can get along with them, simply by agreeing with them around 80%, or looking for ways for them to be 80% right |
2025-05-07 07:42:47 +0200 | <haskellbridge> | <Liamzee> then you still get a lot out of it, whereas if you end up becoming a maximalist yourself, going all or nothing, you're liable to throw the baby out with the bathwater |
2025-05-07 07:43:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 07:43:28 +0200 | <haskellbridge> | <sm> I just read it and gave some feedback, no more :) |
2025-05-07 07:44:01 +0200 | <haskellbridge> | <Liamzee> sorry about that! |
2025-05-07 07:45:46 +0200 | <haskellbridge> | <sm> no need Liamzee, I just didn't follow the maximalist comments, which is fine |
2025-05-07 07:46:24 +0200 | <haskellbridge> | <sm> how's your startup going |
2025-05-07 07:46:43 +0200 | <haskellbridge> | <Liamzee> ehhh, just going to hide doing FOSS for a while |
2025-05-07 07:47:01 +0200 | <haskellbridge> | <Liamzee> if it goes nowhere at the FOSS stage, I hopefully still have useful work |
2025-05-07 07:47:02 +0200 | <haskellbridge> | <maerwald> discussing personalities is sometimes valuable, but usually only when the person in question is part of the discussion and interested to engage |
2025-05-07 07:48:28 +0200 | <haskellbridge> | <Liamzee> my mistake here, i was just trying to promote a positive reading of tomjaguarpaw's article |
2025-05-07 07:48:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-07 07:49:24 +0200 | <JuanDaugherty> | bad ideas usually stand as such on their own wo personal invective |
2025-05-07 07:50:10 +0200 | <JuanDaugherty> | and u could miss a gem they might emit |
2025-05-07 07:50:34 +0200 | <haskellbridge> | <Liamzee> i'm not trying to attack tom, or call his ideas bad |
2025-05-07 07:51:01 +0200 | <JuanDaugherty> | all haskellers are maximalist |
2025-05-07 07:51:14 +0200 | <haskellbridge> | <maerwald> JuanDaugherty: are you suggesting to discuss the actual points people make? Ridiculous. Let me look up some of their sh*tposts on X first to discredit them ;) |
2025-05-07 07:51:45 +0200 | <haskellbridge> | <sm> so, everyone! Is the article Good or Bad ? Shall Tom get a raise or be fired ? https://h2.jaguarpaw.co.uk/posts/scrap-your-iteration-combinators/ |
2025-05-07 07:51:48 +0200 | <JuanDaugherty> | maerwald :) |
2025-05-07 07:51:53 +0200 | <haskellbridge> | <Liamzee> hey, that's mean |
2025-05-07 07:52:03 +0200 | <haskellbridge> | <Liamzee> that's a bad way to discuss it |
2025-05-07 07:52:07 +0200 | <haskellbridge> | <Liamzee> ugh, i regret everything i've said tonight |
2025-05-07 07:52:09 +0200 | <haskellbridge> | <Liamzee> good night |
2025-05-07 07:52:15 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 260 seconds) |
2025-05-07 07:52:23 +0200 | <JuanDaugherty> | dismissed prima facie based on title |
2025-05-07 07:52:26 +0200 | <haskellbridge> | <maerwald> Liamzee: lol I wasn't referring to you |
2025-05-07 07:52:39 +0200 | <haskellbridge> | <maerwald> but this has absolutely happened in our community |
2025-05-07 07:53:06 +0200 | <haskellbridge> | <Liamzee> i mean SM :( |
2025-05-07 07:53:49 +0200 | jle` | (~jle`@2603:8001:3b00:11:43a3:4aa5:da69:7d43) (Ping timeout: 260 seconds) |
2025-05-07 07:53:57 +0200 | <haskellbridge> | <sm> Liamzee what now ?? I'm sorry if I gave offense, no meanness intended! Since you brought up this article and got me thinking about it, I just hoped to hear a few more opinions |
2025-05-07 07:54:16 +0200 | <EvanR> | FIGHT FIGHT |
2025-05-07 07:54:22 +0200 | <JuanDaugherty> | formulas like 'no more X', i turn off from dislike of sales efforts |
2025-05-07 07:54:29 +0200 | <haskellbridge> | <sm> it's late, we've got to have some fun in here |
2025-05-07 07:54:35 +0200 | <haskellbridge> | <Liamzee> tom isn't here to defend himself :( |
2025-05-07 07:54:40 +0200 | <haskellbridge> | <Liamzee> i just wanted to defend him :( |
2025-05-07 07:54:40 +0200 | jle` | (~jle`@2603:8001:3b00:11::1156) jle` |
2025-05-07 07:54:50 +0200 | <haskellbridge> | <Liamzee> i think this is a misunderstanding :( |
2025-05-07 07:55:00 +0200 | <haskellbridge> | <sm> come on now, nobody is attacking him. We love Tom. |
2025-05-07 07:55:13 +0200 | <haskellbridge> | <sm> he write awesome posts |
2025-05-07 07:55:24 +0200 | <haskellbridge> | <maerwald> Tom has strong opinions at times, but his reasoning is sharp |
2025-05-07 07:55:31 +0200 | <JuanDaugherty> | well mean is OK just do it on principles not personalities |
2025-05-07 07:55:47 +0200 | haskellbridge | sm makes a pot of tea and passes a plate of cakes around |
2025-05-07 07:57:05 +0200 | <JuanDaugherty> | trashing groups is OK, like capitalist knuckleheads |
2025-05-07 07:57:55 +0200 | <JuanDaugherty> | the enemies of and parasites on doing |
2025-05-07 07:58:39 +0200 | <EvanR> | antidisestablishmentarians |
2025-05-07 07:58:47 +0200 | <haskellbridge> | <Liamzee> ultimately, how things work is that people come up with ideas, other people try them, people figure out how and where they're a bad idea, and use them within limits |
2025-05-07 07:58:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 08:04:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 08:04:24 +0200 | <haskellbridge> | <maerwald> Ok, let's discuss bad idea: Template Haskell |
2025-05-07 08:04:34 +0200 | <haskellbridge> | <sm> oh must we |
2025-05-07 08:04:52 +0200 | <haskellbridge> | <sm> TH BAD, mmkay... ? |
2025-05-07 08:05:03 +0200 | <haskellbridge> | <maerwald> Real bad |
2025-05-07 08:06:01 +0200 | <haskellbridge> | <sm> is there a Good subset or variant of it ? that we could rebrand with a cool name like comptime ! |
2025-05-07 08:06:08 +0200 | <haskellbridge> | <Bowuigi> Liamzee paradigm switches are useful and can make code clearer, but imperative is usually not the best one to switch to lol |
2025-05-07 08:06:11 +0200 | <JuanDaugherty> | is that a joke? what mechanism do you suggest for affecting haskell compile at that level? |
2025-05-07 08:06:24 +0200 | <haskellbridge> | <maerwald> Not a joke at all |
2025-05-07 08:06:26 +0200 | <dminuoso> | Compiler plugins. |
2025-05-07 08:06:45 +0200 | <JuanDaugherty> | i c |
2025-05-07 08:06:49 +0200 | <haskellbridge> | <maerwald> TH causes lots of problems with bootstrapping, cross compiling and breaks certain invariants |
2025-05-07 08:07:05 +0200 | <JuanDaugherty> | so? |
2025-05-07 08:07:47 +0200 | <dminuoso> | maerwald: I feel like there is such a simple solution to all of this. Separate TH dependency set (plus a bit of cabal-wiring, so you get a th-depends section), and voila - problems start to disappear! |
2025-05-07 08:08:08 +0200 | <JuanDaugherty> | that's work, and not make work; work the elimination of which is based on unreasonable expection |
2025-05-07 08:08:27 +0200 | <JuanDaugherty> | also dev thing intrruding in ops |
2025-05-07 08:08:43 +0200 | <JuanDaugherty> | or alternatively not properly separated |
2025-05-07 08:08:58 +0200 | <haskellbridge> | <maerwald> the problem is you can't really know what TH is doing... is it "pure" and maybe just does some templating? Does it run code on the build machine? Does it depend on the environment? Is it reproducible? |
2025-05-07 08:09:07 +0200 | <dminuoso> | Every time I look at it, the main headaches surrounding TH relate to mixing runtime and compile-time dependencies and linkage. |
2025-05-07 08:09:12 +0200 | <JuanDaugherty> | maximalist on parade |
2025-05-07 08:09:20 +0200 | <JuanDaugherty> | *ism |
2025-05-07 08:09:31 +0200 | <dminuoso> | If we look at rust, its not as compile-time code is innately bad on the basis of not knowing what it may do. |
2025-05-07 08:09:48 +0200 | <haskellbridge> | <sm> maybe TH needs bluefin! |
2025-05-07 08:09:49 +0200 | <JuanDaugherty> | omg, rust? rly? |
2025-05-07 08:09:55 +0200 | <dminuoso> | The argument is about as silly as saying "Dont use anything IO, we dont know what this is doing" |
2025-05-07 08:10:02 +0200 | <haskellbridge> | <Bowuigi> Are those TH problems or staging problems? Or both? |
2025-05-07 08:10:07 +0200 | <dminuoso> | It sounds like a hidden advertisement for effect systems. |
2025-05-07 08:10:26 +0200 | <dminuoso> | Which ultimately is a documentation issue. |
2025-05-07 08:10:53 +0200 | <JuanDaugherty> | *expectation |
2025-05-07 08:11:03 +0200 | <dminuoso> | JuanDaugherty: I dont believe this to ever be an issue. |
2025-05-07 08:11:07 +0200 | <JuanDaugherty> | *intruding |
2025-05-07 08:11:14 +0200 | <haskellbridge> | <maerwald> runtime being "unpredictable" is one thing and kinda expected |
2025-05-07 08:11:23 +0200 | <haskellbridge> | <maerwald> compile time being unpredictable is GARBAGE |
2025-05-07 08:11:27 +0200 | <dminuoso> | in all my years, I have never heard a single user complain "I dont know whether this TH splice is doing network access" |
2025-05-07 08:11:33 +0200 | <dminuoso> | It's just not a practical issue that ever concerns users. |
2025-05-07 08:11:40 +0200 | <dminuoso> | It's a philosophical issue. |
2025-05-07 08:11:43 +0200 | <JuanDaugherty> | dminuoso, yeah |
2025-05-07 08:12:05 +0200 | <haskellbridge> | <maerwald> well, it causes problems with reproducible build artifacts |
2025-05-07 08:12:10 +0200 | <JuanDaugherty> | and as always a depth of experience issue |
2025-05-07 08:12:13 +0200 | <haskellbridge> | <maerwald> unless you reproduce the entire environment |
2025-05-07 08:12:26 +0200 | haskellbridge | sm is another one depending on TH all the time, I don't mess with it and it doesn't mess with me. But I know it's limiting the capabilities of the tools/language/platforms |
2025-05-07 08:12:29 +0200 | <dminuoso> | maerwald: In large I dont expect this to actually be meaningful. |
2025-05-07 08:12:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 08:12:46 +0200 | <haskellbridge> | <maerwald> you mean you don't care about it |
2025-05-07 08:12:48 +0200 | <haskellbridge> | <maerwald> ;) |
2025-05-07 08:13:06 +0200 | <dminuoso> | Yes, there may be snowflake users that may look at it differently. |
2025-05-07 08:13:38 +0200 | <haskellbridge> | <sm> I care that it's doing something useful for me, I care in that I'd love it to be better so it doesn't limit the tools (and so people don't constantly complain about it ... so boring.... :) :) |
2025-05-07 08:13:50 +0200 | <dminuoso> | And we could address this by offering a limited TH set and a language pragma |
2025-05-07 08:14:00 +0200 | <dminuoso> | Where large parts of IO are just removed. |
2025-05-07 08:14:44 +0200 | <haskellbridge> | <Bowuigi> So what you need is a way to fake effect execution maerwald |
2025-05-07 08:15:10 +0200 | <haskellbridge> | <sm> that seems to be the usual consensus when it's discussed dminuoso , I guess it's just another of those things that'll happen if ever there's money / need / focus for it |
2025-05-07 08:15:23 +0200 | <dminuoso> | In practice if we look at the average user, the biggest issues about TH is linkage/cross-compilation related. |
2025-05-07 08:16:20 +0200 | <dminuoso> | What I really want is to declare template-haskell-depends and template-haskell-libraries in my foo.cabal. |
2025-05-07 08:16:21 +0200 | <haskellbridge> | <maerwald> Bowuigi: send the IO through an LLM prompt? |
2025-05-07 08:16:43 +0200 | <dminuoso> | And not confuse build and runtime at every step of the way. |
2025-05-07 08:16:55 +0200 | <haskellbridge> | <maerwald> dminuoso: so you use nix but don't care about reproducibility xD |
2025-05-07 08:17:16 +0200 | <dminuoso> | maerwald: I use nix because NixOS is the sanest way to manage hundreds of servers. |
2025-05-07 08:17:17 +0200 | <JuanDaugherty> | a nix fart |
2025-05-07 08:17:19 +0200 | <dminuoso> | That's the sole reason. |
2025-05-07 08:17:32 +0200 | <dminuoso> | reproducability is a red herring, honestly. |
2025-05-07 08:17:40 +0200 | <JuanDaugherty> | see? mean on pkgs is OK too |
2025-05-07 08:17:50 +0200 | <haskellbridge> | <sm> do you manage hundreds dminuoso ? |
2025-05-07 08:17:59 +0200 | haskellbridge | sm struggled to manage 2 tonight... |
2025-05-07 08:18:07 +0200 | <dminuoso> | sm: Yes. |
2025-05-07 08:18:15 +0200 | <haskellbridge> | <sm> nice! |
2025-05-07 08:18:19 +0200 | <haskellbridge> | <maerwald> I think it's just a matter of what you're familiar with |
2025-05-07 08:18:30 +0200 | <haskellbridge> | <maerwald> I managed "reproducible" servers with gentoo and binary packages |
2025-05-07 08:18:38 +0200 | <haskellbridge> | <sm> yes, I haven't touched these for years and there's a lot to relearn |
2025-05-07 08:19:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-05-07 08:19:48 +0200 | <haskellbridge> | <sm> bash setup scripts are the next step for me |
2025-05-07 08:20:05 +0200 | <haskellbridge> | <Bowuigi> maerwald no I mean give them specific, deterministic and reproducible results without actually doing IO |
2025-05-07 08:20:34 +0200 | <haskellbridge> | <sm> (anyone using https://hackage.haskell.org/package/propellor ?) |
2025-05-07 08:20:43 +0200 | <haskellbridge> | <maerwald> dminuoso: are you at ZuriHac? |
2025-05-07 08:20:57 +0200 | <haskellbridge> | <maerwald> sm: I used that one in prod. Not a fan |
2025-05-07 08:20:57 +0200 | JuanDaugherty | y |
2025-05-07 08:21:25 +0200 | haskellbridge | sm too, but didn't keep it |
2025-05-07 08:21:47 +0200 | <haskellbridge> | <maerwald> you should treat servers like cattle, not like a child... if it misbehaves... shoot it |
2025-05-07 08:21:54 +0200 | <haskellbridge> | <maerwald> and spawn a new one |
2025-05-07 08:22:12 +0200 | <dminuoso> | People sell effect systems/deterministic things by bringing up far fetched and contrived problems, and then they go a long way to explain how their solution addresses that problem, and how bad it would be if this problem ever affected you. |
2025-05-07 08:22:27 +0200 | <haskellbridge> | <sm> yup.. with bash.. (I feel like a cave man, but so be it 😂) |
2025-05-07 08:22:43 +0200 | euleritian | (~euleritia@dynamic-176-006-137-036.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-07 08:22:55 +0200 | <JuanDaugherty> | inventory isn even cattle |
2025-05-07 08:23:00 +0200 | <dminuoso> | Or they introduce anecdotes.. |
2025-05-07 08:23:01 +0200 | euleritian | (~euleritia@77.23.248.100) |
2025-05-07 08:23:38 +0200 | <haskellbridge> | <maerwald> dminuoso: sounds like you're ok if my libraries work correctly 90% of the time. So I guess you don't mind if you get broken filepaths now and then |
2025-05-07 08:23:55 +0200 | <dminuoso> | And honestly, Ive been on that side. I had a phase where I made loads of type tricks to solve contrived bugs that I never had, and then felt good about how I had code provably absent of bugs (that I never had) |
2025-05-07 08:24:16 +0200 | <dminuoso> | And Haskell is great as a playground to do these experiments. |
2025-05-07 08:24:16 +0200 | <haskellbridge> | <sm> soo.. don't rewrite TH with bluefin/effectful then ? Too much ? |
2025-05-07 08:25:11 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-05-07 08:26:22 +0200 | <haskellbridge> | <maerwald> the main selling points of effects systems isn't even avoiding bugs |
2025-05-07 08:26:28 +0200 | <haskellbridge> | <maerwald> it's composability |
2025-05-07 08:26:48 +0200 | <haskellbridge> | <maerwald> not that I use any |
2025-05-07 08:27:01 +0200 | <dminuoso> | If that was true IO would be the ideal solution as it is maximally composable. |
2025-05-07 08:27:18 +0200 | <dminuoso> | effect systems exist *precisely* because they reduce composability. |
2025-05-07 08:27:40 +0200 | <dminuoso> | In hopes of filtering out more bad programs than it filters out good programs. |
2025-05-07 08:28:09 +0200 | <dminuoso> | But it begs the question if the number of bad programs filtered out if worth the pain. |
2025-05-07 08:28:27 +0200 | <haskellbridge> | <maerwald> dminuoso: Yes, bluefin is just IO under the hood |
2025-05-07 08:28:43 +0200 | <haskellbridge> | <sm> the goal is usually controlled composability, not a big ball of mud |
2025-05-07 08:29:10 +0200 | <haskellbridge> | <maerwald> yes, if you compare it to e.g. mtl/transformers, then it's clear that it's more composable |
2025-05-07 08:29:30 +0200 | <haskellbridge> | <maerwald> where in mtl/transformers you have to consciously think about the different stacks all the time |
2025-05-07 08:29:35 +0200 | <dminuoso> | Well I wouldn't use mtl/transformers except for some local tricks |
2025-05-07 08:29:47 +0200 | <haskellbridge> | <Bowuigi> I don't have enough computers to worry about reproducibility, or enough effects to worry about effect systems, but if you do, why not use the best tools available? |
2025-05-07 08:29:58 +0200 | <dminuoso> | Transformer stacks are, in my opinion, just an experiment gone wild and spread around. |
2025-05-07 08:30:00 +0200 | <dminuoso> | Much like PHp. |
2025-05-07 08:30:07 +0200 | <haskellbridge> | <sm> we're arguing about what's best, you fool! |
2025-05-07 08:30:33 +0200 | <haskellbridge> | <sm> oops did I say that out loud. Sorry Bowuigi :) |
2025-05-07 08:30:33 +0200 | <haskellbridge> | <maerwald> dminuoso: So you're an IO maximalist |
2025-05-07 08:30:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 08:30:48 +0200 | <dminuoso> | maerwald: ultimately, if you are suggesting you have a library that induces 90% reproducability in TH splices, then effect systems are not the right choice |
2025-05-07 08:30:52 +0200 | <haskellbridge> | <maerwald> writing Haskell code like in the 90s |
2025-05-07 08:31:03 +0200 | <dminuoso> | Just dont use piss poor libraries that do network calls in the middle ofyour $(makeFromJSON) ? |
2025-05-07 08:31:13 +0200 | <haskellbridge> | <maerwald> lmao |
2025-05-07 08:31:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2025-05-07 08:31:34 +0200 | <dminuoso> | That is, effect systems dont fix bad libraries. |
2025-05-07 08:32:00 +0200 | <dminuoso> | They help in some situations where you have developers with less-than-ideal discipline |
2025-05-07 08:33:15 +0200 | <haskellbridge> | <Bowuigi> sm np lol, I don't see much of a discussion though |
2025-05-07 08:33:15 +0200 | <dminuoso> | And as with nix, there may be odd cases where reproducability has been an issue. |
2025-05-07 08:33:30 +0200 | <haskellbridge> | <maerwald> well, as I said... I don't use effects systems. Mainly because whenever I looked at heavy effects system code... I realized it's impossible to reason what it will do _operationally_ ...don't denotational semantics me... I have to run my program in the end |
2025-05-07 08:33:39 +0200 | <dminuoso> | But honestly, the main pain point for us with other solutions is not reproducability, its *expressivity* and *diagnostics*. |
2025-05-07 08:33:43 +0200 | <haskellbridge> | <sm> Bowuigi I'm in the same boat as you |
2025-05-07 08:33:53 +0200 | <dminuoso> | Now nix tosses away all kinds of diagnostics, and plenty of performance, but you get expressivity. |
2025-05-07 08:35:18 +0200 | <haskellbridge> | <maerwald> ergonomics > expressivity :) |
2025-05-07 08:36:04 +0200 | <dminuoso> | In nix they kind of go hand in hand. |
2025-05-07 08:36:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-05-07 08:36:17 +0200 | <haskellbridge> | <maerwald> You mean lack of ergenomics? |
2025-05-07 08:36:22 +0200 | <dminuoso> | I mean there's code ergonomics and tool ergonomics. |
2025-05-07 08:36:43 +0200 | <dminuoso> | Unless we can agree expressivity to mean code ergonomics. |
2025-05-07 08:36:48 +0200 | <haskellbridge> | <maerwald> well, nix has no boundaries between code and configuration |
2025-05-07 08:36:52 +0200 | <haskellbridge> | <maerwald> so there goes your ergonomics |
2025-05-07 08:38:30 +0200 | <dminuoso> | Yeah, though Im fine with the lack of that boundary. |
2025-05-07 08:38:35 +0200 | <haskellbridge> | <maerwald> dminuoso: anyway, you didn't answer my question above ;) |
2025-05-07 08:38:39 +0200 | <dminuoso> | At work we have some rigorous discipline to have minimal code logic. |
2025-05-07 08:38:43 +0200 | <dminuoso> | maerwald: Which question? |
2025-05-07 08:38:54 +0200 | <haskellbridge> | <maerwald> will you be at ZuriHac? |
2025-05-07 08:39:02 +0200 | <dminuoso> | Probably yes. |
2025-05-07 08:39:24 +0200 | <haskellbridge> | <maerwald> there'll probably be endless nix debates on the grass, lmao |
2025-05-07 08:39:39 +0200 | <haskellbridge> | <Bowuigi> The declarative nature of Nix is great for everyone. The rest sometimes feels annoying |
2025-05-07 08:39:59 +0200 | <dminuoso> | I recently decided to do munihac and zurihac in a biennial rotation. :) |
2025-05-07 08:40:19 +0200 | <dminuoso> | Bowuigi: Yes. and I only like it for NixOS modules |
2025-05-07 08:40:30 +0200 | <dminuoso> | For nix derivation it is a hopelessly horrible excercise. |
2025-05-07 08:41:02 +0200 | <dminuoso> | You're essentially writing autotools parts but without any documentation how or in what order they execute, and what it done when. |
2025-05-07 08:41:19 +0200 | <haskellbridge> | <maerwald> MuniHac at in September, which is bad weather... and I can't be bothered to fly twice from Asia to Europe |
2025-05-07 08:41:21 +0200 | <dminuoso> | Declarative autotools sans documentation. |
2025-05-07 08:41:32 +0200 | <haskellbridge> | <maerwald> autotools, lmao |
2025-05-07 08:41:50 +0200 | <dminuoso> | Oh and you cant even inspect any of it. |
2025-05-07 08:41:52 +0200 | <haskellbridge> | <maerwald> m4 is th the worst macro system in existence |
2025-05-07 08:42:02 +0200 | <haskellbridge> | <Bowuigi> Reproducibility was annoying sometimes because it actively nerfed some programs |
2025-05-07 08:42:17 +0200 | <haskellbridge> | <sm> hey I depend on m4, sometimes nothing else gets it done |
2025-05-07 08:42:44 +0200 | <haskellbridge> | <maerwald> the best thing is when your configure has some syntax errors, but carries on anyway... uhm, bro |
2025-05-07 08:43:27 +0200 | <dminuoso> | Has there ever been a build system that isnt just bad? |
2025-05-07 08:43:36 +0200 | euleritian | (~euleritia@77.23.248.100) (Read error: Connection reset by peer) |
2025-05-07 08:43:39 +0200 | <haskellbridge> | <Bowuigi> No |
2025-05-07 08:43:45 +0200 | euleritian | (~euleritia@77.23.248.100) |
2025-05-07 08:43:47 +0200 | <haskellbridge> | <sm> hmmm |
2025-05-07 08:44:01 +0200 | <dminuoso> | There's certainly a plethora of build systems that claim they finally solved all the bad parts... |
2025-05-07 08:44:05 +0200 | <haskellbridge> | <maerwald> premake, SCons? xD |
2025-05-07 08:44:07 +0200 | euleritian | (~euleritia@77.23.248.100) (Remote host closed the connection) |
2025-05-07 08:44:08 +0200 | <dminuoso> | Just to replace them with a different kind of bad. |
2025-05-07 08:44:28 +0200 | <haskellbridge> | <sm> Shake is quite powerful |
2025-05-07 08:44:37 +0200 | <haskellbridge> | <maerwald> sm: Too powerful, imo |
2025-05-07 08:44:57 +0200 | <haskellbridge> | <sm> and also not enough (only one shake file / process per directory) |
2025-05-07 08:44:57 +0200 | euleritian | (~euleritia@77.23.248.100) |
2025-05-07 08:45:45 +0200 | <haskellbridge> | <Bowuigi> Because when something is good, everyone wants to use it for everything, thus making it bad |
2025-05-07 08:46:23 +0200 | <haskellbridge> | <maerwald> So now Haskell is bad? |
2025-05-07 08:46:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-07 08:46:55 +0200 | <haskellbridge> | <Bowuigi> At some things, yes |
2025-05-07 08:46:58 +0200 | <haskellbridge> | <sm> we all know its badness :) |
2025-05-07 08:48:53 +0200 | mistivia | (~mistivia@user/mistivia) (Ping timeout: 248 seconds) |
2025-05-07 08:49:17 +0200 | <haskellbridge> | <Bowuigi> But I was talking about build systems, not languages :) |
2025-05-07 08:49:25 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 248 seconds) |
2025-05-07 08:50:06 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 08:51:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-05-07 08:51:41 +0200 | mistivia | (~mistivia@user/mistivia) mistivia |
2025-05-07 08:52:34 +0200 | <haskellbridge> | <maerwald> dminuoso: what's your opinion on frp? |
2025-05-07 08:56:55 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) |
2025-05-07 09:00:02 +0200 | caconym7 | (~caconym@user/caconym) (Quit: bye) |
2025-05-07 09:00:42 +0200 | caconym7 | (~caconym@user/caconym) caconym |
2025-05-07 09:01:08 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f51a913f462df63336d.dip0.t-ipconnect.de) acidjnk |
2025-05-07 09:05:05 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-05-07 09:09:07 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-05-07 09:12:54 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-05-07 09:14:42 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-05-07 09:14:53 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2025-05-07 09:21:30 +0200 | rvalue- | rvalue |
2025-05-07 09:22:55 +0200 | <haskellbridge> | <hellwolf> maerwald: I will be at ZuriHac. Looking forward to seeing you in person. Not sure I will engage with your nix debate though :p |
2025-05-07 09:23:39 +0200 | <haskellbridge> | <maerwald> I do have friends who use nix... so there is that xD |
2025-05-07 09:24:52 +0200 | <haskellbridge> | <hellwolf> :p good to know that we may become friends still. |
2025-05-07 09:26:18 +0200 | sajenim | (~sajenim@user/sajenim) (Quit: WeeChat 4.4.3) |
2025-05-07 09:26:20 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-07 09:26:26 +0200 | <haskellbridge> | <hellwolf> I do want to sell Haskell. But I guess I am at the choir at ZuriHac. |
2025-05-07 09:27:35 +0200 | <haskellbridge> | <hellwolf> But this thread is so confusing. So, for_ good or not |
2025-05-07 09:27:48 +0200 | <haskellbridge> | <hellwolf> no answer. IRC at its finest. |
2025-05-07 09:28:14 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-05-07 09:28:35 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-05-07 09:33:30 +0200 | chele | (~chele@user/chele) chele |
2025-05-07 09:35:11 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2025-05-07 09:36:59 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2025-05-07 09:39:28 +0200 | <haskellbridge> | <hellwolf> I guess the idea being sold by tom, if interpolated, is that for_ is at the sweet spot where it addresses /most/ of our iteration needs while being also friendly to people (as a word, or similar to foreach, in other languages). |
2025-05-07 09:39:31 +0200 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/nixvJLeXrGvewcPZQffWwHnL/5n5W18Cg9vc (3 lines) |
2025-05-07 09:40:24 +0200 | <haskellbridge> | <hellwolf> Oops, it's IRC. And probably my message was squashed in the irc world. |
2025-05-07 09:40:52 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-07 09:43:54 +0200 | <haskellbridge> | <Bowuigi> I actually answered, I cite: "Paradigm switches are useful and can make code clearer, but imperative is usually not the best one to switch to lol" |
2025-05-07 09:45:05 +0200 | darkstardevx | (~darkstard@50.53.3.2) darkstardevx |
2025-05-07 09:45:25 +0200 | darkstardevx | (~darkstard@50.53.3.2) (Remote host closed the connection) |
2025-05-07 09:46:24 +0200 | <haskellbridge> | <hellwolf> tom is openly a imperative 5th column in haskell republic. |
2025-05-07 09:46:24 +0200 | <haskellbridge> | okay, now i am in danger of being ad hominen. but i swear i can quote his words |
2025-05-07 09:46:26 +0200 | <haskellbridge> | <Bowuigi> IMO, for bad unless for is exactly what you need |
2025-05-07 09:47:01 +0200 | <haskellbridge> | <hellwolf> that's saying nothing :D |
2025-05-07 09:49:38 +0200 | <haskellbridge> | <Bowuigi> Don't "unroll the definition" unless it's absolutely necessary I guess |
2025-05-07 09:53:33 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-05-07 09:54:54 +0200 | <haskellbridge> | <Bowuigi> I'm against the idea that imperative code is inherently "more intuitive"/"fundamental in programming" and all that, I don't think for makes things that much clearer |
2025-05-07 09:55:47 +0200 | <haskellbridge> | <hellwolf> I tend to agree. That's conflating current culture and popularity with ideal |
2025-05-07 09:55:59 +0200 | <haskellbridge> | <hellwolf> Programming populists. |
2025-05-07 09:56:59 +0200 | <haskellbridge> | <hellwolf> okay, let's rather discuss technical cases. otherwise I can be sometimes too meta. I do armchair philosophy with friends as a hobby, it's a bad habit. |
2025-05-07 09:57:21 +0200 | <haskellbridge> | <magic_rb> I have a specific question related to this kinda |
2025-05-07 09:57:58 +0200 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-05-07 09:59:02 +0200 | <haskellbridge> | <magic_rb> So im writing a FAT12/16/32 driver for.my thesis and im struggling to imagine how to write this "not like C code". If you look at the "Programming Guide" section in https://wiki.osdev.org/FAT and scroll down there is a list of 8 steps that need to be done for reading out a single 32-byte entry |
2025-05-07 10:00:04 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
2025-05-07 10:00:35 +0200 | <haskellbridge> | <magic_rb> My code is currently a while loop with if statements roughly corresponding to the steps there, all wrapped in a StateT which contains a Ptr Word8, ByteArray and MVector FATEntry. As you can see none of this is very "functional" |
2025-05-07 10:00:42 +0200 | <haskellbridge> | <magic_rb> But i dont know how to make it more functiinal |
2025-05-07 10:05:02 +0200 | <haskellbridge> | <Bowuigi> It's parsing 32 bytes |
2025-05-07 10:05:44 +0200 | <haskellbridge> | <Bowuigi> Use flatparse for it |
2025-05-07 10:06:01 +0200 | ft | (~ft@p4fc2a6e6.dip0.t-ipconnect.de) (Quit: leaving) |
2025-05-07 10:06:12 +0200 | <haskellbridge> | <sm> if the task is a procedure, it's a procedure. Write the code that's most natural for it |
2025-05-07 10:07:38 +0200 | <haskellbridge> | <Bowuigi> Yeah that also works |
2025-05-07 10:08:51 +0200 | <haskellbridge> | <magic_rb> Bowuigi flatparse is fascinating but i dont have a bytestring. I have a Ptr to a mmaped file. |
2025-05-07 10:09:41 +0200 | <haskellbridge> | <magic_rb> sm indeed, but thats like the whole driver, so then the conclusion of my thesis would be "dont use haskell for this" :P |
2025-05-07 10:09:54 +0200 | <haskellbridge> | <magic_rb> So im trying to see if im perhaps missing something |
2025-05-07 10:10:05 +0200 | <haskellbridge> | <Bowuigi> Parser combinators in general seem to fit |
2025-05-07 10:10:32 +0200 | <haskellbridge> | <sm> haskell code doesn't have to look functional. It's a good imperative language too |
2025-05-07 10:11:02 +0200 | <tomsmeding> | magic_rb: what does that code snippet look like? |
2025-05-07 10:11:05 +0200 | <haskellbridge> | <sm> but I don't know if it's the right language for your thesis problem.. what's the argument of the thesis ? |
2025-05-07 10:11:41 +0200 | <haskellbridge> | <magic_rb> Seeing if a FUSE FAT driver can be done in haskell, while remaining performant and haskell-y |
2025-05-07 10:11:45 +0200 | <haskellbridge> | <magic_rb> Essentially |
2025-05-07 10:12:07 +0200 | <haskellbridge> | <magic_rb> tomsmeding will share, give me a sec |
2025-05-07 10:12:27 +0200 | <haskellbridge> | <sm> alright, well that might involve some procedural-looking code, and if so that's fine, I'd say |
2025-05-07 10:13:46 +0200 | <haskellbridge> | <sm> at least to start with. You might get some refactoring ideas |
2025-05-07 10:13:53 +0200 | <tomsmeding> | magic_rb: and also, you say "can't use flatparse because I don't have a bytestring" -- may be true, but there's no reason one cannot write (or hack) a parser combinator library to work on a Ptr instead |
2025-05-07 10:14:09 +0200 | <tomsmeding> | and one that's currently written to work on ByteString is probably a good place to start :p |
2025-05-07 10:14:20 +0200 | <tomsmeding> | I'd be surprised if it's a lot of work |
2025-05-07 10:16:00 +0200 | <haskellbridge> | <Bowuigi> Try various approaches and see what is more elegant, that's the Haskell way (tm) |
2025-05-07 10:17:44 +0200 | <haskellbridge> | <magic_rb> tomsmeding: https://paste.tomsmeding.com/RKZytHDb |
2025-05-07 10:18:04 +0200 | <haskellbridge> | <magic_rb> the ifs could be done with case, see that already |
2025-05-07 10:18:19 +0200 | <haskellbridge> | <magic_rb> finished it yesterday so there is some low hanging fruit |
2025-05-07 10:18:57 +0200 | <haskellbridge> | <magic_rb> sm: so far im fresh out on the ideas :P and theoretically the deadline is in 2 months, i really despise the dutch system where you have 3 months for you thesis |
2025-05-07 10:19:16 +0200 | <haskellbridge> | <magic_rb> im still considering extending my bsc just because of the thesis so i can submit something im actually happy with |
2025-05-07 10:20:03 +0200 | sajenim | (~sajenim@user/sajenim) sajenim |
2025-05-07 10:20:15 +0200 | <haskellbridge> | <sm> have you achieved the goals, other than how the code looks ? does it work, is it performant ? |
2025-05-07 10:20:56 +0200 | <tomsmeding> | magic_rb: those manual read-at-offset and plusPtr operations scream for parser combinators |
2025-05-07 10:21:56 +0200 | <haskellbridge> | <magic_rb> sm: it does so far, doesnt mean im happy with it :P |
2025-05-07 10:22:36 +0200 | <tomsmeding> | magic_rb: where does that filename field on line 42 come from? |
2025-05-07 10:22:37 +0200 | <haskellbridge> | <sm> that's great, so just refactoring code golfing remains. That's fun |
2025-05-07 10:23:09 +0200 | <tomsmeding> | perhaps you expect to first get into the 'then' on line 31? |
2025-05-07 10:23:14 +0200 | <haskellbridge> | <magic_rb> yeah |
2025-05-07 10:23:17 +0200 | <haskellbridge> | <sm> a field in PeekDirectoryState isn't it ? |
2025-05-07 10:23:21 +0200 | <haskellbridge> | <magic_rb> its accumulated |
2025-05-07 10:23:28 +0200 | <haskellbridge> | <magic_rb> but its broken, i misunderstood how it works |
2025-05-07 10:23:37 +0200 | <haskellbridge> | <magic_rb> but yeah you accumulate the filename over possibly many entries |
2025-05-07 10:23:42 +0200 | <tomsmeding> | I see |
2025-05-07 10:24:00 +0200 | <tomsmeding> | I see no functionality for handling a non-long filename, is why I was confused |
2025-05-07 10:24:01 +0200 | <haskellbridge> | <magic_rb> the exact structure of it is super fucked, its like 0-7 then 10-13 then 18-24 or something like that |
2025-05-07 10:24:15 +0200 | <haskellbridge> | <magic_rb> yeah thats also missing, something i figured out how to do yesterday |
2025-05-07 10:24:32 +0200 | <haskellbridge> | <magic_rb> the official doc for FAT32 is horrendous and the osdev wiki page is only marginally better |
2025-05-07 10:24:35 +0200 | <tomsmeding> | why is the filename a mutablebytearray that you resize every time you append a little chunk for it? |
2025-05-07 10:24:55 +0200 | <haskellbridge> | <magic_rb> probably should have been a Strict ByteString ? |
2025-05-07 10:25:11 +0200 | <tomsmeding> | why not represent it as a list of (Ptr Word8, Int) pairs, and then collect the filename in one go after reading all chunks |
2025-05-07 10:25:31 +0200 | <tomsmeding> | separates responsibility of the parser (this code) and the whole byte array writing nonsense |
2025-05-07 10:25:40 +0200 | <haskellbridge> | <magic_rb> oh thats a great idea |
2025-05-07 10:25:49 +0200 | <haskellbridge> | <sm> 👍️ |
2025-05-07 10:25:50 +0200 | <haskellbridge> | <magic_rb> thanks |
2025-05-07 10:27:43 +0200 | <tomsmeding> | similar question for `s ^. output`; it's a VM-something that you manually unsafeGrow by 1 every time you find an entry |
2025-05-07 10:27:55 +0200 | <haskellbridge> | <magic_rb> yeah will also do that one |
2025-05-07 10:27:57 +0200 | <tomsmeding> | that sounds like O(n^2) because presumably that grow operation is O(n) |
2025-05-07 10:28:27 +0200 | <haskellbridge> | <magic_rb> didnt think of deferring it to later with the [] idea, dont know why that didnt occur to me |
2025-05-07 10:28:57 +0200 | <tomsmeding> | both of these things allow you to separate the things that _must_ happen procedurally (parsing) and the things that can happen more functionally (albeit with effects) |
2025-05-07 10:29:38 +0200 | <tomsmeding> | even if effectful, "collect all these chunks and concatenate them into a filename" feels more functional-style than "at every found chunk, enlarge the filename allocation and write a chunk there" |
2025-05-07 10:30:16 +0200 | <haskellbridge> | <sm> +1 for separating all the things that can be separated |
2025-05-07 10:31:18 +0200 | <haskellbridge> | <magic_rb> ill try to get a parser combinator into the codebase |
2025-05-07 10:33:20 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-05-07 10:33:50 +0200 | <haskellbridge> | <magic_rb> tomsmeding: i think "newtype PeekT p m a = PeekT (StateT p m a)" is sufficient, holds the pointer and returns a peeked result |
2025-05-07 10:34:00 +0200 | <haskellbridge> | <magic_rb> is there a reason why not to base it on StateT? |
2025-05-07 10:34:36 +0200 | <tomsmeding> | in a parser monad you usually not only have state, but also error handling (an ExceptT effect) and some kind of backtracking support |
2025-05-07 10:34:40 +0200 | <tomsmeding> | I'm not sure if you need those here |
2025-05-07 10:34:56 +0200 | <haskellbridge> | <magic_rb> dont think so |
2025-05-07 10:35:22 +0200 | <tomsmeding> | e.g. in flatparse, the basic result of the function inside the monad is https://hackage.haskell.org/package/flatparse-0.5.2.1/docs/FlatParse-Basic.html#t:ResI-35- |
2025-05-07 10:35:38 +0200 | <tomsmeding> | which is "success, here is the new state (Addr#)", or "failure, backtrack", or "fatal failure, error" |
2025-05-07 10:35:52 +0200 | <tomsmeding> | by using just StateT you're skipping the 2nd and 3rd options |
2025-05-07 10:36:07 +0200 | <tomsmeding> | but it might be okay for your purposes! |
2025-05-07 10:36:55 +0200 | <haskellbridge> | <magic_rb> think it sholud be fine? |
2025-05-07 10:37:09 +0200 | <haskellbridge> | <magic_rb> ill have to if it instead of a Alternative instance |
2025-05-07 10:37:15 +0200 | <tomsmeding> | peek :: (Storable a, Monad m) => PeekT (Ptr ()) m a; skip :: Monad m => Int -> PeekT (Ptr ()) m () |
2025-05-07 10:37:27 +0200 | <tomsmeding> | right |
2025-05-07 10:37:48 +0200 | <tomsmeding> | (I suspect you'll want to hard-code that p to Ptr ()) |
2025-05-07 10:38:20 +0200 | <haskellbridge> | <magic_rb> yeah i have it as Ptr () |
2025-05-07 10:39:07 +0200 | <tomsmeding> | this parser combinator approach may fail if you need to read a value towards the end of a structure and based on that decide how to parse the start of that structure |
2025-05-07 10:39:16 +0200 | <tomsmeding> | because the assumption is that you proceed forward during parsing, not backward |
2025-05-07 10:39:34 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 272 seconds) |
2025-05-07 10:39:37 +0200 | <tomsmeding> | though it's just peek/skip I'm not sure one can really call this "parser combinators" :p |
2025-05-07 10:39:43 +0200 | <tomsmeding> | just "useful helper functions" |
2025-05-07 10:39:51 +0200 | <tomsmeding> | which is largely what parser combinators are anyway |
2025-05-07 10:40:07 +0200 | <haskellbridge> | <magic_rb> yeah its very simple currently |
2025-05-07 10:40:19 +0200 | <tomsmeding> | simple is good |
2025-05-07 10:43:36 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 276 seconds) |
2025-05-07 10:43:55 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2025-05-07 10:44:47 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-05-07 10:47:47 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-07 10:58:29 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-07 10:59:28 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-05-07 10:59:38 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
2025-05-07 11:02:13 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2025-05-07 11:02:32 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-05-07 11:10:11 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-07 11:11:01 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 11:11:42 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) |
2025-05-07 11:12:07 +0200 | j1n37- | (~j1n37@user/j1n37) (Ping timeout: 276 seconds) |
2025-05-07 11:14:42 +0200 | lortabac | (~lortabac@2a0d:e487:53f:1bb4:a731:33f3:afa0:8130) |
2025-05-07 11:22:02 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2025-05-07 11:24:09 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2025-05-07 11:28:59 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-05-07 11:31:17 +0200 | sayurc | (~sayurc@169.150.203.34) (Quit: Konversation terminated!) |
2025-05-07 11:42:09 +0200 | ubert1 | (~Thunderbi@2a02:8109:ab8a:5a00:3fca:6e1e:2b37:f18d) ubert |
2025-05-07 11:43:07 +0200 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-05-07 11:44:27 +0200 | ubert1 | ubert |
2025-05-07 11:49:20 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2025-05-07 11:55:26 +0200 | lortabac | (~lortabac@2a0d:e487:53f:1bb4:a731:33f3:afa0:8130) (Ping timeout: 268 seconds) |
2025-05-07 12:07:24 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2025-05-07 12:07:26 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-07 12:08:02 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-05-07 12:12:20 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2025-05-07 12:13:24 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
2025-05-07 12:19:02 +0200 | rvalue- | rvalue |
2025-05-07 12:23:45 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-05-07 12:35:23 +0200 | mistivia | (~mistivia@user/mistivia) (Read error: Connection reset by peer) |
2025-05-07 12:39:31 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2025-05-07 12:40:08 +0200 | mistivia | (~mistivia@user/mistivia) mistivia |
2025-05-07 12:52:08 +0200 | <haskellbridge> | <magic_rb> tomsmeding: https://paste.tomsmeding.com/TCeWNqJV |
2025-05-07 12:52:13 +0200 | <haskellbridge> | <magic_rb> newest version which actually works |
2025-05-07 12:53:43 +0200 | <tomsmeding> | is there no unsafePackCString without finalizer? |
2025-05-07 12:54:08 +0200 | <haskellbridge> | <magic_rb> didnt see it |
2025-05-07 12:54:42 +0200 | <haskellbridge> | <magic_rb> oh there is |
2025-05-07 12:54:45 +0200 | <haskellbridge> | <magic_rb> its named weirdly |
2025-05-07 12:54:50 +0200 | <haskellbridge> | <magic_rb> unsafePackCStringLen |
2025-05-07 12:55:17 +0200 | <tomsmeding> | myself I would probably write that foldM_ loop like this: forM_ (zip chunks (scanl' (+) 0 (map snd chunks))) $ \((chunk, len), off) -> copyPtrToMutableByteArray ba off chunk len |
2025-05-07 12:55:20 +0200 | <tomsmeding> | with a newline after the `->` |
2025-05-07 12:55:36 +0200 | <tomsmeding> | but it already looks much nicer, well done |
2025-05-07 12:56:11 +0200 | <haskellbridge> | <magic_rb> thank you :) |
2025-05-07 12:56:18 +0200 | <tomsmeding> | what does savePtr do? |
2025-05-07 12:56:25 +0200 | <haskellbridge> | <magic_rb> saves and restores the ptr |
2025-05-07 12:56:32 +0200 | <tomsmeding> | restore read offset after you exit the block? |
2025-05-07 12:56:35 +0200 | <haskellbridge> | <magic_rb> after the inner action |
2025-05-07 12:56:35 +0200 | <tomsmeding> | right |
2025-05-07 12:56:36 +0200 | <haskellbridge> | <magic_rb> yeah |
2025-05-07 12:56:41 +0200 | <haskellbridge> | <magic_rb> it makes the math simpler |
2025-05-07 12:56:47 +0200 | <tomsmeding> | what is 'continue'? |
2025-05-07 12:56:56 +0200 | <tomsmeding> | oh the boolean |
2025-05-07 12:57:36 +0200 | <tomsmeding> | perhaps it's nicer to put early-exiting in the monad instead of using whileM |
2025-05-07 12:57:50 +0200 | <tomsmeding> | https://git.tomsmeding.com/yahb2/tree/src/ExitEarly.hs |
2025-05-07 12:57:56 +0200 | <tomsmeding> | (this is ContT with a different name) |
2025-05-07 12:58:45 +0200 | <tomsmeding> | perhaps it makes more sense to have a peekOffset instead of this repeated savePtr/skip/peek dance? |
2025-05-07 12:59:15 +0200 | <tomsmeding> | gets you further from standard parser combinators, but nobody says that you must adhere to the standard construction |
2025-05-07 13:00:02 +0200 | <tomsmeding> | and then I would rename the `peek` operation (which _does_ increment the read offset) to perhaps `readStorable` |
2025-05-07 13:00:10 +0200 | <tomsmeding> | reserving "peek" for "read but don't advance cursor" |
2025-05-07 13:01:46 +0200 | jespada | (~jespada@r179-25-194-114.dialup.adsl.anteldata.net.uy) jespada |
2025-05-07 13:02:01 +0200 | <tomsmeding> | what does the argument to peekPtr do? |
2025-05-07 13:02:15 +0200 | <tomsmeding> | if it just returns a Ptr that you separately record the length for anyway |
2025-05-07 13:02:44 +0200 | <tomsmeding> | magic_rb: note that Ptr is Storable |
2025-05-07 13:02:57 +0200 | <tomsmeding> | oh ignore that, you're not reading pointers here |
2025-05-07 13:03:48 +0200 | <tomsmeding> | and filenameLength does not need to be tracked explicitly, it can be computed by buildFilename |
2025-05-07 13:04:15 +0200 | <tomsmeding> | (it's the final result of the scanl' in my code that I discard) |
2025-05-07 13:08:16 +0200 | euleritian | (~euleritia@77.23.248.100) (Remote host closed the connection) |
2025-05-07 13:08:30 +0200 | euleritian | (~euleritia@77.23.248.100) |
2025-05-07 13:10:33 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
2025-05-07 13:10:56 +0200 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2025-05-07 13:13:52 +0200 | <haskellbridge> | <magic_rb> i track it separetely so im not traversing the list twice |
2025-05-07 13:14:42 +0200 | <haskellbridge> | <magic_rb> yeah getPtr is just to fetch the current ptr value since i need to store it for later |
2025-05-07 13:15:10 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b221:6d86:16ab:9b95) |
2025-05-07 13:17:28 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 268 seconds) |
2025-05-07 13:20:57 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp |
2025-05-07 13:22:12 +0200 | <haskellbridge> | <magic_rb> hm, i dont think i can lift PeekT through ContT |
2025-05-07 13:22:15 +0200 | <haskellbridge> | <magic_rb> or at least i dont know how |
2025-05-07 13:22:24 +0200 | <haskellbridge> | <magic_rb> i think for now this is good enough |
2025-05-07 13:22:37 +0200 | <haskellbridge> | <magic_rb> ive never used ContT so trying to shove it in will probably only confuse me more |
2025-05-07 13:24:26 +0200 | <tomsmeding> | magic_rb: you can steal my ExitEarly |
2025-05-07 13:24:36 +0200 | <tomsmeding> | it's contained, if you use it you don't need to be aware that it's ContT |
2025-05-07 13:24:42 +0200 | <tomsmeding> | it's MonadTrans too |
2025-05-07 13:26:05 +0200 | <haskellbridge> | <magic_rb> Okay ill borrow then |
2025-05-07 13:26:11 +0200 | <haskellbridge> | <magic_rb> Will have to credit you in the thesis :P |
2025-05-07 13:26:15 +0200 | <tomsmeding> | :p |
2025-05-07 13:26:22 +0200 | <tomsmeding> | no need for this |
2025-05-07 13:26:30 +0200 | <tomsmeding> | but if you like, sure :) |
2025-05-07 13:26:47 +0200 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
2025-05-07 13:29:16 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-07 13:36:24 +0200 | <haskellbridge> | <magic_rb> tomsmeding how do i lift savePtr throught it? https://paste.tomsmeding.com/hHHHNSfn |
2025-05-07 13:36:28 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f51a913f462df63336d.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-05-07 13:40:05 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f51b866ab59d2d5f2bd.dip0.t-ipconnect.de) acidjnk |
2025-05-07 13:42:36 +0200 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-05-07 13:44:00 +0200 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 260 seconds) |
2025-05-07 13:50:51 +0200 | <dminuoso> | maerwald: So you mentioned FRP. Do you mean FRP in the Conal Elliot sense? |
2025-05-07 13:51:04 +0200 | <haskellbridge> | <maerwald> frp-reflex |
2025-05-07 13:53:58 +0200 | Square2 | (~Square4@user/square) Square |
2025-05-07 13:54:01 +0200 | <dminuoso> | Have not used it, and at $work it would be a bad fit for a bunch of reasons. |
2025-05-07 13:54:48 +0200 | <dminuoso> | Tools are often used because they fit organizational structure and experience, FRP is just not that for us. |
2025-05-07 13:58:20 +0200 | <tomsmeding> | magic_rb: you likely want `ExitEarlyT r Peek r` as your type |
2025-05-07 13:58:39 +0200 | <tomsmeding> | where Peek is a monad that implements MonadPeek |
2025-05-07 13:59:25 +0200 | <tomsmeding> | then you can implement MonadPeek for `ExitEarlyT r Peek` by just using `lift` from MonadTrans, which ExitEarlyT implements |
2025-05-07 14:01:24 +0200 | <tomsmeding> | in `ExitEarlyT r m a`, `a` is the result of this particular small computation, `m` is the monad that it all runs in, and `r` is the return type of the top-level computation that you "exit early" to |
2025-05-07 14:01:30 +0200 | fp | (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 260 seconds) |
2025-05-07 14:01:42 +0200 | <tomsmeding> | hence `exitEarly :: Monad m => r -> ExitEarlyT r m a` |
2025-05-07 14:02:02 +0200 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder |
2025-05-07 14:03:02 +0200 | <haskellbridge> | <magic_rb> you lost me, whre do i want "ExitEarlyT r Peek r" |
2025-05-07 14:03:45 +0200 | <tomsmeding> | that was a typo I guess, I meant "ExitEarlyT r Peek a" |
2025-05-07 14:04:03 +0200 | <haskellbridge> | <magic_rb> "MonadPeek (ExitEarlyT r (PeekT m))" this? |
2025-05-07 14:04:04 +0200 | <tomsmeding> | at the start of your function you'd `execExitEarlyT` |
2025-05-07 14:04:10 +0200 | <tomsmeding> | yes |
2025-05-07 14:04:30 +0200 | <tomsmeding> | that should be implementable using `lift` |
2025-05-07 14:04:44 +0200 | <tomsmeding> | :t Control.Monad.Trans.Class.lift |
2025-05-07 14:04:45 +0200 | <lambdabot> | (MonadTrans t, Monad m) => m a -> t m a |
2025-05-07 14:04:53 +0200 | <tomsmeding> | t ~ ExitEarlyT r |
2025-05-07 14:05:19 +0200 | <haskellbridge> | <magic_rb> but i need to go the other way |
2025-05-07 14:05:29 +0200 | <tomsmeding> | where? |
2025-05-07 14:05:43 +0200 | <haskellbridge> | <magic_rb> "savePtr :: m a -> m a" |
2025-05-07 14:05:45 +0200 | <haskellbridge> | <magic_rb> when lifting that |
2025-05-07 14:05:56 +0200 | <tomsmeding> | oh I see |
2025-05-07 14:05:57 +0200 | <haskellbridge> | <magic_rb> " savePtr act = lift $ savePtr act" |
2025-05-07 14:06:19 +0200 | <tomsmeding> | heh |
2025-05-07 14:06:31 +0200 | <haskellbridge> | <magic_rb> https://paste.tomsmeding.com/5Gulp26p i solved in StateT kinda |
2025-05-07 14:06:49 +0200 | <haskellbridge> | <magic_rb> this is unlifting right? |
2025-05-07 14:08:45 +0200 | <haskellbridge> | <magic_rb> if i had "ExitEarlyT r m a -> m (Either r a)" then i can do it, thats where i got stuck |
2025-05-07 14:14:49 +0200 | <tomsmeding> | meh, I don't know how to solve this nicely |
2025-05-07 14:15:22 +0200 | <tomsmeding> | oh, let me try |
2025-05-07 14:15:32 +0200 | <dminuoso> | maerwald: Why did you ask about frp by the way? |
2025-05-07 14:15:57 +0200 | <haskellbridge> | <maerwald> I'm just being random |
2025-05-07 14:19:41 +0200 | <tomsmeding> | magic_rb: I think you're right, lifting savePtr as-is is hard if not impossible |
2025-05-07 14:19:48 +0200 | <tomsmeding> | without knowledge of the underlying monad |
2025-05-07 14:20:01 +0200 | <tomsmeding> | you're using knowledge of the underlying monad (StateT) to solve it |
2025-05-07 14:20:07 +0200 | <haskellbridge> | <magic_rb> indeed |
2025-05-07 14:20:25 +0200 | <haskellbridge> | <magic_rb> im gonna stick to my whileM :P |
2025-05-07 14:20:57 +0200 | <tomsmeding> | sure :p |
2025-05-07 14:23:37 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2025-05-07 14:23:42 +0200 | Co0kie | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-05-07 14:25:25 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds) |
2025-05-07 14:26:16 +0200 | __monty__ | (~toonn@user/toonn) (Ping timeout: 252 seconds) |
2025-05-07 14:27:51 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-05-07 14:28:18 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-05-07 14:30:00 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-05-07 14:33:03 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b221:6d86:16ab:9b95) (Ping timeout: 276 seconds) |
2025-05-07 14:36:11 +0200 | xff0x | (~xff0x@2405:6580:b080:900:c380:f27a:d8a3:29c7) |
2025-05-07 14:37:03 +0200 | Co0kie | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds) |
2025-05-07 14:48:16 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) |
2025-05-07 14:48:17 +0200 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
2025-05-07 14:48:31 +0200 | Pozyomka | (~pyon@user/pyon) pyon |
2025-05-07 14:59:59 +0200 | euleritian | (~euleritia@77.23.248.100) (Ping timeout: 252 seconds) |
2025-05-07 15:00:27 +0200 | ystael | (~ystael@user/ystael) ystael |
2025-05-07 15:01:30 +0200 | euleritian | (~euleritia@dynamic-176-006-142-050.176.6.pool.telefonica.de) |
2025-05-07 15:09:16 +0200 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
2025-05-07 15:21:22 +0200 | <haskellbridge> | <hellwolf> I have a thought about "simple Haskell". |
2025-05-07 15:21:22 +0200 | <haskellbridge> | Would there be any similarity in asking people to speak "simple English", since most of the communication can go by with it? |
2025-05-07 15:21:32 +0200 | <haskellbridge> | <hellwolf> (hope it's on topic) |
2025-05-07 15:22:35 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2025-05-07 15:26:00 +0200 | <haskellbridge> | <magic_rb> In a way yes, good analogy |
2025-05-07 15:29:32 +0200 | <haskellbridge> | <hellwolf> On the same line, maybe we should treat new Haskellers as either language tourists or language immigrants |
2025-05-07 15:29:51 +0200 | <haskellbridge> | <hellwolf> Speaking simple Haskell with them has its advantages |
2025-05-07 15:30:24 +0200 | <haskellbridge> | <hellwolf> but it would be bizarre to ask English people to apeak Simple English in all occasions too. It's part of the culture. |
2025-05-07 15:31:06 +0200 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
2025-05-07 15:35:43 +0200 | <haskellbridge> | <terrorjack> then what does "dependent English" looks like, i wonder |
2025-05-07 15:40:14 +0200 | <haskellbridge> | <magic_rb> There have been cases of natural languages being simplified though. Cant recall one of the top of my head, but it has happened |
2025-05-07 15:40:36 +0200 | <haskellbridge> | <magic_rb> There are also cases of languages which should be simplified _looks at german_ |
2025-05-07 15:42:50 +0200 | lortabac | (~lortabac@2a0d:e487:134e:dfc4:bc9e:f34c:f24f:a0e7) lortabac |
2025-05-07 15:44:21 +0200 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
2025-05-07 15:44:42 +0200 | <hellwolf> | So, german is C++? |
2025-05-07 15:45:33 +0200 | <hellwolf> | dependent English: "dependent English" is speaking with footnotes |
2025-05-07 15:45:40 +0200 | <hellwolf> | in speeches |
2025-05-07 15:47:54 +0200 | <hellwolf> | every definitions must be brought with each sentences. |
2025-05-07 15:48:39 +0200 | <hellwolf> | or, less tongue-in-cheak, speaking like lawyers |
2025-05-07 15:48:49 +0200 | <hellwolf> | hmm, maybe not, speaking like philosophers? |
2025-05-07 15:49:02 +0200 | <hellwolf> | anyways, probably going too far with this analogy |
2025-05-07 16:00:21 +0200 | hsw_ | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Quit: Leaving) |
2025-05-07 16:00:37 +0200 | hsw | (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) hsw |
2025-05-07 16:03:28 +0200 | <mauke> | <magic_rb> There have been cases of natural languages being simplified though. <- English |
2025-05-07 16:03:47 +0200 | <mauke> | almost completely lost its declensions, conjugations, and grammatical genders |
2025-05-07 16:04:02 +0200 | <haskellbridge> | <magic_rb> yeah i said there have been cases |
2025-05-07 16:04:13 +0200 | <haskellbridge> | <magic_rb> i just took a stab at german for being needlessly complex |
2025-05-07 16:07:58 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
2025-05-07 16:10:47 +0200 | comerijn | (~merijn@77.242.116.146) merijn |
2025-05-07 16:13:09 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-05-07 16:18:22 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-05-07 16:24:22 +0200 | internatetional | (~nate@2400:9800:3d0:ab1:1:0:be80:9a74) internatetional |
2025-05-07 16:25:43 +0200 | euleritian | (~euleritia@dynamic-176-006-142-050.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-05-07 16:25:46 +0200 | <haskellbridge> | <maerwald> Yeah, useless to learn if it's not your native lang |
2025-05-07 16:27:01 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
2025-05-07 16:29:21 +0200 | Square2 | (~Square4@user/square) (Remote host closed the connection) |
2025-05-07 16:43:44 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-07 16:44:15 +0200 | lortabac | (~lortabac@2a0d:e487:134e:dfc4:bc9e:f34c:f24f:a0e7) (Ping timeout: 265 seconds) |
2025-05-07 16:50:27 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2025-05-07 16:50:44 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-07 16:51:32 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Remote host closed the connection) |
2025-05-07 16:53:59 +0200 | <haskellbridge> | <magic_rb> Eh, i wouldnt say useless, I regret ignoring german class in high school |
2025-05-07 16:54:28 +0200 | <haskellbridge> | <magic_rb> I moved to the NL, dutch is close enough. And germany is a big country, knowing the language helps with jobs and general socialization |
2025-05-07 16:55:19 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-05-07 17:00:32 +0200 | tromp | (~textual@2001:1c00:3487:1b00:d43:3b62:1503:cb84) |
2025-05-07 17:37:41 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-05-07 17:38:54 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds) |
2025-05-07 17:42:29 +0200 | pabs3 | (~pabs3@user/pabs3) (Ping timeout: 245 seconds) |
2025-05-07 17:45:41 +0200 | pabs3 | (~pabs3@user/pabs3) pabs3 |
2025-05-07 17:50:49 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 245 seconds) |
2025-05-07 17:50:54 +0200 | jespada | (~jespada@r179-25-194-114.dialup.adsl.anteldata.net.uy) (Read error: Connection reset by peer) |
2025-05-07 17:52:40 +0200 | jespada | (~jespada@179.26.249.126) jespada |
2025-05-07 17:55:49 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2025-05-07 17:56:08 +0200 | euleritian | (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
2025-05-07 18:02:25 +0200 | sajenim | (~sajenim@user/sajenim) (Ping timeout: 260 seconds) |
2025-05-07 18:03:40 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
2025-05-07 18:14:21 +0200 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2025-05-07 18:15:46 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |