00:00 (quit) ambrosebs: Remote host closed the connection 00:00 (join) ambrosebs 00:01 (part) ambrosebs 00:07 (join) jeapostrophe 00:07 eli: ozzloy: That page confirms what I said about `regexp' having more history. IMO, it's not softening that made `regex' go up, but the use of `regex' in some language (maybe perl). 00:08 eli: And the *sigh* was at Pauan, who insisted that it's not a string syntax. (Something that became even clearer on the mailing list, BTW.) 00:11 (quit) jeapostrophe: Ping timeout: 244 seconds 00:13 (join) dnolen 00:16 (join) freakazoid 00:28 ozzloy: eli, oh it's totally expected that regexp would have more history. but notice how its use starts going down? it's not just "regex" going up 00:29 ozzloy: also larry wall is a linguist, so it's not surprising that he would use "regex" in perl 00:35 ozzloy: around 1900 there was a bump in use of regex and regular expression 00:36 ozzloy: just an odd thing i noticed 00:41 eli: ozzloy: Bah. Being a linguist is irrelevant -- it's a programming language, an area where the even worse abbreviation "expr" is very popular. 00:42 eli: Also, see http://programmers.stackexchange.com/questions/102528/what-is-more-standard-shortening-for-regular-expression-regex-or-regexp/102569#102569 00:42 rudybot: http://tinyurl.com/7wf22vn 00:43 eli: So apparently English speaking people have no problems with an "xp" suffix. 00:46 ozzloy: eli, "r" is voiced, so "expr" would be preferable 00:47 ozzloy: and i believe "exp." being shorthand for "express" is for written communication, not spoken. which i guess code mostly is anyways 00:48 mithos28: are we suggesting that regular expressions should be called regexprs? 00:49 ozzloy: i'm suggesting "regex" but not strongly. i think at this point we're just debating for the sake of debating 00:49 ozzloy: we both already said it's not a big deal 00:49 ozzloy: but yes, regexpr would be slightly better than regexp for speaking 00:50 mithos28: I like my regexp, but thats probably from too much racket 00:53 ozzloy: yeah, i can see that 00:53 (join) jeapostrophe 01:06 (quit) jeapostrophe: Ping timeout: 260 seconds 01:07 freakazoid: I like pronouncing the abbreviation for expressway, "expwy" 01:16 ozzloy: freakazoid, ME TOO! so my favorite! 01:16 freakazoid: haha 01:16 freakazoid: It's from reading the signs when I was a kid 01:17 freakazoid: I also read signs painted on the road backwards and say "Ped Xing" 01:17 freakazoid: My son's probably gonna grow up thinking that's how they're really pronounced. 01:17 ozzloy: well if that is how people pronounce them, then that is how they're really pronounced 01:18 ozzloy: i'm more on the descriptivist side of things 01:19 ozzloy: sort of a blend 01:23 (quit) francisl: Quit: francisl 01:40 (quit) attila_lendvai: Disconnected by services 01:41 (join) attila_lendvai 01:44 (quit) dnolen: Quit: dnolen 01:59 (quit) jrslepak: Quit: Leaving 02:05 (quit) freakazoid: Quit: Computer has gone to sleep. 02:29 (quit) jao: Ping timeout: 248 seconds 02:45 mithos28: What are standard ways to incrementally construct a recursive (self-referential) structure in an immutable style? 02:46 mithos28: I'm thinking about how to represent a grammar (BNF style) and allow changes to it 02:56 jonrafkind: use mutation and dont expose the mutators 02:57 (join) fridim_ 02:57 mithos28: but that doesn't allow for an immutable incremental API 02:57 mithos28: without a lot of copying 02:58 jonrafkind: you mean you want users to be allowed to update the grammar? 02:58 mithos28: Yes 03:00 mithos28: I have had the same problem when trying to figure out how to represent graphs 03:02 mithos28: I have thought about doing it with state passing, which would work nicely in haskell with monadic do syntax. But in racket at that point it would be easier to do actual mutation 03:14 (quit) attila_lendvai: Ping timeout: 244 seconds 03:15 (quit) realitygrill: Quit: realitygrill 03:17 (quit) jonrafkind: Ping timeout: 240 seconds 03:28 (join) attila_lendvai 03:34 (join) bluezenix 03:37 (join) Blkt 03:40 (join) ahinki 03:40 (join) loz` 03:41 Blkt: good morning everyone 03:42 loz`: hi 03:44 loz`: i'm experimenting with gui in racket 03:44 loz`: but this doesn't work http://paste.lisp.org/display/126204 03:45 loz`: mouse events and paint callback are working 03:46 loz`: i'm not sure how to force canvas repainting 03:56 RacketCommitBot: [racket] plt pushed 4 new commits to master: http://git.io/2MmRIg 03:56 RacketCommitBot: [racket/master] Make the version tool use "Racket". - Eli Barzilay 03:56 RacketCommitBot: [racket/master] Make get-libs retry downloads if they look stuck. - Eli Barzilay 03:56 RacketCommitBot: [racket/master] Remove redundant execution bit from some files, convert one CRLF file to LFs. - Eli Barzilay 04:02 (quit) Shviller: Ping timeout: 252 seconds 04:02 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/PjeRMw 04:02 RacketCommitBot: [racket/master] New Racket version 5.2.0.5. - Eli Barzilay 04:02 (join) Shviller 04:09 (quit) noam: Ping timeout: 260 seconds 04:18 _p4bl0: loz`: you need to send the on-paint event, and also to set the color of the drawing context (seems to be white by default, which can be surprising) 04:18 _p4bl0: freaking paste.lisp.org *never* works for me :-/ 04:18 _p4bl0: http://pastie.org/2948553 04:19 _p4bl0: loz`: other than that, it's a bad idea to redraw all the points each time, it will take longer and longer and longer, but I guess this is a small example just to show your problem 04:34 loz`: _p4bl0: ok, thanks) 04:45 loz`: it works :P 04:53 (quit) mithos28: Quit: mithos28 04:58 (quit) Pauan: Ping timeout: 252 seconds 05:14 (join) Pauan 05:15 (quit) bluezenix: Ping timeout: 244 seconds 05:19 (join) bluezenix 05:19 (quit) Pauan: Ping timeout: 252 seconds 05:23 (join) noam 05:26 (join) masm 05:33 (join) Pauan 06:07 (quit) noam: Read error: Connection reset by peer 06:07 (join) noam 06:13 (join) ahinki_ 06:14 (quit) ahinki: Read error: Connection reset by peer 06:14 (nick) ahinki_ -> ahinki 06:22 (join) veer 06:22 (quit) Shviller: Ping timeout: 252 seconds 06:23 (join) Shviller 06:40 (quit) veer: Quit: Leaving 06:51 (join) ambrosebs 07:04 (join) attila_lendvai1 07:04 (quit) attila_lendvai: Disconnected by services 07:06 (quit) bluezenix: Quit: Leaving. 07:18 (join) haruki_zaemon 07:21 haruki_zaemon: Does racket have immutable data structures besides a cons list? eg, vector, hashmap/dictionary/associate array, etc? 07:31 Pauan: yes 07:32 haruki_zaemon: could u point me at them? Or are they all immutable by default? 07:32 Pauan: Racket has immutable conses, vectors, hash tables, and sets 07:33 Pauan: they're all in the reference: 07:33 Pauan: http://docs.racket-lang.org/reference/hashtables.html?q=hash%20table 07:33 Pauan: hash, hasheq, and hasheqv make immutable hash tables 07:33 Pauan: as does the procedures make-immutable-hash{eq, eqv} 07:33 haruki_zaemon: hmm ok.. I still see functions like hash-set! 07:34 haruki_zaemon: which is what I think threw me 07:34 Pauan: Racket has mutable *and* immutable hashes... 07:34 Pauan: hash-set! should only work on mutable hashes 07:34 Pauan: hash-set is functional 07:34 (join) bluezenix 07:35 Pauan: meaning it doesn't update the hash table: it returns a new one 07:35 haruki_zaemon: hmm ok so make-hash returns a mutable hash 07:35 haruki_zaemon: I need to use make-immutable-hash instead 07:36 haruki_zaemon: somewhat annoying but at least I know it can be done 07:36 Pauan: yes 07:36 haruki_zaemon: thanks 07:36 Pauan: hash-set! throws an error with immutable hashes, by the way 07:36 haruki_zaemon: right 07:36 Pauan: you can also use hash, hasheq, and hasheqv 07:36 Pauan: those return immutable hashes 07:36 haruki_zaemon: ahhh! 07:36 haruki_zaemon: right 07:36 haruki_zaemon: that's better 07:36 haruki_zaemon: nice 07:37 Pauan: (and since they're procedures, if you want to generate the key/value pairings dynamically, you can call apply on them with a list) 07:37 Pauan: (if you don't want to use make-immutable-hash) 07:37 Pauan: i.e. (apply hash '(foo "bar" qux "corge")) 07:38 haruki_zaemon: right 07:38 haruki_zaemon: ooh looks like they're also sequences 07:38 haruki_zaemon: nice! 07:38 Pauan: yup 07:40 haruki_zaemon: thanks 07:40 Pauan: sure 08:03 (join) veer 08:22 haruki_zaemon: hmm it's a shame -- thoiugh not a show stopper -- that the collections aren't named consistently :( 08:22 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/I-GgMw 08:22 RacketCommitBot: [racket/master] remove ? from German string constant to match similar removal from the English - Robby Findler 08:25 (quit) noelw: Quit: noelw 08:40 (join) jeapostrophe 08:48 (quit) veer: Quit: Leaving 08:50 (quit) ambrosebs: Remote host closed the connection 08:50 (join) ambrosebs 08:51 (part) ambrosebs 08:54 (nick) samth_away -> samth 08:56 samth: Pauan, haruki_zaemon: you can also use `for/hash' to construct hashes 09:23 (join) keenbug 10:04 danking: Did DrRacket drop the Add Teachpack menu item in the latest version? 10:04 danking: I've got 5.2.0.1--2011-10-10(dc912ee/a) and it's curiously missing from the Languages menu 10:06 (quit) haruki_zaemon: Ping timeout: 244 seconds 10:09 (join) realitygrill 10:11 samth: danking: you're probably in the wrong language level 10:17 (join) jrslepak 10:30 (quit) jrslepak: Quit: Leaving 10:46 (quit) ahinki: Quit: ChatZilla 0.9.87 [Firefox 9.0/20111122192043] 10:46 (join) dvanhorn 10:53 (join) freakazoid 10:59 (quit) realitygrill: Read error: Connection reset by peer 10:59 (join) realitygrill 11:03 (quit) jeapostrophe: Ping timeout: 244 seconds 11:06 (quit) realitygrill: Read error: Connection reset by peer 11:06 (join) realitygrill 11:09 (join) RackN00b 11:11 RackN00b: Hey uys - can someone comment as to how accurate drracket is when raising a two digit number to a large integer exponent? I'm writing a challenge to my coursemates to decrypt a certain message given a particular value but when I raise say 30 to the 337th power, I get a different answer from wolfram alpha... ideas? 11:12 bremner: is is floating point? all bets are off, basically 11:13 bremner: rudybot: init racket 11:13 rudybot: bremner: your sandbox is ready 11:13 RackN00b: Don't know much about floating point so I don't know what you mean :( 11:14 (quit) realitygrill: Ping timeout: 255 seconds 11:14 samth: RackN00b: if it's an integer (a whole number) then drracket is always exactly right 11:15 samth: that's also the case for fractions 11:15 RackN00b: nevermind - it seems to work - I was raising them to different power! 11:15 RackN00b: samth: Thanks... That's awesome. 11:15 Pauan: samth: I'm guessing that goes for all "exact" numbers, then? 11:15 samth: RackN00b: in more complicated settings, drracket sometimes produces inexact answers 11:15 samth: Pauan: yes 11:16 RackN00b: cool 11:16 samth: any arithmetic operation on exact numbers produces an exact answer 11:16 samth: rudybot: eval (exp 3 200) 11:16 rudybot: samth: your sandbox is ready 11:16 rudybot: samth: error: exp: expects 1 argument, given 2: 3 200 11:16 samth: rudybot: eval (expt 3 200) 11:16 rudybot: samth: ; Value: 265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001 11:16 samth: rudybot: eval (/ (expt 3 200) 17) 11:16 rudybot: samth: ; Value: 265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001/17 11:16 RackN00b: neat 11:26 (join) ambrosebs 11:27 (part) ambrosebs 11:27 RackN00b: How would I go about generating a list of random integers between 1 and 45 such that there are no repeats? 11:27 Pauan: hm 11:28 RackN00b: I need to basically take any character and create a numeric value for it.. Just wondering if there's a swifter method than writing it out... 11:28 Pauan: (shuffle (build-list 45 (lambda (x) (+ x 1)))) 11:28 Pauan: that will give you a list from 1-45 11:28 Pauan: no number repeated 11:28 Pauan: in a random order 11:29 Pauan: oh! 11:29 bremner: then just take prefix 11:29 Pauan: you can just use curry 11:29 RackN00b: argh! shuffle won't work in my language level :D 11:29 Pauan: drat 11:29 RackN00b: neither will curry unfortunately, but I can write my own version, in any case 11:29 Pauan: (shuffle (build-list 45 (curry + 1))) 11:29 Pauan: hm 11:30 Pauan: not sure how to do it without shuffle 11:30 Pauan: sans actually writing shuffle yourself 11:30 (quit) dvanhorn: Quit: dvanhorn 11:30 RackN00b: I don't think it would take me a reasonable amount of time... new to random, so... 11:30 Pauan: well 11:30 Pauan: you do have access to random, right? 11:30 RackN00b: How would I check? is there a random function? 11:30 Pauan: yes 11:31 Pauan: it's called "random" 11:31 RackN00b: what does it take are arguments? 11:31 Pauan: a number 11:31 Pauan: try (random 45) 11:31 RackN00b: works! 11:31 Pauan: okay 11:31 Pauan: I'll whip something up then 11:31 Pauan: but first 11:31 Pauan: do hash tables work? 11:31 Pauan: try (hash 'foo "bar") 11:32 RackN00b: Thanks Pauan... No idea - how do I check for hash tables (I don't even know what they are yet! ok) 11:32 RackN00b: not defined :( 11:32 Pauan: try this: (make-hash '((foo "bar"))) 11:33 RackN00b: nope 11:33 Pauan: well, *dang* 11:33 samth: RackN00b: what language level are you using? 11:33 Pauan: that means this function will be *slow* 11:33 Pauan: (since it'll be recursing over a list, doncha know)) 11:33 Pauan: though... 11:33 RackN00b: Intermediate Student with Lambda... that's ok - I only need to create it once 11:33 samth: also, here's a sketch of how to do it: 11:33 Pauan: ...do you have vectors? 11:33 RackN00b: nope 11:34 RackN00b: haha 11:34 samth: rudybot: (remove-duplicates (for/list ([i 20]) (+ 1 (random 45)))) 11:34 rudybot: samth: ; Value: (45 13 39 4 5 18 26 3 27 25 9 10 31 40 43 19 33 41 7) 11:34 samth: rudybot: (remove-duplicates (for/list ([i 20]) (+ 1 (random 45)))) 11:34 rudybot: samth: ; Value: (23 3 44 38 21 31 17 33 25 13 20 18 12 8 19) 11:34 samth: rudybot: (remove-duplicates (for/list ([i 20]) (+ 1 (random 45)))) 11:34 rudybot: samth: ; Value: (40 35 44 39 18 36 5 11 33 10 4 29 9) 11:34 Pauan: but... 11:34 samth: RackN00b: it should be easy to write that loop with `build-list' 11:34 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/0I7mqg 11:34 RacketCommitBot: [racket/master] add a compiler-hint:cross-module-inline hint. - Robby Findler 11:34 Pauan: the list length varies then 11:34 Pauan: RackN00b, is the list supposed to be a fixed size? 11:34 samth: and you should be able to write `remove-duplicates' following the design recipe 11:35 RackN00b: Yes... I need to me able to map each english-language character to a number... Like an ascii map or something akin to that... 11:35 Pauan: okay then 11:35 Pauan: that won't work 11:35 Pauan: I'll whip something up 11:35 Pauan: using lists 11:35 Pauan: (vectors would be *much* faster, I think) 11:35 Pauan: (as would hash tables) 11:35 Pauan: (but at least it'll work) 11:35 samth: Pauan: for lists of this length, hash tables would probably be slower 11:35 RackN00b: We don't get to play with any cool stuff in cs 135 yet! 11:36 Pauan: samth: yeah, that's quite possible 11:36 Pauan: I'm just a big stickler for algorithmic complexity 11:36 Pauan: I see lists and I go "ewww linear" 11:36 Pauan: I see hashes and go "yay constant" 11:36 samth: there's a reason that fast sorting algorithms use bubble sort or insertion sort on short sequences 11:36 Pauan: yeah, I know sometimes a "worse" algorithm performs better 11:36 Pauan: due to various factors 11:37 samth: the first rule of performance is "Measure!" 11:37 Pauan: and when the size is small enough, almost any algorithm is just fine 11:37 ozzloy: hashes are not linear 11:37 samth: there is no second rule 11:37 ozzloy: er... 11:37 Pauan: ozzloy: correct 11:37 ozzloy: constant 11:37 Pauan: well 11:37 ozzloy: hashes are not constant 11:37 Pauan: it's not quite constant, no 11:37 ozzloy: they are linear 11:37 ozzloy: in the worst case 11:37 ozzloy: which is what big-o measures 11:37 Pauan: hm... 11:37 RackN00b: Can I get drracket to print a list of all characters it recognizes? 11:37 Pauan: docs don't say that 11:37 Pauan: they say O(log N) 11:38 Pauan: but N is limited, so it's effectively constant 11:38 Pauan: I wouldn't be surprised if hash tables can in very pathological cases end up being terrible performance, though 11:38 ozzloy: how big of a data set are we talking about here? 11:38 Pauan: in this case? about 45 11:39 ozzloy: the first rule of optimization is don't .... 45?!? 11:39 Pauan: haha 11:39 ozzloy: waste of time 11:39 freakazoid: Definitely need Hadoop for a dataset that big. 11:39 freakazoid: Speaking of which Facebook and Twitter are both looking for data people 11:39 Pauan: RackN00b: do you have assoc? 11:39 RackN00b: how do i check? 11:39 Pauan: well, I would just see what it evaluates too 11:39 Pauan: if it evaluates to a procedure, you're good 11:40 freakazoid: so if you know anyone for either send to seanl@literati.org (I actually work for FB but Twitter just pinged me on LinkedIn and I'm a nice guy) 11:40 RackN00b: also, I;m reading up the drracket documentation and there seems like there might be something that takes ... yep! bytes->list 11:40 (join) shofetim 11:40 RackN00b: Pauan: not defined! haha 11:40 Pauan: well, dang 11:40 (quit) RackN00b: Remote host closed the connection 11:41 samth: ozzloy: yeah, you're right 11:41 samth: first rule: don't. second rule: measure. 11:41 (join) RackN00b 11:41 Pauan: what about member? 11:41 RackN00b: man.. colloquy keeps quittin on my... member? works 11:41 Pauan: okay 11:41 Pauan: that's all I need, then 11:41 (join) dnolen 11:41 samth: freakazoid: what do you work on at FB? 11:42 RackN00b: Pauan... wait - I might be able to use bytes->list 11:42 RackN00b: sorry.. list->bytes 11:42 Pauan: why did you ask for them to be random, then? :P 11:42 (quit) EmmanuelOga: Ping timeout: 248 seconds 11:42 RackN00b: Well they didn't absolutely need to be but I thought it would be nicer... but UTF-8 isn't in a particular order. 11:43 samth: RackN00b: utf8 is very much in a particular order 11:43 RackN00b: hmm..weird. so if A->65, B->66? 11:43 (join) dvanhorn 11:43 Pauan: there's a different code for lowercase and uppercase a, by the way 11:44 Pauan: but yes, B is 66 11:44 Pauan: in decimal 11:44 RackN00b: That's cool...Oh wait! no, it's not good. Others won't be able to use it - it has to be at intermediate student with lambda level if they want to tralate it back! 11:44 RackN00b: translate rather. 11:45 Pauan: aaaand bytes->list isn't defined? 11:45 RackN00b: nope :( I can't seem to find a list of defined functions organized per language level 11:45 Pauan: wait, why does it need to be random if you just want a pairing? 11:45 samth: RackN00b: see here: http://pre.racket-lang.org/docs/html/htdp-langs/intermediate-lam.html?q=intermediate 11:45 rudybot: http://tinyurl.com/82hbel7 11:45 Pauan: you could just do (build-list 45 (lambda (x) (+ x 1))) 11:46 RackN00b: Pauan - awesome, yep, that works... 11:46 Pauan: and then you could say that A is 1, B is 2, etc. 11:46 (quit) dvanhorn: Client Quit 11:46 RackN00b: Can that start at an integer other than 1 11:46 RackN00b: ? 11:46 Pauan: sure 11:46 Pauan: just add 1 to the lambda 11:46 RackN00b: cool 11:46 Pauan: (build-list 45 (lambda (x) (+ x 2))) causes it to go from 2-46 11:46 RackN00b: awesome, thanks 11:47 Pauan: build-list starts at 0 11:47 Pauan: hence the +1 11:47 (join) dvanhorn 11:47 RackN00b: samth: thanks for the link as well 11:47 (part) dvanhorn 11:47 (join) EmmanuelOga 11:52 RackN00b: (char->integer char) works! schweet 11:52 Pauan: oh, nice 11:52 (quit) dnolen: Quit: Page closed 11:52 (join) dnolen 11:53 (join) dingfeng 11:54 (join) anRch 11:56 dingfeng: (define xs (list 1 2 3)) (display (syntax-e #`(a #,@xs))) 11:57 dingfeng: (.# . .#) 11:57 dingfeng: why? 11:57 offby1: samth: geez 11:58 dingfeng: (define xs (list 1 2 3)) (display `(a ,@xs)) >>> (a 1 2 3) 12:01 (join) jeapostrophe 12:02 offby1: samth: thanks. That, obviously, looks like some sorta buffering problem. I swear I fixed something very much like this not long ago. 12:04 offby1: samth: https://github.com/offby1/rudybot/issues/11 if you care 12:05 (join) dvanhorn 12:05 dvanhorn: samth: hi 12:05 dvanhorn: rudybot: 'hi 12:05 (join) sigmat 12:05 rudybot: dvanhorn: your sandbox is ready 12:05 rudybot: dvanhorn: ; Value: hi 12:05 (join) mithos28 12:05 (join) jrslepak 12:05 (join) MayDaniel 12:06 dvanhorn: rudybot: (+ 3 2) 12:06 rudybot: dvanhorn: ; Value: 5 12:06 dvanhorn: rudybot: (define (! n) (cond [(zero? n) 1] [else (* n (! (sub1 n)))])) 12:07 rudybot: dvanhorn: Done. 12:07 dvanhorn: rudybot: (! 5) 12:07 rudybot: dvanhorn: ; Value: 120 12:07 dvanhorn: rudybot: (! 10) 12:07 rudybot: dvanhorn: ; Value: 3628800 12:07 dvanhorn: rudybot: (! 30) 12:07 rudybot: dvanhorn: ; Value: 265252859812191058636308480000000 12:08 jrslepak: rudybot: ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x))))) 12:08 rudybot: jrslepak: ; Value: ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x))))) 12:08 dvanhorn: rudybot: hey rudybot, can we go out for beers later? 12:08 rudybot: dvanhorn: It's not that we can't interpret it, it's that it's not the information we need. 12:09 (quit) bluezenix: Quit: Leaving. 12:09 (join) Olin_Shivers 12:09 Olin_Shivers: dvanhorn: HI 12:10 (part) RackN00b 12:10 sigmat: Olin_Shivers: suup 12:10 Olin_Shivers: dvanhorn: no I'm not 12:10 freakazoid: samth: At the moment I'm working on visibility into cache performance 12:10 (part) sigmat 12:10 (join) mechanik 12:10 Olin_Shivers: dvanhorn: I'm actually wearing my invisibility cloak. Look next to Martha 12:10 freakazoid: samth: high-density visualization of statistics, detecting and tracking down improper use of the cache, etc 12:11 jrslepak thought Chris was sitting further back 12:11 dvanhorn: rudybot: (define (f x) (f x)) 12:11 rudybot: dvanhorn: Done. 12:11 dvanhorn: rudybot: (f 5) 12:11 rudybot: dvanhorn: error: with-limit: out of time 12:12 (join) sigmat 12:12 (part) dvanhorn 12:12 (part) sigmat 12:13 (quit) mechanik: Client Quit 12:13 (quit) Olin_Shivers: Client Quit 12:14 freakazoid: And beating front-end engineers over the head with sticks. 12:16 (quit) freakazoid: Quit: Computer has gone to sleep. 12:20 RacketCommitBot: [racket] plt pushed 5 new commits to master: http://git.io/vUh7WQ 12:20 RacketCommitBot: [racket/master] place scrbl fix - Kevin Tew 12:20 RacketCommitBot: [racket/master] Allow instanciation of places with resolved module paths - Kevin Tew 12:20 RacketCommitBot: [racket/master] Fix place.c typos - Kevin Tew 12:25 (quit) Blkt: Quit: ERC Version 5.3 (IRC client for Emacs) 12:29 ozzloy: samth, heh. i've heard the second rule as "for experts only: don't do it *yet*" 12:33 ozzloy: Pauan, oh well then hash table doesn't do the naive thing when there's a collision, which i should have guessed 12:40 (quit) mithos28: Quit: mithos28 12:42 (quit) anRch: Quit: anRch 12:48 dingfeng: is unsyntax splicing supposed to behave the same way as unquote splicing? 12:49 samth: dingfeng: roughly, yes 12:49 samth: rudybot: #`(1 #,@(list 2 3)) 12:49 rudybot: samth: ; Value: # 12:50 dingfeng: rudybot: (syntax-e #`(1 #,@(list 2 3))) 12:50 rudybot: dingfeng: your sandbox is ready 12:50 rudybot: dingfeng: ; Value: (# . #) 12:51 dingfeng: how does the dot come about? 12:51 dingfeng: rudybot: `(1 ,@(list 2 3)) 12:51 rudybot: dingfeng: ; Value: (1 2 3) 12:52 (join) anRch 12:55 (join) jonrafkind 12:55 (join) ahinki 12:56 (join) kenjin 12:57 (nick) kenjin -> Guest30762 12:58 (quit) Guest30762: Client Quit 12:58 (join) kenjin2201 12:59 (quit) kenjin2201: Client Quit 13:00 (join) bluezenix 13:00 (join) RackN00b 13:00 RackN00b: Can anyone suggest how I should block together characters in my plaintext so that my algorithm doesn't produce what essentailly amount to a fancy substitution cipher? 13:04 jrslepak: if this just for playing around with simple crypto, try the Hill cipher 13:04 jrslepak: or did you already have a particular algorithm in mind? 13:05 RackN00b: I want to relate what we covered in math class to what we're doing in CS. I can encrypt character by character but that's kinda useless... It's RSA, I just can't see how to encrypt more than one character at a time... 13:05 jrslepak: oh ok 13:05 (quit) bluezenix: Quit: Leaving. 13:06 (quit) loz`: Remote host closed the connection 13:06 (join) loz` 13:06 jrslepak: for a simple example, consider your characters as digits (in base alphabet-size), decide how many digits to group together based on your RSA modulus 13:07 (join) freakazoid 13:08 RackN00b: Sorry I'm not clear on what you said: base alphabet-size ? And how does my RSA modulus affect the grouping? 13:08 jrslepak: 1. if there are n different characters available for writing messages in, think of each character in the message as a digit in base n 13:09 jrslepak: 2. you want there many possible plaintext blocks so that brute force is actually hard 13:11 RackN00b: ok... but I can arbitrarily choose how to block the palintext characters? If so, what does that block's numerical representation become? Ex, char1 -> 89 char2 -> 23... would I encrypt 8923 with my algorithm? 13:11 jrslepak: yes, if you've decided on 2-character blocks 13:12 RackN00b: So what if your character blocks don't divide the number of characters in your plaintext? 13:13 jrslepak: you could pick a "null" character to fill up the rest of your final block 13:15 RackN00b: Coo.. Now's I've converted my plaintext to the ascii codes - what if some of them are three digits and some are two digits? 13:16 jrslepak: 65 --> 065 13:16 (quit) anRch: Read error: Connection reset by peer 13:16 jrslepak: (if that's how you want to encode them...) 13:16 RackN00b: I see... Is there any way in DrRacket to combine two numbers in such a manner? ie. (somefoo 23 24) --> 2324 13:17 jrslepak: might be easier to say (65,106,39) -> 65*128^2 + 106*128^1 + 39*128^0 13:17 dingfeng: could anyone explain to me how the sexpr "(syntax-e #`(1 #,@(list 2 3)))" produces a dotted list? 13:18 RackN00b: I see. thanks - Imma see if I can get this working thanks 13:18 jrslepak: but the combination you ask for... look into number->string and string-append 13:18 RackN00b: Will do, thanks 13:21 (quit) keenbug: Ping timeout: 244 seconds 13:25 (quit) acarrico: Read error: Operation timed out 13:26 asumu: Anyone know offhand of a way to use 2htdp/image images as picts? 13:28 (quit) jrslepak: Quit: This computer has gone to sleep 13:31 stamourv: dingfeng: It doesn't. It's just that `syntax-e' only "peels off" the outermost syntax layer, exposing a pair. 13:31 stamourv: If you were to peel off more, you would get a list. 13:31 stamourv: rudybot: (syntax->datum #`(1 #,@(list 2 3))) 13:31 rudybot: stamourv: your sandbox is ready 13:31 rudybot: stamourv: ; Value: (1 2 3) 13:31 stamourv: rudybot: (syntax->list #`(1 #,@(list 2 3))) 13:31 rudybot: stamourv: ; Value: (# # #) 13:39 (join) acarrico 13:40 dingfeng: but are they the same, given that i can't remove the syntax when doing macros? 13:40 dingfeng: my macros fail unless i 13:40 dingfeng: do something like #,(append (list #'j-var) args) 13:42 stamourv: You're right that you don't want to peel off too much, but `syntax->list' is usually fine. 13:42 stamourv: And since you actually care about the list structure in your macro, it makes perfect sense to expose it. 13:42 (join) dingfeng_ 13:45 (quit) dingfeng: Ping timeout: 265 seconds 13:45 (join) dvanhorn 13:48 RackN00b: Argh! How do I keep leading zero on an integer? I'm trying to express 25 as 025 and I do a string-append to the converted number 25, but when I convert back, she switches back to 25... clues? 13:48 Pauan: that's because the reader strips it away 13:49 Pauan: you'll have to keep it in string form if you want the leading 0 13:49 Pauan: for the same reason that "25.50" turns into 25.5 13:51 ozzloy: is there a better way to get the first value out of (values 1 2) than to do (let-values ([(a b)]) (values 1 2) a)? 13:51 (quit) MayDaniel: Read error: Connection reset by peer 13:51 ozzloy: rudybot, eval (first (values 1 2)) 13:51 rudybot: ozzloy: your sandbox is ready 13:51 rudybot: ozzloy: error: context expected 1 value, received 2 values: 1 2 13:52 ozzloy: rudybot, eval (let-values ([(a b) (values 1 2)]) a) 13:52 rudybot: ozzloy: ; Value: 1 13:52 ozzloy: (pretend i got the brackets right the first time) 13:52 Pauan: there's "call-with-values", but... 13:52 RackN00b: Crap.. I can't do any arithmetic on it if it's in string form... 13:52 Pauan: not sure if that's really any "better" 13:53 Pauan: RackN00b: that's correct, you'll need to convert it into a string to do math 13:53 Pauan: in which case you'll probably want to save the "convert to string and pad it" bit for last 13:53 RackN00b: Oh wait.. I can just append something other than 0... it should still work... 13:53 Pauan: or at least as late as you can 13:58 dingfeng_: well, i still don't see why the dotted list is generated... is that the inteded behavior? doesn't quite make sense. and it does make a difference when handling symbols from other contexts 13:58 ozzloy: i was going to suggest format, but it looks like it doesn't have the equivalent of c-style %03d 14:04 RackN00b: Is there a way to test for an empty string as a base case for recursion through a string? I want to spilt a string into 16 character blocks... 14:04 Pauan: I guess you could use (equal? x "") 14:04 RackN00b: cool 14:09 (quit) metadave: Read error: Connection reset by peer 14:09 (join) metadave 14:21 (quit) attila_lendvai1: Ping timeout: 248 seconds 14:22 (quit) dingfeng_: Ping timeout: 265 seconds 14:25 (join) MayDaniel 14:30 (join) mithos28 14:31 stamourv: In Racket from up to date git, I can't get the macro stepper to start. Anybody has the same issue? 14:32 stamourv: Actually, that seems to be only for TR files. 14:32 (join) anRch 14:33 stamourv: Upon further inspection, it's only for TR files that don't typecheck. 14:37 (quit) MayDaniel: Read error: Connection reset by peer 14:38 jonrafkind: stamourv, are you running from drracket? 14:38 jonrafkind: try this on the command line: racket -e "(require macro-debugger/stepper) (expand-module/step \"$1\")", and replace $1 with a filename 14:38 jonrafkind: i just put that into a file called 'macro-stepper' 14:41 (join) jschuster 14:45 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/nWyS7w 14:45 RacketCommitBot: [racket/master] add a contract for slideshow/pict's bitmap function - Robby Findler 14:45 RacketCommitBot: [racket/master] drop the weekend condition for the default icon style - Robby Findler 15:17 (join) Blkt 15:41 asumu: Hooray to whomever wrote the shadow-frame function in unstable for slideshow. 15:41 asumu: pslides + shadow-frame + a nice font (like Cantarell) => nice looking slideshow presentations 15:41 jonrafkind: can you show a quick example? 15:42 jonrafkind: whats pslides 15:43 asumu: Allows for "drag and drop" style slides rather than the append together style of normal slideshow slides. 15:44 asumu: Used like (pslide #:go (coord 0.3 0.3) (t "Upper left") #:go (coord 0.7 0.7) "Down here") 15:44 jonrafkind: where do you get it, i dont see it in the docs 15:44 asumu: jonrafkind: http://pre.racket-lang.org/docs/html/unstable/ppict.html 15:45 jonrafkind: oh tags look nice 15:46 (quit) anRch: Quit: anRch 15:47 ozzloy: anyone in here taking the ai-class.com course? 15:48 (quit) ahinki: Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20110928224103] 15:49 asumu: ozzloy: Wanted to, but had no time. :\ 15:49 asumu: (incidentally, someone should do a pl-class.com) 15:50 ozzloy: asumu, it's a cool class. actually i want the answer to be "no" because i want to ask about my implementation and not worry about academic integrity rules 16:18 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/k81jEg 16:18 RacketCommitBot: [racket/master] fix variables assigned but not referenced - Kevin Tew 16:18 RacketCommitBot: [racket/master] fix bug in cross-module inliner - Matthew Flatt 16:19 ozzloy: what's a good pastebin for racket code? 16:19 ozzloy: oh maybe gist 16:21 ozzloy: i have implemented the maxValue algorithm shown at 1:31 here http://goo.gl/O5gZ8 using this code: https://gist.github.com/1419964 i'm hoping someone can stop laughing at it for long enough to tell me how to do it better 16:21 samth: ozzloy: also paste.lisp.org 16:23 ozzloy: where better is determined by some function that values idiomatic racket and fewer sexps, possibly without the initialization to inf.0 16:26 samth: ozzloy: https://gist.github.com/1419997 is a little nicer, maybe 16:26 samth: you might just write it with a loop 16:26 samth: instead of a `for' 16:30 (quit) bfulgham: Ping timeout: 245 seconds 16:30 ozzloy: samth, thanks 16:31 stamourv: jonrafkind: Yeah, that's from DrRacket, lemme try your thing. 16:32 stamourv: Oh, that uses the text stepper, right? 16:32 (quit) metadave: Read error: Connection reset by peer 16:32 stamourv: xrepl can do that already. 16:32 (join) metadave 16:32 stamourv: But I want to explore the syntax objects, which the text version can't do, IIRC. 16:33 (part) RackN00b 16:34 ozzloy: samth, would your version stop after the first successor-value that surpasses the upper-bound, or skip all the iterations where successor-value is greater than upper-bound? 16:34 jonrafkind: stamourv, it spawns the gui 16:36 stamourv: Oh, does it? I'll give it a try then. 16:37 samth: ozzloy: skip them 16:39 ozzloy: samth, the original algorithm shows returning maximum-value after the first that exceeds the upper-bound, beta 16:39 samth: ah, ok 16:39 samth: yours iterates over everything, but just doesn't do anything for those values? 16:39 ozzloy: yeah 16:39 ozzloy: doesn't descend 16:40 ozzloy: i was thinking for/first would be what i wanted 16:40 ozzloy: but i couldn't wrap my head around how to update the v and alpha 16:47 samth: you could just change my code or yours to use `for/first' 16:49 (join) bfulgham 16:50 stamourv: jonrafkind: That works, thanks! 16:51 jonrafkind: nice 16:51 stamourv: But it only works with relative paths. 16:51 jonrafkind: meaning what 16:51 (join) keenbug 16:51 stamourv: You can't have an absolute path as your $1. 16:52 jonrafkind: oh interesting.. i wonder why that is 16:52 stamourv: `expand-module/step' takes a module-path. 16:52 stamourv: And absolute paths are not in the grammar for module-path. 16:53 samth: stamourv: you can use (file "/absolute/path") 16:53 stamourv: Ah, good point. 16:57 stamourv: eli: What do you think about adding jonrafkind's trick to launch the graphical macro stepper to xrepl? 16:59 jonrafkind: does xrepl have a way to add user commands yet? i forget 17:02 (quit) dvanhorn: Quit: dvanhorn 17:04 (join) dvanhorn 17:09 (join) bluezenix 17:10 (join) leandrosansilva 17:11 (join) RackN00b 17:13 RackN00b: How would I create a list of possible permutations of three symbols... I ask for the following reason: I have three functions that act on a particular structure. Each of those three functions can be called three times in a given "run". So the max number of function calls is 9. I would like to create a list that has all combinations of those functions up to 9... any ideas? 17:15 samth: RackN00b: there's an htdp problem about permutations 17:15 samth: problem 12.4.2 17:15 samth: you should look at it 17:15 RackN00b: Ooh.. I shall take a look - thanks 17:15 samth: and follow the design recipe to solve it 17:15 samth: really, trust me on that one 17:15 RackN00b: will do, thanks 17:15 RackN00b: Can I apply my powerset function for this? 17:16 stamourv: samth: Found the problem with `for/sum'. 17:16 (join) kbs 17:16 samth: stamourv: awesome 17:16 stamourv: Look at the expansion of `(for/sum: : Float ((i : Float (quote (1.2 3.2)))) i)'. 17:16 samth: is it that it's generalizing 0 to Number? 17:16 stamourv: No. 17:16 samth: i mean integer? 17:16 stamourv: Yes. 17:16 samth: right 17:16 samth: but it doesn't work even if you change it to `Real' 17:17 stamourv: That means that the argument is now Integer. 17:17 stamourv: And Floats don't work there. 17:17 samth: so we need to be groveling more to find the relevant information 17:17 stamourv: Yes. I said I found the problem, not a solution. 17:18 samth: fixing `for/sum:' with `Real' as the annotation should be pretty easy 17:18 samth: but `Float' is harder 17:18 stamourv: I don't see how. 17:18 stamourv: We can't inject the annotation. 17:18 samth: why not? 17:18 stamourv: It's too deep in the expansion. 17:18 samth: just do the expansion yourself 17:18 stamourv: Same problem we had with `for/hash' and other. 17:19 stamourv: Wait, you mean have the implementation of `for/sum:' expand `for/sum', then look through the remains? 17:19 samth: (for/sum seqs . body) = (for/fold ([i 0]) seqs . (let ([v (let () . body)]) (+ v i))) 17:19 stamourv: Didn't we decide that that was a horrible solution? 17:19 stamourv: Oh, that/. 17:19 stamourv: Yeah, can do.\ 17:19 samth: just implement it yourself 17:20 stamourv: In terms of `for/fold' makes sense. 17:20 samth: since it's simple and doesn't depend on any of the hairy parts of `for' 17:20 shofetim: I am working on a presentation in #lang slideshow, editing in emacs and sending 'slides' as I build them to a repl running in emacs. But when I make a syntax error the slideshow closes, and I have to restart the repl to get it back... 17:20 samth: which we don't want to touch 17:20 stamourv: Right, I thought you meant reimplementing the whole thing. 17:20 samth: shofetim: yeah, there's some mutable state in `slideshow' which can only be used once 17:20 samth: it can be annoying 17:21 shofetim: so I have to reload from the beginning and navigate back to the slide I was on? 17:22 (quit) kbs: Quit: leaving 17:27 samth: shofetim: check out `start-at-recent-slide' 17:28 shofetim: samth: nice : ) 17:37 stamourv: samth: Got the Real part working. 17:37 samth: stamourv: awesome 17:37 stamourv: Now, the question is: Calling `subtype' from inside `base-env/prims.rkt': ugly or disgusting? 17:37 stamourv: If it's merely ugly, I can fix the Float part. 17:39 samth: disgusting 17:40 stamourv: Ok, then I got nuthin'. 17:41 samth: yeah, me neither 17:41 samth: the problem is this: 17:42 samth: (for/sum: : Float ([i : Float '(1.1)] #:when (zero? (random 1))) i) 17:43 stamourv: Well, my disgusting solution would have fixed that. 17:43 samth: by changing the semantics of for/sum: when you annotate it with Float? 17:43 stamourv: Yes. 17:43 samth: that's worse than disgusting 17:44 stamourv: But good point, that's a change of semantics, so that's out. 17:44 samth: maybe there should be an flsum 17:44 samth: rather, for/flsum 17:44 stamourv: Bleh. 17:44 stamourv: Would only be useful for us. 17:45 samth: well, you can get dynamic errors in racket b/c of this 17:45 samth: (flvector-set! fv 0 (for/sum ...)) 17:47 stamourv: Yes, but only if you're summing over empty sequences. 17:47 stamourv: But good point. 17:48 stamourv: Numbers are hard, let 17:48 stamourv: 's do XML! 17:48 samth: how much do you want to know about character sets? 17:49 (quit) Blkt: Remote host closed the connection 17:50 stamourv: All the world is ASCII? 17:50 stamourv flees. 17:50 samth: what was your name again? 17:51 stamourv: All ASCII. 17:51 stamourv: As problematics as dashes are, they're ASCII. 18:15 (quit) jeapostrophe: Ping timeout: 255 seconds 18:20 shofetim: How do I make a pict fill an entire slide? (no border etc)? 18:21 samth: what do you mean? 18:21 samth: i haven't had a problem doing that 18:22 shofetim: I don't see anything in the docs (I may be missing it). I have an image that is roughly 1200x1000 and I want it to be the slide... no border etc. Right now I can get it to fill up everything but about a 20px wide border 18:22 samth: shofetim: try using the `inset' function with -20 18:23 samth: see also set-margin! 18:25 shofetim: samth: thanks : ) 18:31 (quit) leandrosansilva: Ping timeout: 260 seconds 18:46 (join) jeapostrophe 18:54 (quit) bluezenix: Quit: Leaving. 19:02 (quit) dnolen: Quit: Page closed 19:03 (quit) dvanhorn: Quit: dvanhorn 19:04 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/22G3OA 19:04 RacketCommitBot: [racket/master] Use `bitmap' instead of `icon->pict' - Neil Toronto 19:12 (quit) keenbug: Ping timeout: 252 seconds 19:55 (quit) masm: Quit: Leaving. 19:59 (join) dvanhorn 20:02 (nick) samth -> samth_away 20:03 (join) francisl 20:04 (quit) freakazoid: Quit: Computer has gone to sleep. 20:08 (join) freakazoid 20:17 (join) kingless 20:21 (part) RackN00b 20:23 (quit) francisl: Remote host closed the connection 20:24 (join) francisl 20:31 (quit) fridim_: Ping timeout: 248 seconds 20:32 (quit) shofetim: Ping timeout: 255 seconds 20:32 (quit) jonrafkind: Ping timeout: 240 seconds 20:40 (quit) kingless: Quit: Colloquy for iPhone - http://colloquy.mobi 20:40 (join) dingfeng 20:45 dingfeng: rudybot: (define-syntax foo (lambda (stx) (print (syntax-e stx)) #'(display "\n"))) (foo 1 2 3) 20:45 rudybot: dingfeng: could anyone explain to me how the sexpr "(syntax-e #`(1 #,@(list 2 3)))" produces a dotted list? 20:46 dingfeng: rudybot: (print (syntax-e #`(foo 1 #,@(list 2 3)))) 20:46 rudybot: dingfeng: your sandbox is ready 20:46 rudybot: dingfeng: ; stdout: "'(# # . #)" 20:46 dingfeng: rudybot: (begin (define-syntax foo (lambda (stx) (print (syntax-e stx)) #'(display "\n"))) (foo 1 2 3)) 20:46 rudybot: dingfeng: ; stdout: "'(# # # #)\n" 21:13 freakazoid: rudybot: (syntax-e #`(foo 1 #,@(list 2 3) #,@(list 4 5))) 21:13 rudybot: freakazoid: your sandbox is ready 21:13 rudybot: freakazoid: ; Value: (# # . #) 21:14 freakazoid: rudybot: (syntax-e #`(foo #,1 #,@(list 2 3))) 21:14 rudybot: freakazoid: ; Value: (# # . #) 21:14 dingfeng: don't u think syntax unquote splicing should be consistent with the stx argument of (define-syntax foo (lambda (stx) ... ? 21:17 freakazoid: hmm 21:18 (quit) jeapostrophe: Ping timeout: 260 seconds 21:19 freakazoid: well, that's not actually a list 21:20 freakazoid: it's nested syntax pairs 21:20 dingfeng: it's a (cons #'1 #'(2 3)) 21:21 freakazoid: I was referring to the one with the foo 21:21 freakazoid: you probably want syntax->list instead of syntax-e to flatten syntax pairs 21:22 freakazoid: rudybot: (syntax->list #`(foo 1 #(,@(list 2 3)))) 21:22 rudybot: freakazoid: ; Value: (# # #) 21:22 freakazoid: err 21:22 freakazoid: too many parens 21:22 freakazoid: rudybot: (syntax->list #`(foo 1 #,@(list 2 3))) 21:22 rudybot: freakazoid: ; Value: (# # # #) 21:23 dingfeng: u're right that there's negligible practical impact once you know about it and use syntax->list. it's just... not consistent. i'd sortof expect #` to be the same as the stx argument for a macro 21:23 dingfeng: to produce something identical to the stx argument for a macro 21:23 freakazoid: "A syntax object that is the result of read-syntax reflects the use of delimited . in the input by creating a syntax object for every pair of parentheses in the source, and by creating a pair-valued syntax object only for parentheses in the source. See Reading Pairs and Lists for more information." 21:24 freakazoid: I don't know whether/how that applies in this situation - syntax objects are still new to me 21:24 freakazoid: I suspect it's communicating something about the structure of the original code by maintaining the non-flat syntax pair structure 21:26 freakazoid: anyway, time ot head home 21:26 dingfeng: if that's the case, then shouldn't (begin (define-syntax foo (lambda (stx) (print (syntax-e stx)) #'(display "\n"))) (foo 1 2 3)) produce the syntax pairs as well? 21:26 dingfeng: alright. seeya (: 21:27 (quit) dvanhorn: Quit: dvanhorn 21:29 freakazoid: dingfeng: My suspicion about that is that unsyntax-splicing behaves differently than you think it does. 21:29 freakazoid: (whereas in my case, I think it works by magic) 21:32 (quit) freakazoid: Quit: Computer has gone to sleep. 21:35 (quit) mithos28: Quit: mithos28 21:38 (quit) dingfeng: Ping timeout: 265 seconds 22:09 (join) jrslepak 22:15 (join) mithos28 22:16 (quit) mithos28: Client Quit 22:25 (join) jeapostrophe 22:30 (quit) jeapostrophe: Ping timeout: 248 seconds 22:32 (join) freakazoid 22:41 (join) attila_lendvai 22:41 (quit) attila_lendvai: Changing host 22:41 (join) attila_lendvai 23:11 (join) mithos28 23:12 (join) mithos28_ 23:13 (join) jeapostrophe 23:15 (quit) mithos28: Ping timeout: 255 seconds 23:15 (nick) mithos28_ -> mithos28 23:20 freakazoid: is there any management of thread mailbox sizes? 23:20 freakazoid: Or is it the same as erlang where you can run yourself out of RAM? 23:21 mithos28: I don't think so, but there are async-channels? 23:21 mithos28: You can use those (ignore the ? from before) 23:21 freakazoid: yeah, I was just wondering if the thread mailbox was the right thing to use for this application 23:22 mithos28: async-channels are built onto of thread queues I think 23:22 (join) dnolen 23:23 freakazoid: hmm 23:24 mithos28: never mind, looked at the code it is built ontop of channels and a manager thread 23:24 freakazoid: yeah, I am looking at that 23:25 mithos28: why do you want thread mailboxes over async-channels? 23:28 (join) jonrafkind 23:31 (quit) jeapostrophe: Ping timeout: 260 seconds 23:36 freakazoid: just seemed like the thread mailbox was more appropriate for what I'm doing 23:37 freakazoid: but an async channel makes more sense to control the mailbox size to the worker threads 23:42 (join) realitygrill 23:54 (join) jeapostrophe 23:55 (quit) dnolen: Quit: dnolen