#clojure log - Apr 01 2008

The Joy of Clojure
Main Clojure site
Google Group
List of all logged dates

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

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://www.lambdassociates.org/blog/bipolar.htm

23:53 abrooks: jonathan_: Interesting article.

Logging service provided by n01se.net