8:19 pmf: I just discovered that Clojure's core data structures do not implement the Serializable-interface and cannot easily be transferred via ObjectOutputStream/ObjectInputStream. Is there an idiomatic way to use the standard Java-serialization or does anyone have a nice way of dealing with this?
8:19 rhickey: addind Serializable support is on the todo list
8:20 adding
8:22 jteo: thank you, benevolent dictator
8:23 pmf: Ok, nice. (I assume the semantics of serializing structures referring to functions are not all too easy, so I was wondering whether this will be possible at all.)
8:24 rhickey: no, functions will remain as difficult to serialize in Clojure as they are everywhere else
8:25 but vars will work
8:25 which helps if your functions are top-level named fns
8:26 then put vars in your structures instead of fn values, since vars implement IFn by calling their values
11:34 Chouser: anyone heard anything about the NetBeans plugin that's "due" this month?
11:35 My hopes for it are probably over-inflated, but I'd love for NetBeans + Clojure to be the "next emacs".
11:38 rhickey: gave it a test drive yesterday:
11:39 repl
11:39 code navigation panel
11:39 namespace browser
11:39 debugging, w/breakpoints, locals
11:40 documentation tooltips
11:40 completion
11:40 pretty cool
11:40 jteo: intriguing.
11:40 Chouser: and most of that is implemeneted in Clojure, I believe?
11:40 rhickey: yes
11:40 Chouser: ...which gives it a good leg up on that self-hosting stuff that Yegge's on about.
11:41 So where can I download it? :-)
11:41 rhickey: yes, there are actually 2 Clojure instances, one in Netbeans and one for the code you are developing, can toggle the repl to talk to either
11:41 Chouser: yeah, that sounds Right.
11:42 jteo: Chouser: ah that essay about XEmacs.
11:42 rhickey: I think the download will be available this week sometime
11:42 enclojure.org
11:42 Chouser: will it be commercial, do you know?
11:42 rhickey: open source
11:42 Chouser: excellent.
11:43 rhickey: Netbeans' license(s)
11:43 Chouser: oh, sure.
11:44 ericthorsen: We will have something up for enclojure before the end of the week.
11:45 Chouser: ericthorsen: I'm so excited. there's no way it can live up to my hopes. ;-)
11:46 ericthorsen: perhaps it can eventually...the possibilities with having a lisp in this environment are giving me very high hopes as to what we can do with this as well...looking forward to feedback
11:50 Chouser: I've got NetBeans installed and jVi seems to work fine, so I'm ready to go.
11:51 rhickey: jVi?
11:52 Chouser: http://
11:53 vim clone that can be plugged into NetBeans (and JBuilder).
11:53 rhickey: yikes
11:53 Chouser: :-)
11:54 rhickey: That kind of thing is important though, as people want the benefits of an IDE but can't switch their fingers over to a different system
11:54 Chouser: It appears to using the hosting IDE's folding, coloring -- maybe even the full text rendering, and presumablye the file load/save system.
13:55 nsinghal: I have a function which returns sorted-map - the result is converted to string and streamed back on a socket, it is then evaluated again. PersistentTreeMap is now converted to PersistentHashMap. Is there a reader version of sorted-map?
13:58 rhickey: no, but if you control the emit you can emit a call to sorted-map
13:58 instead of a map literal
13:59 are you really eval-ing or just read-ing?
14:01 nsinghal: its reading
14:01 not evaling
14:02 rhickey: sorry there are no sorted map/set literals yet
14:02 nsinghal: np i will send the call to sorted-map, thx
14:03 rhickey: but if you are reading you will just get a list with a first item of 'sorted-map
14:08 nsinghal: right but then subsequent call will get the rest, right
14:08 the object will be used then in the regular manner and that should be ok
14:09 rhickey: reading (sorted-map :a :b :c :d) yields a list of 5 items, not a sorted-map
14:09 nsinghal: oh
14:10 for now i will sort my map again after streaming.
14:10 rhickey: right
14:10 nsinghal: thx
14:53 ericthorsen: what is the canonical way to convert a map literal to a sorted map?
14:54 rhickey: (reduce conj (sorted-map) {:a 1 :b 2 :c 3 :d 4})
14:54 ericthorsen: ah...
14:55 thanks
14:55 rhickey: sure
14:56 also: (merge (sorted-map) {:a 1 :b 2 :c 3 :d 4})
14:56 ericthorsen: is one more efficient than the other?
14:57 rhickey: and: (conj (sorted-map) {:a 1 :b 2 :c 3 :d 4})
14:58 ericthorsen: not appreciably different
19:10 foones: Hi, I am just starting with Clojure
19:10 rhickey: welcome
19:10 foones: I wanted to know if there is a way to combine
19:10 load-file + refer
19:11 so that I can define functions in different files and namespaces
19:13 Maybe I am confused, and there's a smarter way to do this, but I would like somethink like
19:13 (use foo)
19:13 == (load-file "foo.clj") (refer 'foo)
19:14 rhickey: there is an effort underway in the contrib project building just that, called lib.clj
19:14 foones: Ahh, I understand
19:14 rhickey: http://
19:14 foones: is there a way to get the file?
19:15 rhickey: at some point something like this will be rolled into Clojure proper
19:15 foones: :)
19:15 Thank you very much
19:15 rhickey: sure
19:19 gomer-nyc: I noticed someone asked about serialization this morning.
19:20 I am working on a project at the moment where I serialize data, mostly maps, and other "basic" clojure data structures.
19:21 rhickey: serialize via what mechanism?
19:21 gomer-nyc: I use the traditional lisp approach of (pr-str) to generate a string representation and then simply (read) to reconstruct the data
19:21 rhickey: ah, the easy way :)
19:22 gomer-nyc: :-) yeah, it is working pretty well
19:22 rhickey: I can see the need for Serializable support, given the many libraries that require it
19:22 gomer-nyc: right
19:23 rhickey: read/print is nice to have, and I want to extend it towards Java types too, probably via JavaBeans' (XML) serialization
19:23 gomer-nyc: I'm working on an interface to Berkeley DB and do not need the Serializable support.
19:23 Hmmm, that would be very interesting.
19:24 I don't really know anything about Beans
19:32 rhickey: gomer-nyc: decent article - http://
19:41 gomer-nyc: ok cool. Looks pretty straightforward
19:42 rhickey: I think so, but have never used it. Being text -based, it's a good fit for read/print
19:45 gomer-nyc: I have a question on a different matter
19:46 Have read in the newsgroup about your position on keyword arguments for functions
19:47 this is a somewhat related question - what do you think about support for default values for optional params?
19:48 currently I'm using overloads to essentially accomplish this, and of course I can have a macro that does it for me, but just curious
19:50 rhickey: it will always be macrology, I'm happy with invoke() as is. I had keywords/optionals just like CL in an earlier incarnation
19:51 gomer-nyc: ok
19:52 rhickey: overloads are a big perf win
19:52 gomer-nyc: right, I love having it.
19:53 rhickey: and allow inner params to be optional
19:56 gomer-nyc: great; well, let me get back to my clojure hacking. thanks for your time!