9:13 Chouser: abrooks: that's not true (about python's tuples and hashes)
9:24 python: ({(1, 2): 3})[(1,2)] ==> 3
9:25 I think in python the key is required to be immutable.
9:43 rhickey: anyone try the ants yet?
9:44 abrooks: Chouser: Zounds! You got me! :) I'm pretty sure the same is not true of lists (I know I've run into something like this) but I should (apparently) go recheck.
9:44 rhickey: I did last night. Very slick. And tiny.
9:45 rhickey: abrooks: what platform? I only tried on OS X and Ubuntu
9:45 abrooks: Gentoo Linux, Sun 1.6.0.05
9:46 rhickey: I'm about 3/5ths through the audio. Does the audio glitch for you or is that just my player?
10:04 rhickey: yes, there are glitches that occurred in the video transfer, sorry. I tried to clean them up as much as possible. I'm told the final video will have clean audio...
10:04 but I didn't want people to have to wait any longer
10:05 is it bearable?
10:10 abrooks: rhickey: I think it's bearable. Much of the glitching seems to correspond with slides on locking which sets the right mood IMO. :)
10:10 rhickey: funny
10:17 abrooks: Chouser: Python lists and dicts have a __hash__() which raise an exception. Object are hashed by their instance. (Which is what I recalled happening to everything.) Tuples (as you point out (as in clojure)) are hashed by value.
10:25 Chouser: It's funny all the different places people come from when arriving at Clojure.
10:26 Lots of Java, CL, and Scheme of course, but also some Haskell, Scala, Python. Not much PHP, though.
10:27 abrooks: Bug? This works just fine (at first) (re-seq #"[0-9]+" "123,312,99018") however, this (re-seq #"\d+" "123,312,99018") ... and now the bug ... after invoking the second form at the REPL, the first form breaks with an IllegalArgumentException thrown by the reader.
10:27 rhickey: --^
10:27 I suppose I should post this to the group to give more detail.
10:28 Chouser: no need
10:28 it's the backslash
10:28 abrooks: Chouser: Must... not... say... uncharitable... things... about... PHP.
10:28 Chouser: currently #"" uses the same escaping rules as a string, so want #"\\d+"
10:29 There's been discussion about changing that.
10:29 abrooks: Chouser: I tried that as well -- I realized the escaping issue. The bug is that the first form fails after issuing the second. Try it.
10:30 Chouser: yeah, the second form leaves the reader in a broken state.
10:30 abrooks: ... and that seems like a bug.
10:30 rhickey: yes, and a java bug prevents the workaround
10:31 had to be pulled
10:36 abrooks: So the lesson is "don't break the reader".
10:36 rhickey: for now
10:36 Chouser: I think some of the proposed escaping rules for #
10:37 for #"" would reduce the frequency that people actually run into that bug.
10:37 rhickey: but the most common case is a bad escape in a regex, so when I change that it will happen less often
10:38 * rhickey agrees with Chouser
10:38 * Chouser agrees with rhickey
10:38 abrooks: heh
14:10 Chouser: If want to parallellize CPU-intensize work, I should use agents not threads. But what if I have IO-blocking tasks? Does it make sense to interact with Java threads directly?
14:38 rhickey: you can use send-off for blocking tasks. they use a different (non-fixed) thread pool
14:39 Chouser: oh! cool.
15:24 wabash: rhickey: Are you the author of Clojure?
15:24 rhickey: yes
15:40 wabash: Wow. You have my admiration. Now I understand about interned strings and clojure. I'm a FP newbie, but maybe if I study hard, I'll be able to contribute in some way in the future.
15:41 rhickey: interned strings?
15:47 wabash: Yes, as I think it was called...... I asked about java vs. clojure in regards to string interning. I called it "pooled"...
15:48 rhickey: ok
15:51 Chouser: rhickey: I think I'll have some code for Clojure Contrib. My email is chouser at sourceforge.
15:52 rhickey: Chouser: great!
15:52 Chouser: I have to clean it up -- mainly come up with a sane namespace.
15:58 abrooks: Chouser: You've finished noiski! ;-D
15:59 Chouser: I assume this is the xpath replacement?
15:59 Chouser: abrooks: yeah, I'm pretty sure I like using it well enough in its current form -- I'd like to get it out there.
15:59 I'm less sure about the triples stuff yet.
16:01 abrooks: Chouser: We've only been poking at the tripples now for what... five, six years? I don't think one month of Clojure would change that. :)
16:11 Chouser: :-)
16:16 wabash: rhickey: At some point if you need work on documentation, I would like to contribute.
16:27 rhickey: wabash: thanks - the wiki is a good place for that
18:22 Chouser: rhickey: you want a single file per namescape, directly in clojure-contrib? Do we need a trunk subdir?
18:22 I assume you want CPL license, do you also want the copyright in your name?
18:24 rhickey: I guess we should do standard SVN structure, so yes, trunk
18:24 yes CPL for all
18:24 Copyright in author's name ok
18:24 same header as in Clojure code is good
18:25 Chouser: ok
18:25 rhickey: I can't say I've planned this all out :)
18:27 Chouser: np, as long as you don't mind me bugging you as I go along.
18:27 rhickey: sure
18:28 glad to have the help
18:28 very psyched to see the nascent community
18:30 Chouser: good! I'm happy to be a part of it.
18:30 I hope it stays that way for you. I have a project right now where the community serves mainly to provide me with guilt about how little I'm keeping up with the project. :-/
18:31 So I try to mask the guilt by working on clojure code instead. :-D
18:31 rhickey: :)
21:17 jonathan_: clojure has regexes!?!? awesome
21:24 sometimes it's hard to keep up with language features. Nice problem to have :)
23:03 jonathan__: great article here, the bipolar Lisp programmer http://
23:53 abrooks: jonathan_: Interesting article.