00:04 (join) dnolen 00:09 (join) dingfeng| 00:09 (quit) dingfeng: Read error: Connection reset by peer 00:23 (quit) mye: Ping timeout: 259 seconds 00:23 (quit) dingfeng|: Ping timeout: 248 seconds 00:24 (join) dingfeng 00:41 (join) dingfeng| 00:41 (quit) dingfeng: Read error: Connection reset by peer 00:42 (quit) dnolen: Quit: dnolen 00:58 (join) dnolen 00:59 (quit) dnolen: Client Quit 01:05 (join) colinyu 01:05 colinyu: hello, i'm new, and I was wondering whether any could help me on a problem I'm having? 01:05 mithos28: colinyu: sure just ask 01:06 colinyu: thanks, i'm in the early stages of learning drracket so bear with me 01:06 colinyu: i'm using a cond clause 01:07 colinyu: is there anyway that there can be two consequents to one condition? 01:08 mithos28: what would those two consequents be? 01:08 colinyu: two functions 01:08 jonrafkind: (begin (a) (b)) 01:09 colinyu: so would i write: [else (begin (a) (b))] ? 01:09 jonrafkind: yea 01:10 colinyu: i get the error that begin is not defined, its probably because im using the beginning student language 01:10 colinyu: is there any other way to write this? 01:10 mithos28: what does your first function do? 01:11 colinyu: i'll write out the function i guess 01:11 colinyu: (define (rptday m y) 01:11 jonrafkind: if you want to return two values from the cond, one from each function, then maybe you want (list (a) (b)) 01:11 (quit) dingfeng|: Read error: Connection reset by peer 01:11 colinyu: (cond 01:11 colinyu: [(> lo (daycompute m y)) "blank"] 01:11 (join) dingfeng 01:11 colinyu: [else ((add1 lo) (daynum lo))] 01:11 colinyu: and thats it 01:12 jonrafkind: is this a homework problem? 01:12 colinyu: so pretty much what i'm aiming for is that if lo < (daycompute m y), i want it to add1 to the variable lo, and then use lo for the function daynum 01:13 jonrafkind: (daynum (add1 lo)) 01:13 colinyu: i guess, i'm trying to create a calendar 01:13 colinyu: ohh 01:13 colinyu: wow that's simple 01:13 colinyu: thank you 01:13 jonrafkind: you seem to have a mutation-based idea of programming, is that because you know other languages? (php, c, java) 01:14 colinyu: yeah, i can write code in c 01:14 colinyu: making the change has been quite hard for me 01:14 jonrafkind: ok, well forget everything you know about c when using scheme 01:14 colinyu: i've been trying too 01:14 colinyu: *to 01:14 colinyu: thanks for your help jonrahkind 01:15 jonrafkind: np 01:18 colinyu: one last question, how can i make the function rptday repeat recursively until (> lo (daycompute m y))? 01:18 (quit) veer: Read error: Connection reset by peer 01:19 colinyu: i've always used loops before, so recursion is pretty difficult for me 01:19 (quit) jonrafkind: Ping timeout: 252 seconds 01:20 mithos28: think about splitting the problem into parts, one part is solving it when it is a small problem 01:21 mithos28: one part is reducing the problem from a large problem to a smaller problem 01:21 mithos28: and the last part is using the result from a smaller problem, to generate the result from the larger problem 01:22 mithos28: in your case smaller, should be in the magnitude of your input numbers 01:23 colinyu: the way that i see it, which may be wrong 01:23 colinyu: is that i'm using the output from the most-bottom function, which is add1 01:24 colinyu: and then inputting that to a function a level higher, which is daynum 01:24 colinyu: and then finally taking that output, comparing it to another value, and repeating 01:25 colinyu: i just can't get my head around what to do 01:25 mithos28: how are you repeating? 01:26 (quit) jrslepak_: Quit: Leaving 01:26 colinyu: by some sort of recursion 01:26 colinyu: the recursion part is what i can't figure out 01:26 colinyu: because the top-most function (rptday) takes two variables 01:27 colinyu: and doesn't use the outputted value as either of those variables 01:27 colinyu: so I don't know how to make it repeat 01:28 colinyu: i'm sorry if i'm going around in a circle here 01:28 mithos28: do you know what you want to call rptday with, but just not generate the code to do it? 01:29 colinyu: if i understand you correctly, yes i do know what i want to call it with, i just cant code it 01:30 mithos28: ok so can you turn the output of daynum into those two values you need? 01:32 colinyu: oh no, i can't do that, thats part of the problem i guess. 01:32 colinyu: hmm. 01:32 colinyu: actually... 01:32 mithos28: can you do it from the original two values? 01:34 colinyu: i think so 01:34 colinyu: indirectly i can i think 01:34 colinyu: as the variables m and y are passed down to daycompute, which serve as the variable i want to compare lo to 01:35 colinyu: daycompute outputs one number 01:35 colinyu: and i meant daycompute is a function that outputs a number that serves as the variable that i want to compare lo to 01:36 colinyu: and i want to make rptday repeat as many times as it takes lo to equal daycompute 01:36 colinyu: if that makes any sense 01:37 mithos28: sort of. If you think you have something I would try it out and see if it works 01:39 colinyu: ugh, my function doesnt work 01:39 colinyu: i'll try to explain it one more time and if its not good enough, i'll leave and stop bothering you 01:40 mithos28: Try and explain it in words what your function is supposed to do before trying to explain the code 01:41 colinyu: my function is supposed to output an image (created by daynum, which works) as many times as there are days in a month 01:41 colinyu: so for example, if there are 30 days in the month 01:41 colinyu: it will output 30 times 01:42 colinyu: the image has a number in it, starting from one 01:42 colinyu: each time, the number in the image will increase by 1, eventually stopping at 30 01:42 mithos28: how do you output an image? 01:42 colinyu: daycompute tells the function how many days there are in the month, using a predetermined formula 01:42 (quit) dingfeng: Read error: Connection reset by peer 01:42 (join) dingfeng 01:43 colinyu: using the text function 01:43 colinyu: and the way i'm trying to code it is that: 01:44 colinyu: rptday will take the outputted value from daycompute 01:44 colinyu: which is either28, 29, 30, or 31 01:44 mithos28: how are you combining two images? 01:44 colinyu: compare it to a variable called lo 01:45 colinyu: i plan on makig all of the images first, and then using a beside funcion 01:45 colinyu: function* 01:46 colinyu: so daynum takes the number of (add1 lo), and puts that number into an image 01:46 mithos28: how are you going to call the beside function with all of your images 01:46 colinyu: i'm not too sure yet 01:47 colinyu: im guessing that i could call it after daynum makes each image 01:47 colinyu: so each image is beside another 01:47 mithos28: ok 01:48 colinyu: but the main problem im having 01:48 colinyu: is that i cant figure out how the make the function repeat as long as the variable lo is less than the outputted number of daycompute 01:49 colinyu: so basically i want to call the function to make a image with the number 1 in it 01:49 colinyu: then add 1 to lo 01:49 colinyu: and then recall the function to make another image with the number 2 01:49 colinyu: by the way i defined the variable lo to equal 1 01:50 mithos28: you cannot change variables in racket 01:50 mithos28: which is different from C 01:51 colinyu: so if i have (add1 lo) with lo initially being 1, lo will not be 2? 01:51 mithos28: in c you can do x = x + 1 and x + 1 01:51 mithos28: (add1 x) is the equivalent of the second 01:53 colinyu: ah, i see 01:53 colinyu: alright, i think i've bothered you enough 01:53 colinyu: thank you for all your help, i really appreciate it 01:53 mithos28: try to make a function which generate part of the calendar 01:53 mithos28: no problem 02:03 (quit) colinyu: Quit: Page closed 02:20 (quit) realitygrill: Quit: realitygrill 02:30 (join) dingfeng| 02:30 (quit) dingfeng: Read error: Connection reset by peer 02:30 (quit) dingfeng|: Client Quit 03:16 (quit) mithos28: Quit: mithos28 03:21 (join) hkBst 03:25 (join) Blkt 03:27 Blkt: good morning everyone 04:16 (join) noelw 04:48 (quit) Blkt: Quit: testing... 04:48 (join) Blkt 04:49 (quit) Blkt: Remote host closed the connection 04:52 (join) tim-brown 04:58 (join) Blkt 05:00 tim-brown: Blkt: morning 05:00 Blkt: hi there 05:25 (join) mceier 05:33 tim-brown: noelw: you said that "Events are where it's at" 05:33 noelw: I was trolling 05:33 tim-brown: is that the general synchronisable events? or are you talking about another mechanism? 05:34 noelw: Racket provides both 05:34 noelw: and events are sometimes more convenient to use 05:35 noelw: There is a framework called node.js 05:35 noelw: that is event based 05:35 noelw: and used by people who are very vocal in certain circles 05:35 noelw: and also seemingly didn't attend their OS course at Uni 05:36 noelw: I was teasing Tony 05:36 tim-brown: naughty! 05:36 tim-brown: sorry... but I see mentions of places/futures etc. 05:36 noelw: That's me 05:37 noelw: The basic thing is this: there is no one best model for parallelism 05:37 noelw: Racket provides many mechanisms for parallelism, so you can use the most appropriate one 05:37 tim-brown: all very groovy... so when i see a new innocuous sounding word like "events" mentioned, I wonder if I missed something in 05:37 noelw: (parallelism and concurrency, that is) 05:37 tim-brown: Rading Racket Documentation 101 05:38 noelw: Events = sync 05:38 noelw: Thread = thread 05:38 noelw: Futures = future 05:38 noelw: Places = errr.. don't recall 05:38 tim-brown: I'll look on maps.google.com for places 05:39 noelw: ;-P 05:43 (quit) cafesofie: Remote host closed the connection 05:49 (quit) Blkt: Remote host closed the connection 05:52 (join) Blkt 05:56 (join) haruki_zaemon 06:20 (join) masm 06:27 (join) gdb_ 06:53 (join) Burlingk 09:58 (join) realitygrill 10:26 (join) jonrafkind 10:40 (join) dingfeng 10:41 dingfeng: there are some opinions on the internet that racket scheme is not practical for larger-scale software. are they justified? what kind of additional risks does a software based on racket scheme face? 10:41 noelw: dingfeng: a shortage of developers, perhaps? 10:42 noelw: FWIW, we've used Racket in production 10:43 dingfeng: hm... was there any failing of Racket that you felt could have been prevented or ameliorated if you anticipated or prepared for it? 10:43 (quit) hkBst: Read error: Connection reset by peer 10:44 dingfeng: or any particularly acute deficiency that made you wish for another language? 10:44 dingfeng: shortage of developers is something i could accept 10:45 noelw: dingfeng: developing libraries has been a pain at times 10:48 dingfeng: what kind of libraries does racket lack for conventional use? 10:48 dingfeng: i looked over the planet repo, and it seems quite complete if quality can be assumed 10:48 dingfeng: at least for generic uses. hm... minus web servers. 10:51 noelw: dingfeng: interfacing with databases 10:51 noelw: We have PostgreSQL, MySQL, and Mongo 10:51 noelw: this will do for a lot of ppl, but not everybody 10:51 noelw: HTTP client could be better 10:52 noelw: Planet does have a lot of stuff 10:52 noelw: but from time to time it lacks something 10:52 noelw: it can be annoying to lose 2-4 days implementing something that another language would just have 10:52 noelw: balance this against time saved in other areas 10:53 dingfeng: from what you say, there seems to be a lot of tradeoffs involved, which are only apparent only after the fact 10:53 dingfeng: what if you were to start a simlar project again today. would you still pick racket? 10:54 noelw: I think the tradeoffs are apparent before the fact... 10:55 noelw: Depends on the use case 10:55 noelw: I'm writing some stuff in Scala at the moment 10:55 noelw: as the JVM has higher performance 10:55 noelw: I'm doing data analysis in Racket, because it's easier to bind to C 10:55 noelw: plotting is simple, and I have existing libraries 10:56 noelw: So, it depends 10:56 noelw: But it's basically the tradeoff you make for using (almost) any non-mainstream language 10:56 dingfeng: always on libraries and availability of developers? 10:57 noelw: In addition to those, you might run into dark corners of the runtime that nobody has really stressed 10:58 noelw: Probably not an issue now for web apps 10:58 noelw: and Matthew Flatt &co fix bugs very quickly 10:58 dingfeng: not really i guess. my intentions are a web app with some machine learning on the back-end. 10:59 noelw: I love me some machine learning 10:59 noelw: Andrew Ng fills my headphones as I type 10:59 dingfeng: the online vids? 10:59 noelw: Yeah, ml-class. It's fairly basic stuff but 11:00 noelw: I haven't actually done much classification is the past 11:00 dingfeng: i'm taking it too. i like the interface 11:00 noelw: and it's simple enough I can keep up without full attention 11:00 noelw: Yes, it's really well done 11:01 dingfeng: yep. 11:02 dingfeng: anyway, i came from a java enterprise app background. can't imagine someone choosing jvm/java/scala over anything else. 11:02 bremner: how about clojure? 11:03 bremner: seems like a closer competitor to racket 11:03 noelw: The JVM is really fast. 11:03 noelw: It's great technology. It's just Java that sucks 11:03 dingfeng: jvm good. everything else in enterprise java, bad. 11:04 noelw: It has some limitations (tail calls, numerics are slower than C) but they aren't a big deal for many case 11:04 noelw: Absolutely agreed with that 11:04 dingfeng: i think clojure isn't as good for DSLs. 11:05 dingfeng: don't see many open source clojure DSLs popping up like in Racket or Haskell. i think it's a big disadvantage 11:05 (join) sstrickl 11:06 noelw: Clojure's macro system is old tech 11:06 noelw: as is it's module system 11:06 noelw: This is what put me off Clojure 11:07 dingfeng: i think it's a graft of an outdated lisp, with a proper set of immutable data structures 11:08 noelw: That's mostly my opinion, too. 11:10 dingfeng: although Clojure does get its marketing right. a lot of my friends in the scientific community heard about clojure and wants to try it. 11:10 (quit) Burlingk: Quit: Leaving 11:11 dingfeng: same for the more geeky enterprise apps engineers 11:11 dingfeng: i think clojure isn't a competitor to racket. it's a competitor to Java 11:12 bremner: I dunno. Lot's of the basic's transfer pretty easily from scheme/racket to clojure, so e.g. intro programming languages course using clojure is not out of the question. 11:13 dingfeng: how about debugging, stack traces, dependency and build management? 11:14 bremner: ah, maybe the environment is not as nice, that is a good point 11:15 dingfeng: my highest was a 1094 line stack trace (: 11:17 dingfeng: haskell is the one that sparked my concerns about using less mainstream languages. there are some huge deficiencies in its laziness, type inference, and module/namespace system that one wouldn't learn about working on small exercises. 11:23 eli: jonrafkind: It's not a syntax parameter... 11:24 eli: jonrafkind: I thought that it might be a good example for how you can toggle your choice between a runtime and a syntax parameter, but that's not related to make it easy to thread in. 11:25 (nick) samth_away -> samth 11:25 (quit) Blkt: Remote host closed the connection 11:26 jonrafkind: oh right i forgot 11:30 (join) veer 11:34 (quit) veer: Client Quit 11:48 (join) wishbone4 11:51 (join) Blkt 11:51 (join) dnolen 11:51 (join) mithos28 12:11 (join) MayDaniel 12:15 (quit) mithos28: Quit: mithos28 12:16 (quit) Blkt: Quit: going home 12:17 (join) mithos28 12:19 (join) mithos28_ 12:21 (part) tim-brown: "Leaving" 12:22 (quit) mithos28: Ping timeout: 260 seconds 12:22 (nick) mithos28_ -> mithos28 12:24 (join) toastbrot_ 12:24 (join) toastbrot___ 12:31 (join) mithos28_ 12:35 (quit) mithos28: Quit: mithos28 12:35 (nick) mithos28_ -> mithos28 12:37 (quit) toastbrot___: Remote host closed the connection 12:37 (quit) toastbrot_: Read error: Connection reset by peer 12:47 (join) 45PAAGJGU 13:01 (join) mithos28_ 13:01 (quit) mithos28_: Client Quit 13:10 (join) mye 13:16 (quit) MayDaniel: Read error: Connection reset by peer 13:28 (join) mithos28_ 13:28 (quit) mithos28_: Remote host closed the connection 13:28 (join) mithos28__ 13:34 (part) gdb_ 13:37 (join) MayDaniel 13:49 (quit) gabot: Ping timeout: 252 seconds 13:49 (topic) -: Racket -- http://racket-lang.org -- logs @ http://racket-lang.org/irc-logs 13:49 (names) -: gabot MayDaniel mithos28__ mye 45PAAGJGU mithos28 dnolen wishbone4 sstrickl dingfeng jonrafkind realitygrill masm haruki_zaemon mceier noelw Demosthenes mario-goulart eli hyko samth acarrico surrounder tonyg tewk Nanakhiel karswell Gertm mattmight brainproxy sethalves tomku petey snorble em s_chng wtetzner cipher bfulgham rgrinberg danking adzuci gf3 asumu zerokarmaleft ernestas rudybot offby1 zakwilson karljoh elliottcable cky ohwow jrslepak stamourv 13:49 (names) -: @ChanServ clklein ozzloy sir_lewk rapacity jamessan GeneralMaximus abbe shachaf si14 tauntaun bremner _p4bl0 14:24 (join) anRch 14:30 (quit) dingfeng: Quit: Page closed 14:33 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/-Juuvw 14:33 RacketCommitBot: [racket/master] Updates Redex history for v5.2 - Casey Klein 14:56 (quit) anRch: Read error: Connection timed out 14:56 (join) anRch 15:08 (join) DanBurton 15:31 (quit) anRch: Read error: Connection timed out 15:32 (join) anRch 15:43 (quit) anRch: Quit: anRch 15:55 (part) haruki_zaemon: "Laterz" 16:01 (quit) jonrafkind: Ping timeout: 252 seconds 16:17 (join) realitygrill_ 16:18 (quit) realitygrill: Ping timeout: 240 seconds 16:18 (nick) realitygrill_ -> realitygrill 16:48 (join) bon-bon 16:48 bon-bon: In Chapter 2 we used a function called appearances that returns the number of times its first argument appears as a member of its second argument. Implement appearances. 16:48 bon-bon: does anyone know hw to do it? 16:50 (quit) bon-bon: Client Quit 16:52 (quit) mceier: Quit: leaving 16:58 (quit) clklein: Read error: Connection reset by peer 17:06 (quit) dnolen: Ping timeout: 265 seconds 17:10 (quit) DanBurton: Quit: Leaving 17:11 bremner: recursion? 17:13 bremner: oh, gone. 17:56 (join) anRch 17:56 (nick) samth -> samth_away 17:57 (quit) sstrickl: Quit: sstrickl 18:00 (join) jrslepak_ 18:02 offby1: kids these days 18:03 (quit) 45PAAGJGU: Ping timeout: 255 seconds 18:11 (quit) gf3: Excess Flood 18:11 (join) gf3 18:30 (join) epw 18:31 epw: hello, everyone! 18:39 epw: I have a question about using namespaces and (load). I think I'm very close to the answer, but I haven't quite gotten the hang of it yet. I only switched from Lisp to Racket recently. 18:42 epw: roughly, I'm trying to do what they talk about here with the DSL but having trouble with it: http://docs.racket-lang.org/guide/mk-namespace.html#(part._.Creating_and_.Installing_.Namespaces) 18:42 epw: If anyone happens to have time to look at it, I'd really appreciate it and can explain my particular problem more. 18:47 (quit) anRch: Read error: Connection reset by peer 18:47 (join) anRch 19:05 (join) bmp 19:07 (join) realitygrill_ 19:09 (quit) realitygrill: Ping timeout: 240 seconds 19:09 (nick) realitygrill_ -> realitygrill 19:10 (part) bmp 19:12 (quit) masm: Quit: Leaving. 19:15 epw: be back soon, switching computers 19:15 (quit) epw: Quit: leaving 19:23 (quit) anRch: Quit: anRch 19:26 (join) epw 19:38 (quit) noelw: Quit: noelw 20:07 (quit) realitygrill: Read error: Connection reset by peer 20:09 (join) realitygrill 20:16 (nick) elliottcable -> baryogenesis 20:19 (join) realitygrill_ 20:20 (join) jonrafkind 20:21 (quit) realitygrill: Ping timeout: 240 seconds 20:21 (nick) realitygrill_ -> realitygrill 20:24 (join) realitygrill_ 20:26 (quit) realitygrill: Ping timeout: 260 seconds 20:26 (nick) realitygrill_ -> realitygrill 20:35 (quit) jonrafkind: Read error: Operation timed out 20:50 (join) realitygrill_ 20:53 (quit) realitygrill: Ping timeout: 255 seconds 20:53 (nick) realitygrill_ -> realitygrill 21:04 asumu: epw: I can take a look in about 20 mins if noone else does by then. 21:07 (quit) jrslepak_: Quit: Leaving 21:25 (nick) baryogenesis -> elliottcable 21:26 asumu: epw: What problems were you having with namespaces? 21:29 (join) haruki_zaemon 21:36 (join) francisl 21:38 (quit) mithos28__: Quit: mithos28__ 21:44 (quit) francisl: Quit: francisl 21:45 (join) francisl 22:08 epw: aw, I may be bad at timing. asumu, are you still there? 22:15 asumu: epw: Yep 22:17 epw: hooray! 22:18 epw: So, I'm trying to make a domain-specific language, and want to be as secure as possible about it 22:18 epw: so that it can be used in as many potential applications as possible 22:19 epw: going by the "manipulating namespaces" page in the guide, this isn't too weird an idea 22:19 (part) haruki_zaemon: "Laterz" 22:19 epw: and they have this piece of code specifically for a DSL 22:19 epw: (define (run-dsl file) 22:19 epw: (parameterize ([current-namespace (make-base-empty-namespace)]) 22:19 epw: (namespace-require 'my-dsl) 22:19 epw: (load file))) 22:19 asumu: Yep, I see the example. 22:20 asumu: Now one question is, do you need the functionality that namespaces provide for your DSL? 22:21 epw: I think I do, but it's possible that I'm misinterpreting them 22:21 asumu: You could also write your DSL as a #lang language that your user writes the program in. 22:21 epw: What would the main differences be? The guide wasn't entirely clear to me 22:21 asumu: Oh okay, so you might want to run potentially hostile code provided by someone else? 22:21 epw: Yes 22:22 epw: ideally, there will be about ten functions which can be called 22:22 asumu: Okay. Does the example not work for you? 22:22 epw: and so the person can just submit a file which calls them in whatever order and with whatever arguments 22:22 epw: It does not 22:22 epw: when the file I am opening is "commands.rkt" I get 22:22 epw: commands.rkt:1:0: compile: unbound identifier (and no #%app syntax transformer is bound) at: #%top-interaction in: (#%top-interaction require racket/base) 22:23 epw: If I make the first line inside the parameterize be (namespace-require racket/base) then it works 22:23 epw: but then I have file I/O functions and the like 22:23 epw: so it's not safe 22:23 asumu: Ah okay, you are trying to run this in a REPL? 22:24 asumu: (or in an interactions area in DrRacket) 22:24 epw: well, I'm actually trying to write a library so that I can run it from a REPL, command line, web server, and any other interface I come up with 22:25 asumu: The REPL requires that you implement #%top-interaction, which allows languages to hook into the REPL environment. 22:25 epw: That error was generated from executing it as a #! script in bash 22:25 asumu: You can provide #%top-interaction from racket/base from commands.rkt without providing other things. 22:25 epw: ohhhhhh 22:25 epw: that makes a ton of sense 22:25 epw: and makes the error make sense 22:25 asumu: Alternatively, you can provide your own #%top-interaction that does what you want. 22:27 asumu: (oh, also it is required for "load" which is why you saw the issue from bash, I think) 22:27 epw: what could I do with it? Looking it up in the reference, it looks like it normally just passes on the form to be evaluated? 22:27 asumu: I believe Typed Racket uses it, for example, to print out the type of the expression you have. 22:28 epw: aha, I see 22:28 epw: ah, the sample works now! 22:28 epw: I added (provide #%top-interaction #%app) 22:28 epw: to my DSL 22:29 asumu: :) 22:30 epw: thank you very much. Looks like I actually need to read through the main language reference to do the more advanced things like this 22:30 epw: I just hadn't thought to search it for "#%top-interaction" 22:32 asumu: If you haven't seen it, dyoo's article on Brainfudge might illuminate some things: http://hashcollision.org/brainfudge/ 22:32 asumu: He doesn't talk about #%top-interaction, but does mention #%module-begin and related language hooks. 22:33 epw: I had not seen that, and it looks quite useful. Thank you again 22:47 epw: alright, time for me to go. Thanks again, asumu! A lot of the programs I plan to write include DSLs, so this was an important step for me 22:47 epw: see you all some other time 22:48 (quit) epw: Quit: leaving 22:48 (join) jrslepak_ 23:24 (quit) mye: Read error: Operation timed out 23:27 (join) jonrafkind 23:29 (join) haruki_zaemon 23:30 (quit) elliottcable: Read error: Connection reset by peer 23:30 (join) elliottcable 23:30 (quit) francisl: Quit: francisl 23:31 (quit) jrslepak_: Quit: Leaving