Logs: freenode/#haskell
| 2021-03-23 17:24:10 | × | MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 258 seconds) |
| 2021-03-23 17:24:17 | <davean> | ah |
| 2021-03-23 17:24:23 | × | v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection) |
| 2021-03-23 17:24:38 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 2021-03-23 17:24:48 | → | v01d4lph4 joins (~v01d4lph4@106.212.133.35) |
| 2021-03-23 17:24:48 | × | v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Read error: Connection reset by peer) |
| 2021-03-23 17:24:53 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 2021-03-23 17:25:13 | → | v01d4lph4 joins (~v01d4lph4@106.212.133.35) |
| 2021-03-23 17:25:17 | × | v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection) |
| 2021-03-23 17:26:20 | → | kenanmarasli joins (1fdf09d5@31.223.9.213) |
| 2021-03-23 17:26:29 | <minoru_shiraeesh> | geekosaur: "once one commits, the next will fail to find the user to kick, no?" |
| 2021-03-23 17:26:43 | × | aqd quits (~aqd@84.20.147.33) (Ping timeout: 245 seconds) |
| 2021-03-23 17:27:02 | <minoru_shiraeesh> | in order for kick to be effective, the kicked user's thread should enter the next iteration and recognize that it was kicked |
| 2021-03-23 17:27:04 | <geekosaur> | already corrected above, the other isn't in channel any more at that point |
| 2021-03-23 17:27:08 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds) |
| 2021-03-23 17:27:09 | <davean> | minoru_shiraeesh: well, where is the map deleted? |
| 2021-03-23 17:27:23 | <davean> | removeClient would do it |
| 2021-03-23 17:27:27 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 2021-03-23 17:27:38 | × | Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 2021-03-23 17:27:42 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 2021-03-23 17:27:46 | → | LKoen joins (~LKoen@194.250.88.92.rev.sfr.net) |
| 2021-03-23 17:28:02 | <minoru_shiraeesh> | but before entering the next iteration the kicked user could handle his own kick command |
| 2021-03-23 17:28:06 | × | peanut_ quits (~peanut@2a02:8388:a101:2600:9f7e:958d:f1dd:b94a) (Quit: Leaving) |
| 2021-03-23 17:28:33 | × | frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 256 seconds) |
| 2021-03-23 17:28:45 | <kenanmarasli> | This is probably a FAQ but I am looking at the book choices here and don't know which to pick: https://www.haskell.org/documentation/ |
| 2021-03-23 17:28:45 | <kenanmarasli> | Which book do you suggest for a 3rd year computer science student? |
| 2021-03-23 17:28:59 | × | ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
| 2021-03-23 17:29:32 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 2021-03-23 17:29:41 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 2021-03-23 17:29:43 | → | v01d4lph4 joins (~v01d4lph4@106.212.133.35) |
| 2021-03-23 17:30:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-03-23 17:30:29 | × | landonf quits (landonf@mac68k.info) (Excess Flood) |
| 2021-03-23 17:30:42 | × | borne quits (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 2021-03-23 17:30:43 | × | apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 272 seconds) |
| 2021-03-23 17:31:12 | × | graf_blutwurst quits (~user@2001:171b:226e:adc0:78b0:5183:4ef7:68f) (Remote host closed the connection) |
| 2021-03-23 17:31:40 | <davean> | atomically $ kick server who clientName <-- does not contain code to remove them from the channel |
| 2021-03-23 17:31:41 | <minoru_shiraeesh> | geekosaur: "already corrected above, the other isn't in channel any more at that point" - what if two threads run the "kick" function at the same time? |
| 2021-03-23 17:31:43 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 2021-03-23 17:31:56 | <davean> | minoru_shiraeesh: Thats not a proble, its atomic |
| 2021-03-23 17:32:08 | <davean> | but I see nothing that makes them not actually in the channel atomicly |
| 2021-03-23 17:32:30 | <davean> | it *does* set a kicked variable, but it doesn't change the channel member set |
| 2021-03-23 17:32:48 | <minoru_shiraeesh> | davean: yeah, but it seems to me that they both can successfully kick each other |
| 2021-03-23 17:32:48 | → | landonf joins (landonf@mac68k.info) |
| 2021-03-23 17:33:13 | <davean> | minoru_shiraeesh: I can believe that given this code. The code comments only talk about a 3rd person being kicked though |
| 2021-03-23 17:33:20 | <davean> | this code would be trivial to make obviously correct BTW |
| 2021-03-23 17:33:55 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 2021-03-23 17:33:56 | <minoru_shiraeesh> | davean: what comments? |
| 2021-03-23 17:34:03 | <monochrom> | kenanmarasli: http://www.vex.net/~trebla/haskell/learn-sources.html has my comments on those I have actually used or at least partly checked. |
| 2021-03-23 17:34:07 | <geekosaur> | there are usually as many answers to that one as there are answerers. I'm partial to Hutton's myselfhttp://www.cs.nott.ac.uk/~pszgmh/pih.html. Some prefer Bird's https://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/thinking-functionally-haskell |
| 2021-03-23 17:34:08 | × | smerdyakov quits (~dan@5.146.194.90) (Ping timeout: 240 seconds) |
| 2021-03-23 17:34:37 | → | frozenErebus joins (~frozenEre@94.128.81.87) |
| 2021-03-23 17:34:44 | <davean> | monochrom: but look down in "server" of "runClient" |
| 2021-03-23 17:34:52 | <geekosaur> | whoops, ran those together. http://www.cs.nott.ac.uk/~pszgmh/pih.html |
| 2021-03-23 17:34:52 | <monochrom> | Not me :) |
| 2021-03-23 17:34:55 | <minoru_shiraeesh> | davean: "this code would be trivial to make obviously correct BTW" - what do you mean? kick in one transaction? |
| 2021-03-23 17:34:57 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 2021-03-23 17:35:13 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 2021-03-23 17:35:30 | <davean> | "- Consistency: - if two clients simultaneously kick a third client, only one will be successful" |
| 2021-03-23 17:35:43 | → | MilkywayPirate joins (~user@178.157.255.8) |
| 2021-03-23 17:36:01 | <davean> | minoru_shiraeesh: put the kick logic in one place, not two, or comment about how it is correct and where to look for the rest of it. |
| 2021-03-23 17:36:17 | <minoru_shiraeesh> | oh, I missed that part about two clients kicking a third client |
| 2021-03-23 17:36:17 | <davean> | the difficulty with this design is they made there be two critical locations for kicking to function correctly. |
| 2021-03-23 17:36:41 | ← | mmkarakaya parts (~mmk@176.33.226.149) () |
| 2021-03-23 17:37:01 | <davean> | I do not like this code design |
| 2021-03-23 17:37:03 | <minoru_shiraeesh> | davean: you mean two transactions? |
| 2021-03-23 17:37:06 | <davean> | Also SO MANY THREADS |
| 2021-03-23 17:37:09 | <davean> | minoru_shiraeesh: no |
| 2021-03-23 17:37:13 | <davean> | I do not mean two transactions |
| 2021-03-23 17:39:01 | × | bgamari quits (~bgamari@72.65.101.179) (Quit: ZNC 1.8.1 - https://znc.in) |
| 2021-03-23 17:39:04 | <kenanmarasli> | monochrom: that was a nice read, thanks |
| 2021-03-23 17:39:11 | <monochrom> | :) |
| 2021-03-23 17:39:38 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 264 seconds) |
| 2021-03-23 17:39:46 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 2021-03-23 17:40:09 | × | Nahra quits (~Nahra@unaffiliated/nahra) (Ping timeout: 264 seconds) |
| 2021-03-23 17:41:43 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 2021-03-23 17:41:48 | → | Nahra joins (~Nahra@unaffiliated/nahra) |
| 2021-03-23 17:42:42 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 2021-03-23 17:42:55 | <minoru_shiraeesh> | I checked whether a book claims a guarantee about two users kicking each other case. Here is what it says: |
| 2021-03-23 17:42:59 | <minoru_shiraeesh> | <quote> |
| 2021-03-23 17:43:06 | → | valdyn joins (~valdyn@aftr-62-216-207-119.dynamic.mnet-online.de) |
| 2021-03-23 17:43:10 | <minoru_shiraeesh> | We should consider how to handle /kick because we want to guarantee that two clients cannot simultaneously kick each other. |
| 2021-03-23 17:43:17 | <minoru_shiraeesh> | This implies some synchronized, shared state for each client to indicate whether it has been kicked. |
| 2021-03-23 17:43:24 | <minoru_shiraeesh> | A server thread can then check that it has not already been kicked itself before kicking another client. |
| 2021-03-23 17:43:27 | <minoru_shiraeesh> | </quote> |
| 2021-03-23 17:44:36 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 2021-03-23 17:44:42 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
| 2021-03-23 17:44:48 | <minoru_shiraeesh> | but, as I said, the guarantee doesn't work because we broke atomicity when divided a transaction into two |
| 2021-03-23 17:45:28 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator") |
| 2021-03-23 17:46:08 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 2021-03-23 17:47:21 | → | bgamari joins (~bgamari@2001:470:e438::1) |
| 2021-03-23 17:47:37 | × | valdyn quits (~valdyn@aftr-62-216-207-119.dynamic.mnet-online.de) (Ping timeout: 260 seconds) |
| 2021-03-23 17:47:59 | → | valdyn joins (valdyn@c6a7cbec.vpn.njalla.net) |
| 2021-03-23 17:48:23 | × | carlomagno quits (~cararell@148.87.23.10) (Ping timeout: 245 seconds) |
| 2021-03-23 17:49:08 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 2021-03-23 17:49:22 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 2021-03-23 17:49:45 | → | Chousuke joins (oranenj@coffee.modeemi.fi) |
| 2021-03-23 17:49:50 | → | carlomagno joins (~cararell@148.87.23.10) |
| 2021-03-23 17:49:55 | <minoru_shiraeesh> | davean: "Also SO MANY THREADS" - two threads per client: one for translating input from client to commands (and add them to tchan), another to handle commands |
| 2021-03-23 17:51:53 | → | stree joins (~stree@68.36.8.116) |
| 2021-03-23 17:52:58 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
All times are in UTC.