#clojure logs

2010-07-07

00:01mudgehey rhickey
00:14_KY_How good is clojure on .NET currently?
00:29fuchsdI'm trying to use some of the functions from the leiningen uberjar namespace in another lein plugin that I'm writing. When I try to use them in the plugin's namespace like this:
00:29fuchsd(:use [clojure.contrib.duck-streams :only [spit make-parents]]
00:29fuchsd [leiningen.uberjar :only [get-default-uberjar-name]])
00:30fuchsdI'm getting this exception:
00:30fuchsdException in thread "main" java.lang.IllegalAccessError: get-default-uberjar-name is not public (project.clj:10)
00:30fuchsdAs far as I can tell from the source, that function isn't private
00:30fuchsd(it's definied with defn, not defn-)
00:30fuchsdIs there any other reason that I would be getting that exception?
00:31fuchsd(using lein 1.1.0
00:31tomojI don't see a get-default-uberjar-name in 1.1.0
00:32fuchsdCrap, right; I'm looking at the source for the wrong version
00:32fuchsdD'oh!
00:32fuchsdthanks
00:32tomojthat's a silly error message though
00:33tomoj,(use [clojure.core :only (foo)])
00:33clojurebotjava.lang.ClassNotFoundException: clojure.core
00:33tomojerr
00:33tomoj,(use '[clojure.core :only (foo)])
00:33clojurebotjava.lang.IllegalAccessError: foo does not exist
00:33tomojuhwhat?
00:33tomojI get "foo is not public"
00:34fuchsdHmm
00:37jkkramer,(clojure-version)
00:37clojurebot"1.2.0-master-SNAPSHOT"
00:38wdouglas,[(= #"" #"") (= (str #"") (str #""))]
00:38clojurebot[false true]
00:39wdouglasWhy regular expressions equal themselves?
00:40wdouglasand is turning them into string form the best of of doing equality testing for my unit tests?
00:42tomoj,(class #"")
00:42clojurebotjava.util.regex.Pattern
00:42tomojit's java's fault :P
00:42wdouglasI usually blame java
00:42wdouglas=(
00:43tomojI guess turning them into strings should work..?
00:43tomojreal equivalence for regexes sounds like a pain
00:43tomojif it's even possible..
00:44wdouglasHrm I'd be okay with trivial equivalence where the regex patterns themselves are the same and not full on if they evaluate the same but I guess I'm stuck with string representations.
00:45wdouglasThanks!
02:11BahmanHi all!
02:11_KY_Is there a guideline for translating lisp to clojure for someone new to clojure?
02:15tomoj_KY_: I don't know of any
02:15tomojthat would be an interesting project
02:16tomojperhaps with some examples
02:16tomojI think if it's not just some small function, it'd be pretty hard to write a book on techniques for translation
02:17tomojbecause the algorithm itself might need to change
02:17tomojbut some worked examples would be helpful anyway I imagine
02:21zmilathere are some portings of PCL to Clojure. one may see the examples
03:25tomojanyone know if the clojure-json protocols branch has been abandoned?
03:25tomojlooks like the master branch has some changes not in the protocol branch, but maybe those bugs were already fixed in protocols?
04:26esjHello all
04:33Raynesesj: Good morning, sir.
04:57LauJensenGood morning all
05:01esjMorning Lau
06:13cais2002- query-param-names# (sort (map (fn [x#] (keyword (re-gsub #"-" "_" (name x#))))
06:13cais2002- (concat ~required-params provided-optional-params#)))
06:13cais2002- query-params# (apply hash-map (interleave query-param-names#
06:13cais2002- (vec (concat ~required-fn-params
06:13cais2002- (vals (sort (select-keys rest-map#
06:13cais2002- provided-optional-params#)))))))
06:13cais2002+ required-query-param-names# (map (fn [x#] (keyword (re-gsub #"-" "_" (name x#))))
06:13cais2002+ ~required-params)
06:13cais2002+ optional-query-param-names-mapping# (map (fn [x#] [x# (keyword (re-gsub #"-" "_" (name x#)))])
06:13cais2002+ provided-optional-params#)
06:13cais2002+ query-params# (merge (apply hash-map (vec (interleave required-query-param-names# ~required-fn-params)))
06:13cais2002+ (apply merge (map (fn [x#] {(second x#) ((first x#) rest-map#)}) optional-query-param-names-mapping#))
06:13cais2002+ )
06:14cais2002sorry guys.. was meant for another private chat window
07:24npoektopdoes clj-apache-http require clojure 1.2?
07:25LauJensennpoektop: The AOT compiled version of any clojure lib, requires a 100% match in Clojure version. When you use the source, typically its very flexible and if any changes are required they are small. Dont know the specifics for that project
07:38npoektopwhat does mean "All :namespaces already compiled." line in lein uberjar output?
07:49LicenserNpoektop, it means you have Not specified namespaces to compile. That is no proplem in general unless you need oat
07:50LicenserAot
07:54npoektopwhat is aot and do i need it?
07:55AWizzArdIt means "Ahead of Time" - the compilation happens when you call compile-file, and not when the Clojure code gets loaded.
07:55AWizzArdIn Java terms: aot = compile a file
07:56cemericknpoektop: it's only needed when (a) you can't/don't want to ship source or (b) you need to make startup time for the app as fast as possible or (c) you are aiming to integrate with some other Java code that needs to statically refer to classes.
07:59npoektopgot it. thank you
08:00AWizzArdHi hoeck
08:00hoeckhi
08:13_KY_How do I use the stacktrace?
08:14_KY_I typed (ns user (:require clojure.stacktrace))
08:14_KY_And then I type (e) but it says symbol not resolved
08:14neotyk(clojure.stackrace/print-stack-trace t)
08:15AWizzArd_KY_: when you require a namespace, then you must preceede (sp?) its vars and fns with the NS, or an alias.
08:15neotyk_KY_: use (:use ..) if you want to use it as print-stack-trace
08:19_KY_Thanks=)
08:21neotyknp
08:46_KY_How can I break from program execution to debug?
08:49neotyk_KY_: you mean like getting thread dump of running process?
08:49neotykor connecting with debugger?
08:49_KY_I mean break into the REPL
08:49_KY_Like (break) in Lisp
08:50neotykyou could try swank.core/break if you use new swank
08:58npoektopi'm using clojure-contrib-1.1.0 and trying to do (:require [clojure.contrib.io :as io]), and it says "Could not locate clojure/contrib/io__init.class or clojure/contrib/io.clj on classpath". Clojure.contrib.io is specific to 1.2?
08:59AWizzArdnpoektop: when .io does not work try clojure.contrib.duck-streams
08:59esj_KY_: This http://georgejahad.com/clojure/cdt.html was just mentioned on the google group, could be good for you ?
08:59npoektopAWizzArd, i'm trying to make clj-apache-http work with 1.1
09:00npoektopit uses contrib.io
09:01AWizzArdWhat does the manual of clj-apache-http say about which version of Clojure and Contrib one should use?
09:01npoektopnothing
09:01npoektopbut when building with lein, it uses 1.2
09:02npoektopis there a way to provide contrib.io for 1.2?
09:02npoektopno. 1.1
09:05AWizzArdYou could manually copy io specific files from a fresh clojure-contrib.jar that you can get from http://build.clojure.org/ into the .jar that you are using.
09:08npoektopAWizzArd, thank you. i found duck-streams was renamed to io, so i'll try it first
10:03jcromartieI've got a proposal for adding examples to defn
10:15jcromartiehere we go
10:15jcromartieliberally borrowing from doc
10:15jcromartieand print-doc
10:15jcromartiehttp://gist.github.com/466743
10:18jcromartie(updated the gist, for anyone who might have already looked at it)
10:25cemerickjcromartie: I've not followed any threads about examples so far -- the example metadata would exist separate from the defns themselves?
10:29jcromartienot necessarily
10:29jcromartieit could just be a :examples key in the attributes map
10:29jcromartieset-examples! is just for testing with existing vars
10:29cemerickah, ok
10:30cemerickAnyway, that looks pretty nifty
10:30jcromartieyeah, and it works two ways: either a vector of arguments, or actual code in case you need to set things up with a let or whatever
10:30jcromartiebut the vector of args is nice and simple
10:32cemerickI know it'd be repetitive, but I'd almost rather see '(reduce + [1 2 3])
10:33cemerickit's taking some degree of mental overhead to remind myself that there's an invocation occurring with the vector of args
10:34cemerickoh, '(reduce + [1 2 3]) would work too :-)
10:35jcromartieyup :)
10:36vibranthello
10:46jcromartiehowdy vibrant
11:03vibranthey what's up jcromartie
11:22rbxbxwhat is the preferred way for testing that a string matches a regex with test-is ?
11:23rbxbxsomething akin to (deftest test-name-generation
11:23rbxbx (let [new-clomo (clomo/create {})]
11:23rbxbx (is (= true (re-find #"\w{2,}" (new-clomo :name))))))
11:23rbxbx ?
11:26AWizzArdrhickey: ping
12:55rbxbxfor reference, if anyone was interested in my prior query...
12:55rbxbx(deftest test-name-generation
12:55rbxbx (is (re-find #"\w{2,}" (new-clomo :name))))
12:55rbxbxseems to be a good assertion
14:04LauJensenGood morning all
14:05LauJensen(UGT) :)
14:10qbgGood afternoon
14:48leafw,(.getField StringBuilder "count")
14:48clojurebotjava.lang.NoSuchFieldException: count
14:48leafw,(.getField (class StringBuilder) "count")
14:48clojurebotjava.lang.NoSuchFieldException: count
14:48leafw,(.getField (class (StringBuilder.)) "count")
14:48clojurebotjava.lang.NoSuchFieldException: count
14:48leafwsigh
14:48leafwhow can one access the .class object of an instance?
14:49chouseryou're doing it
14:50leafwyes, it gets a java.lang.Class instance
14:50leafwbut not the particular StringBuilder.class
14:50leafwwhat am I missing?
14:51chouserthere is no field named count
14:51chouser,(.getMethod StringBuilder "length" (into-array Class []))
14:51clojurebot#<Method public int java.lang.StringBuilder.length()>
14:51chouserthere's a method named "length"
14:51leafwright, it's in AbstractStringBuilder
14:51leafwits superclass
14:52chouserperhaps not public?
14:52leafwsetAccessible will fix that
14:52leafwI see, I need getDeclaredMethod
14:52leafwpr getDeclaredField
14:52leafwslow day
14:52leafwthanks chouser
14:52chouser:-) np.
14:53leafw,(.getDeclaredField (class (AbstractStringBuilder.)) "count")
14:53clojurebotjava.lang.IllegalArgumentException: Unable to resolve classname: AbstractStringBuilder
14:53leafw,(.getDeclaredField (class (java.lang.AbstractStringBuilder.)) "count")
14:53clojurebotjava.lang.IllegalArgumentException: No matching ctor found for class java.lang.AbstractStringBuilder
14:53leafwxD
14:54leafwright ...
14:54qbg,(.getDeclaredField AbstractStringBuilder "count")
14:54clojurebotjava.lang.Exception: Unable to resolve symbol: AbstractStringBuilder in this context
14:55leafwno worries, I got it solved. (class <instance>) does the right thing. I was just not using getDeclaredField
14:55rbxbxbefore I go ahed and re-implement it, do clojure or java have an equivalent to ruby's succ method on string? I've looked into it and haven't found anything, but perhaps I'm short on the google-fu today.
14:56rbxbxie: 'a'.succ
14:56rbxbx-> 'b'
14:56rbxbx'z'.succ
14:56rbxbx-> 'aa'
14:58chouserjava's Integer has base-36 support, but that's not quite what you're describing.
14:58chouser,(Integer/toString (inc (Integer/parseInt "a" 36)) 36)
14:58clojurebot"b"
14:58chouser,(Integer/toString (inc (Integer/parseInt "z" 36)) 36)
14:58clojurebot"10"
14:58rbxbxright, it'd have to be base26, no?
14:58chouserI guess
14:59chouserInteger supports base 26 too, but it'll use numeric digits ahead of the alphabet
14:59rbxbxbasically though, I must write my own :)
14:59rbxbxah.
14:59rbxbxhmm
14:59chouserrbxbx: there may be some solution in java that I'm not aware of.
15:00rbxbxNothing has been immediately obvious, I think I'll give up and plow onward.
15:00rbxbxJust wanted to make sure i hadn't missed something obvious.
15:00rbxbxThanks :)
15:00chousersure
15:06jcromartieIf anybody hasn't seen it and is interested, please check out my "examples" concept http://gist.github.com/466743
15:06jcromartieseems quiet in here today
15:06jcromartieI should post to the group
15:07rbxbxinteresting.
15:09rbxbxI'm not sure how much value this gives over having examples in the docstring though, other being able to programmatically extract them.
15:09rbxbxmakes for easier doc generation, i suppose?
15:12tomojI think I might like (join-str "," [1 2 3]) better than ["," [1 2 3]] even though it's redundant
15:24jcromartietomoj: you can do that
15:29LauJensenFor those who care about productivity, I blogged: http://bestinclass.dk/index.clj/2010/07/trail-blazing-innovators.html
15:36tomoj"emacs for everything and conkeror for the rest" - right on!
15:39LauJensenRight on! :)
15:40tomojwhoa I never knew the repl would hang inside a frame with swank.core/break
15:40LauJensenIts a cool trick
15:40tomojbrilliant
15:41LauJensenMakes it easier to 'fiddle', which is at the heart of dynamic development :)
15:48dakronehey LauJensen, I'm curious, any particular reason you like Awesome over WMII?
15:48LauJensendakrone: No not at all
15:49LauJensenOf the tiling WMs Ive only tried Awesome, but I liked it so much that I didnt feel the need to try out the others :)
15:49dakroneheh :)
15:49tomojLauJensen: did you have to build a TAGS file for the clojure java sources?
15:50LauJensentomoj: yea, find . -name *.java -type f -exec etags.emacs -a --language=java {} \;
15:51tomojnice, thanks
15:51LauJensennp, I got it from hugod
15:56Rayneshttp://gregslepak.posterous.com/on-lisps-readability Looks like he really is starting a movement.
15:57RaynesI hope very few people agree with him. I couldn't bear seeing Clojure code formatted the way he wants it formatted. :\
15:58fogusSeems like a lot of words for something so simple.
15:58LauJensenRaynes: It really takes away from the seriousness of your comment, when you start with "The second is tons less readable" :)
15:58RaynesLauJensen: Huh?
16:00RaynesBecause I said "tons"?
16:00RaynesD'oh well.
16:00fogusMy first action when reading someone else's source is C-x h, CM-\
16:00RaynesI can't edit it now. Guess I'll have to don my red clown nose.
16:02RaynesMaybe the reason people get so "religious" about this formatting debate that all of a sudden exists is because they actually have to read this code. :p
16:04RaynesI guess I just don't understand how it's any easier to see what that println is in the second example than the first. Even in curly-bracket languages I always have to do the show-matching-x thing to know where stuff is.
16:05LauJensenI really hope we dont have to waste any time on that discussion
16:05LauJensenI think people who prefer poorly formatted lisp are using bad editors
16:05RaynesI think his argument would make more sense if he would realize that you aren't putting the parens *after* the function name and argument list like you would be doing in a curly bracket language, and there is no special indentation being done, so his example quite literally does nothing but take up unnecessary lines. ._.
16:05LauJensenI have never, not that I can remember at least, found myself wondering about which scope a println was in. And if I did, by the time I realized that I was wondering, the cursor would already be a the paren which would need highlighting to find out
16:06RaynesSorry. Just kind of irks me.
16:06RaynesLauJensen: Exactly.
16:06fogusI remember working in a few codebases where people would close every bracket with something like `} //end if (foo == 42) ... that was fun
16:07LauJensenhehe
16:07fogusThere was never a doubt which bracket was closing which block... um, unless the comments were out of date -- that never happened right?
16:09fogusMaybe we should do that with Clojure... ) ;; end (let [foo 42] ...
16:11Raynes:)
16:11fogusOr better yet, we could attach metadata to the closing parens so that the compiler can validate that the right block is being closed properly? ) {:closing '(let [foo 42] ...)}. Hmmm, but that forces us to rely on the compiler.
16:11fogus:p
16:13RaynesMe go sleepy.
16:15Raynesfogus: Also, thanks for those kind words in the header of our interview. I've never been called a prodigy before. <3
16:16fogusRaynes: :-)
16:16LauJensenInterview? Link
16:16LauJensen?
16:16Rayneshttp://is.gd/dhplh
16:17LauJensencool, I'll check it out
16:19LauJensenNice
16:20RaynesHe also interviewed technomancy.
16:21RaynesThat one was fun to read.
16:21LauJensenAnd see
16:21rbxbxI've found them all pretty enjoyable thusfar :)
16:21Raynestechnomancy: I request Phil action figures. <3
16:21LauJensenOh yea I definitely want one of those
16:21RaynesI haven't read any of the other interviews.
16:22RaynesI read mine four times.
16:22RaynesNo vested interests there.
16:22rbxbxhaha
16:22LauJensenhaha
16:22rbxbxspoken like a true 16 year old :p
16:23LauJensenI forgot to mention you in my last screencast Raynes, thats a mistake on my part :(
16:23qbgI still like this from liebke's: http://images.fogus.me/blog/cookie.gif
16:23LauJensenrbxbx: you're 17? :)
16:23rbxbx:p
16:23rbxbx23, looming on 24.
16:23rbxbxancient, I tell's ya.
16:24LauJensenYea, when I was 16 I was mostly having fun, being unserious. When I was 23 I was married and had a house :)
16:24rbxbxbut with an almost 4yo daughter, so I'm pretty I've aged 2-3 years every year since she was born.
16:24rbxbxI'm pretty sure* rather.
16:24LauJensenAh yea, thats a great age
16:24rbxbxagreed!
16:24RaynesLauJensen: You said you mentioned me in one a while back.
16:24RaynesI forget why though.
16:25LauJensenRaynes: I spoke on you for a while a my DKUUG talk, I dont know why they're taking so long with the video release though
16:25RaynesEr, in a talk.
16:25RaynesSomething.
16:25LauJensenAnyway - About 30 people in Denmark know you by name now
16:25RaynesAye.
16:25RaynesHaha.
16:25Raynes:)
16:25rbxbxYou're the hasselhoff of denmark.
16:25LauJensenSo if you visit here, you might have to go undercover :)
16:25LauJensenHaha
16:26Raynestechnomancy: Awesome comment on Greg's post. I didn't realize that was your uberjar function until just now.
16:26Raynes:p
16:26rbxbxis that the same greg that was griefing the mailing list about __> ?
16:26RaynesI'm guilty of that as well.
16:26Raynesrbxbx: I don't think so.
16:27RaynesHe griefed the channel a week or so ago about the same thing he made that blog post about.
16:28rbxbxPoor guy. He just wants acceptance :(
16:28RaynesAnd he griefed the mailing list about the "Clojure newbie experience".
16:28RaynesBut that's the extent of his griefage.
16:28rbxbxthe clojure newbie experience isn't that bad.
16:28RaynesAt least he hit home in some areas with the Clojure newbie experience post.
16:28rbxbx*shrug*
16:28rbxbxI will say I got the functional aspects of clojure much more so after spending some time with haskell.
16:28rbxbxI think embracing lisp and FP was too much for me at once
16:29RaynesI don't think I would have gotten Clojure if I hadn't spent time with Haskell before that.
16:29rbxbxGlad to see I haven't been misleading people in advocating that then :)
16:29rbxbxat least in 2 out of n cases.
16:30RaynesI think Haskell is important to learn just because you'll think back on when you said "Lisp was insane and a total mindfuck" and laugh until your eyes bleed.
16:31rbxbx:D
16:31rbxbxaye.
16:31LauJensenok, I think you guys need to get some sleep now, at least I do :)
16:32rbxbxIt's only 4:30 pm here, I should probably stay awake for a bit.
16:32rbxbxBut by all means, sleep, denmarkian.
16:32rbxbxcheers.
16:33RaynesIndeed. Goodnight.
16:33RaynesIt's only 3:30pm here, but I woke up at 11 last night. :>
16:34rbxbxAh, right, summer.
16:35Raynesrbxbx: I do that in the Winter as well. I'm home schooled.
16:35RaynesNo reason to get up in the morning until I have a job.
16:36rbxbxbastard!
16:36rbxbxc'est le vie.
16:36rbxbxyou could always go the startup or freelance route, and never have to be a real human.
16:37rbxbxthat said, if you're freelancing, your clients will wake you up.
16:37rbxbxor at least try to
16:37RaynesHeh.
16:37RaynesGoodnight for real.
16:37Raynes<3
16:37rbxbxta!
16:50mabescould someone explain to me the motivation on why records (defrecord) don't implement clojure.lang.IFn?
16:51mabesif records are meant to be treated like a hashmap it seems like having clojure.lang.IFn implemented would make sense so you could say (record :value) in addition to (:value record)
16:57polypusmabes: agreed
16:58rbxbxI didn't realize you couldn't. o_O
16:58rbxbxI wonder if there's any sane reasoning behind that.
16:59mabesI believe there is.. at least people on the list have alluded to that.. but I have not been able to find the motivation documented anywhere so I'm curious
17:00TakeVDoes Clojure work for Android development?
17:00arohnermabes: I know that (:value record) uses a java accessor rather than a hashmap lookup, so it's faster. Of course, that's not by itself a justification
17:01mabesarohner: ahh, well, that might be it.. since clojure tends to discourage practices that lead to poor(er) performance
17:04polypusarohner: yeah i think it does, but then couldn't defrecords' IFn implementation do the same?
17:14eevar_meh @ http://gregslepak.posterous.com/on-lisps-readability -- of course the 2nd example is easier to scan (despite his formatting), he's using 4-space tabs instead of 2 spaces
17:30arohneris there a lein plugin thats sort of like rake tasks? I don't need a full blown plugin, just something to make it easy to call 3 line clojure functions
17:31neotykarohner: just put that function in proper package
17:32arohneroh right. I keep forgetting you can put src/leiningen in your own code
17:32neotykquite convenient, isn't it?
17:33arohneryes it is.
17:33arohnerThat will be called by lein's jvm, rather than the target's jvm, right?
17:34neotykcan you describe diff between those two?
17:35arohnerthe clojure.jar may be different. lein starts with the clojure.jar it wants, while lein swank starts with the clojure.jar in your project.clj
17:35arohners/lein swank/target jvm/
17:35sexpbotthe clojure.jar may be different. lein starts with the clojure.jar it wants, while target jvm starts with the clojure.jar in your project.clj
17:36technomancyarohner: correct
17:38neotykso in lein's clojure.jar hook/plugin gets executed
18:58duncanmquiet
19:21clojayGood evening. I'm using Clojure 1.1 and when I try to use the source symbol from the Repl, it doesn't work for me. Do you know why that may be the case?
19:24polypusi have a class name as a symbol and want to make a new instance. how do i do it?
19:25polypusi.e. i don't know the class name at compile time
19:30arohnerclojay: source symbol? you mean like (source map)?
19:30clojayarohner: correct.
19:30arohnerclojay: I think that was added to clojure core in 1.2. Try clojure.contrib.repl-utils/source
19:31arohnerpolypus: you can use the reflection api, or mess with the class class
19:31arohnerpolypus: http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/lang/Class.html
19:31clojayarohner: contrib is in my classpath already. How do I load the functions in contrib from Repl?
19:32arohnerpolypus: see .getConstructors(), and then .newInstance() on the constructor
19:32polypusarohner: thanks many
19:32arohnerpolypus: also worth checking out Reflector.java in the clojure source
19:32arohnerclojay: (use 'clojure.contrib.repl-utils)
19:34clojayarohner: thank you. that worked.
19:36clojayIs there a way to clear the Repl (like clear in bash) and to exit without Ctrl+D?
19:37arohnerclojay: Try Ctrl-L to clear
19:37arohnerclojay: to exit (System/exit 0)
19:37clojayarohner: fantastic
19:37clojayarohner: thanks
19:39clojayarohner: earlier you questioned my use of the word "symbol" to describe "source". What would be the right term? Function? Form?
19:39arohnerclojay: function
19:39clojaythanks
19:40arohnerclojay: in clojure, symbol means the literal sequence of characters
19:40arohnerclojay: the symbol evaluates to an object
19:41clojayso the source symbol evaluates to actual function source defined in contrib
19:41arohnerif the first element in a list evaluates to a function, it's called
19:41clojurebothttp://www.math.chalmers.se/~rjmh/Papers/whyfp.pdf
19:41arohnerclojay: right
19:42arohnersymbols and functions are both objects that have values
19:42arohner,(symbol "foo")
19:42clojurebotfoo
19:42arohner,(keyword "foo")
19:42clojurebot:foo
19:42clojaygot it
20:08dabdI am searching for the Clojure 1.2.0 roadmap to find more info about support for annotations in gen-class. Does anyone know where this is documented? Thanks.
20:17polypusdynamic records: http://gist.github.com/467471
21:06mudgei'm writing a namespace I'm going to gen-class, is the init function the constructor?
21:11mudgehello
21:12mudgeis the init function called before the super method?
21:14qbgLooks like it since init must return [ [superclass-constructor-args] state]
22:43mudgethanks qbg
22:44mudgei found what i needed: post-init
22:44mudgepost-init is called after all the constructors are called, just what I needed
23:12eyerisIf I use leiningen, where should my source files go for a file with a namespace of edu.wisc.uwsc.prosyncd?
23:13eyerisI would thinkg src/edu/wisc/uwsc/prosyncd.clj
23:13dnolen eyeris: yup
23:14eyeriswhen I run `lein nailgun`, then open that file and \et to eval the ns macro at the top of the file, it says that no such file is on the classpath
23:19eyerisNevermind. I guess the lein-nailgun clojar is crap
23:20eyerisYou have to use org.clojars.brandonw/lein-nailgun
23:36brweber2is there something like a (source function-name) similar to (doc function-name) or (find-doc "module-name")?
23:38mabes_brweber2: what do you mean.. there is a source function
23:38mabes_,(doc source)
23:38clojurebot"clojure.contrib.repl-utils/source;[[n]]; Prints the source code for the given symbol, if it can find it. This requires that the symbol resolve to a Var defined in a namespace for which the .clj is in the classpath. Example: (source filter)"
23:40brweber2mabes_ thanks, didn't have contrib in my path ... doh!
23:41BahmanHi all!