00:02 (quit) dented42: Quit: Computer has gone to sleep. 00:17 (join) Fare 00:35 (join) Flatlander 00:35 (quit) jhemann: Ping timeout: 240 seconds 00:39 (join) jhemann 00:57 (join) dented42 01:02 (quit) jhemann: Read error: Connection reset by peer 01:02 (join) jhemann 01:11 (join) mithos28 01:54 (quit) yoklov: Quit: computer sleeping 01:57 (quit) Flatlander: Quit: Leaving 02:09 (quit) jhemann: Ping timeout: 245 seconds 02:10 (quit) mithos28: Quit: mithos28 02:11 (join) mithos28 02:11 (quit) mithos28: Client Quit 02:11 (join) jonrafkind 02:25 (quit) veer: Quit: Leaving 02:29 (quit) jao`: Ping timeout: 246 seconds 02:36 (quit) jonrafkind: Read error: Operation timed out 02:39 (join) cdidd 02:50 (join) jonrafkind 02:51 (join) mithos28 03:07 (quit) mithos28: Quit: mithos28 03:20 (join) bluezenix 03:29 (join) bluezenix1 03:29 (quit) bluezenix: Read error: Connection reset by peer 03:31 (join) bluezenix 03:32 (quit) bluezenix1: Read error: Connection reset by peer 03:38 (quit) jonrafkind: Ping timeout: 252 seconds 04:03 (quit) Shviller: Ping timeout: 245 seconds 04:04 (join) Shviller 04:18 (join) bitonic 04:24 (join) bluezenix1 04:24 (quit) bluezenix: Read error: Connection reset by peer 04:24 (quit) samth_: Ping timeout: 260 seconds 04:43 (quit) Kaylin: Quit: Leaving. 04:58 (quit) bluezenix1: Quit: Leaving. 05:02 (join) mceier 05:17 (join) bluezenix 05:22 (join) bluezenix1 05:22 (quit) bluezenix: Read error: Connection reset by peer 05:25 (quit) bitonic: Quit: WeeChat 0.3.5 05:28 (join) kvda 05:30 (quit) bluezenix1: Quit: Leaving. 06:18 (join) masm 06:33 (quit) s3rhart: Quit: Leaving. 06:43 (quit) kvda: Quit: Computer has gone to sleep. 07:31 (join) bluezenix 07:32 (quit) bluezenix: Client Quit 07:32 (join) bluezenix 07:32 (quit) bluezenix: Client Quit 07:36 (join) bluezenix 08:01 (quit) cipher: Ping timeout: 248 seconds 08:17 (join) cipher 08:17 (nick) cipher -> Guest81482 08:19 (quit) bluezenix: Quit: Leaving. 08:43 (join) jeapostrophe 08:53 (quit) karswell: Remote host closed the connection 08:57 (join) kvda 09:00 (join) bluezenix 09:04 (join) karswell 09:15 (quit) Shozan: Quit: Going down. 09:16 (join) Shozan 09:17 (nick) Shozan -> SHODAN 09:41 (quit) kvda: Quit: x__x 09:57 (quit) bluezenix: Quit: Leaving. 10:08 (join) yoklov 10:17 (join) bluezenix 10:22 (quit) karswell: Remote host closed the connection 10:32 (join) karswell 11:24 (join) jhemann 11:34 (join) Skola 11:34 (join) Skola_ 11:34 (quit) Skola_: Client Quit 11:52 (join) mithos28 11:53 (join) jhemann_ 11:53 (quit) karswell: Remote host closed the connection 11:56 (quit) jhemann: Ping timeout: 260 seconds 12:01 (quit) jeapostrophe: Ping timeout: 248 seconds 12:03 (join) karswell 12:13 (join) chrissbx 12:20 (quit) noam: Read error: Connection reset by peer 12:21 (join) noam 12:21 (quit) noam: Read error: Connection reset by peer 12:21 (join) noam 12:27 (join) antithesis 12:38 (join) dnolen 12:43 (join) MrWiggin 12:45 MrWiggin: just learning Scheme - why racket? 12:46 mithos28: MrWiggin: how are you learning scheme, sicp, htdp, through a class, or just on your own? 12:46 MrWiggin: sicp - online berkely 2011 lectures 12:47 mithos28: what environment do they use? 12:47 MrWiggin: STk - with some Berkely custome functions 12:48 (quit) noam: Read error: Connection reset by peer 12:49 (join) noam 12:49 mithos28: So I have never used that scheme implementation, so I cannot really say what is different between the two 12:49 mithos28: but if you are using simple stuff for learning scheme, you will probably not find much difference between the actual implementations 12:50 mithos28: racket has great documentation, and community (i.e. this IRC) 12:50 (quit) chrissbx: Ping timeout: 276 seconds 12:51 MrWiggin: at racket-lang.org it says that it is a descendant of scheme - i got intersted in functional programming - would i recognize racket after learning scheme? 12:51 mithos28: yes, as of a couple years ago racket was called PLT scheme and was just a dialect of scheme 12:52 MrWiggin: :) simple stuff yes - scripting/apps for my own use mainly 12:52 mithos28: the name change happened for many reasons, but one of them was racket has a lot more stuff than is in the standard spec of scheme 12:53 (join) chrissbx 12:53 MrWiggin: saw that 12:53 mithos28: racket has a large standard library for regex, http, threads, gui and other things I'm not sure about stk 12:53 MrWiggin: thought i'd just drop in and monitor the chatter 12:54 mithos28: its quiet at times, but there are often people around. I for one don't usually initiate posts myself, but answer questions people have 12:55 MrWiggin: i didn't look hard but also din't see many extensions - i think it is R5RS (?) using TK for the gui interface 12:55 mithos28: that would make sense for the tk in the name 12:56 mithos28: racket also has a module system, which r5rs didn't have 12:57 MrWiggin: I like modules. would racket still be considered a 'functional' language? or has it diverged into other realms? 12:58 (join) jonrafkind 12:58 mithos28: Functional doesn't have a solid definition. It is as functional as scheme or ML, some may say haskell is more functional. 12:59 mithos28: I would say very much so it is a functional language, but purists might say otherwise. 12:59 MrWiggin: hmmm .. and i'm sure i really don't understand what i am saying 12:59 mithos28: If you are comparing it to c,python, java then yes it is a functional language. 13:00 mithos28: If you are comparing it to coq then maybe not. 13:01 mithos28: If you are looking to learn scheme, I would recommend it. The only warning is that racket pairs (i.e. cons) are not mutable, and scheme pairs are. 13:01 asumu: "Functional" isn't too meaningful really. See http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/ 13:01 rudybot: http://tinyurl.com/55rjug 13:02 MrWiggin: I did the same on-line learning thing for Python aabout 18 months ago and have been using it a lot - I like it - then I read a Text Processing In Python online book which opened my horizons to 'functional programming' now I am happily sidetracked into learning scheme 13:03 mithos28: If you want a book specifically for racket, http://www.htdp.org/ 13:03 mithos28: and the start of the second edition 13:03 mithos28: http://www.ccs.neu.edu/home/matthias/HtDP2e/ 13:03 MrWiggin: this is what really got me interested - http://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf 13:04 mithos28: I'm getting a dead link on that, but I know the paper 13:04 mithos28: is is this one? 13:04 mithos28: http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf 13:05 MrWiggin: sorry bout that i just bookmarked that a couple weeks ago 13:06 mithos28: If you want to learn about that, then learning racket and following sicp or htdp is a great way to go 13:07 MrWiggin: yep - i read the 1984 version 13:08 MrWiggin: cool. probably just finish up the lectures with STk then look at racket? if I start looking at racket before i finish up will i confuse myself? 13:09 MrWiggin: thnz asumu 13:10 asumu: MrWiggin: Though I still refer to things as functional colloquially. I just mean to say there's no agreed-upon definition of it. 13:10 mithos28: I don't think you will confuse yourself, most of your scheme programs will work just fine in drracket in r5rs mode. 13:11 asumu: And there are lots of Internet debates on what it means and they're mostly pointless. :) 13:11 MrWiggin: yep - i understood 13:11 mithos28: which you can enable through the menus 13:11 mithos28: or add #lang r5rs to the top of your file 13:11 asumu: Though it looks like STk implements R4RS, so there might be some minor differences. 13:12 MrWiggin: hmmm .. the STk gui/environment/interface is lacking a bit 13:13 (quit) bluezenix: Quit: Leaving. 13:13 mithos28: racket's is very good, it uses native widgets in all 3 OSes 13:13 mithos28: with the same api at the racket level 13:13 MrWiggin: and why is it called cons? 13:14 mithos28: http://en.wikipedia.org/wiki/CAR_and_CDR#Etymology 13:15 mithos28: that actually doesn't say why it is cons though 13:15 mithos28: just why car and cdr 13:15 mithos28: I think it is short for construct 13:15 (join) alexshendi 13:20 alexshendi: Hello, I am in the process of installing racket on an ARM based netbook. The install is roughly spending more than 10h doing "making drracket ... images". Is that expected? 13:20 mithos28: That doesn't sound right 13:20 mithos28: The full build is an hour or so on my core 2 duo 13:21 bremner: well, the docs are very memory intensive to build 13:21 MrWiggin: ahh terminology relating to old school programming - i'll keep construct in mind and read again 13:21 bremner: alexshendi: try building it without the docs 13:21 mithos28: I think it is --disable-docs passed into configure 13:21 MrWiggin: thnx all 13:21 alexshendi: bremner: how so? 13:21 alexshendi: Ok, thanks 13:22 bremner: alexshendi: what environment btw? 13:22 bremner: OS? 13:22 alexshendi: bremner: xubuntu 10.10 13:23 alexshendi: Btw ra ket-textual installs OK. 13:23 bremner: alexshendi: I don't know if it will help you, but Debian already builds racket on ARM 13:24 alexshendi: I have tried to switch to Debian, but w/o luck so far. 13:25 jamessan: but you could likely use the packages that are already built :) 13:27 alexshendi: The problem is xubuntu 10.10 (which the device came with 13:28 alexshendi: is not supported anymore, so no packages :-( 13:29 alexshendi: The makers of the device advice 13:29 alexshendi: against upgrading ubuntu, as this can brick the machine. 13:30 jamessan: sure, but as long as the dependencies of the Debian package are satisfied on your system, then you could install it instead of building your own 13:31 bremner: I guess things like libc will be too old. 13:34 alexshendi: I guess I'll just wait, If a Core2 Duo needs 1h, a humble Cortex-A8 might take longer :) 13:35 alexshendi: Thanks anyway ... 13:35 jamessan: tends to take ~45 minutes on my i7 13:36 bremner: jamessan: parallel builds help 13:36 (quit) chrissbx: Ping timeout: 276 seconds 13:36 bremner: it's more like 16 on my i7 in parallel, iirc 13:37 jamessan: yeah, probably should do that, but I've had my laptop hard shutdown while building racket a few times :) think it gets a bit too hot 13:37 bremner: oh, yeah could be. 14:03 (quit) dnolen: Ping timeout: 252 seconds 14:12 (quit) jhemann_: Ping timeout: 245 seconds 14:12 (join) jhemann 14:22 (join) Kaylin 14:27 chandler: jamessan: I'm guessing it's a thinkpad? 14:29 jamessan: chandler: nope 14:31 chandler: ah. I've seen a lot of complaints about thermal shutdown on the x201 and x220 14:31 (join) fftb 14:44 (part) MrWiggin 14:55 (quit) Fare: Quit: Leaving 15:02 asumu recently got a thermal shutdown while computing a Project Euler problem using Lazy Racket :p 15:06 Skola: you can get a thermal shutdown on 1+1 if your hardware is bad enough 15:08 chandler: or if your OS is bad enough... 15:08 Skola: on solid hardware, can you force a thermal shutdown? 15:09 Skola: without purposely breaking your CPU/cooling? 15:10 chandler: what is "solid hardware"? most laptops place fan speed under software control for noise and power reasons 15:12 Skola: sure, bad enough as in broken? of course 15:27 (quit) cdidd: Remote host closed the connection 15:33 (part) alexshendi: "wIRC" 15:39 (quit) karswell: Read error: Connection reset by peer 15:49 (join) karswell 15:55 (quit) Skola: Quit: Lost terminal 15:55 (join) RacketCommitBot 15:55 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/VHxsLQ 15:55 RacketCommitBot: [racket/master] adjust the way 'new' is laid out in the documentation to be more DrRacket-like - Robby Findler 15:55 (part) RacketCommitBot 16:00 (quit) Kaylin: Quit: Leaving. 16:03 (quit) karswell: Remote host closed the connection 16:13 (join) karswell 16:16 (join) RacketCommitBot 16:16 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/nc2uhA 16:16 RacketCommitBot: [racket/master] fix the contract-name accessor for struct/dc contracts - Robby Findler 16:16 (part) RacketCommitBot 16:27 (quit) karswell: Remote host closed the connection 16:38 (join) karswell 16:56 (join) jeapostrophe 17:05 (quit) jeapostrophe: Ping timeout: 240 seconds 17:08 (join) Kaylin 17:14 (quit) karswell: Remote host closed the connection 17:18 (join) ssbr_ 17:24 (join) karswell 17:26 (quit) fftb: Remote host closed the connection 17:41 (join) snorble_ 17:49 (quit) antithesis: Quit: yes leaving 17:50 (quit) karswell: Remote host closed the connection 17:52 (join) anRch 18:01 (join) karswell 18:17 (quit) yoklov: Quit: computer sleeping 18:18 asumu: Hmm, I think I've found a bug but it's hard to reproduce. 18:19 asumu: (segfaulted while reversing a large list using delimited continuations) 18:19 mithos28: how would a segfault not be a bug? 18:20 asumu: I can't reproduce it consistently. 18:20 asumu: Trying to figure out a way to get it consistently right now. 18:23 asumu: BTW: delimited continuations are not very efficient... 18:23 mithos28: in terms of the implementation? 18:23 asumu: Yes, it seems so. I wrote a reverse function using the continuation to accumulate the reversed list. 18:24 asumu: It's faaaaar slower than the straightforward accumulator solution. 18:25 asumu: Then again, it's probably not a good idea in general to capture continuations in a tight loop. 18:35 asumu: Aha, I have an example. 18:35 mithos28: nice 18:36 asumu: (require racket/control) (define (loop) (shift s (loop))) (define (go) (reset (loop))) (go) 18:36 (quit) karswell: Remote host closed the connection 18:36 mithos28: rudybot: (require racket/control) 18:36 rudybot: mithos28: your sandbox is ready 18:36 rudybot: mithos28: Done. 18:36 mithos28: rudybot: (define (loop) (shift s (loop))) 18:36 rudybot: mithos28: Done. 18:37 mithos28: rudybot: (define (go) (reset (loop))) 18:37 rudybot: mithos28: Done. 18:37 mithos28: rudybot: (go) 18:37 (quit) rudybot: Read error: Connection reset by peer 18:37 mithos28: oops 18:37 mithos28: should have thought that through 18:37 mithos28: seems to work though 18:37 bremner: bot killer 18:38 asumu: Oh my. :D 18:38 jonrafkind: rofl, i guess custodians dont handle continuations properly? 18:38 bremner: I told him once, I told him a million times about taking code from strangers. 18:43 (join) bluezenix 18:45 jonrafkind: isnt shift or control implemented in terms of the other one 18:45 jonrafkind: i mean they are essentially the same, just a different api right 18:45 (join) flying_rhino 18:45 flying_rhino: hello 18:45 flying_rhino: anyone here? 18:45 jonrafkind: no 18:46 mithos28: flying_rhino: maybe 18:46 (quit) bluezenix: Client Quit 18:46 (join) karswell 18:46 mithos28: jonrafkind: I think so 18:47 flying_rhino: can someone tell me how to make recursive anonymous function call? So I have (lambda (x) yadda yadda yadda) can I make that function call itself somehow? 18:47 asumu: jonrafkind: both are macro expressible in terms of the other (unless you have types) 18:48 asumu: Oleg has a paper showing this, IIRC. 18:48 mithos28: flying_rhino: the easiest way to do that, is by giving it a name 18:48 jonrafkind: are continuations even typable 18:48 asumu: jonrafkind: Yeah, I'm slated to give a talk on doing that for class. 18:48 jonrafkind: oh ok 18:48 (join) pmatey 18:48 asumu: Hence me crashing Racket with them. 18:48 (quit) dented42: Quit: Computer has gone to sleep. 18:49 flying_rhino: okay. If I give a name to inner function A which is inside another function B, will function A be vidible outside B. I don't want to clutter namespace. 18:49 bremner: flying_rhino: you can use inner defines for that 18:51 flying_rhino: bremmer:how to do that? 18:51 (quit) anRch: Quit: anRch 18:51 flying_rhino: sorry for being a noob 18:51 bremner: (define (foo x) (define (bar y)) (bar x)) 18:51 flying_rhino: bremer: Okay I get it. Thanks 18:52 flying_rhino: it would have been simpler it there just was some way for lambda to call itself 18:52 flying_rhino: but what the hell 18:52 bremner: flying_rhino: there is but it isn't simpelr 18:52 bremner: or simpler 18:52 bremner: you can also look at letrec 18:53 (quit) jhemann: Ping timeout: 245 seconds 18:55 flying_rhino: okay I see it 18:59 (join) bluezenix 19:00 (join) dented42 19:09 (join) yoklov 19:10 (join) chrissbx 19:21 (quit) mceier: Quit: leaving 19:21 Nisstyre: Is there something like Haskell's guards in Racket? 19:21 Nisstyre: case isn't what I want, nor is match 19:21 asumu: Nisstyre: why not match? 19:22 asumu: (what's an example guard from Haskell you want to write?) 19:22 Nisstyre: asumu: I want to test against 3 possible conditions 19:23 asumu: Nisstyre: maybe you just want cond? 19:23 (join) dnolen 19:23 Nisstyre: asumu: maybe, but I don't believe I can do something like else-if with cond can I? 19:24 bremner: and doesn't work? 19:24 (join) Kaylin1 19:24 Nisstyre: bremner: you misunderstand me, I don't want to test if they're all true 19:25 Nisstyre: for each possible condition I want a different result 19:25 bremner: I still misunderstand you 19:25 bremner: that sounds exactly like cond 19:25 asumu: Nisstyre: you should be able to do that with cond. See 4.7.3 of the guide: http://pre.racket-lang.org/docs/html/guide/conditionals.html 19:26 Nisstyre: this is the kind of thing I want http://codepad.org/q9P3L9IL 19:26 bremner: you could translate that into cond with sed 19:26 bremner: well, and patience. 19:27 (quit) Kaylin: Ping timeout: 246 seconds 19:27 bremner: because sed is much harder than cond. 19:27 bremner: really, line by line. 19:27 Nisstyre: that's a bad example because that could be done with match though 19:27 Nisstyre: my actual use case is more complicated 19:28 Nisstyre: the conditions are like |v| < k and N == n 19:28 Nisstyre: where |v| is the magnitude of a vector 19:28 bremner: well, until you tell me why cond doesn't work for you, I don't know what else to say. 19:29 Nisstyre: bremner: I just wasn't quite sure how to do it with cond 19:29 Nisstyre: or if it was possible 19:29 asumu: (cond ([(and (< (magnitude v) k) (= N n)) ...] ...)) 19:29 Nisstyre: ah okay, I see 19:30 (quit) yoklov: Quit: bye! 19:31 asumu: Nisstyre: If you haven't already, reading the guide might help. 19:31 asumu: (maybe we need a Racket for Haskellers tutorial) 19:31 Nisstyre: asumu: I have read a lot of it, but I just haven't used cond for more than two conditions 19:32 Nisstyre: I didn't realize you could extend it to any number of conditions 19:32 (part) dented42: "Textual IRC Client: http://www.textualapp.com/" 19:32 bremner: Nisstyre: you can have as many (test result) clauses as you want. Each test can be an arbitrary expression. 19:32 asumu: Oh okay. And also BTW: you should be able to do anything you can do in cond using match. 19:33 asumu: By using (? ...) patterns for example. 19:33 Nisstyre: interesting 19:33 offby1: ... but only the first match gets "run" 19:34 (join) rudybot 19:35 (join) crdueck_ 19:35 offby1: mithos28: you keel heem! 19:35 crdueck_: hello, can someone explain why this happens (define a '(1 2 3 4)) (append (rest a) (first a)) gives (2 3 4 . 1)... why is that decimal there? 19:35 offby1: rudybot: (cond ((= 1 1) (displayln "one equals one"))((= 2 2) (displayln "two equals two"))) 19:35 rudybot: offby1: your sandbox is ready 19:35 rudybot: offby1: ; stdout: "one equals one\n" 19:36 asumu: rudybot: doc append 19:36 rudybot: asumu: your sandbox is ready 19:36 offby1: rudybot: (append 1 2) 19:36 rudybot: asumu: http://docs.racket-lang.org/reference/pairs.html#(def._((quote._~23~25kernel)._append)) 19:36 rudybot: offby1: error: append: expected argument of type ; given: 1 19:36 asumu: crdueck_: ^ (see 2nd par) 19:36 offby1: rudybot: (append (list 1) 2) 19:36 rudybot: offby1: ; Value: (1 . 2) 19:36 offby1: crdueck_: simpler example ^ 19:38 crdueck_: ah, jeez. big oversight on my part. thanks guys 19:38 mithos28: offby1: sorry 19:39 (join) __rahul__ 19:39 __rahul__: is there a racket equivalent for the python dictionary? 19:39 Nisstyre: __rahul__: hash tables 19:39 offby1: mithos28: seems to be a bug in racket 19:40 __rahul__: Nisstyre: thanks let me have a look 19:40 mithos28: offby1: yes, asumu found it. I wasn't thinking when I tried it on rudybot 19:45 (quit) bluezenix: Quit: Leaving. 19:47 __rahul__: what would be a good way to capture a text file into a list? 19:49 __rahul__: to be more specific, i have a file of numbers and i am looking to capture those into a data-structure line-by-line, maybe into a list or a hash table 19:51 jonrafkind: (for ([line (in-lines)]) (something-with-line line)) 19:52 __rahul__: thanks, also found the file->list function, looks promising 19:56 mithos28: What primitive control operators are there in racket? I can think of if,#%app,call/cc,thread,place,call-with-continuation-mark. Are there any others that come to mind? 19:58 Nisstyre: mithos28: see the above discussion about match and cond 19:58 Nisstyre: also case exists 19:58 jonrafkind: maybe lambda? 19:58 jonrafkind: match/cond/case are not primitive 19:58 mithos28: Nisstyre: Those are macros over the others 19:58 Nisstyre: mithos28: oh fair enough 19:58 (quit) pmatey: Ping timeout: 272 seconds 20:00 mithos28: jonrafkind: in my use case lambda is separate 20:01 mithos28: I'm trying to figure out what primitives a machine would have to support to evaluate an interesting language 20:01 jonrafkind: isnt that called r5rs 20:02 mithos28: i'm thinking of a machine more like assembly level 20:02 Nisstyre: jump? 20:02 mithos28: so already lambda lifted and anfed 20:03 mithos28: but say for call/cc unless I cps the whole program, the machine needs to understand that 20:04 mithos28: Nisstyre: #%app is jump 20:04 mithos28: + a bit 20:04 Nisstyre: oh ok 20:14 (quit) Kaylin1: Quit: Leaving. 20:16 (part) crdueck_ 20:17 (quit) __rahul__: Remote host closed the connection 20:25 (quit) masm: Quit: Leaving. 20:35 (quit) karswell: Remote host closed the connection 20:42 (quit) Fulax: Ping timeout: 260 seconds 20:46 (join) karswell 20:46 (join) Fulax 21:05 (quit) dnolen: Remote host closed the connection 21:15 (join) whatwhatwhat 21:19 (quit) mithos28: Quit: mithos28 21:20 (quit) whatwhatwhat: Read error: Connection reset by peer 21:34 (quit) chrissbx: Ping timeout: 276 seconds 22:17 (join) chrissbx 22:26 (join) neilv 22:31 (quit) karswell: Remote host closed the connection 22:36 (join) jeapostrophe 22:41 (join) karswell 22:46 (quit) jeapostrophe: Ping timeout: 260 seconds 22:47 asumu: Delimited continuations seem really magical sometimes. The pythagorean triple example in this paper is neat: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.43.4822&rep=rep1&type=pdf 22:47 rudybot: http://tinyurl.com/8xw6xqz 22:47 asumu: I didn't believe it'd work until I tried it. 22:52 (join) pmatey 23:10 (quit) pmatey: Ping timeout: 240 seconds 23:25 (quit) karswell: Remote host closed the connection 23:35 (join) karswell 23:43 (quit) chrissbx: Ping timeout: 276 seconds 23:45 (join) pmatey