Logs on 2022-04-29 (liberachat/#haskell)
| 00:00:59 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:01:16 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 00:04:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 00:10:22 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer) |
| 00:10:46 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 00:19:08 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 00:20:00 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:22:19 | × | xaotuk quits (~sasha@2a06:5b00:15fe:9b00::2) (Ping timeout: 260 seconds) |
| 00:24:13 | → | xaotuk joins (~sasha@net162-32-245-109.mbb.telenor.rs) |
| 00:27:01 | → | abastro joins (~abab9579@220.75.216.63) |
| 00:29:12 | × | pwug quits (~pwug@user/pwug) (Quit: Leaving) |
| 00:29:44 | → | tommd joins (~tommd@97-120-41-123.ptld.qwest.net) |
| 00:30:41 | → | totbwf__ joins (sid402332@id-402332.uxbridge.irccloud.com) |
| 00:31:05 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
| 00:41:30 | → | eggplantade joins (~Eggplanta@108.201.191.115) |
| 00:45:59 | totbwf__ | is now known as totbwf |
| 00:57:24 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 00:58:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 00:58:51 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 00:59:44 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 01:01:34 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:02:13 | × | eggplantade quits (~Eggplanta@108.201.191.115) (Remote host closed the connection) |
| 01:02:27 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 01:03:06 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 01:07:26 | → | frost joins (~frost@user/frost) |
| 01:10:30 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:46 | → | eggplantade joins (~Eggplanta@108.201.191.115) |
| 01:16:37 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 00:00:00 | <parse error> | |
| 01:20:23 | × | mmhat quits (~mmh@55d4d51f.access.ecotel.net) (Ping timeout: 256 seconds) |
| 01:21:40 | → | jargon_ joins (~jargon@174-22-206-112.phnx.qwest.net) |
| 01:21:58 | × | Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection) |
| 01:22:12 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 01:22:17 | → | Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl) |
| 01:22:36 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 01:23:33 | × | jargon quits (~jargon@174-22-223-120.phnx.qwest.net) (Ping timeout: 276 seconds) |
| 01:23:51 | <abastro[m]> | Can anyone tell me why the second answer from https://stackoverflow.com/questions/14012603/how-to-implement-dijkstra-algorithm-in-haskell is SPFA not dijkstra? |
| 01:24:33 | → | xff0x_ joins (~xff0x@om126167099166.29.openmobile.ne.jp) |
| 01:26:15 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 01:32:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 01:32:42 | → | mmhat joins (~mmh@55d4d7fb.access.ecotel.net) |
| 01:34:57 | → | hololeap joins (~hololeap@user/hololeap) |
| 01:41:01 | × | lechner quits (lechner@debian/lechner) (Quit: WeeChat 3.5) |
| 01:42:08 | → | lechner joins (lechner@debian/lechner) |
| 01:43:03 | × | dcoutts_ quits (~duncan@host213-122-143-245.range213-122.btcentralplus.com) (Ping timeout: 276 seconds) |
| 01:43:07 | → | andrey__ joins (~andrey@p200300dbcf087900604788b0cc6ab984.dip0.t-ipconnect.de) |
| 01:45:51 | × | andrey_ quits (~andrey@p200300dbcf11ae00e8dd79092b2d901b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 01:56:11 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 01:56:29 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:56:29 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 01:56:29 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:56:55 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 02:02:39 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 02:05:09 | × | xaotuk quits (~sasha@net162-32-245-109.mbb.telenor.rs) (Ping timeout: 276 seconds) |
| 02:05:34 | → | leungbk joins (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) |
| 02:06:19 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 240 seconds) |
| 02:19:33 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:19:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:19:33 | finn_elija | is now known as FinnElija |
| 02:20:08 | → | gpncarl joins (~gpncarl@210.12.195.5) |
| 02:20:51 | × | gpncarl_ quits (~gpncarl@210.12.195.5) (Ping timeout: 260 seconds) |
| 02:26:52 | → | AlexNoo_ joins (~AlexNoo@178.34.160.71) |
| 02:29:03 | × | AlexZenon quits (~alzenon@94.233.241.106) (Ping timeout: 246 seconds) |
| 02:29:39 | × | Alex_test quits (~al_test@94.233.241.106) (Ping timeout: 240 seconds) |
| 02:30:50 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Ping timeout: 250 seconds) |
| 02:30:56 | × | AlexNoo quits (~AlexNoo@94.233.241.106) (Ping timeout: 272 seconds) |
| 02:32:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 02:33:04 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 02:33:57 | → | AlexZenon joins (~alzenon@178.34.160.71) |
| 02:34:07 | → | Alex_test joins (~al_test@178.34.160.71) |
| 02:34:37 | × | td_ quits (~td@muedsl-82-207-238-120.citykom.de) (Ping timeout: 256 seconds) |
| 02:36:04 | → | td_ joins (~td@muedsl-82-207-238-122.citykom.de) |
| 02:45:08 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
| 02:48:58 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 02:49:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 02:51:08 | → | tommd joins (~tommd@97-120-41-123.ptld.qwest.net) |
| 02:52:25 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 02:52:31 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 02:54:16 | → | oxide joins (~lambda@user/oxide) |
| 02:54:43 | × | mmhat quits (~mmh@55d4d7fb.access.ecotel.net) (Quit: WeeChat 3.5) |
| 02:57:05 | × | Techcable quits (~Techcable@user/Techcable) (Remote host closed the connection) |
| 02:57:32 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 272 seconds) |
| 02:58:18 | → | Techcable joins (~Techcable@user/Techcable) |
| 02:59:20 | → | Techcable_ joins (~Techcable@user/Techcable) |
| 03:03:39 | × | gpncarl quits (~gpncarl@210.12.195.5) (Ping timeout: 240 seconds) |
| 03:06:22 | × | leungbk quits (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) (Ping timeout: 250 seconds) |
| 03:06:57 | → | gpncarl joins (~gpncarl@210.12.195.5) |
| 03:12:26 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds) |
| 03:15:09 | → | leungbk joins (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) |
| 03:15:16 | × | abastro quits (~abab9579@220.75.216.63) (Ping timeout: 272 seconds) |
| 03:25:51 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:26:06 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 03:42:00 | × | gpncarl quits (~gpncarl@210.12.195.5) (Ping timeout: 276 seconds) |
| 03:42:26 | → | mebious404 joins (~mebious40@2804:14d:5c31:9869:7fe5:542d:50f:c775) |
| 03:44:15 | → | benin joins (~benin@183.82.204.110) |
| 03:49:20 | × | mebious404 quits (~mebious40@2804:14d:5c31:9869:7fe5:542d:50f:c775) (Quit: Leaving) |
| 03:50:14 | × | Techcable quits (~Techcable@user/Techcable) (Remote host closed the connection) |
| 03:50:14 | × | Techcable_ quits (~Techcable@user/Techcable) (Remote host closed the connection) |
| 03:51:37 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 04:00:14 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 272 seconds) |
| 04:00:34 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 04:05:59 | → | slaydr joins (~seriley@75.164.21.11) |
| 04:06:32 | × | slaydr quits (~seriley@75.164.21.11) (Client Quit) |
| 04:10:12 | × | Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Ping timeout: 246 seconds) |
| 04:13:13 | → | notzmv joins (~zmv@user/notzmv) |
| 04:15:14 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:18:30 | × | leungbk quits (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) (Read error: Connection reset by peer) |
| 04:19:32 | → | leungbk joins (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) |
| 04:21:09 | → | P1RATEZ joins (piratez@cpe98524ab27125-cm98524ab27123.cpe.net.cable.rogers.com) |
| 04:25:39 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 04:25:41 | × | tureba quits (~tureba@tureba.org) (Ping timeout: 256 seconds) |
| 04:26:25 | → | tureba joins (~tureba@tureba.org) |
| 04:28:56 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:29:09 | × | P1RATEZ quits (piratez@cpe98524ab27125-cm98524ab27123.cpe.net.cable.rogers.com) (Changing host) |
| 04:29:09 | → | P1RATEZ joins (piratez@user/p1ratez) |
| 04:29:54 | × | P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection) |
| 04:33:37 | × | zyklotomic quits (~ethan@res380d-128-61-87-30.res.gatech.edu) (Ping timeout: 256 seconds) |
| 04:35:01 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 04:35:40 | → | zyklotomic joins (~ethan@res380d-128-61-85-233.res.gatech.edu) |
| 04:37:57 | → | P1RATEZ joins (piratez@user/p1ratez) |
| 04:38:34 | jaamro | is now known as ormaaj |
| 04:43:45 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
| 04:43:59 | → | cynomys joins (~cynomys@user/cynomys) |
| 04:53:54 | × | xff0x_ quits (~xff0x@om126167099166.29.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 04:53:58 | → | redb joins (~nmh@136.49.49.211) |
| 04:56:05 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 04:58:30 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 05:01:04 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 05:03:22 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 05:05:25 | → | kmein joins (~weechat@user/kmein) |
| 05:07:45 | → | vicfred joins (~vicfred@user/vicfred) |
| 05:08:22 | → | redb joins (~nmh@136.49.49.211) |
| 05:10:10 | → | xff0x_ joins (~xff0x@om126167099166.29.openmobile.ne.jp) |
| 05:10:51 | → | michalz joins (~michalz@185.246.204.109) |
| 05:15:36 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 05:17:31 | → | Techcable joins (~Techcable@user/Techcable) |
| 05:20:36 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 05:22:47 | × | liz quits (~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal) |
| 05:23:34 | → | redb joins (~nmh@136.49.49.211) |
| 05:34:44 | → | gpncarl joins (~gpncarl@210.12.195.5) |
| 05:36:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:38:38 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:38:58 | × | jargon_ quits (~jargon@174-22-206-112.phnx.qwest.net) (Quit: Nini. ZZzz...) |
| 05:52:32 | <dsal> | abastro[m]: I'm too about to go to bed to read that, but I think it's just looking at the shortest path to the next node. dijkstra looks at the shortest total path on every step. |
| 05:57:49 | × | bliminse_ quits (~bliminse@host86-142-79-206.range86-142.btcentralplus.com) (Quit: leaving) |
| 05:59:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:03:42 | × | gpncarl quits (~gpncarl@210.12.195.5) (Ping timeout: 276 seconds) |
| 06:03:44 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 272 seconds) |
| 06:04:06 | → | bliminse joins (~bliminse@host86-142-79-206.range86-142.btcentralplus.com) |
| 06:04:28 | × | leungbk quits (~user@2603-8000-1201-2dd2-8941-f45a-8e9c-72d3.res6.spectrum.com) (Ping timeout: 250 seconds) |
| 06:05:00 | × | xff0x_ quits (~xff0x@om126167099166.29.openmobile.ne.jp) (Ping timeout: 272 seconds) |
| 06:06:28 | → | xff0x_ joins (~xff0x@om126167099166.29.openmobile.ne.jp) |
| 06:07:14 | → | searemind joins (~searemind@2401:4900:414e:bc55:cc66:ab49:6502:7de8) |
| 06:08:01 | × | searemind quits (~searemind@2401:4900:414e:bc55:cc66:ab49:6502:7de8) (Client Quit) |
| 06:10:45 | → | alp_ joins (~alp@user/alp) |
| 06:11:18 | <int-e> | abastro[m]: it's closer to Dijkstra than to SPFA, since it picks nodes in order of increasing distance... but the toBeVisited set can contain useless entries (the same node at different costs). |
| 06:17:10 | × | P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection) |
| 06:21:34 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:22:57 | → | img joins (~img@user/img) |
| 06:27:37 | → | gpncarl joins (~gpncarl@222.249.231.3) |
| 06:31:23 | → | gpncarl_ joins (~gpncarl@222.249.231.3) |
| 06:31:57 | × | gpncarl quits (~gpncarl@222.249.231.3) (Ping timeout: 246 seconds) |
| 06:32:22 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:32:32 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:34:05 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 06:36:39 | → | acidjnk joins (~acidjnk@p200300d0c73b4503f47d9d030ed656a8.dip0.t-ipconnect.de) |
| 06:37:49 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 06:38:01 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 06:42:49 | × | gpncarl_ quits (~gpncarl@222.249.231.3) (Ping timeout: 256 seconds) |
| 06:45:52 | → | gpncarl_ joins (~gpncarl@210.12.195.5) |
| 06:50:34 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Remote host closed the connection) |
| 06:51:33 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:55:03 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 246 seconds) |
| 06:58:57 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:11c6:ad8e:84a0:4c9d) |
| 07:03:11 | × | renzhi quits (~xp@2607:fa49:6500:b100::1d4a) (Ping timeout: 260 seconds) |
| 07:05:51 | → | ircbrowse_tom joins (~ircbrowse@2a01:4f8:1c1c:9319::1) |
| 07:05:53 | Server | sets mode +Cnt |
| 07:07:42 | → | chele joins (~chele@user/chele) |
| 07:08:00 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 07:09:33 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 07:09:46 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 07:14:23 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 260 seconds) |
| 07:19:45 | → | renzhi joins (~xp@2607:fa49:6500:b100::2dea) |
| 07:21:33 | <tomsmeding> | jackdk: indeed lol |
| 07:24:16 | → | MajorBiscuit joins (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) |
| 07:27:35 | × | hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 256 seconds) |
| 07:33:45 | <tomsmeding> | monochrom: see: the haskell weekly news came |
| 07:38:11 | → | Midjak joins (~Midjak@82.66.147.146) |
| 07:44:32 | → | vpan joins (~0@212.117.1.172) |
| 07:46:00 | <maerwald[m]> | tomsmeding: has the playground been covered there? |
| 07:46:00 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:46:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:47:47 | × | acidjnk quits (~acidjnk@p200300d0c73b4503f47d9d030ed656a8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 07:48:42 | <tomsmeding> | it hasn't |
| 07:48:56 | <tomsmeding> | monochrom was just wondering why there wasn't a newsletter yesterday yet |
| 07:50:20 | <maerwald[m]> | tomsmeding: and dis you ask haskell.org to host it? |
| 07:50:31 | <tomsmeding> | I didn't yet |
| 07:50:37 | <tomsmeding> | I guess I could |
| 07:50:47 | <tomsmeding> | I wanted to do the horizontal scaling thing first maybe |
| 07:51:00 | <tomsmeding> | started working on that and progressing nicely, should have more time this weekend |
| 07:51:23 | <maerwald[m]> | It should be a microservice yeah |
| 07:51:41 | <maerwald[m]> | Literally the only use case for that abomination |
| 07:51:51 | <tomsmeding> | lol yes |
| 07:52:01 | <tomsmeding> | the concept of a microservice is not _inherently_ bad |
| 07:52:11 | <tomsmeding> | just like OOP has a bunch of legitimate usecases |
| 07:52:39 | <tomsmeding> | it's just that there are also quite a lot of situations where it's maybe _not_ the most effective approach |
| 07:53:47 | <maerwald[m]> | If you've ever worked at a Go shop, you'll have microservice PTSD for the rest of your life |
| 07:54:22 | <maerwald[m]> | Make it cloudscale |
| 07:54:36 | → | acidjnk joins (~acidjnk@p200300d0c73b4503e5dce27061996713.dip0.t-ipconnect.de) |
| 07:55:04 | <tomsmeding> | not going to use mongodb, don't worry |
| 07:55:19 | <tomsmeding> | there's not even anything to put in there lol |
| 07:55:53 | <tomsmeding> | sqlite is looking at the pastebin traffic and saying "is this database usage?" |
| 07:56:16 | <maerwald[m]> | How mucs GB? |
| 07:56:50 | <tomsmeding> | maerwald[m]: https://tomsmeding.com/f/pastebin_plot/dbsize.png sorry for absence of data points, I messed up the monitoring when migrating to different server |
| 07:57:00 | <tomsmeding> | x axis is days since unix epoch, because who doesn't love interesting units |
| 07:57:22 | <tomsmeding> | like 0.005 gb |
| 07:57:52 | <tomsmeding> | this in contrast to my conduit matrix server that I'm running for personal usage only, that puts about 1MiB per second in the syslog |
| 08:02:31 | <maerwald[m]> | Why not AWS dynamoDB |
| 08:03:01 | <maerwald[m]> | Or let's use smart contracts for pastebin |
| 08:03:14 | <abastro[m]> | maerwald: Go shop O.o |
| 08:03:29 | <abastro[m]> | Lmao smart contracts for pastebinn |
| 08:03:29 | <maerwald[m]> | abastro: I was young and needed the money |
| 08:03:51 | <abastro[m]> | I need to do that as well! |
| 08:04:06 | <abastro[m]> | Wait. (Thankfully?) No go shops nearby |
| 08:04:17 | <abastro[m]> | Should do Java instead, rather |
| 08:04:29 | <abastro[m]> | And that admits less to microservices I think |
| 08:04:49 | <maerwald[m]> | Java has everything |
| 08:04:58 | <abastro[m]> | Oh noh |
| 08:05:00 | <abastro[m]> | Meh |
| 08:05:27 | <maerwald[m]> | E.g. better event sourcing than Haskell |
| 08:05:57 | <maerwald[m]> | Money solves your problems, not tech |
| 08:05:58 | <abastro[m]> | Hmm |
| 08:06:04 | <abastro[m]> | Event sourcing? |
| 08:06:42 | <abastro[m]> | Yea, Java now has history of all the money invested stacked as great return |
| 08:06:45 | <maerwald[m]> | abastro[m]: The next abomination right after microservices |
| 08:06:53 | <abastro[m]> | Wait lmao |
| 08:07:21 | → | zeenk joins (~zeenk@2a02:2f0e:7506:c001:7ef1:d76c:496:86d6) |
| 08:08:06 | <maerwald[m]> | Yeah, my life flashes before my eyes |
| 08:09:16 | <abastro[m]> | I thought you were talking about how it's rather workable |
| 08:09:44 | <abastro[m]> | Anyway I guess that's the price to pay to earn money |
| 08:10:17 | <maerwald[m]> | So what comes after microservices and event sourcing? Blockchain. |
| 08:11:00 | <maerwald[m]> | Maybe we could even partially evaluate haskell code via plutus |
| 08:11:53 | <abastro[m]> | Partially evaluate haskell code? |
| 08:12:05 | <maerwald[m]> | Don't listen to me |
| 08:12:13 | <abastro[m]> | Anyway I guess I could earn quick money through blockchain |
| 08:12:18 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Ping timeout: 250 seconds) |
| 08:12:47 | <abastro[m]> | To avoid direct guilt, just by getting hired by one such company |
| 08:13:17 | <maerwald[m]> | Well, there are some cool people working on it |
| 08:13:23 | <abastro[m]> | Bothersome and fruitless work for quick money |
| 08:13:35 | <abastro[m]> | "Cool" eeh |
| 08:14:12 | <maerwald[m]> | Who cares about the tech. I think it's more exciting to work with good engineers |
| 08:14:24 | <abastro[m]> | Hmm |
| 08:14:35 | <abastro[m]> | I mean quick money is more important |
| 08:15:08 | <maerwald[m]> | There's nothing quick about it |
| 08:15:29 | <abastro[m]> | True, but hm |
| 08:15:52 | <abastro[m]> | I think it pays better than some shit part-time jobs |
| 08:15:56 | <abastro[m]> | Like convenience store |
| 08:16:04 | → | ahammer joins (~ahammer@157.122.68.183) |
| 08:16:05 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 08:16:13 | <abastro[m]> | And that is also referred to as quick money so |
| 08:17:36 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:9de6:b0fb:57b3:5001) |
| 08:18:41 | × | asivitz quits (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:20:21 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:20:40 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 248 seconds) |
| 08:20:44 | <abastro[m]> | What kind of quick dirty job are there around |
| 08:20:51 | <lortabac> | re. event-sourcing, I've had some very good experiences |
| 08:21:33 | <lortabac> | and some bad experiences, especially when it was not the right use case |
| 08:21:47 | <abastro[m]> | Wow |
| 08:22:01 | <maerwald[m]> | lortabac: what is the right use case? |
| 08:23:40 | <lortabac> | there are some domains that are naturally event-based |
| 08:24:23 | <abastro[m]> | Is event-sourcing = event-driven |
| 08:24:30 | <lortabac> | by using a mutable DB you lose information, and run into various problems |
| 08:24:39 | × | ahammer quits (~ahammer@157.122.68.183) (Ping timeout: 246 seconds) |
| 08:24:39 | <lortabac> | abastro[m]: no, it's not the same thing |
| 08:24:53 | <abastro[m]> | Hm |
| 08:25:21 | <Hecate> | and not the same thing as event-storming :D |
| 08:25:24 | <lortabac> | event-sourcing refers to how you represent the data that you store, event-driven refers to the flow of messages in your system |
| 08:25:29 | <abastro[m]> | XD |
| 08:25:44 | <maerwald[m]> | lortabac: that's too vague to me |
| 08:25:55 | <abastro[m]> | Ah, storing events |
| 08:26:04 | <maerwald[m]> | I've used it in fintech and my opinion is that it's useless to most use cases even there |
| 08:26:04 | <abastro[m]> | But yea, vague |
| 08:26:38 | <maerwald[m]> | For it to be actually useful, you need to write a lot of tools from scratch |
| 08:26:50 | <maerwald[m]> | Otherwise the advantage is only theoretical |
| 08:27:05 | <maerwald[m]> | And most of the time you won't have time to develop those tools |
| 08:27:08 | <lortabac> | maerwald[m]: first of all you need to use a specialized database like EventStore |
| 08:27:27 | <lortabac> | event-sourcing on top of Postgres is masochism IMHO |
| 08:27:38 | <abastro[m]> | Money solves problem :tm: |
| 08:27:48 | <lortabac> | then yes, you need to implement various tools |
| 08:29:12 | <maerwald[m]> | lortabac: yeah and you'll solve all the problems SQL databases have solved from scratch |
| 08:29:12 | <abastro[m]> | If you need the tools, pay someone who has the tools |
| 08:29:16 | <maerwald[m]> | So 50% of your time is wasted on novelty tech |
| 08:29:16 | × | eggplantade quits (~Eggplanta@108.201.191.115) (Remote host closed the connection) |
| 08:29:16 | <maerwald[m]> | That has no business value in its own |
| 08:29:39 | <abastro[m]> | With money, they would have already patched those problems as well |
| 08:31:12 | <abastro[m]> | Like what would be problems of these EventSource DB compared to SQL, when they would have money to implement all the amenities |
| 08:31:18 | <lortabac> | maerwald[m]: I don't disagree with you, I'm just saying that I've worked on projects where event-sourcing was highly beneficial |
| 08:31:58 | <lortabac> | and we had the time and energy to build all the necessary tools |
| 08:32:30 | <abastro[m]> | Uhm wait |
| 08:32:30 | <abastro[m]> | You did not pay someone to build the tools? |
| 08:32:35 | <abastro[m]> | That certainly sounds wasteful |
| 08:32:54 | <lortabac> | abastro[m]: what's the difference between paying me or another person? |
| 08:32:59 | <maerwald[m]> | lortabac: it's a little like blockchain: huge technical challenges, but no one rally knows what business problem you're solving xD |
| 08:33:03 | <abastro[m]> | Unless employee pay is dirt cheap |
| 08:33:07 | → | ahammer joins (~ahammer@157.122.68.183) |
| 08:33:34 | × | ahammer quits (~ahammer@157.122.68.183) (Read error: Connection reset by peer) |
| 08:33:38 | <abastro[m]> | lortabac: you might be able to offload the boring work to low cost shops |
| 08:33:48 | <abastro[m]> | Outsourcing |
| 08:35:05 | <abastro[m]> | maerwald: At least blockchain is useful for money laundry |
| 08:35:28 | <abastro[m]> | And bypassing the govy |
| 08:35:30 | <abastro[m]> | Govt* |
| 08:35:35 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
| 08:35:43 | <maerwald[m]> | I remember one incident where event sourcing could have been useful, but the event log was so noisy and the tooling years behind that it didn't really help. And since it was one incident, the business decision was to not spend 1 year to improve the tooling, but work on features instead |
| 08:36:16 | <tomsmeding> | abastro[m]: "unless employee pay is dirt cheap" I wouldn't want the code underlying the data store of my production application to be written by cheap workers somewhere that I don't know |
| 08:36:22 | <abastro[m]> | Well to be serious.. why no one developed good tooling for event sourcing if money is on those? |
| 08:36:29 | → | Pickchea joins (~private@user/pickchea) |
| 08:36:39 | <abastro[m]> | tomsmeding: I mean yeah, you don't. Businesses want that |
| 08:36:45 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 08:36:54 | <abastro[m]> | Cost saving is half everything for businesses |
| 08:36:55 | <tomsmeding> | right, and I usually don't think like one |
| 08:37:02 | <lortabac> | abastro[m]: one problem is that it's hard to generalize |
| 08:37:09 | <abastro[m]> | Oh. |
| 08:37:16 | <abastro[m]> | Now that.. is meh |
| 08:37:40 | <lortabac> | different projects may require different tools |
| 08:38:01 | <abastro[m]> | Hm then, I don't see the benefits of event sourcing |
| 08:38:16 | <abastro[m]> | Don't businesses want to reduce cost? |
| 08:39:00 | <abastro[m]> | Then implementing machinaries which is available already if you use another platform |
| 08:39:08 | <lortabac> | that said, there are databases like EventStore which provide lots of generic tools to categorize events, filter etc. |
| 08:39:11 | <abastro[m]> | Would be very cost intensive |
| 08:39:32 | <abastro[m]> | Yea I mean you still have to implement more tools to suit your needs |
| 08:39:59 | <abastro[m]> | <del>Better to use sth like MongoDB because that is more egligible for cheap workers</del> |
| 08:41:13 | <maerwald[m]> | Most CTOs don't pick tech based on real business needs. It's usually either 1. I wanns try this cool thing or 2. Google employees wrote a blog post that tech XY solved all their problems |
| 08:41:29 | <maerwald[m]> | So let's just do the same |
| 08:41:29 | <abastro[m]> | Ewww |
| 08:41:36 | <lortabac> | maerwald[m]: +1, that's the real issue |
| 08:42:10 | <abastro[m]> | Why don't they put their knees down over capitalism |
| 08:42:18 | <abastro[m]> | down to* |
| 08:43:13 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 08:43:58 | <abastro[m]> | maerwald: Google employees? Why do they get that much power |
| 08:49:58 | <abastro[m]> | .. Sorry for being facetious |
| 08:50:02 | <Hecate> | x) |
| 08:50:24 | <abastro[m]> | Is it possible to delete my own messages? |
| 08:51:34 | → | ahammer joins (~ahammer@157.122.68.183) |
| 08:54:32 | <[exa]> | abastro[m]: no |
| 08:55:56 | <abastro[m]> | Nooooo :/ |
| 08:55:59 | × | ahammer quits (~ahammer@157.122.68.183) (Ping timeout: 256 seconds) |
| 08:56:21 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 08:57:09 | <tomsmeding> | #haskell-offtopic doesn't have logging ;p |
| 08:57:15 | <tomsmeding> | s/logging/public logging/ |
| 08:57:20 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:59:23 | <[exa]> | except for like, everyone logging it for private purposes |
| 08:59:47 | <[exa]> | abastro[m]: but you're always welcome to write a blogpost where you refute yourself properly :D |
| 08:59:58 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 09:00:05 | × | polykernel[m] quits (~polykerne@user/polykernel) (Quit: You have been kicked for being idle) |
| 09:00:06 | × | jaror[m] quits (~jaror@2001:470:69fc:105::265) (Quit: You have been kicked for being idle) |
| 09:00:19 | × | desklamp[m] quits (~desklampm@2001:470:69fc:105::77b8) (Quit: You have been kicked for being idle) |
| 09:00:32 | <abastro[m]> | Oh |
| 09:01:14 | <abastro[m]> | I mean writing rebuttal over my useless comments is by itself silly |
| 09:02:40 | <[exa]> | I wouldn't bother, this is IRC, no one reads what people say here! :D (but still, capitalism-kneeling etc would be better in #-offtopic) |
| 09:04:19 | → | son0p joins (~ff@181.136.122.143) |
| 09:05:20 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 09:05:55 | → | ubert1 joins (~Thunderbi@2a02:8109:9880:303c:a404:bb1:fc68:65af) |
| 09:08:33 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 09:09:03 | <nut> | could anyone take a look at this ghc source compile error ? https://wtools.io/paste-code/bB3g |
| 09:09:24 | <nut> | i use the default compile configs |
| 09:09:34 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 09:09:42 | <nut> | ./boot -> ./configure -> make -j16 |
| 09:13:39 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 09:15:41 | <abastro[m]> | <del>Yea I mean, that part is where I thought is the most reasonable among my ramblings</del> |
| 09:16:45 | × | gpncarl_ quits (~gpncarl@210.12.195.5) (Ping timeout: 276 seconds) |
| 09:17:25 | <[exa]> | abastro[m]: what does the <del> around your post mean? |
| 09:19:04 | <[exa]> | nut: might be helpful to know what's the source version |
| 09:19:28 | <[exa]> | also isn't there any other error report earlier? this looks like an outcome of a command failure earlier in the process |
| 09:20:42 | → | gpncarl_ joins (~gpncarl@210.12.195.5) |
| 09:21:08 | <nut> | it's the version i pulled directly |
| 09:21:26 | <nut> | [exa]: i checked and no previous errors |
| 09:21:56 | <nut> | [exa]: i'm building it without -j16 to see if it's related |
| 09:22:51 | <nut> | [exa]: it's the master branch |
| 09:23:27 | <[exa]> | removing -j16 should hopefully not fix anything |
| 09:23:51 | <[exa]> | in either case I'd visit #ghc |
| 09:24:21 | <[exa]> | btw check out if you are able to compile a tagged commit, master might just be broken or so |
| 09:25:12 | × | ubert1 quits (~Thunderbi@2a02:8109:9880:303c:a404:bb1:fc68:65af) (Ping timeout: 248 seconds) |
| 09:25:27 | <tomsmeding> | [exa]: <del> is html, and thus ""markdown"", for strikethrough |
| 09:26:01 | <nut> | -j16 gave similar results. i'm now on the 9.2 branch to test |
| 09:26:21 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:9de6:b0fb:57b3:5001) (Remote host closed the connection) |
| 09:27:19 | × | MajorBiscuit quits (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.4) |
| 09:27:40 | <[exa]> | tomsmeding: yeah but like, what's the purpose of posting strikethrough text :D |
| 09:28:18 | <tomsmeding> | [exa]: I assumed tongue-in-cheek |
| 09:29:06 | <tomsmeding> | not sure what the difference in nuance is between that and /s |
| 09:29:21 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 09:29:52 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 09:29:53 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:30:26 | <[exa]> | perhaps I'm bad at all this new IRC markup. :D |
| 09:30:46 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:c1cb:857c:856:a6e9) |
| 09:32:06 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 272 seconds) |
| 09:32:37 | <tomsmeding> | I think it renders as actual strikethrough in whatever matrix client they're using |
| 09:34:31 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 09:35:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:37:59 | → | dcoutts_ joins (~duncan@host213-122-143-245.range213-122.btcentralplus.com) |
| 09:38:20 | → | mikoto-chan joins (~mikoto-ch@84.199.144.234) |
| 09:40:06 | → | xaotuk joins (~sasha@net167-34-245-109.mbb.telenor.rs) |
| 09:40:49 | <abastro[m]> | tomsmeding: I meant a bit different to /s |
| 09:40:57 | → | MajorBiscuit joins (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) |
| 09:42:18 | <abastro[m]> | That is, my useless comment |
| 09:43:19 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 09:43:20 | × | mikoto-chan quits (~mikoto-ch@84.199.144.234) (Ping timeout: 248 seconds) |
| 09:50:55 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 09:51:37 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
| 09:57:27 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:06:56 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds) |
| 10:07:34 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 10:09:32 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:09:46 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:10:54 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:11:10 | → | Hiring joins (~Hiring@31.222.238.38) |
| 10:13:31 | → | mmhat joins (~mmh@55d4d7fb.access.ecotel.net) |
| 10:13:45 | → | Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
| 10:15:27 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 10:16:52 | → | abastro joins (~abab9579@220.75.216.63) |
| 10:18:10 | → | notzmv joins (~zmv@user/notzmv) |
| 10:21:01 | × | abastro quits (~abab9579@220.75.216.63) (Remote host closed the connection) |
| 10:21:32 | → | abastro joins (~abab9579@220.75.216.63) |
| 10:23:02 | → | coot joins (~coot@213.134.190.95) |
| 10:27:04 | × | MajorBiscuit quits (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) (Ping timeout: 248 seconds) |
| 10:28:08 | → | MajorBiscuit joins (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) |
| 10:28:14 | → | kilolympus joins (~kilolympu@31.205.200.235) |
| 10:29:54 | → | toms joins (~foobar@pogostick.net) |
| 10:31:59 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:36:03 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 276 seconds) |
| 10:36:54 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 10:38:20 | × | MajorBiscuit quits (~MajorBisc@c-001-013-041.client.tudelft.eduvpn.nl) (Ping timeout: 250 seconds) |
| 10:40:29 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 10:42:33 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds) |
| 10:43:05 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:43:50 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 10:48:04 | <int-e> | tomsmeding: Is https://ircbrowse.tomsmeding.com/browse/lchaskell?q=tomsmeding supposed to do anything? I see no difference between that and the link without the q=... |
| 10:48:06 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:48:34 | <int-e> | (maybe it used to work but was too expensive? that's my speculation right now) |
| 10:48:52 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 10:53:48 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 11:05:38 | × | sprout quits (~quassel@2a02-a467-ccd6-1-1c23-6375-d28e-79ab.fixed6.kpn.net) (Ping timeout: 250 seconds) |
| 11:09:01 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 11:10:56 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 11:11:18 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 11:16:46 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 11:21:57 | → | gpncarl joins (~gpncarl@210.12.195.5) |
| 11:22:18 | × | gpncarl_ quits (~gpncarl@210.12.195.5) (Ping timeout: 272 seconds) |
| 11:25:47 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 11:28:11 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 11:32:05 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 11:36:55 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 11:37:57 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 11:40:05 | <tomsmeding> | int-e: https://github.com/chrisdone/ircbrowse/commit/075232f70721837c01016d67393cf080e3fc822e |
| 11:40:29 | <tomsmeding> | I've been meaning to set up some form of search again for a while, but other stuff has taken priority :p |
| 11:40:57 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 11:41:08 | <maerwald[m]> | Start hiring haskeller! |
| 11:41:36 | <int-e> | tomsmeding: love the verbose commit message :-/ |
| 11:41:38 | <tomsmeding> | me hiring people? |
| 11:41:43 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 11:41:43 | <tomsmeding> | int-e: right? |
| 11:41:55 | <tomsmeding> | well, the commit summary is not inaccurate |
| 11:41:59 | <tomsmeding> | it could have been worse |
| 11:42:29 | <tomsmeding> | int-e: there's quite a bunch of stuff in ircbrowse that was just randomly disabled by the time I started looking at the code |
| 11:42:58 | <tomsmeding> | there's a page that lists PDF links that just randomly didn't work because the sql query was wrong |
| 11:43:33 | <tomsmeding> | it kind of felt like Chris had done a good job of setting up a nice codebase, then had no time to do stuff anymore and made a bunch of changes with the minimal possible effort |
| 11:43:43 | <tomsmeding> | at least, that's my inference from looking at the code |
| 11:45:36 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 11:46:18 | <int-e> | Yeah, can't blame him. I was just wondering... looking at logs, he seems to have switched hosting providers for ircbrowse around that time. |
| 11:46:56 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 11:47:57 | <int-e> | (Not 100% conclusive, but if that's right, maybe he didn't manage to set up the sphinx search engine thing again and postponed that?) |
| 11:48:40 | × | xaotuk quits (~sasha@net167-34-245-109.mbb.telenor.rs) (Ping timeout: 248 seconds) |
| 11:48:43 | <int-e> | tomsmeding: Anyway, thanks for that link |
| 11:49:26 | <tomsmeding> | int-e: ah! That would explain it, yes sounds likely |
| 11:50:03 | <Bulby[m]> | Can I lift any value into type space? or only strings and ints? |
| 11:50:33 | <tomsmeding> | Bulby[m]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/data_kinds.html#extension-DataKinds |
| 11:50:59 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 11:51:16 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 11:51:39 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 11:52:25 | <Bulby[m]> | What I want is a "Default" type where you give a type and then an expression of that type. If there is no field provided then I will handle that in code by grabbing the default type and returning that |
| 11:56:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 11:57:00 | → | sprout joins (~quassel@2a02-a45f-f170-1-dc46-b3e0-ed65-be35.fixed6.kpn.net) |
| 11:57:35 | <lortabac> | Bulby[m]: I don't understand your question, can you clarify a little bit or give an example? |
| 11:58:35 | <Bulby[m]> | So I want to be able to say... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/f35cda520bfc9626ab14be8797ba57d128f1013b) |
| 12:00:10 | <lortabac> | ok I think I understand |
| 12:00:26 | <lortabac> | "hi" is the default string in your example, right? |
| 12:00:30 | <Bulby[m]> | yes |
| 12:00:41 | <lortabac> | and you want to generalize this behavior to all the types, not only strings |
| 12:00:54 | <Bulby[m]> | I understand symbols |
| 12:01:15 | <lortabac> | you need DataKinds, as someone suggested |
| 12:01:20 | <Bulby[m]> | I don't know if that will be needed, but would be nice |
| 12:01:46 | <tomsmeding> | symbols have the property that you can recover the value-level value from the reflected type |
| 12:01:52 | <lortabac> | and you need some mechanism to go from a type to its corresponding value |
| 12:02:05 | <geekosaur> | which is where it becomes a nightmare :) |
| 12:02:08 | <tomsmeding> | like, reify :: forall (t :: Symbol). t -> String exists |
| 12:02:19 | <lortabac> | geekosaur: haha, not necessarily |
| 12:02:23 | <Bulby[m]> | ok, I'll do it as I go |
| 12:02:29 | <tomsmeding> | that isn't predefined for every data type |
| 12:02:35 | <Bulby[m]> | I don't think i'll need to do anything other than symbol |
| 12:02:38 | <lortabac> | if it's just one-way (type -> value) a type-class should be enough |
| 12:03:50 | <tomsmeding> | with singletons you have this https://hackage.haskell.org/package/singletons-3.0.1/docs/Data-Singletons.html#v:demote |
| 12:03:56 | <Bulby[m]> | oh wait symbol won't work because I have to evaluate stuff 😭 |
| 12:04:04 | <tomsmeding> | but try to avoid getting singletons in here if you don't need it lol |
| 12:04:18 | <Bulby[m]> | I am doing dbus stuff and want a default address |
| 12:04:32 | <geekosaur> | you can't have a value expression at type level |
| 12:04:43 | <geekosaur> | and type level expressions are things like type families |
| 12:06:59 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:07:00 | → | xaotuk joins (~sasha@net164-38-245-109.mbb.telenor.rs) |
| 12:07:36 | <lortabac> | the idea is to have something like this: https://paste.tomsmeding.com/cE7X9kMr |
| 12:08:12 | <lortabac> | however if you need more than this it becomes quickly a nightmare |
| 12:08:41 | → | xkuru joins (~xkuru@user/xkuru) |
| 12:08:59 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:15:39 | × | acidjnk quits (~acidjnk@p200300d0c73b4503e5dce27061996713.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 12:15:39 | → | Pickchea joins (~private@user/pickchea) |
| 12:18:06 | × | xaotuk quits (~sasha@net164-38-245-109.mbb.telenor.rs) (Ping timeout: 276 seconds) |
| 12:18:47 | → | frost joins (~frost@user/frost) |
| 12:19:34 | × | Pickchea quits (~private@user/pickchea) (Client Quit) |
| 12:26:33 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds) |
| 12:26:55 | <apache2> | say I have data x = A | B | C |
| 12:27:09 | <apache2> | does haskell have "refutation cases" ? |
| 12:27:18 | <apache2> | ie I want to match something like |
| 12:27:27 | <apache2> | say I have data x = A Int | B Int | C |
| 12:27:55 | <apache2> | f x = case x of |
| 12:28:09 | <apache2> | f x y = case (x,y) of |
| 12:28:21 | <apache2> | (A 1, A 2) -> True |
| 12:28:37 | <apache2> | (B _ B _) -> True |
| 12:28:50 | <apache2> | (C , C) -> True |
| 12:28:54 | <apache2> | _ -> False |
| 12:29:37 | × | zeenk quits (~zeenk@2a02:2f0e:7506:c001:7ef1:d76c:496:86d6) (Quit: Konversation terminated!) |
| 12:30:07 | <apache2> | but I don't want _ -> False I want (A _, (B _ |C)) -> False and (B _ , (A _ |C)) -> False and (C, (A _ | B _)) -> False |
| 12:30:16 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 12:30:51 | <apache2> | so before I write _ -> False I'd like to know that all pairs of A _ A _ and B _ B and C , C are covered; and if not I want a compile-time error/warning about non-exhaustiveness |
| 12:31:51 | <geekosaur> | with -Wall (or the appropriate individual warning, I think -Wincomplete-patterns) it does exhaustiveness checking |
| 12:32:04 | × | Hiring quits (~Hiring@31.222.238.38) (Quit: Client closed) |
| 12:32:04 | <geekosaur> | you csn also -Werror=incomplete-patterns |
| 12:32:07 | <apache2> | in Ocaml I'd write type x = A of int | B of int | C let f x y = match x,y with A 1 , B 2 -> true | B _ , B_ -> true | C,C -> true | A _, A _ -> . | B _ , B _ -> . | C,C -> . _ -> false for example |
| 12:32:41 | <apache2> | and it will tell me that A _ , A _ -> . is not refuted because A 0, A 0 would match it |
| 12:32:55 | <apache2> | geekosaur: right but then I can't use _ -> False at the end |
| 12:33:12 | <apache2> | my data type has 20 constructors so enumeratin all combinations is going to suck |
| 12:33:46 | <geekosaur> | sure you can, that would just satisfy the exaustiveness checker that you'd covered all other cases with the catch-all |
| 12:34:27 | <geekosaur> | oh, I see |
| 12:34:28 | <apache2> | geekosaur: I'd be OK with 20x (A _, (B|C)) (B _, (A|C)) (C, (A|B)) cases |
| 12:34:34 | <geekosaur> | I think patterns don't extend that far |
| 12:34:40 | <apache2> | but I can't get | inside pattern matching to work |
| 12:34:51 | <geekosaur> | in particular there are no or-patterns |
| 12:34:58 | <apache2> | hm that's a bummer |
| 12:35:13 | <apache2> | can I compare the constructors maybe? |
| 12:35:40 | <apache2> | like extract the constructor function A and B, regardless of arguments and compare on the constructor itself? |
| 12:35:44 | <geekosaur> | not as a pattern. you can use guards (which is the syntax that prevents | from being "or") |
| 12:36:06 | <geekosaur> | A {} matches A with anything (as would A _) |
| 12:36:15 | <apache2> | (x, y) | toConstructor x = toConstructor y -> False |
| 12:37:03 | <geekosaur> | you're getting close to Generics there but I think toConstr might work |
| 12:37:13 | <apache2> | geekosaur: right but then I still need 20*19 cases to get exhaustiveness checking |
| 12:37:37 | <apache2> | is the toConstr thing possible? |
| 12:38:06 | <apache2> | (OCaml wouldn't allow that) |
| 12:38:41 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:39:03 | → | anomal joins (~anomal@87.227.196.109) |
| 12:39:05 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 12:39:25 | <geekosaur> | requires a Data constraint (so you'd have to derive Data on your type) and I'm still not entirely clear on what you're doing tbh |
| 12:41:30 | × | benin quits (~benin@183.82.204.110) (Ping timeout: 276 seconds) |
| 12:42:08 | → | agrosant joins (~agrosant@79.103.56.172.dsl.dyn.forthnet.gr) |
| 12:42:48 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds) |
| 12:46:29 | <apache2> | oh this works |
| 12:46:32 | <apache2> | data X = A Int | B Int | C deriving (Show) |
| 12:46:32 | <apache2> | :{ |
| 12:46:32 | <apache2> | k x = |
| 12:46:32 | <apache2> | case x of |
| 12:46:32 | <apache2> | A {} -> A |
| 12:46:32 | <apache2> | :} |
| 12:46:41 | <apache2> | g = (k (A 2)) 3 |
| 12:48:24 | <apache2> | then I can maybe do |
| 12:48:26 | <apache2> | case (k (A 2)) of z | z == A -> True _ -> False |
| 12:48:31 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 12:54:41 | AlexNoo_ | is now known as AlexNoo |
| 12:55:51 | <Bulby[m]> | https://paste.tomsmeding.com/HQasship is there a better way to do stuff like this for tuples |
| 12:58:13 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 13:00:21 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Ping timeout: 276 seconds) |
| 13:06:16 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 13:07:08 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:10:27 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 13:11:03 | <[exa]> | Bulby[m]: what's diwrap and dioptional? (can't find these) |
| 13:13:51 | <[exa]> | other than that I guess that general advice for avoiding long tuples would apply (why not make a small `data TheItem = ...` for this?) |
| 13:16:31 | × | gpncarl quits (~gpncarl@210.12.195.5) (Ping timeout: 260 seconds) |
| 13:18:03 | → | __monty__ joins (~toonn@user/toonn) |
| 13:18:18 | <[exa]> | uh wait, the (.=) there is from Aeson and not from lens, right? |
| 13:22:19 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:25:24 | → | huu joins (~huu@uwyo-129-72-151-122.uwyo.edu) |
| 13:26:56 | <huu> | hi, wondering how to define data type as datetime ISO8601 - something like this? `created :: !ISO8601` |
| 13:31:48 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:31:48 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:31:48 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:36:06 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 276 seconds) |
| 13:37:02 | <geekosaur> | ISO8601 is not a type, it's a typeclass for formatting a DateTime in ISO8601 format |
| 13:37:32 | <geekosaur> | you do not normally *store* in that format (the formatted value is a String) |
| 13:38:39 | <Bulby[m]> | it's from Tomland sorry |
| 13:40:06 | → | benin joins (~benin@183.82.204.110) |
| 13:40:09 | <Bulby[m]> | https://hackage.haskell.org/package/tomland-1.3.1.0/docs/Toml-Codec-Di.html#v:dimatch |
| 13:40:09 | <geekosaur> | so your conversion from TOML would use https://downloads.haskell.org/ghc/8.10.7/docs/html/libraries/time-1.9.3/Data-Time-Format-ISO8601.html#v:iso8601ParseM to parse the ISO8601 into an appropriate DateTime type (there are several) |
| 13:40:32 | <geekosaur> | oh wait, I think I've just confused two discussions |
| 13:40:33 | <Bulby[m]> | you are mixing two people 😄 |
| 13:41:07 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds) |
| 13:41:16 | <geekosaur> | huu, anyway you don't store an ISO8601, you parse it into an appropriate type or you format the type into ISO8601 |
| 13:41:24 | <geekosaur> | just as we don't store numbers as Strings |
| 13:42:13 | abastro | oh no I need to hide my string-ified integers |
| 13:42:18 | <huu> | geekosaur so for strings it's ok to define it as `created :: !Text` ? |
| 13:42:37 | abastro | hides "15", "42" and "960" |
| 13:42:46 | <geekosaur> | if you only care about the formatted value and don't want to manipulate it, sure |
| 13:43:14 | <geekosaur> | if you want to treat it as a DateTime, you want to use the function I pointed to to parse ISO8601 into a DateTime |
| 13:43:43 | <Bulby[m]> | Oh I see the difference in the examples |
| 13:44:09 | <Bulby[m]> | 1 of them is a sum type the other is arbitrarily allowing two different types to be together |
| 13:44:43 | <Bulby[m]> | well |
| 13:44:57 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:45:41 | → | gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
| 13:46:07 | <huu> | geekosaur this here https://hackage.haskell.org/package/datetime-0.3.1/docs/Data-DateTime.html |
| 13:47:06 | <geekosaur> | DateTime is just one of them, you'll notice in there conversions from/to UniversalTime and then there's LocalTime |
| 13:47:12 | <geekosaur> | and ZonedTime |
| 13:47:24 | <geekosaur> | it depends on what you are doing with it |
| 13:47:36 | <huu> | ah ok ok thanks |
| 13:49:17 | <geekosaur> | since an ISO8601 formatted timestamp includes a timezone, ZonedTime would actually be my first choice for representing it, although for most things I stick to UTCTime aka DateTime |
| 13:49:45 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 13:53:52 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 13:56:05 | → | gpncarl joins (~gpncarl@120.244.220.254) |
| 14:00:44 | × | vpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 14:03:49 | × | huu quits (~huu@uwyo-129-72-151-122.uwyo.edu) (Quit: Client closed) |
| 14:04:27 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 14:05:07 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:05:42 | × | gpncarl quits (~gpncarl@120.244.220.254) (Ping timeout: 272 seconds) |
| 14:06:02 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 14:19:29 | → | Hiring joins (~Hiring@31.222.238.38) |
| 14:22:26 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 14:24:36 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 14:25:12 | <janus> | any aeson maintainers in here? i'd like to discuss my PR for 9.2 compat for the 1.x series |
| 14:28:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:28:21 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 14:28:40 | → | anomal joins (~anomal@87.227.196.109) |
| 14:29:10 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 14:30:38 | <dminuoso> | Is there some non-obvious way to insert a -v helper in optparse-applicative? |
| 14:32:54 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 14:34:06 | <janus> | apache2: if you are using boolean guards, you are probably defeating exhaustiveness checking... so i think "z | z == A" doesn't make a lot of sense |
| 14:34:20 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:37:20 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 14:37:40 | → | Guest|33 joins (~Guest|33@83-84-24-47.cable.dynamic.v4.ziggo.nl) |
| 14:37:48 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 14:37:59 | × | Guest|33 quits (~Guest|33@83-84-24-47.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 14:38:27 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 14:38:27 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 14:38:40 | <janus> | apache2: did you consider a separate hierarchy with 'GroupA MyType | GroupB MyType'. then you get the exhaustiveness checking. |
| 14:39:54 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:40:33 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Ping timeout: 246 seconds) |
| 14:43:00 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 14:43:19 | → | anomal joins (~anomal@87.227.196.109) |
| 14:44:31 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 14:45:35 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 14:50:38 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 14:51:34 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 14:55:49 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:55:55 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 15:01:11 | → | gpncarl joins (~gpncarl@120.244.220.254) |
| 15:01:37 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 15:03:43 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 15:04:02 | → | anomal joins (~anomal@87.227.196.109) |
| 15:06:17 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:06:54 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:11c6:ad8e:84a0:4c9d) (Quit: WeeChat 2.8) |
| 15:07:21 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:c1cb:857c:856:a6e9) (Remote host closed the connection) |
| 15:07:42 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 15:07:50 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:08:54 | × | incertia quits (~incertia@d47-69-133-171.try.wideopenwest.com) (Ping timeout: 246 seconds) |
| 15:08:57 | → | ahammer joins (~ahammer@157.122.68.183) |
| 15:11:13 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 15:13:19 | <Bulby[m]> | ` (showHex r "") ++ (showHex g "") ++ (showHex b "") ` how can I take advantage of ShowS here |
| 15:13:32 | → | king_gs1 joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 15:13:41 | → | incertia joins (~incertia@d47-69-133-171.try.wideopenwest.com) |
| 15:13:53 | <Bulby[m]> | `prepends the output String to an existing String. ` |
| 15:14:07 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 15:14:08 | king_gs1 | is now known as king_gs |
| 15:16:12 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 276 seconds) |
| 15:18:07 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 15:20:37 | <geekosaur> | > let r = 127; g = 63; b = 255 in showHex r . showHex g . showHex b $ "" |
| 15:20:39 | <lambdabot> | "7f3fff" |
| 15:20:43 | → | frost joins (~frost@user/frost) |
| 15:20:56 | <Bulby[m]> | \o/ |
| 15:21:12 | <Bulby[m]> | wasn't sure if it would be in a sane order |
| 15:21:59 | × | ahammer quits (~ahammer@157.122.68.183) (Ping timeout: 240 seconds) |
| 15:22:34 | → | stackdroid18 joins (14094@user/stackdroid) |
| 15:23:09 | × | pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Remote host closed the connection) |
| 15:25:38 | → | coot joins (~coot@213.134.190.95) |
| 15:26:19 | <EvanR> | think of showHex 127 as ("7f" ++) |
| 15:26:48 | <Bulby[m]> | yeah I was unsure if it was going to be `(++ "7f")` |
| 15:26:56 | <EvanR> | that's what I'm saying xD |
| 15:27:00 | <geekosaur> | "try it and see" |
| 15:27:02 | <EvanR> | big difference |
| 15:27:37 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:27:55 | <EvanR> | ("7f" ++) has a chance at being efficient |
| 15:28:06 | → | pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee) |
| 15:28:06 | <EvanR> | the other one not so much |
| 15:28:28 | → | ahammer joins (~ahammer@157.122.68.227) |
| 15:28:34 | <dminuoso> | Rather than ShowS, can we just have dlist in base please? |
| 15:29:04 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:441e:52da:78fc:d8fa) |
| 15:29:12 | × | jespada quits (~jespada@89.238.130.78) (Ping timeout: 276 seconds) |
| 15:29:21 | <dminuoso> | It's a bit strange to throw singly linked lists at us, and not give us the tools to work efficiently with them. :( |
| 15:29:40 | <dminuoso> | (I mean yeah, you can do it all by hand, but a newtype wrapper and separate functions help a lot) |
| 15:29:56 | <EvanR> | is it that there are too many dlist packages to choose from? xD |
| 15:30:02 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:30:13 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Quit: ZNC - https://znc.in) |
| 15:30:52 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 15:31:50 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 15:32:34 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 15:33:06 | × | ahammer quits (~ahammer@157.122.68.227) (Ping timeout: 272 seconds) |
| 15:33:42 | → | ahammer joins (~ahammer@157.122.68.183) |
| 15:35:07 | × | Hiring quits (~Hiring@31.222.238.38) (Quit: Client closed) |
| 15:35:49 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 15:36:08 | → | anomal joins (~anomal@87.227.196.109) |
| 15:38:40 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:39:19 | <c_wraith> | dminuoso: what, is Endo [a] too annoying? |
| 15:39:58 | <c_wraith> | (the answer is probably "yes) |
| 15:40:08 | <c_wraith> | uh. just ignore that syntax error, please. :) |
| 15:40:42 | × | ahammer quits (~ahammer@157.122.68.183) (Ping timeout: 272 seconds) |
| 15:41:21 | × | xff0x_ quits (~xff0x@om126167099166.29.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 15:42:05 | <Franciman> | does ghc do the so called cons tail optimisation? |
| 15:42:19 | × | abastro quits (~abab9579@220.75.216.63) (Ping timeout: 240 seconds) |
| 15:42:32 | <Franciman> | or tail optimisation modulo cons |
| 15:43:43 | <c_wraith> | I've never heard of that one, but... the answer is probably one of "yes, but it's less helpful than you think" and "it's not even relevant", like most questions about tail calls in haskell |
| 15:44:12 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 15:44:52 | <c_wraith> | ah. I looked it up. That's the latter case. |
| 15:44:58 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:c914:2e3d:9c4a:a429) |
| 15:45:50 | <c_wraith> | It's not even relevant, because of laziness |
| 15:46:59 | <Franciman> | gorg |
| 15:47:01 | <Franciman> | ty |
| 15:48:25 | <c_wraith> | In particular, evaluation stops at a data constructor. |
| 15:48:28 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:49:27 | <Franciman> | so i just build a long list of thunks in heap |
| 15:49:34 | <Franciman> | not in the stack and no need of tail call optimise |
| 15:49:40 | <Franciman> | just cry when it's slow, tho? |
| 15:50:33 | <c_wraith> | so if you say `map f (x:xs) = f x : map f xs' (pretend there's a base case too) that function doesn't cause recursive evaluation |
| 15:51:04 | <c_wraith> | It evaluates the first constructor of its input list, then generates a single constructor pointing to two thunks. |
| 15:51:12 | → | ahammer joins (~ahammer@157.122.68.183) |
| 15:52:03 | <c_wraith> | any recursive evaluation that might happen is going to come from whatever is consuming the output |
| 15:52:16 | <Franciman> | makes sense |
| 15:52:56 | <Franciman> | so in fact it does not build a long list of thunks either |
| 15:53:00 | <Franciman> | just on demande |
| 15:53:02 | <Franciman> | thank you! |
| 15:53:06 | <Franciman> | demand* |
| 15:53:28 | <monochrom> | Yeah lazy evaluation changes this. In this context, the eager instinct of "let me use an accumulator and later reverse" is actually bad. |
| 15:53:28 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 15:53:48 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:54:05 | <monochrom> | Tons of "best practice" just go out of the window. |
| 15:54:07 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 15:54:21 | → | k8yun joins (~k8yun@user/k8yun) |
| 15:54:57 | <monochrom> | > foldr (&&) undefined (False : repeat True) |
| 15:54:58 | <lambdabot> | False |
| 15:55:05 | → | razetime joins (~quassel@117.254.34.160) |
| 15:55:10 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:441e:52da:78fc:d8fa) (Remote host closed the connection) |
| 15:55:11 | <monochrom> | You actually want that. |
| 15:55:19 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 15:55:25 | <monochrom> | > foldl (&&) undefined (False : repeat True) |
| 15:55:34 | <lambdabot> | mueval.real: ExitFailure 1 |
| 15:55:45 | <monochrom> | And that's what's wrong with tail call and accumulator. |
| 15:56:38 | <Franciman> | i analyse this from another point of view |
| 15:56:46 | <Franciman> | haskell conflates sense and denotation |
| 15:56:49 | <Franciman> | because of laziness |
| 15:56:52 | <Franciman> | which is good |
| 15:56:59 | <Franciman> | until you start going crazy |
| 15:57:31 | <Franciman> | the fact that you can write a term to mention it, instead of fully evaluating it is gorgeous |
| 15:57:42 | <maerwald> | anyone knows if there's a good way to detect whether I'm in china (from within bash) |
| 15:57:54 | <Franciman> | lol |
| 15:57:54 | <Hecate> | maerwald: curl myip.whatevs |
| 15:58:01 | <Hecate> | can't remember the actual domain name |
| 15:58:05 | <Hecate> | but there's one |
| 15:58:15 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 15:58:22 | <geekosaur> | just try to connect to something blocked by the great wall |
| 15:58:24 | <maerwald> | Hecate: are you sure that domain works in china? xD |
| 15:58:29 | <monochrom> | No, I think it's some people, not Haskell, who have that conflation. I don't, and I don't see Haskell doing it. |
| 15:58:40 | <maerwald> | geekosaur: yeah, like downloads.haskell.org ;) |
| 15:58:41 | <Hecate> | maerwald: for a chinese mirror? You can do like the linux & freebsd installers and ask the user if they want to specify their country's mirror |
| 15:58:44 | <Hecate> | maerwald: hahaha |
| 15:58:52 | <Franciman> | in haskell there is no distinction between evaluate to value and just do it whenever you feel like |
| 15:59:02 | <Franciman> | you must leverage ghc extensions like Bang Patterns |
| 15:59:34 | <monochrom> | I know some people intuit that [x | x <- [1..], x==0] = [] but I don't, not even on day 1. It's clearly bottom. |
| 16:00:00 | <maerwald> | the problem also seems to be that curl doesn't cleanly fail, so users get some corrupted empty files and then weird errors |
| 16:00:20 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 16:00:39 | <maerwald> | well, you could say the file is not corrupted, because it's empty |
| 16:01:00 | → | Vajb joins (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) |
| 16:01:20 | <Franciman> | monochrom: so for you in haskell every term is just mentioned, right? |
| 16:01:21 | <maerwald> | sort of a thunk |
| 16:01:22 | <Franciman> | never used |
| 16:01:25 | <Franciman> | until main |
| 16:01:35 | <maerwald> | lazy haskell installation |
| 16:01:55 | <Franciman> | then you have to go back and descend the tree to mark the nodes who are not just mentioned, but used! |
| 16:02:00 | × | ahammer quits (~ahammer@157.122.68.183) (Ping timeout: 248 seconds) |
| 16:02:51 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 16:03:22 | × | maerwald quits (~maerwald@mail.hasufell.de) (Changing host) |
| 16:03:22 | → | maerwald joins (~maerwald@user/maerwald) |
| 16:03:36 | → | ahammer joins (~ahammer@157.122.68.183) |
| 16:03:54 | <janus> | maerwald: https://gadm.org/ has polygons for the countries |
| 16:04:43 | <janus> | another option is to look at the time zone |
| 16:07:00 | <janus> | while `date +%Z` could report "CDT", `timezonectl status` is more accurate and reports America/Chicago for me |
| 16:09:54 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:10:17 | <EvanR> | Franciman, you can think of a haskell program or value as being an expression, more often than not |
| 16:11:01 | <Franciman> | i wonder if i could add modal operators to the type system to keep explicit track of lazy evaluated thinks |
| 16:11:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 16:11:53 | <janus> | oh geoclue looks cool https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home |
| 16:12:00 | <Franciman> | unquote :: □a -> a |
| 16:12:00 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:12:01 | <EvanR> | if it's evaluated, it's no longer lazy |
| 16:12:37 | <EvanR> | but could hold unevaluated payloads |
| 16:12:43 | <Franciman> | i would also have k :: □(a -> b) -> □a -> □b |
| 16:12:58 | <EvanR> | I don't think quotation is the right way to think of haskell |
| 16:13:03 | <EvanR> | it's not quoted |
| 16:13:17 | <EvanR> | but there is template haskell |
| 16:13:27 | <Franciman> | quotation is probably a misnomer |
| 16:13:36 | <Franciman> | ok, can I use modal operators to keep track of thunks? |
| 16:13:55 | <maerwald> | Franciman: are you building a blockchain? |
| 16:13:58 | <EvanR> | thunks is an implementation detail, what are you really trying to do |
| 16:14:07 | <Franciman> | I'm trying to make sense of haskell's evil |
| 16:14:10 | <Franciman> | laziness |
| 16:14:21 | <EvanR> | laziness is also an implementation detail xD |
| 16:14:22 | <Franciman> | it evaluates things under my feet, and i'm too obtuse to understand what's going on |
| 16:14:24 | <maerwald> | I run my thunks via smart contracts |
| 16:14:31 | <Franciman> | lol maerwald |
| 16:14:46 | <EvanR> | evaluation is on demand, that's all |
| 16:15:02 | <Franciman> | so it's non local |
| 16:15:07 | <Franciman> | it makes local reasoning hard |
| 16:15:17 | <EvanR> | since there are no side effects it's fine |
| 16:15:22 | <maerwald> | Franciman: exactly! |
| 16:15:40 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 16:15:44 | <EvanR> | whatever you would have evaluated, it still evaluates just at a different time |
| 16:15:53 | <EvanR> | (except for a difference regarding infinite loops) |
| 16:15:59 | <maerwald> | Haskell breaks with the "local reasoning" concept via laziness. You could argue it's inherently non-functional then |
| 16:16:01 | <maerwald> | hmm |
| 16:16:15 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 16:16:16 | <EvanR> | the purity of haskell is what saves local reasoning |
| 16:16:20 | <Franciman> | maerwald: the neat thing is that , as EvanR says, it can do it safely exactly because it's functional! |
| 16:16:22 | <Franciman> | lol |
| 16:16:34 | <Franciman> | EvanR: not local reasoning about performances! |
| 16:16:39 | <Franciman> | or space consumption |
| 16:16:43 | <maerwald> | Franciman: safely? |
| 16:16:44 | <Franciman> | that's a neglected form of reasoning, maybe? |
| 16:16:48 | <EvanR> | performance? nah nah nah I can't hear you |
| 16:16:52 | <Franciman> | eh indeed |
| 16:16:54 | <Franciman> | :') |
| 16:17:10 | <Franciman> | not being able to assess what my program does is B-B-BADDO |
| 16:17:13 | <EvanR> | laziness has a cost |
| 16:17:16 | <Franciman> | for my use case i mean |
| 16:17:21 | <Franciman> | that's ok for doing scripts |
| 16:17:28 | <Franciman> | not for working on my language |
| 16:17:31 | <Franciman> | interpreter |
| 16:17:32 | <EvanR> | it might not be good to run haskell directly on arduinos |
| 16:17:42 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 16:17:43 | <EvanR> | but you could use haskell to make a language for arduinos |
| 16:17:51 | <Franciman> | just a compiler |
| 16:17:53 | <Franciman> | not an interpreter |
| 16:18:01 | <Franciman> | i could use it to make a program that makes interpreters in C, tho |
| 16:18:02 | <Franciman> | that's fair |
| 16:18:09 | <Franciman> | and something i tried, but i am too dumb LOL |
| 16:18:17 | <EvanR> | C's pretty bad for programming language development xD |
| 16:18:24 | <Franciman> | not when used as assembly |
| 16:18:30 | × | ahammer quits (~ahammer@157.122.68.183) (Remote host closed the connection) |
| 16:18:36 | <Franciman> | you even get a lot of optimisations for free! |
| 16:18:55 | <EvanR> | you also miss out on a lot of optimizations |
| 16:18:59 | <Franciman> | true |
| 16:19:06 | <Franciman> | but that's for the next step of the work, no? |
| 16:19:21 | <Franciman> | it's a good first step |
| 16:19:28 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 16:19:36 | <EvanR> | since no one using the language cares what you used to make the compiler, just skip to the last step and use haskell, or something better than C at least |
| 16:19:50 | <Franciman> | ehm |
| 16:19:59 | <Franciman> | i see |
| 16:20:08 | <Franciman> | but haskell's laziness gets in the way and makes everything evil |
| 16:20:23 | × | gpncarl quits (~gpncarl@120.244.220.254) (Ping timeout: 260 seconds) |
| 16:20:28 | <EvanR> | haven't noticed that |
| 16:20:38 | <EvanR> | purity is by definition lack of evil |
| 16:21:49 | → | gpncarl joins (~gpncarl@120.244.220.254) |
| 16:22:55 | <Franciman> | ^^ true |
| 16:25:16 | → | zeenk joins (~zeenk@2a02:2f04:a109:fa00:116f:8f1a:7ce7:cae5) |
| 16:26:29 | × | gpncarl quits (~gpncarl@120.244.220.254) (Ping timeout: 256 seconds) |
| 16:35:20 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:36:16 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 16:37:15 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 16:37:15 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 16:37:15 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:38:16 | <janus> | EvanR: what would be a better language to develop each of Python, Postgres and Lua in? |
| 16:39:19 | <EvanR> | is this a time travel question or a brain transplant question |
| 16:39:28 | <janus> | one answer for each :P |
| 16:39:51 | <janus> | the time travel variant is the most interesting |
| 16:40:31 | <EvanR> | haskell still had baby teeth back when those languages were being forged from pure chaos |
| 16:40:38 | <EvanR> | so not haskell |
| 16:40:56 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 248 seconds) |
| 16:42:20 | <janus> | A big part of why Lua is popular is because it is written in a really portable variant of C. Even today, lots of users would be hosed if they rewrote it in Rust/Zig/Hare/Haskell |
| 16:42:59 | <janus> | I think the argument also applies to Python to some degree? |
| 16:44:38 | <janus> | But in Python, the experiment is being conducted since Pypy is written in RPython |
| 16:45:28 | <Hecate> | python people don't care that much tbf |
| 16:45:39 | <Hecate> | python doesn't advertise the same things as lua |
| 16:46:16 | <dolio> | Isn't lua's selling point being embeddable into e.g. C programs as a scripting language? |
| 16:46:21 | <dolio> | That's pretty cherry picked. |
| 16:46:22 | <Hecate> | yes |
| 16:46:30 | <Hecate> | well, that's called a purpose :p |
| 16:46:38 | <Hecate> | low-overhead, low-resources |
| 16:47:40 | <geekosaur> | same was true of Tcl until Lua came along and trumped it with sane syntax |
| 16:47:41 | <janus> | ok, so that leaves postgres. we must convince them to switch to c++ like GCC, then we have proven once for all that C is bad |
| 16:49:23 | <dolio> | Also, just because your specific niche forces you to use C to achieve some goal doesn't mean that C is actually good at that general domain, where not everything neecs to meet that specific goal. |
| 16:49:39 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 16:49:53 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 16:50:24 | <dolio> | It just means that your particular case forced you to use a bad tool. |
| 16:50:53 | <Hecate> | that is true |
| 16:51:03 | <Hecate> | but I don't know if that was anybody's point |
| 16:51:05 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:51:08 | <janus> | but why is the existence of 20 years of codebase and experience in a specific language not something that makes the language 'good'? |
| 16:51:28 | <Hecate> | janus: for the same reason tech debt doesn't turn into tech credit |
| 16:51:37 | <Hecate> | even wine turns into vinegar |
| 16:52:07 | <geekosaur> | C became popular because it was in the right place at the right time, not because it was good |
| 16:52:14 | <janus> | so english is bad too, esperanto is good? |
| 16:52:20 | → | asivitz joins (uid178348@id-178348.tinside.irccloud.com) |
| 16:52:30 | <Hecate> | janus: I don't know what you're trying to make me say |
| 16:52:35 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:52:40 | <Hecate> | so huh, please stop? :D |
| 16:52:42 | <geekosaur> | that doesn't prove C is bad, either, it just means you can't judge it solely by how popular it is |
| 16:53:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 16:53:45 | <Franciman> | hey vinegar is useful too! |
| 16:54:50 | <Hecate> | in french, it's caleld "vinaigre", which is the combination of "vin" (wine) and "aigre" (sour) |
| 16:54:56 | <Hecate> | and yes vinegar useful |
| 16:55:06 | <Hecate> | but not as a wine ;-D |
| 16:55:33 | → | econo joins (uid147250@user/econo) |
| 16:55:46 | <Hecate> | that being said, this whole discussion is leading to nothing |
| 16:56:07 | <Hecate> | so let's talk about something that doesn't rely on everyone's mis-interpretation of the other person's words |
| 16:56:12 | <Franciman> | i use it to avoid being bitten by mosquitoes |
| 16:56:18 | <Franciman> | i use it on salad |
| 16:56:25 | <Hecate> | I use it to be delicious when cannibals eat me |
| 16:56:29 | <Franciman> | and in some nice dishes |
| 16:56:37 | <Franciman> | yaaaaaaaaaaaaaaaaaaaaaaas |
| 16:57:21 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Remote host closed the connection) |
| 16:58:11 | <Franciman> | ok, what about this |
| 16:58:18 | <Franciman> | do you think is there ever gonna be Haskellton? |
| 16:58:26 | <Franciman> | an haskell compiler based on MLton's backend? |
| 16:58:40 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 16:58:43 | <dolio> | Probably not. |
| 16:59:33 | <geekosaur> | Franciman, have you seen https://github.com/grin-compiler/grin ? |
| 16:59:36 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 16:59:57 | <Franciman> | yes, that one is coool |
| 17:00:19 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:03:52 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:04:37 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:05:24 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 17:07:02 | × | razetime quits (~quassel@117.254.34.160) (Remote host closed the connection) |
| 17:08:05 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 17:08:17 | → | acidjnk joins (~acidjnk@p200300d0c73b450341d4da31930f8e6b.dip0.t-ipconnect.de) |
| 17:08:26 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 17:08:40 | → | anomal joins (~anomal@87.227.196.109) |
| 17:09:43 | <tomsmeding> | Franciman: doesn't MLton implement a strict language |
| 17:12:52 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:15:04 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 17:15:23 | → | anomal joins (~anomal@87.227.196.109) |
| 17:16:27 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 276 seconds) |
| 17:17:44 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 17:18:30 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 17:26:26 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 17:29:59 | × | benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat) |
| 17:31:14 | <Franciman> | tomsmeding: yes, but in some slides of presentation they wanted to also introduce haskellton |
| 17:33:17 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:33:43 | <tomsmeding> | I wonder how useful existing opimisations for a strict functional language are when you compile a lazy language to it |
| 17:33:54 | <tomsmeding> | feel like it won't generate very natural ML code |
| 17:34:56 | chexum_ | is now known as chexum |
| 17:35:05 | <Franciman> | the important ideas are to convert an high order language to a first order monomorphic language |
| 17:35:17 | <Franciman> | i think this part doesn't depend on lazy or strict semantics |
| 17:36:30 | → | dcoutts__ joins (~duncan@host213-122-143-176.range213-122.btcentralplus.com) |
| 17:36:31 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 17:37:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 17:39:46 | × | dcoutts_ quits (~duncan@host213-122-143-245.range213-122.btcentralplus.com) (Ping timeout: 272 seconds) |
| 17:39:48 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 17:39:52 | <EvanR> | janus, from a ivory tower perspective, language users don't care what the compiler is written in. After all they are using language X not the compiler's language. But your practical examples involve stories where the programmers assume C or C++ is god and anything else is secondary |
| 17:40:28 | <EvanR> | there's no theoretical reason why that's the case |
| 17:40:50 | <EvanR> | which is good because pandoc users might not want to learn haskell |
| 17:41:56 | <geekosaur> | and in fact pandoc is widely used and nobody cares that it's in Haskell; they get it from their package manager and are none the wiser |
| 17:44:01 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:46:00 | → | dcoutts_ joins (~duncan@host86-155-218-224.range86-155.btcentralplus.com) |
| 17:46:15 | <exarkun> | unfortunately a few people notice |
| 17:46:28 | <exarkun> | and endlessly use its compilation time as an argument against haskell |
| 17:47:34 | <EvanR> | haskell's compiler specifically, yeah, has some non theoretical delay xD |
| 17:47:36 | × | k8yun quits (~k8yun@user/k8yun) (Quit: Leaving) |
| 17:47:49 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 17:48:53 | <EvanR> | (also linking takes enough time so it basically can't be realtime) |
| 17:49:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 17:49:16 | × | dcoutts__ quits (~duncan@host213-122-143-176.range213-122.btcentralplus.com) (Ping timeout: 272 seconds) |
| 17:50:00 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 17:50:19 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Remote host closed the connection) |
| 17:52:38 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 17:53:11 | Logio_ | is now known as Logio |
| 17:53:37 | <Logio> | Haskell packages on Gentoo can be a pain, if the deps update often |
| 17:54:17 | <apache2> | janus: in this case I'd need a hierarchy for each of the contsructors and I'd end up with the same problem once removed |
| 17:54:20 | <Logio> | I actually remember having to get rid of pandoc at some point since it was just too much, every .z release causing hours of rebuilds on an old machine |
| 17:54:36 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 17:56:23 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 17:56:53 | <monochrom> | My solution is to not use gentoo. |
| 17:56:55 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:57:25 | <monochrom> | But I can see how it even needs to rebuild GHC every 2 months. |
| 17:58:28 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 17:59:10 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:59:20 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 18:00:35 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 18:00:42 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.4) |
| 18:01:01 | → | dcoutts__ joins (~duncan@host86-151-9-6.range86-151.btcentralplus.com) |
| 18:01:24 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 18:03:50 | × | dcoutts_ quits (~duncan@host86-155-218-224.range86-155.btcentralplus.com) (Ping timeout: 272 seconds) |
| 18:07:20 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
| 18:08:54 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 18:09:59 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 240 seconds) |
| 18:10:27 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 18:12:05 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 18:12:37 | × | dcoutts__ quits (~duncan@host86-151-9-6.range86-151.btcentralplus.com) (Remote host closed the connection) |
| 18:12:43 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 18:12:59 | → | dcoutts__ joins (~duncan@host86-151-9-6.range86-151.btcentralplus.com) |
| 18:13:02 | → | anomal joins (~anomal@87.227.196.109) |
| 18:13:46 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 18:16:04 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:16:08 | × | zeenk quits (~zeenk@2a02:2f04:a109:fa00:116f:8f1a:7ce7:cae5) (Quit: Konversation terminated!) |
| 18:16:19 | → | xkuru joins (~xkuru@user/xkuru) |
| 18:17:06 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:18:03 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Client Quit) |
| 18:18:18 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 18:19:56 | <Franciman> | how much does it take to compile ghc, Logio ? |
| 18:20:54 | <EvanR> | give your answer in gigaflops |
| 18:21:19 | <Franciman> | LOL |
| 18:22:20 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:22:40 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:22:46 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 18:23:07 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds) |
| 18:25:41 | → | arjun joins (~arjun@user/arjun) |
| 18:26:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 18:26:06 | <arjun> | hi |
| 18:26:22 | <arjun> | i seem to have 9 workspaces by default |
| 18:26:38 | <tomsmeding> | arjun: #xmonad |
| 18:26:43 | <arjun> | wrongChannelMyBad |
| 18:26:49 | <tomsmeding> | :) |
| 18:26:58 | <arjun> | :) |
| 18:27:23 | <tomsmeding> | @botsnack |
| 18:27:23 | <lambdabot> | :) |
| 18:27:57 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
| 18:28:05 | <sm> | I also got rid of all references to pandoc source in my projects (eg hakyll sites), now strictly using only prebuilt pandoc binaries |
| 18:29:58 | <monochrom> | xmonad was written by a cat. It has 9 lives, so it wants 9 workspaces by default. :) |
| 18:30:16 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 18:30:56 | <monochrom> | @query lambdabot |
| 18:30:56 | <lambdabot> | Unknown command, try @list |
| 18:31:20 | × | sprout quits (~quassel@2a02-a45f-f170-1-dc46-b3e0-ed65-be35.fixed6.kpn.net) (Ping timeout: 248 seconds) |
| 18:31:21 | <EvanR> | xmonad runs on conway's life automaton |
| 18:31:35 | <EvanR> | it's behavior is defined with 9 rules |
| 18:31:52 | <arjun> | i just logged back into xmonad after a week of i3 |
| 18:32:05 | <arjun> | is it just me or does it just feel more comfortable |
| 18:32:20 | <EvanR> | never used xmonad sorry |
| 18:32:24 | <tomsmeding> | could it just be what you're used to |
| 18:32:32 | <arjun> | also, font rendering seems a bit sharper in xmonad, it could just be placebo |
| 18:32:50 | <arjun> | tomsmeding, i'm used to xfce :p |
| 18:33:04 | <EvanR> | a good rule of thumb, if you think text rendering improved, it probably didn't |
| 18:33:24 | <monochrom> | I never used i3. |
| 18:33:41 | <arjun> | EvanR, since i moved to thinkpads, i've pretty much dropped my standards for sharpness |
| 18:33:50 | <arjun> | i'll take anything on that matter |
| 18:33:50 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:33:52 | → | dh97 joins (~dh97@2401:4900:16ef:2167:a3b2:ae61:ac0b:1718) |
| 18:34:12 | <tomsmeding> | I recently put i3 on my work laptop (had ubuntu WM) because between ubuntu's gnome derivative, pure gnome, and i3, i3 was the only one that didn't drop to 1FPS when connecting an external monitor |
| 18:34:19 | <tomsmeding> | and no I have no idea what's going on there |
| 18:34:41 | <geekosaur> | compositing? |
| 18:34:49 | <tomsmeding> | 🤔 |
| 18:35:02 | <tomsmeding> | embarassing if true |
| 18:36:16 | <geekosaur> | compositing will always be slower, even if accelerated by e.g. opengl. that said, I wouldn't expect it to be *that* slow unless it's e.g. newer versions of picom that have lots of unnecessary calls in their hot path |
| 18:36:24 | <geekosaur> | but gnome doesn't use picom |
| 18:36:35 | <tomsmeding> | no it was really <1FPS, I'm not exaggerating |
| 18:36:49 | <tomsmeding> | so if it's the compositor, there's still something _really_ wrong |
| 18:37:03 | → | littlebo2eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:37:57 | → | hexfive joins (~eric@50.35.83.177) |
| 18:37:58 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 18:38:11 | <arjun> | tomsmeding, were you running crysis in the background? |
| 18:38:22 | <tomsmeding> | no, just ubuntu |
| 18:38:30 | <tomsmeding> | dunno, maybe that's enough |
| 18:38:35 | <arjun> | then it's weird |
| 18:39:31 | × | Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds)) |
| 18:39:39 | <tomsmeding> | feels slightly slower in i3+picom than plain i3, but nowhere as bad as ubuntu wm |
| 18:39:52 | → | Flonk joins (~Flonk@vps-zap441517-1.zap-srv.com) |
| 18:40:09 | <tomsmeding> | in any case this is heavily offtopic lol |
| 18:40:22 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) |
| 18:40:34 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 18:40:34 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 18:41:41 | → | redb joins (~nmh@136.49.49.211) |
| 18:42:02 | <mrianbloom> | Let's say I |
| 18:42:53 | <mrianbloom> | I- I'm modeling an object oriented system. And there are objects called Entitys and parameters called properties. |
| 18:43:47 | <mrianbloom> | I want to use the type system in Haskell to enforce that I can never add a certain property to an entity unless it's know to contain that property. |
| 18:43:54 | <mrianbloom> | *known |
| 18:43:59 | <EvanR> | I'm modeling a database system. And there are objects called Tables and parameters called columns xD |
| 18:44:07 | <mrianbloom> | :) |
| 18:44:45 | <EvanR> | (table would be a class of objects, instances would be rows) |
| 18:44:51 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:44:51 | <mrianbloom> | Is the best way to enforce property ownership, to do it with multiparameter typeclasses? |
| 18:46:06 | <mrianbloom> | For example if I have a function addProp :: SomeProperty -> SomeEntity -> SomeEntity |
| 18:46:16 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 18:47:09 | <mrianbloom> | And each of those types is a GADT that describes which type of entity and which type of property. |
| 18:47:46 | <mrianbloom> | Many properties are shared by various entities. |
| 18:47:51 | <monochrom> | I don't know what means "entity", "property", "add property to entity", and worst of all "add property to entity but the entity must have that property in the first place" if I already know Haskell why would you add the property "knows Haskell" to me? |
| 18:48:31 | <monochrom> | This is why people should either do denotational design or write down typing rules. |
| 18:48:52 | <mrianbloom> | Good point. Lets say the function is modifyProperty :: (SomeProperty -> SomeProperty) -> SomeEntity -> SomeEntity |
| 18:49:16 | <tomsmeding> | can different entities have the same property? |
| 18:49:23 | <mrianbloom> | Yes |
| 18:49:36 | <tomsmeding> | that's not like any OO system I know, but then maybe it's smalltalk, I don't know smalltalk |
| 18:49:53 | → | redb joins (~nmh@136.49.49.211) |
| 18:50:00 | <EvanR> | the rule was "the operation is only well typed if the objects happens to already have that property" |
| 18:50:10 | <mrianbloom> | I'm writing a haskell API for a OO system basically. |
| 18:50:13 | <EvanR> | which is a dynamic circumstance and is not going to be easy to encode |
| 18:50:44 | <mrianbloom> | Ownership of a property is static depending on the type of entity. |
| 18:50:51 | <monochrom> | OK so, lens? |
| 18:50:53 | <EvanR> | Like I was saying earlier I think it's easier if you decide ahead of time what has what properties |
| 18:50:55 | <geekosaur> | you can encode that with a type level list, but that's going to be pretty hideous to work with |
| 18:51:19 | <mrianbloom> | I see. I'll look into those. |
| 18:51:51 | <tomsmeding> | mrianbloom: why is an entity not just a record with a bunch of properties as fields? Is it really essential that different entities have the _same_ property thing? |
| 18:52:06 | <EvanR> | to share field names among different object types, that's AOL keyword "extensible records" |
| 18:52:35 | <EvanR> | which can be implemented with heterolists but yeah tricky business (in haskell) |
| 18:53:29 | <EvanR> | practically you may get more milage not sharing the concept of Property among different types |
| 18:53:46 | <EvanR> | and may find it's doesn't really help anyway |
| 18:54:18 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
| 18:54:19 | × | dh97 quits (~dh97@2401:4900:16ef:2167:a3b2:ae61:ac0b:1718) (Ping timeout: 240 seconds) |
| 18:54:43 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:55:10 | <EvanR> | it is still possible to name the fields of different types the same, using the module system and qualified names |
| 18:55:22 | <mrianbloom> | tomsmeding: I'm actually encoding a series of operations that are fed to a server so the objects I'm manipulating are not in haskell, and I'm just hoping to determine if an operation is legal on the type level before I encode it. |
| 18:55:37 | <tomsmeding> | I see |
| 18:56:03 | <tomsmeding> | yeah then a multi-param type class might be an idea, like 'class HasProp entity property' |
| 18:56:20 | <tomsmeding> | depending on how type-safe you want to make this, the class need not even have any methods |
| 18:56:34 | × | littlebo2eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 18:56:41 | <tomsmeding> | an empty class is just a relation between types, where the (empty) instances are the axioms of the relation |
| 18:56:49 | <mrianbloom> | Right. The multi-param type class just feels odd. |
| 18:57:06 | <tomsmeding> | because it's empty, because it's multi-param, or because this feels like the wrong place to use a type class? |
| 18:57:09 | → | redb joins (~nmh@136.49.49.211) |
| 18:57:33 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 18:58:14 | <tomsmeding> | I mean, another option would be to have a type family that maps an entity type to a type-level list of the properties that it contains, but I doubt whether that's actually more useful in practice than the type class approach |
| 18:58:15 | <mrianbloom> | Well for example the user of my API will get an unineilligible error message. |
| 18:58:56 | <EvanR> | such as, no instance HasProp MiddleName Employee |
| 18:58:56 | <mrianbloom> | ...with the multiparameter method. |
| 18:59:41 | <EvanR> | I guess "Employee has no property MiddleName" is more humane |
| 18:59:54 | → | littlebo3eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:00:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:00:05 | <tomsmeding> | mrianbloom: "No instance for (Has E2 P1) arising from a use of ‘foo’" -- seems an okay error message |
| 19:00:18 | <tomsmeding> | https://play-haskell.tomsmeding.com/play/paste/NS25TEFY/1 |
| 19:00:32 | <mrianbloom> | Seems pretty good actually. |
| 19:00:44 | <mrianbloom> | It is a constraint after all. |
| 19:01:37 | <EvanR> | also, could customized type error messages be used |
| 19:01:45 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
| 19:02:16 | <mrianbloom> | That's possible. I was looking for how to write those, I've seen them before in the CLUtil api |
| 19:02:45 | <maerwald> | finally, neovim fixed the Ctrl+i vs tab debacle and I can switch |
| 19:02:46 | → | redb joins (~nmh@136.49.49.211) |
| 19:03:08 | <tomsmeding> | EvanR: mrianbloom: https://play-haskell.tomsmeding.com/play/paste/m4FbUm2A/1 |
| 19:03:32 | <tomsmeding> | it's nice, but requires a bunch of language extensions that would otherwise be unnecessary, and it's not even _that_ huge of an improvement IMO |
| 19:04:26 | <mrianbloom> | That's pretty great though. I'll give it a shot and see how annoying the extensions are. |
| 19:04:34 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 19:04:34 | <mrianbloom> | Thank you. |
| 19:06:47 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
| 19:07:08 | <tomsmeding> | maerwald: what was the debacle |
| 19:07:13 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 19:07:27 | <maerwald> | tomsmeding: it wouldn't distinguish them and they debated on how to fix it for 5 years |
| 19:07:27 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:07:50 | <tomsmeding> | how _do_ you distinguish them |
| 19:08:02 | <geekosaur> | in a gui environment they're distinct |
| 19:08:04 | <maerwald> | well, for GUIs it's pretty obvious... it couldn't even do that |
| 19:08:09 | <tomsmeding> | ah I see |
| 19:08:17 | tomsmeding | was thinking about a terminal environment |
| 19:08:30 | <maerwald> | now they use CSI u |
| 19:08:58 | <maerwald> | so you have to teach your terminal now to send the CSI u keycode for Ctrl+i |
| 19:10:07 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:9059:7534:3810:b9c6) (Ping timeout: 240 seconds) |
| 19:12:15 | → | sprout joins (~quassel@2a02-a467-ccd6-1-ed7e-2264-bed5-6948.fixed6.kpn.net) |
| 19:12:26 | → | redb joins (~nmh@136.49.49.211) |
| 19:15:15 | × | arjun quits (~arjun@user/arjun) (Remote host closed the connection) |
| 19:16:27 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
| 19:17:43 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:19:59 | → | redb joins (~nmh@136.49.49.211) |
| 19:21:57 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 19:24:54 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 19:31:07 | × | martin02_ quits (~silas@141.84.69.76) (Ping timeout: 240 seconds) |
| 19:32:18 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 276 seconds) |
| 19:34:25 | → | deadmarshal_ joins (~deadmarsh@95.38.119.247) |
| 19:36:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:36:27 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 19:36:55 | → | Lycurgus joins (~juan@98.4.112.204) |
| 19:38:50 | → | redb joins (~nmh@136.49.49.211) |
| 19:41:28 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:2084:cd50:1a1b:e908) |
| 19:43:52 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 248 seconds) |
| 19:43:54 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 19:44:57 | → | martin02_ joins (~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1) |
| 19:52:48 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
| 19:55:29 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 19:56:44 | → | redb joins (~nmh@136.49.49.211) |
| 19:59:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:01:03 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:2084:cd50:1a1b:e908) (Quit: WeeChat 2.8) |
| 20:02:34 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 20:03:00 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 20:04:10 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:07:04 | × | littlebo3eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:12:21 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:13:15 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Ping timeout: 276 seconds) |
| 20:13:33 | × | redb quits (~nmh@136.49.49.211) (Read error: Connection reset by peer) |
| 20:14:18 | → | vorpuni joins (~pvorp@2001:861:3881:c690:e32d:1997:1f61:d569) |
| 20:14:21 | → | yous joins (~Polo@user/polo) |
| 20:17:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:18:30 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:20:46 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 20:23:28 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:24:38 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 20:25:37 | × | dextaa4 quits (~dextaa@user/dextaa) (Ping timeout: 256 seconds) |
| 20:27:03 | → | stackdroid18 joins (14094@user/stackdroid) |
| 20:27:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:28:22 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 20:29:01 | × | yauhsien quits (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 20:31:46 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:31:57 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 20:34:10 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:36:05 | → | zebrag joins (~chris@user/zebrag) |
| 20:42:35 | → | pavonia joins (~user@user/siracusa) |
| 20:44:33 | → | coot joins (~coot@213.134.190.95) |
| 20:49:11 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:51:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:51:35 | × | Vajb quits (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) (Read error: Connection reset by peer) |
| 20:52:11 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 20:52:48 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 250 seconds) |
| 20:53:03 | → | dostoevsky9 joins (~5c42c5384@user/dostoevsky) |
| 20:54:39 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds) |
| 20:54:39 | dostoevsky9 | is now known as dostoevsky |
| 20:55:59 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 20:56:24 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 20:57:24 | → | smitop2 joins (uid328768@id-328768.tinside.irccloud.com) |
| 20:59:34 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 21:00:29 | × | michalz quits (~michalz@185.246.204.109) (Remote host closed the connection) |
| 21:01:40 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:02:42 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:02:57 | × | yous quits (~Polo@user/polo) (Quit: Textual IRC Client: www.textualapp.com) |
| 21:03:41 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 21:05:24 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:06:15 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:09:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:10:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:19:34 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:23:25 | × | deadmarshal_ quits (~deadmarsh@95.38.119.247) (Ping timeout: 256 seconds) |
| 21:24:45 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 21:24:48 | → | darkling joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) |
| 21:35:21 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:51:34 | → | jargon joins (~jargon@174-22-206-112.phnx.qwest.net) |
| 21:55:41 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 21:58:29 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
| 22:00:47 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:02:32 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 22:03:15 | <abastro[m]> | How is haskell playground formatting going |
| 22:04:39 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 22:07:33 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 22:07:51 | × | vorpuni quits (~pvorp@2001:861:3881:c690:e32d:1997:1f61:d569) (Quit: bye) |
| 22:09:00 | → | dcoutts_ joins (~duncan@host86-151-9-6.range86-151.btcentralplus.com) |
| 22:11:40 | × | dcoutts__ quits (~duncan@host86-151-9-6.range86-151.btcentralplus.com) (Ping timeout: 250 seconds) |
| 22:13:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:15:43 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 22:16:19 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 22:19:52 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 22:20:03 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 22:20:14 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 22:20:33 | → | alp_ joins (~alp@user/alp) |
| 22:21:38 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 22:23:16 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:27:10 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 252 seconds) |
| 22:27:31 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 22:28:08 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 22:31:06 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 22:31:17 | → | deadmarshal_ joins (~deadmarsh@95.38.230.79) |
| 22:32:53 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:32:58 | × | shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 22:33:20 | → | shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
| 22:33:23 | → | lainon joins (~lainon@2601:7c0:c500:4d20:5d28:87a4:ed98:5a13) |
| 22:35:35 | × | acidjnk quits (~acidjnk@p200300d0c73b450341d4da31930f8e6b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:36:15 | × | deadmarshal_ quits (~deadmarsh@95.38.230.79) (Ping timeout: 276 seconds) |
| 22:42:45 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 276 seconds) |
| 22:45:17 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:45:20 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:46:46 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 22:47:29 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 22:51:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:51:27 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 22:53:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:57:41 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:02:07 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:03:13 | × | king_gs quits (~Thunderbi@187.201.77.157) (Quit: king_gs) |
| 23:03:30 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 23:06:33 | <energizer> | is it possible to somehow compare classes? like Floating < Fractional < Num |
| 23:09:19 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 23:09:48 | × | king_gs quits (~Thunderbi@187.201.77.157) (Ping timeout: 246 seconds) |
| 23:11:01 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 23:14:39 | <geekosaur> | that question sounds confused |
| 23:16:32 | → | Pickchea joins (~private@user/pickchea) |
| 23:16:35 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 23:16:53 | <energizer> | there's an ordering |
| 23:17:14 | <energizer> | how can i take two classes and compare them? |
| 23:17:23 | <[Leary]> | With QuantifiedConstraints I suppose you can define and use a constraint synonym like `type c1 <= c2 = forall a. c1 a => c2 a`, but I wonder where you could meaningfully use it? |
| 23:17:43 | <exarkun> | energizer: There are lots of possible orderings. But does Haskell know about any of them? |
| 23:18:08 | <energizer> | haskell knows Fractional a => Floating a |
| 23:18:34 | <energizer> | which presumably implies Floating < Fractional fsvo < |
| 23:18:37 | <exarkun> | True, but that's not an ordering itself. It's a constraint. You could build an ordering out of it. |
| 23:19:24 | <exarkun> | Or you could say that you don't want an ordering of the typeclasses but instead you want to know a graph made out of typeclasses and their constraint relationships to each other. |
| 23:19:26 | <geekosaur> | right, but Haskell also lets you say things like data Foo a … ; instance Monad Foo where … ; instance Applicative Foo where { pure = return; <*> = ap; } |
| 23:19:38 | <geekosaur> | i.e. the relationship is not a strict one |
| 23:20:17 | <exarkun> | energizer: What are you going to do with the info? |
| 23:20:53 | <energizer> | exarkun: let's say i want to toposort them |
| 23:23:26 | <geekosaur> | toposort doesn't require ordering, just the => relationship (see tsort on unix) |
| 23:24:13 | <energizer> | what distinction are you making between => and ordering? |
| 23:24:51 | <geekosaur> | what distinction are *you* making between them? I'm not the onelooking for ordering |
| 23:25:31 | <exarkun> | energizer: yea but why |
| 23:25:38 | <exarkun> | energizer: if it's purely academic, cool, just say that :) |
| 23:26:02 | <janus> | energizer: i always read '=>' more like 'implies' |
| 23:26:55 | <energizer> | exarkun: sure, it's just curiosity i guess |
| 23:26:58 | <janus> | energizer: if you like 'propositions are types' it makes a lot of sense too, since it says 'if you have this precondition, you can derive this' |
| 23:27:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 23:28:25 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds) |
| 23:28:33 | <geekosaur> | except that doesn't quite work. You can have Fractional without Floating |
| 23:29:12 | <energizer> | :info Floating |
| 23:29:15 | <geekosaur> | I read `Fractional a => Floating a where` as `given a type "a" which has a Fractional instance, it has a Floating instance if` |
| 23:29:49 | <energizer> | ok |
| 23:29:54 | <geekosaur> | the standard types that have Floating are Float and Double. But Rational is a Fractional without Floating |
| 23:30:36 | <energizer> | i said it backwards |
| 23:30:47 | <energizer> | any Floating is also Fractional |
| 23:30:59 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:32:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:35:14 | × | mmhat quits (~mmh@55d4d7fb.access.ecotel.net) (Quit: WeeChat 3.5) |
| 23:38:59 | <geekosaur> | also you can get some decidedly odd relationships if you take this stuff too seriously. you can declare a Num instance for any Applicative, for instance (instance Applicative a => Num a where …) |
| 23:40:12 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 23:42:17 | <energizer> | i dont get it |
| 23:43:36 | <energizer> | unless /all/ Num instances are Applicative, it doesnt seem like a problem |
| 23:44:03 | <geekosaur> | no, but it'll complicate your toposort |
| 23:44:35 | <monochrom> | Please refer to the Haskell 2010 Report which would state that Floating is a "subclass" of Fractional, for example. |
| 23:44:43 | <geekosaur> | and you have that backwards. (and I left out a part, bad me. instance (Num a, Applicative f) => Num (f a) where) |
| 23:46:23 | <monochrom> | But perhaps knowing a magic word is less important than wtf does that word mean in the context of Haskell semantics. |
| 23:46:25 | <geekosaur> | I still think that makes it sound more OO than it is |
| 23:46:27 | <energizer> | is it possible to write `isSubclass` |
| 23:46:46 | × | smitop2 quits (uid328768@id-328768.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:47:00 | <[Leary]> | The relation as I defined it is a partial order if you relax your notion of equality a little, and should correspond to superclasses/subclasses. I don't think you can get funky results by writing funky /instances/, only funky /classes/. |
| 23:47:27 | <monochrom> | Well yes but the ship has sailed. It all went wrong on day one starting with "class Fractional" |
| 23:47:57 | <geekosaur> | energizer, neither types nor constraints exist at value level. in other words, what would you call isSubclass on? |
| 23:48:39 | <energizer> | geekosaur: i think that's the answer i was looking for |
| 23:49:20 | <geekosaur> | @let isSubclass :: Constraint -> Constraint -> Bool |
| 23:49:21 | <lambdabot> | /sandbox/tmp/.L.hs:176:1: error: |
| 23:49:21 | <lambdabot> | The type signature for ‘isSubclass’ lacks an accompanying binding |
| 23:49:21 | <lambdabot> | | |
| 23:49:33 | <geekosaur> | huh, I expected an error before that |
| 23:49:42 | <geekosaur> | @let isSubclass :: Constraint -> Constraint -> Bool; isSubclass = undefined |
| 23:49:44 | <lambdabot> | Defined. |
| 23:49:51 | <geekosaur> | oh really |
| 23:50:19 | <monochrom> | Perhaps type-in-type :) |
| 23:50:22 | <geekosaur> | somehow I suspect fancy type level machinery is biting me in the butt and this doesn't mean what I think |
| 23:50:36 | <geekosaur> | well, there was a point where Constraint and Type were the same thing |
| 23:51:06 | <geekosaur> | > Fractional `isSubclass` Num |
| 23:51:08 | <lambdabot> | error: |
| 23:51:08 | <lambdabot> | • Data constructor not in scope: Fractional :: Constraint |
| 23:51:08 | <lambdabot> | • Perhaps you meant variable ‘rational’ (imported from Text.PrettyPrint.... |
| 23:51:34 | <geekosaur> | right, not even doing what I intended :) |
| 23:51:37 | <geekosaur> | @undefine |
| 23:51:37 | <lambdabot> | Undefined. |
| 23:51:55 | <geekosaur> | @let {-# LANGUAGE ConstraintKinds #-} |
| 23:51:56 | <lambdabot> | Defined. |
| 23:52:02 | <geekosaur> | @let isSubclass :: Constraint -> Constraint -> Bool; isSubclass = undefined |
| 23:52:03 | <lambdabot> | Defined. |
| 23:52:08 | <geekosaur> | > Fractional `isSubclass` Num |
| 23:52:09 | <lambdabot> | error: |
| 23:52:09 | <lambdabot> | • Data constructor not in scope: Fractional :: Constraint |
| 23:52:09 | <lambdabot> | • Perhaps you meant variable ‘rational’ (imported from Text.PrettyPrint.... |
| 23:52:45 | <geekosaur> | right, this is taking what I wrote as something completely different |
| 23:54:01 | <hpc> | first off, Fractional isn't :: Constraint |
| 23:54:50 | <hpc> | :t (Fractional Rational) `isSubclass` (Num Rational) |
| 23:54:51 | <lambdabot> | error: |
| 23:54:51 | <lambdabot> | • Data constructor not in scope: Fractional :: t0 -> Constraint |
| 23:54:51 | <lambdabot> | • Perhaps you meant variable ‘rational’ (imported from Text.PrettyPrint.HughesPJ) |
| 23:54:54 | <monochrom> | "Constraint :: Type" is true. Whenever "Foo :: Type" is true, "f :: Foo -> ..." is legal. |
| 23:55:11 | <hpc> | :k Fractional |
| 23:55:12 | <lambdabot> | * -> Constraint |
| 23:55:28 | <hpc> | ugh |
| 23:55:53 | <hpc> | @let {-# LANGUAGE DataKinds #-} |
| 23:55:54 | <lambdabot> | Defined. |
| 23:55:56 | <hpc> | :t (Fractional Rational) `isSubclass` (Num Rational) |
| 23:55:57 | <lambdabot> | error: |
| 23:55:57 | <lambdabot> | • Data constructor not in scope: Fractional :: t0 -> Constraint |
| 23:55:57 | <lambdabot> | • Perhaps you meant variable ‘rational’ (imported from Text.PrettyPrint.HughesPJ) |
| 23:56:14 | <monochrom> | "Fractional Rational :: Constraint" both type-checks and is true. However, "Fractional Rational" is not a term-level thing. |
| 23:56:25 | <hpc> | :k (Fractional Rational) `isSubclass` (Num Rational) |
| 23:56:26 | <lambdabot> | error: Not in scope: type variable ‘isSubclass’ |
| 23:56:30 | <hpc> | ah right, because :t |
| 23:56:36 | <hpc> | or > |
| 23:57:15 | <hpc> | :k (Fractional Rational) `'isSubclass` (Num Rational) |
| 23:57:16 | <lambdabot> | error: parse error on input ‘'’ |
| 23:57:39 | <monochrom> | Type-level syntax does not support `div` :) |
| 23:57:48 | → | ahammer joins (~ahammer@157.122.68.227) |
| 23:57:50 | → | fernand joins (uid551405@id-551405.tinside.irccloud.com) |
| 23:58:22 | <monochrom> | Term-level "isSubclass" is not promoted to type level unless you use the templates from the singleton library... |
| 23:58:27 | → | yauhsien joins (~yauhsien@61-231-19-191.dynamic-ip.hinet.net) |
| 23:58:42 | <monochrom> | You may have better luck with Lean. |
| 23:59:10 | <hpc> | yeah, it's easy to take for granted how far the haskell type-level language has come sometimes |
| 23:59:36 | <hpc> | oh well |
| 23:59:46 | × | gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
All times are in UTC on 2022-04-29.