Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
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.