| 2026-04-06 00:02:18 +0000 | Jackneill | (~Jackneill@2A001110011A2F6C2EAC817956BEEA38.mobile.pool.telekom.hu) |
| 2026-04-06 00:06:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 00:08:21 +0000 | Jackneill | (~Jackneill@2A001110011A2F6C2EAC817956BEEA38.mobile.pool.telekom.hu) (Remote host closed the connection) |
| 2026-04-06 00:11:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 00:12:04 +0000 | Square | (~Square@user/square) (Ping timeout: 244 seconds) |
| 2026-04-06 00:12:15 +0000 | yin | (~zero@user/zero) (Ping timeout: 265 seconds) |
| 2026-04-06 00:13:52 +0000 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds) |
| 2026-04-06 00:15:19 +0000 | Tuplanolla | (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2026-04-06 00:20:39 +0000 | craunts795335385 | (~craunts@152.32.99.2) |
| 2026-04-06 00:22:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 00:29:04 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) myxokephale |
| 2026-04-06 00:29:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 00:30:58 +0000 | yin | (~zero@user/zero) zero |
| 2026-04-06 00:36:25 +0000 | xff0x | (~xff0x@2405:6580:b080:900:57f:7a23:16bf:5911) (Ping timeout: 248 seconds) |
| 2026-04-06 00:40:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 00:45:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 00:56:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 01:01:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-06 01:07:57 +0000 | arandombit | (~arandombi@user/arandombit) (Remote host closed the connection) |
| 2026-04-06 01:11:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 01:17:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 01:25:25 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-04-06 01:25:25 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-04-06 01:25:25 +0000 | haritz | (~hrtz@user/haritz) haritz |
| 2026-04-06 01:27:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 01:31:18 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-06 01:32:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-06 01:34:41 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-04-06 01:34:58 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) |
| 2026-04-06 01:39:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 01:44:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 01:55:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 02:00:34 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-04-06 02:01:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-06 02:12:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 02:12:56 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-06 02:14:02 +0000 | notzmv | (~umar@user/notzmv) notzmv |
| 2026-04-06 02:19:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-06 02:21:32 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 268 seconds) |
| 2026-04-06 02:30:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 02:30:56 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-06 02:34:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 02:45:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 02:46:57 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 2026-04-06 02:56:23 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-04-06 03:11:29 +0000 | notzmv | (~umar@user/notzmv) (Ping timeout: 268 seconds) |
| 2026-04-06 03:18:28 +0000 | rekahsoft | (~rekahsoft@76.67.111.168) (Remote host closed the connection) |
| 2026-04-06 03:22:47 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-06 03:32:50 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-04-06 03:39:59 +0000 | somemathguy | (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 2026-04-06 03:48:27 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: bbml) |
| 2026-04-06 03:54:45 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds) |
| 2026-04-06 03:54:55 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-04-06 04:05:42 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-04-06 04:29:30 +0000 | Googulator55 | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) |
| 2026-04-06 04:29:35 +0000 | Googulator | (~Googulato@2a01-036d-0106-496b-154a-c7fc-9f43-bd2d.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-04-06 04:30:20 +0000 | Googulator55 | Googulator |
| 2026-04-06 04:43:21 +0000 | danso_o | (~danso@user/danso) (Quit: quittin time) |
| 2026-04-06 04:45:55 +0000 | danso | (~danso@user/danso) danso |
| 2026-04-06 04:56:56 +0000 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 268 seconds) |
| 2026-04-06 04:57:16 +0000 | haritz | (~hrtz@user/haritz) (Ping timeout: 244 seconds) |
| 2026-04-06 04:57:39 +0000 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2026-04-06 04:57:42 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-04-06 04:57:42 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-04-06 04:57:42 +0000 | haritz | (~hrtz@user/haritz) haritz |
| 2026-04-06 05:11:15 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-04-06 05:16:16 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 265 seconds) |
| 2026-04-06 05:17:58 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-06 05:20:00 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:14d5:f3ab:108b:4dd9) (Read error: Connection reset by peer) |
| 2026-04-06 05:20:30 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:75ab:7cb0:db12:1e18) synchromesh |
| 2026-04-06 05:26:15 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 255 seconds) |
| 2026-04-06 05:43:50 +0000 | traxex | (traxex@user/traxex) (Ping timeout: 256 seconds) |
| 2026-04-06 05:53:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 06:04:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 06:09:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-06 06:10:44 +0000 | dumbass808 | (~dumbass80@user/dumbass808) dumbass808 |
| 2026-04-06 06:15:31 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-04-06 06:19:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 06:25:05 +0000 | arkeet | (arkeet@moriya.ca) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-04-06 06:25:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 06:26:52 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-06 06:27:15 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-06 06:27:21 +0000 | arkeet | (arkeet@moriya.ca) |
| 2026-04-06 06:31:18 +0000 | tromp | (~textual@2001:1c00:340e:2700:795f:6a6f:7cb5:ecd6) |
| 2026-04-06 06:35:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 06:39:46 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2026-04-06 06:41:45 +0000 | califax | (~califax@user/califx) califx |
| 2026-04-06 06:45:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-06 06:48:06 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds) |
| 2026-04-06 06:52:00 +0000 | dumbass808 | (~dumbass80@user/dumbass808) (K-Lined) |
| 2026-04-06 06:56:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 07:03:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 07:08:57 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-04-06 07:09:38 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-06 07:11:56 +0000 | Pozyomka | (~pyon@user/pyon) (Client Quit) |
| 2026-04-06 07:12:44 +0000 | <gentauro> | monochrom: «Maybe after AI hype, only rich people still know how to think? >:)» DING DING DING, and we have a winner ;) |
| 2026-04-06 07:14:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 07:14:32 +0000 | <gentauro> | if you HAVE to use these "parrots", opt for the ones that are "local first" (no leaking of IP nor private data) such as https://prismml.com/ and https://www.forbes.com/sites/jonmarkman/2026/04/02/prismml-introduces-the-first-commercially-viabl… |
| 2026-04-06 07:16:48 +0000 | gentauro | and ensure to use "agentic" tools that don't leak as well https://infosec.exchange/@k3ym0/116161635202253362 |
| 2026-04-06 07:19:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-04-06 07:24:10 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-04-06 07:30:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 07:34:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-06 07:41:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 07:46:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-06 07:55:38 +0000 | tromp | (~textual@2001:1c00:340e:2700:795f:6a6f:7cb5:ecd6) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-06 07:56:02 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2026-04-06 07:56:51 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-04-06 07:57:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 07:57:41 +0000 | <haskellbridge> | <sm> thanks for the links |
| 2026-04-06 07:58:11 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-04-06 07:58:31 +0000 | <gentauro> | sm: u welcome :) |
| 2026-04-06 07:58:31 +0000 | rainbyte | (~rainbyte@181.47.219.3) (Read error: Connection reset by peer) |
| 2026-04-06 07:59:15 +0000 | <gentauro> | The PrismML peeps (CalTech prof + PhD's in Mathematics) seem like "the real deal" :o |
| 2026-04-06 08:00:10 +0000 | rainbyte | (~rainbyte@181.47.219.3) rainbyte |
| 2026-04-06 08:00:12 +0000 | <haskellbridge> | <sm> sounds impressive |
| 2026-04-06 08:00:52 +0000 | <haskellbridge> | <sm> do you think that fingerprinting toot applies to non-browser tools (claude code etc) ? |
| 2026-04-06 08:02:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-06 08:02:16 +0000 | <gentauro> | sm: yeah, they are the worst. Until recently, we had no clue what's was going on behind the scenes with claude |
| 2026-04-06 08:03:00 +0000 | <haskellbridge> | <sm> I should look check what Little Snitch is allowing from it |
| 2026-04-06 08:03:25 +0000 | <gentauro> | I guess with opencode and codex, you can at least see the source code. However, as soon as you add "skills" you are doomed |
| 2026-04-06 08:03:58 +0000 | <haskellbridge> | <sm> why's that ? Aren't skills just lazily-loaded custom prompts you define ? |
| 2026-04-06 08:06:00 +0000 | olivial | (~benjaminl@user/benjaminl) (Ping timeout: 246 seconds) |
| 2026-04-06 08:06:04 +0000 | <gentauro> | sm: yes, but they are dynamic (hello malware). I can highly recommend watching this talk from Mike Perry (the "TOR dude") from 39c3 (I was lucky to see it live in Hamborg): https://media.ccc.de/v/39c3-a-quick-stop-at-the-hostileshop |
| 2026-04-06 08:06:38 +0000 | gentauro | tl;dw he just shows how he can bypass OpenAI restricting policies by using diff text encodings. And there is nothing they can do about now, nor in the future |
| 2026-04-06 08:12:11 +0000 | <haskellbridge> | <sm> TIL about https://mistral.ai (french LLM, much less commercial surveillance) |
| 2026-04-06 08:12:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 08:13:19 +0000 | <haskellbridge> | <sm> ah, hello there merijn |
| 2026-04-06 08:15:24 +0000 | <gentauro> | Mistral? Is that the new startup from Yann Lecunn? |
| 2026-04-06 08:15:51 +0000 | <haskellbridge> | <sm> https://en.wikipedia.org/wiki/Mistral_AI |
| 2026-04-06 08:16:39 +0000 | olivial | (~benjaminl@user/benjaminl) benjaminl |
| 2026-04-06 08:17:23 +0000 | <gentauro> | sm: jaiks, the "investors" :| |
| 2026-04-06 08:17:34 +0000 | <gentauro> | why is the EU always sleeping? |
| 2026-04-06 08:18:15 +0000 | <haskellbridge> | <sm> they're tired from partying all night |
| 2026-04-06 08:18:17 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) |
| 2026-04-06 08:19:21 +0000 | <gentauro> | sm: this is me partying all night https://en.wikipedia.org/wiki/Le_Chat_(AI) <- "Excuse mua. Can you please serve me another le beer?" (I'm very good at french around 01:00 - 03:00 AM) |
| 2026-04-06 08:19:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 08:25:33 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) (Remote host closed the connection) |
| 2026-04-06 08:26:24 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) wickedjargon |
| 2026-04-06 08:31:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 08:31:41 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 2026-04-06 08:31:56 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-06 08:33:25 +0000 | Tuplanolla | (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) Tuplanolla |
| 2026-04-06 08:37:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-06 08:38:07 +0000 | Guest62 | (~Guest62@p200300ca8f13d0000071be933609493f.dip0.t-ipconnect.de) |
| 2026-04-06 08:42:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 08:47:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-06 08:54:42 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-06 08:58:22 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-06 08:58:44 +0000 | mud | (~mud@user/kadoban) (Read error: Connection reset by peer) |
| 2026-04-06 08:58:49 +0000 | tolt | (~weechat-h@li219-154.members.linode.com) (Ping timeout: 248 seconds) |
| 2026-04-06 08:59:03 +0000 | mud | (~mud@user/kadoban) kadoban |
| 2026-04-06 08:59:15 +0000 | tolt | (~weechat-h@li219-154.members.linode.com) tolt |
| 2026-04-06 09:00:25 +0000 | pavonia | (~user@user/siracusa) (Ping timeout: 248 seconds) |
| 2026-04-06 09:00:55 +0000 | pavonia | (~user@user/siracusa) siracusa |
| 2026-04-06 09:02:10 +0000 | z-b | (jobnbg@bot.kapsi.fi) (Ping timeout: 256 seconds) |
| 2026-04-06 09:03:19 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 276 seconds) |
| 2026-04-06 09:05:13 +0000 | haskellbridge | (~hackager@96.28.224.214) (Ping timeout: 248 seconds) |
| 2026-04-06 09:05:20 +0000 | socksbuny | (~socks@oberon.raccoon.fun) (Ping timeout: 252 seconds) |
| 2026-04-06 09:05:46 +0000 | Hecate | (~mariposa@user/hecate) (Read error: Connection reset by peer) |
| 2026-04-06 09:06:01 +0000 | socksbuny | (~socks@oberon.raccoon.fun) raccoonasdf |
| 2026-04-06 09:06:15 +0000 | haskellbridge | (~hackager@96.28.224.214) hackager |
| 2026-04-06 09:06:15 +0000 | ChanServ | +v haskellbridge |
| 2026-04-06 09:06:39 +0000 | Hecate | (~mariposa@user/hecate) Hecate |
| 2026-04-06 09:07:16 +0000 | tdammers | (~tdammers@1-133-178-143.ftth.glasoperator.nl) (Ping timeout: 256 seconds) |
| 2026-04-06 09:07:20 +0000 | zb | (jobnbg@bot.kapsi.fi) zb |
| 2026-04-06 09:07:40 +0000 | tdammers | (~tdammers@1-133-178-143.ftth.glasoperator.nl) |
| 2026-04-06 09:13:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 09:19:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 09:27:05 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-06 09:27:30 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-06 09:28:23 +0000 | <TMA> | gentauro: I attribute some of the EU sleepiness to the finality of failure. If you start a business in EU and fail, you are forever a "bancrotee". It is not a "business experience" but "business ineptitude". And then there is the chance that the state will just nationalize your business. |
| 2026-04-06 09:29:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 09:31:07 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:75ab:7cb0:db12:1e18) (Read error: Connection reset by peer) |
| 2026-04-06 09:32:19 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:75ab:7cb0:db12:1e18) synchromesh |
| 2026-04-06 09:33:11 +0000 | <TMA> | if Donald Trump was an European, he would never recover from his first bankruptcy. Having six of them and still be considered successful by some is inconceivable |
| 2026-04-06 09:33:25 +0000 | <gentauro> | TMA: where do you live in the EU? At least in Denmark, they try as much as possible to "get rid" of public institutions (privatization). However, from time to time, when a (needed) business go wacko, they just "buy it back" (it's us who pay taxes that do it) -> https://fm.dk/nyheder/nyhedsarkiv/2025/september/statens-koeb-af-koebenhavns-lufthavne-as-er-nu-ge… (run through Google Translate) |
| 2026-04-06 09:33:48 +0000 | gentauro | I mean, CPH can NOT live without an international airport, so I guess it's okay'ish |
| 2026-04-06 09:35:25 +0000 | <gentauro> | TMA: that is not correct. If you create a business, and you don't put up money to either create limited liability or joint stock companies, you are somehow asking for it yourself |
| 2026-04-06 09:35:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-06 09:35:51 +0000 | gentauro | with those companies, you are only liable for the amount of capital you inyected into them |
| 2026-04-06 09:36:16 +0000 | <gentauro> | maybe this is a topic for #haskell-offtop? |
| 2026-04-06 09:38:24 +0000 | <TMA> | gentauro: of course, you protect your other assets. But the effect I speak of is social. If "your" company went under, noone would do business with any company you are associated with, because of the stigma your person carries. And yes, it is an offtopic stuff. I'll STFU. |
| 2026-04-06 09:38:40 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) (Read error: Connection reset by peer) |
| 2026-04-06 09:38:56 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) wickedjargon |
| 2026-04-06 09:39:35 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-04-06 09:43:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 09:46:01 +0000 | <gentauro> | TMA: fair point. I don't think you should stop writing. I normally get called out myself with the off-topic when it's not Haskell related ;) (it's just informative) |
| 2026-04-06 09:46:31 +0000 | werneta_ | (~werneta@71.83.160.242) (Ping timeout: 264 seconds) |
| 2026-04-06 09:47:16 +0000 | werneta | (~werneta@71.83.160.242) werneta |
| 2026-04-06 09:48:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-06 09:49:27 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-04-06 09:53:50 +0000 | wickedjargon | (~user@2605:8d80:5430:634b:398a:72e0:e553:68f6) (Remote host closed the connection) |
| 2026-04-06 09:54:25 +0000 | <TMA> | gentauro: Duly noted. I get called out often enough to be rattled only if the person starting the offtopic flame does the calling while simultaneously pretending they were not involved and threatening flame participants. |
| 2026-04-06 09:58:17 +0000 | tromp | (~textual@2001:1c00:340e:2700:795f:6a6f:7cb5:ecd6) |
| 2026-04-06 09:59:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 10:04:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 10:06:30 +0000 | jessicara | (~shirogits@user/meow/jessicara) (Ping timeout: 268 seconds) |
| 2026-04-06 10:07:01 +0000 | traxex | (traxex@user/traxex) traxex |
| 2026-04-06 10:08:21 +0000 | CiaoSen | (~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2026-04-06 10:13:39 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-06 10:13:44 +0000 | Chai-T-Rex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-06 10:14:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 10:16:57 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 255 seconds) |
| 2026-04-06 10:21:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-06 10:26:26 +0000 | Pixi` | (~Pixi@user/pixi) Pixi |
| 2026-04-06 10:29:07 +0000 | Pixi | (~Pixi@user/pixi) (Ping timeout: 264 seconds) |
| 2026-04-06 10:29:16 +0000 | fp` | (~user@2001-14ba-6e24-3000--198.rev.dnainternet.fi) |
| 2026-04-06 10:32:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 10:33:05 +0000 | <fp`> | Hey, I tried to create my own implementation of putStr using foldl, but it only prints the last character of the string. Is this because the accumulator never changes value, so ghc optimizes to only run my function on the last value of the [Char]? |
| 2026-04-06 10:33:10 +0000 | <fp`> | putStr' str = foldl (\acc c -> putChar c) (return ()) str |
| 2026-04-06 10:34:04 +0000 | <ski> | you're not using `acc' |
| 2026-04-06 10:34:31 +0000 | <ski> | so you're discarding all `c's but the last one |
| 2026-04-06 10:34:44 +0000 | <ski> | you need to use `>>' (or `do'-notation) |
| 2026-04-06 10:34:51 +0000 | <ski> | (or `>>=') |
| 2026-04-06 10:35:33 +0000 | <ski> | however, i would suggest using `foldr' (or `foldM', perhaps) |
| 2026-04-06 10:36:15 +0000 | <ski> | fp` : perhaps i could show an example, to make you understand what happens, above |
| 2026-04-06 10:36:39 +0000 | <ski> | putStr' ['a','b','c'] |
| 2026-04-06 10:36:54 +0000 | <ski> | = foldl (\acc c -> putChar c) (return ()) ['a','b','c'] |
| 2026-04-06 10:37:08 +0000 | <ski> | = foldl (\acc c -> putChar c) (putChar 'a') ['b','c'] |
| 2026-04-06 10:37:15 +0000 | <ski> | = foldl (\acc c -> putChar c) (putChar 'b') ['c'] |
| 2026-04-06 10:37:19 +0000 | <ski> | = foldl (\acc c -> putChar c) (putChar 'c') [] |
| 2026-04-06 10:37:26 +0000 | <ski> | = putChar 'c' |
| 2026-04-06 10:37:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-06 10:37:46 +0000 | <fp`> | Mm I see |
| 2026-04-06 10:37:53 +0000 | <ski> | and then, only at this point, when `foldl' returns, do we actually start to execute the IO-action : putChar 'c' |
| 2026-04-06 10:38:32 +0000 | <ski> | so, you need to combine `acc' with the `putChar' call |
| 2026-04-06 10:38:52 +0000 | <ski> | otherwise you're just throwing away the old value of the accumulator, each time |
| 2026-04-06 10:40:18 +0000 | <fp`> | Why isn't putChar 'a' evaluated? Is this due to some laziness in evaluation? |
| 2026-04-06 10:40:39 +0000 | <ski> | it is evaluated (at the end, after `foldl' returns). and after that, it is executed |
| 2026-04-06 10:42:20 +0000 | <ski> | (but `IO'-actions (in this case, the `putChar' call has type `IO ()') are of an abstract data type, can't really be printed, so i just left the evaluation trace above at showing the `putChar' call) |
| 2026-04-06 10:42:52 +0000 | <probie> | fp`: Because `putChar 'a'` doesn't do anything until it's "evaluated" in the IO monad |
| 2026-04-06 10:43:03 +0000 | <ski> | until it's *executed* |
| 2026-04-06 10:43:09 +0000 | <probie> | > [putChar 'a', putChar 'b', putChar 'c'] !! 1 |
| 2026-04-06 10:43:10 +0000 | <lambdabot> | <IO ()> |
| 2026-04-06 10:43:26 +0000 | <probie> | % [putChar 'a', putChar 'b', putChar 'c'] !! 1 |
| 2026-04-06 10:43:26 +0000 | <yahb2> | b |
| 2026-04-06 10:43:30 +0000 | <ski> | evaluation of `IO'-actions only determine *which* action to (later, if at all) to perform. it doesn't actually perform/execute/do the action |
| 2026-04-06 10:44:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 10:44:43 +0000 | <ski> | the only two ways to *execute* (not evaluate) an `IO'-action is to (a) make it the value of `main' (or a part of that value); or (b) enter it into the interactor (like e.g. GHCi, or in this case the yahb2 bot) |
| 2026-04-06 10:48:08 +0000 | <fp`> | Mm so the way to make this folding impl of putStr would be to produce a queue of IO actions |
| 2026-04-06 10:48:19 +0000 | <ski> | (of course, only if your `IO'-action is a part of a branch of execution that's activated in `main' will it be executed) |
| 2026-04-06 10:48:30 +0000 | <ski> | yes, basically |
| 2026-04-06 10:48:53 +0000 | <ski> | but that "queue" can just be a single, compound, `IO'-action, that contains all the `putChar' calls, in sequence |
| 2026-04-06 10:49:02 +0000 | <ski> | and the `>>' operator is good for this |
| 2026-04-06 10:49:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-06 10:49:15 +0000 | <ski> | % putChar 'a' >> putChar 'b' |
| 2026-04-06 10:49:15 +0000 | <yahb2> | ab |
| 2026-04-06 10:49:20 +0000 | <ski> | @type putChar 'a' >> putChar 'b' |
| 2026-04-06 10:49:21 +0000 | <lambdabot> | IO () |
| 2026-04-06 10:49:45 +0000 | <ski> | that is a single compound action, that performs those two sub-actions, in that order, when it is executed |
| 2026-04-06 10:50:01 +0000 | TimWolla | (~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye) |
| 2026-04-06 10:50:40 +0000 | <ski> | so, try combining your `putChar c' with the `acc' action (representing everything you're planning to do with all the previous `Char'acters you've seen, so far, in the list), combining them with the `>>' operator |
| 2026-04-06 10:50:51 +0000 | <ski> | you could also use `do', if you prefer |
| 2026-04-06 10:50:59 +0000 | <ski> | % do putChar 'a'; putChar 'b' |
| 2026-04-06 10:50:59 +0000 | <yahb2> | ab |
| 2026-04-06 10:56:48 +0000 | <fp`> | Ok yeah I was able to come up with this after perusing the docs of IO, so the lambda should be (\acc c -> acc >> putChar c) |
| 2026-04-06 10:57:40 +0000 | <fp`> | And I guess if I wanted to make putStrLn', I'd just initialize the acc to putChar '\n' |
| 2026-04-06 10:58:18 +0000 | TimWolla | (~timwolla@2a01:4f8:150:6153:beef::6667) TimWolla |
| 2026-04-06 10:59:03 +0000 | <ski> | yes, that's correct |
| 2026-04-06 10:59:11 +0000 | <ski> | now, try to use `foldr' rather than `foldl' |
| 2026-04-06 10:59:26 +0000 | <ski> | "I'd just initialize the acc to putChar '\n'" -- no |
| 2026-04-06 10:59:32 +0000 | <ski> | that would give you |
| 2026-04-06 10:59:51 +0000 | <ski> | putChar '\n' >> putChar 'a' >> putChar 'b' >> putChar 'c' |
| 2026-04-06 10:59:56 +0000 | <fp`> | Ah yeah |
| 2026-04-06 11:00:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-06 11:02:03 +0000 | <fp`> | But why foldr? My understanding is that one uses foldr for its laziness, which benefits for infinitely long lists, but surely people don't want to print infinitely long strings |
| 2026-04-06 11:02:31 +0000 | fun-safe-math | (~fun-safe-@97.115.234.213) () |
| 2026-04-06 11:02:40 +0000 | <ski> | using `foldr', you can do `putStr' in constant space. with `foldl', it's not constant space |
| 2026-04-06 11:03:39 +0000 | <ski> | this is because `foldr' can be incremental (depending on the callback you pass it), can return parts of the result, piecemeal, so that you can start executing sub-actions, before you've determined all the sub-actions |
| 2026-04-06 11:04:26 +0000 | <ski> | with `foldl', it *always* executes to the end (reaching the end of the list), before providing any result back to its caller. it's "bulky". so you can't start performing `IO'-sub-actions here, until you've seen the whole list |
| 2026-04-06 11:04:42 +0000 | fun-safe-math | (~fun-safe-@97.115.234.213) fun-safe-math |
| 2026-04-06 11:04:53 +0000 | <ski> | let's assume you defined |
| 2026-04-06 11:05:05 +0000 | <ski> | putStr' str = foldl (\acc c -> acc >> putChar c) (return ()) str |
| 2026-04-06 11:05:21 +0000 | <ski> | then the evaluation trace looks like |
| 2026-04-06 11:05:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-06 11:05:27 +0000 | <ski> | putStr' ['a','b','c'] |
| 2026-04-06 11:05:44 +0000 | <ski> | = foldl (\acc c -> acc >> putChar c) (return ()) ['a','b','c'] |
| 2026-04-06 11:05:54 +0000 | <ski> | = foldl (\acc c -> acc >> putChar c) (return () >> putChar 'a') ['b','c'] |
| 2026-04-06 11:06:02 +0000 | <ski> | = foldl (\acc c -> acc >> putChar c) (return () >> putChar 'a' >> putChar 'b') ['c'] |
| 2026-04-06 11:06:09 +0000 | <ski> | = foldl (\acc c -> acc >> putChar c) (return () >> putChar 'a' >> putChar 'b' >> putChar 'c') [] |
| 2026-04-06 11:06:15 +0000 | <ski> | = return () >> putChar 'a' >> putChar 'b' >> putChar 'c' |
| 2026-04-06 11:06:30 +0000 | <ski> | and only at this point can we start performing, executing, the `putChar' actions |
| 2026-04-06 11:07:02 +0000 | <ski> | so, you can see that the accumulator keeps growing, as `foldl' continues looping through the list, requiring more and more space to be allocated |
| 2026-04-06 11:09:03 +0000 | <gentauro> | ski: what's the name of the `>>` operator? https://hackage-content.haskell.org/package/base-4.22.0.0/docs/Prelude.html#v:-62--62- |
| 2026-04-06 11:09:08 +0000 | <ski> | "then" |
| 2026-04-06 11:09:12 +0000 | <gentauro> | (Y) |
| 2026-04-06 11:09:22 +0000 | <ski> | and `>>=' is "bind" |
| 2026-04-06 11:09:53 +0000 | <fp`> | But why would foldr be better? Since I'm iterating through the list backward, I can't even start thinking about IO actions until I know what the first thing to print is |
| 2026-04-06 11:10:20 +0000 | <ski> | if you define the `foldr' version, i can then explain why it's better here |
| 2026-04-06 11:10:41 +0000 | <ski> | (a direct recursion would also be fine) |