#clojure logs

2012-02-08

00:44akhudekIf col is a sorted-set with custom comparator, having (disj col (first col)) not change col must mean that the comparator is buggy right?
00:46amalloymmmm, not necessarily. it might be an empty set
00:47akhudekdefinitly not empty :/
00:47amalloythen i think it must be broken somehow
00:48akhudekok, thanks
01:16muhoowhat does lein trampoline actually do? jump execution to a vector in ROM?
01:16muhooonly time i've heard the term trampoline used was in embedded microcontrollers
01:32sgronbloIs there some pattern/function for getting the first true value returned by a list of functions?
01:35ibdknox,(first ((apply juxt [true? false? coll?]) []))
01:35clojurebotfalse
01:35ibdknox,(first (filter identity ((apply juxt [true? false? coll?]) [])))
01:35clojurebottrue
01:35ibdknoxlol
01:35ibdknoxnot what you wanted
01:36ibdknoxI wanted juxt in there, but I guess not
01:36ibdknox,(first (filter identity (map #(% []) [true? false? coll?])))
01:36clojurebottrue
01:38ibdknoxsgronblo: the not retarded answer: (first (filter #(% []) [true? false? coll?]))
01:39Raynes~amalloy
01:39clojurebotamalloy is <amalloy> just use juxt, it'll be great
01:40ibdknoxactually, you wanted the value so the previous one is correct
01:40ibdknoxthat last one returns the function
01:40Raynesibdknox: Bed time, perhaps?
01:40ibdknoxyeah
01:40ibdknoxI stayed up way too late and got up far too early
01:43muhoo#(% []) ? so, (true? []) why the empty list there?
01:43ibdknoxthe vector represents some value you might execute the function against
01:43muhooah
01:43ibdknoxif they're all zero arg functions you could remove it
02:04sgronbloibdknox: Yeah, but I was more interested in if this is a widely used pattern in clojure/FP?
02:13scottjsgronblo: have you seen some-fn?
03:43Blktgood morning everyone
03:50seancorfieldhi Blkt
03:58Blkthi seancorfield :D
04:31seancorfieldI'm not usually online in the middle of the night (for me)... it's kinda quiet here...
04:33ejacksonyeah, the euro/UK crowd is not so big yet
04:33ejacksonperhaps EuroClojure will raise pulses som
04:41clgvI think there are fewer IRC using Clojurians in Europe.
04:42luciani'm un the UK
04:42lucians/un/in/
04:42luciani don't use clojure much, though
04:44ejacksonthese kids and their bookface.
04:45lucianejackson: i had to google bookface ...
04:45ejacksonglad to hear it. welcome, grey hair.
04:46lucianejackson: i'm 22...
04:47ejacksonlike I said
04:47ejacksongramps
04:50seancorfieldI'm from the UK but live in San Francisco (well, about 35 miles SE).
04:51seancorfieldI did some Lisp and FP stuff at University (Surrey) back in the *cough* early 80's...
04:51ejacksonI'm from SA but live in the UK. Love postmodernity !
04:52seancorfieldOne of the UK ThoughtWorkers has just moved over here and is asking about running Clojure dojo events which would be cool.
04:52Fossiwell, i guess most of the people from europe idle :)
04:53seancorfieldI run the San Francisco Clojure meetup and the members have asked for more hands on stuff so that would fit in really well... He used to organize the London Clojure dojo events... Lucky for us :)
04:53seancorfieldWish I could be in the UK for EuroClojure... it would be fun to see how the european Clojure community compares...
04:54clgvoh, there is a EuroClojure event?
04:54Fossino there is no eureclojure event
04:54clgvlol, that site is broken: http://euroclojure.com/2012/
04:54Fossiat least not unti l i booked my cheap ticket :>
04:56seancorfieldHow much Clojure in production is there in Europe then?
04:57ejacksonseancorfield: For me it will be nice to be non-jetlagged as well as exhausted, like at the Conj
04:57ejacksonseancorfield: not a lot
04:57Fossii know about 10ish in germany
04:57ejacksonin the UK some of the banks have desks doing it, and there are a few of us indies scattered about the place
04:57Fossidepends on how you count "production" though
04:59lucianejackson: banks? really?
04:59ejacksonthe Thoughtworks guys know it, but as far as I know, haven't found a client willing to use it
04:59seancorfieldejackson: I'll be in the UK at the end of September - my wife is judging a cat show in Stevenage on September 22/23 and two weeks later she's judging in Moscow so we'll hang out with friends and family in between... Hoping for a tech conference in London or Amsterdam in that period too so I can turn it into a business trip :)
05:00ejacksonlucian: yeah, at least two (from the calls I get from recruiters desperate to find anybody who speaks this.... what's it called again ?)
05:00lucianejackson: really? i know some clojure :)
05:01ejacksonseancorfield: aah yes... expenses :)
05:03seancorfieldShe's judging a cat show in Australia in August but we're paying for those flights ourselves. At least the Stevenage / Moscow clubs will cover her airfare to England / Russia. But not mine.
05:04ejacksonalso, the guys at metail.co.uk have some Clojure in production
05:05seancorfieldSeems to be a lot more Clojure sneaking into production over here...
05:05lucianthe java angle seems to be paying off
05:06seancorfieldThat's how we started using Clojure - we're already on the JVM... we tried Scala but it didn't really fit the team's "culture"...
05:07lucianalso, scala's syntax is disgusting
05:09seancorfieldLOL, I got into trouble for saying that in public...
05:09lucianseancorfield: how so? it's quite an obvious fact
05:09lucianit's almost as stupidly complicated as C++'s
05:09Fossino
05:09Fossiit's far more stupid
05:10lucian(also, i'm saying this as a pythonista, not a list weenie)
05:10lucians/list/lisp/
05:10lucianFossi: you must not know C++ syntax particularly well :)
05:10Fossithe method-binding-changing: alone makes me *RAGE*
05:10Fossion the other hand
05:10Fossiif i ever have to use scala i can make a lispish dialect
05:11Fossiby only using : methodnames and putting paranthesis everywhere :>
05:11luciani see only one advantage with scala: more similar to java (which also implies easier to interact with java machinery)
05:12Fossithat's also quite a big downside too
05:12pandeiroanyone know why GClosure's History fires event callbacks twice on every hash change? i am using cljs one's wrapper but it seems straightforward enough
05:12Fossias in: in reallife projects styles get mixed up like *hell*
05:12Fossiit's a major pita
05:12Fossiyou never know where a functional part starts and where it will end suddently
05:13seancorfieldlucian: i actually think clojure's java interop is better than scala's
05:13Fossipandeiro: i think some browsers actually do that
05:14lucianseancorfield: maybe. it's still easier to extend a java class in scala, and then furter extend in java
05:14Fossiyeah, like that's a good thing :>
05:15lucianFossi: only if someone enforces java
05:15pandeiroFossi: thanks for the lead, hadn't considered that
05:15seancorfieldlucian: yeah, but in scala it's real easy to get munged class names unless you steer clear of nearly all of scala's useful features
05:16lucianyeah, i guess
05:16Fossipandeiro: just a hinch
05:21ejacksonseancorfield: The one where he gets his Fez out is my favourite thing ever
05:22lucianseancorfield: ah, good idea. i've been reading the book and having to re-read paragraphs a lot
05:23pandeiroseancorfield: for the awesome intro music, right?
05:27seancorfieldpandeiro: it'll drives me nuts by the end of the course, i'm sure...
05:27seancorfieldsussman has really animated eyebrows... :)
05:27pandeirobut by then you'll be that wizard so...
05:28seancorfieldhe was great at the conj... covered a lot of ground in an hour... took me back to my university days at times :)
05:29lucianwe did java at uni ...
05:30ejacksoni did assembly only, don't complain
05:30ejackson:P
05:31lucianheh
05:33seancorfieldjava didn't exist when i was at uni ... heck, c++ didn't exist until i was doing my phd!
05:34seancorfield(not that i did c++ at uni... didn't start that until '92)
05:35ejacksoni remember being super excited one day to get my hands no a C compiler for my chip. SO HIGH LEVEL !
05:36ejacksonjava did exist though :P
05:38seancorfieldThis is turning into the Four Yorkshiremen sketch... :)
05:39lucianheh
05:48ejacksonhehe, in snow this deep !
05:52pandeiroFossi: you were right btw, issue with double firing of hash-change events is Chromium-specific. I would never have thought...
05:57Fossipandeiro: i had a similar problem lately, that's why i suspected it :)
05:59pandeiroFossi: actually Firefox does same... b/c there's a onpopstate event and an onhashchange event and GClosure's history watcher fires on each for some reason... so you always get a double navigation event
06:01lucianpandeiro: sounds like a bug in GClosure's history watcher. i'm using Backbone to do the same thing and it fires one of the two
06:03pandeirolucian: good to know... i could fall back to GClosure's History (not Html5History) ... tbh probably easiest to just write it with plain JS
06:03lucianpandeiro: if i were you i'd write my own history watcher in cljs, i think
06:09pandeirolucian: yeah, that's what I meant... I'd also like to submit an issue to GClosure but have no idea how/where or even what version I am using
06:09pandeirolucian: curious, are you using backbone from cljs?
06:10lucianpandeiro: no, CoffeeScript
08:39clgvconsider the following: (import 'java.lang.management.ManagementFactory) (ManagementFactory/getOperatingSystemMXBean) on a linux java I get a UnixOperatingSystemMXBean from the second form. what do I get on windows? can anyone try?
09:20jkdufairany of the authors of any of the clojure books here, by chance?
09:24clgvcan someone with windows and java 6 (or 5) try the following (import 'java.lang.management.ManagementFactory) (ManagementFactory/getOperatingSystemMXBean) and tell me if the returned object has a getProcessCpuTime method?
09:28jkdufairclgv: it seems to
09:29jkdufairi'm on java 1.6.0_30 on windows 7
09:30clgvok
09:30clgvthx
09:30jkdufairnp. curious: what are you writing?
09:32clgvI need the used cpu time to estimate parallel execution ratio
09:32jkdufairah cool
10:18Fossiany word yet on who wants to give talks at euroclojure?
10:21cemerickI'm sure they're going to get a pile of proposals.
10:22Fossiguess so too :)
10:24dsabaninhey guys
10:24dsabaninI wonder what is a good way to make this: (contains? ["abc"] "abc") to return true
10:25dsabaninI mean, is there something other than contains? that would work the way I expect?
10:26ordnungswidrigdsabanin: ,(some #{"needle"} ["hay" "needle" "hay"])
10:26cemerick,(some #{"x"} ["x"])
10:26clojurebot"x"
10:27dsabaninnifty! thanks :)
10:30dsabaninshould that work if my collection is clojure.lang.ArraySeq?
10:30dsabaninthis is args array I get in main func
10:30ordnungswidrigshould work with any sequence
10:31dsabaninI get Exception in thread "main" clojure.lang.ArityException: Wrong number of args (1) passed to: core$-main$fn
10:31dsabaninon: (some #("--client") args)
10:31dsabaninouch
10:32dsabaninsorry :)
10:32dsabaninI'm newbie :D
10:54jkdufaircan anyone suggest why 'read-line seems to work in a repl (and even in slime when wrapped in 'swank.core/with-read-line-support but does not work via "lein run"?
10:55humasect:dev-dependencies ?
10:56jkdufairi have swank-clojure in :dev dependencies
10:56jkdufairbut i tried it without the wrapper
10:57humasecthmm. i use emacs
10:57jkdufairi do too :-)
10:57humasectclojure-jack-in ? =)
10:57jkdufairworks great there
10:58jkdufairtrying to build a standalone app
10:58humasectahh standalone with repl? how come ?
10:58jkdufairstandalone w/o repl
10:58jkdufairhence the lein run
10:58humasectlein repl should work if clojure-jack-in works
10:58jkdufairlein repl works fine. just not lein run
10:59humasectah hmm.. if using swank there, perhaps move to :dependencies if lein run doesn't look at :dev-dependencies
11:01jkdufairnot using swank
11:02jkdufaircommented it out. same issue
11:05humasectwhat i mean to say, that lein run does not use dev-dependencies
11:05humasectif using the dependencies in the app itself, perhaps add them there instead.
11:06jkdufairi took the deps out of the app altogether
11:07humasectthose are needed
11:07raekjkdufair: there is another bug/problem with read-line and lein run. it is actually a bug in ant
11:07jkdufairah fun. any workarounds?
11:08humasectto be clear, my suggestion is to move dev-dependencies to dependencies. and see what happens after lein deps; lein run
11:08raekjkdufair: there are some threads on the leiningen google group about this
11:09jkdufairok. i'll look. thx
11:28gf3technomancy: hola, I'm having an issue starting the latest swank-clojure standalone → http://cloud.gf3.ca/E25Z
11:29gf3technomancy: and `lein swank` dies after a few seconds → http://cloud.gf3.ca/E1K8
11:46brett_hhow can I list the available methods on an instance at the repl?
11:49mdeboardbrett_h: You mean like the clojure equivalent of dir()?
11:51brett_hching chong potato
11:51raekbrett_h: if you use emacs you can use C-c I
11:51brett_hthanks
12:01technomancygf3: sure, if the port is taken try specifying another (lein swank 4006) or better yet, use M-x clojure-jack-in
12:01gf3technomancy: it, unfortunately, fails for every port
12:02gf3technomancy: also unfortunate, but I must use the standalone because I am using Slimv
12:03amalloywow, i don't think i'd have the patience to try all 64k ports
12:05gf3amalloy: ಠ_ಠ
12:06technomancyif Java is reporting "Address in use" for every single port on your machine it seems like swank not working is the least of your worries =)
12:06technomancyseriously though; I've never heard of that
12:08amalloyi bet it's not the swank port that's in use, it's port 80 which he tries to listen to at compile-time via an init.clj or something
12:08hiredmanamalloy: I like it
12:10amalloythough the stacktrace sure looks like it's from swank, now that i look closer
12:16technomancyI love how the exception message doesn't even tell you which port had the conflict
12:17gf3technomancy: it's very helpful
12:41technomancyjkdufair: you probably want lein trampoline run
12:41technomancygotta head off, but try lein help trampoline
12:42jkdufairtechnomancy: funny i was literally just reading that in the docs
12:42jkdufairthanks so much
12:43jkdufairargh. cygwin vs. java = jkdufair fail
12:44jkdufairprobably time to just install linux in a vm on my computer
12:44jkdufairor save my pennies for a mac
12:44jkdufairanyone doing clojure on windows with emacs/slime/swank/lein?
12:53romain_pHi everyone, could someone point me to a good korma tutorial?
12:53romain_p(without lobos or such...)
12:53brett_hmore than http://sqlkorma.com/docs ?
12:54romain_pbrett_h: yup, in particular I would like to understand the mapping between tables and korma entities
12:57romain_pbrett_h: there is a blog post that describes a blog engine that uses korma, but it also uses lobos to create the DB schema...
13:00jaley_I'm getting a stack overflow error with 1024 visible lines in the stack trace, all in clojure.core... any suggestions as to how i could've caused that to happen? :s
13:01TimMcNothing obvious from that description.
13:01yawNOwrong recursion?
13:01yawNOjust guessinh
13:02jaley_yawNO: well, I'm using loop and recur
13:03yawNOrecur must be in trailing position
13:03jaley_yawNO: for 20,000 iterations
13:03yawNO(am i right?)
13:03jaley_yawNO: yeah well it won't compile unless it is, right?
13:03AimHereI think clojure detects if it's in tail and complains
13:03yawNOno clue
13:03yawNOi think AimHere is right though
13:05TimMc&(fn [x] (recur 6) 7)
13:05lazybotjava.lang.UnsupportedOperationException: Can only recur from tail position
13:05TimMcjaley_: Paste your stacktrace on refheap.com
13:06jaley_TimMc: ok will do. I've canned it right now because it makes emacs die somewhat, but I'll get it back and ping in here when it's read (takes a few minutes, processing more data than my laptop can handle)
13:17jaley_TimMc: not sure if there's really any information in this... https://refheap.com/paste/682
13:18jaley_TimMc: is the problem possibly that I just have too many next lazy seqs?
13:18jaley_TimMc: I meant *nested*, not next
13:18amalloy$google stackoverflow clojure prime dbyrne
13:18lazybot[recursion - Recursive function causing a stack overflow - Stack ...] http://stackoverflow.com/questions/2946764/recursive-function-causing-a-stack-overflow
13:19amalloyjaley_: same problem as that one
13:19amalloyexcept you're calling concat rather than filter/remove
13:20jaley_amalloy: yeah i have a remove
13:20jaley_amalloy: nice guess! :)
13:20amalloy&(first (reduce concat (repeat 2000 '(1))))
13:20lazybotjava.lang.StackOverflowError
13:20amalloynot a guess; the stacktrace has all the information i need :P
13:21jaley_amalloy: will doseq with :when work?
13:21amalloyuh
13:21amalloyit won't do the same thing? i can't answer that question
13:22amalloylike, doseq is for mutation and side effects over an existing sequence; remove and concat are for building sequences
13:23jaley_amalloy: sorry yeah I was forgetting you can't actually see my code for a minute there... whoops. OK thanks for the help, problem solved
13:37jsabeaudryIs there a way to programmatically obtain a list of all libraries loaded in the current project and their version? (from within the project)
13:37TimMc&(loaded-libs)
13:37lazybot⇒ #{cd-client.core cheshire.core cheshire.factory cheshire.generate cheshire.parse clj-config.core clj-http.client clj-http.cookies clj-http.core clj-http.util clj-time.core clj-time.format clojail.core clojail.jvm clojail.testers clojure.contrib.zip-filter clojure.con... https://refheap.com/paste/683
13:38TimMcOh, version? Dunno.
13:39TimMcjsabeaudry: You mean, get the deps listed in project.clj?
13:40jsabeaudryTimMc, Yes, recursively
13:40TimMcrecursively...
13:40jsabeaudrywell, not recursively is a nice first step
13:42ibdknoxso basically you want the dependency graph?
13:43jsabeaudryibdknox, Yes, well a flattened version of it would be fine, just libraries loaded and their respective versions
13:49TimMcjsabeaudry: `lein pom; mvn dependency:tree`
13:50TimMcFor some reason I thought you wanted to do this from inside Clojure.
13:56hagnaso if I don't declare a variable dynamic what's the big deal?
13:57jsabeaudryTimMc, I do want it to do from clojure, from the project itself, think of an about page where you could see all the libs that are used in the project
13:58jsabeaudryTimMc, I guess (loaded-libs) is the closest thing and I'll have to let go the versions...
13:58TimMchagna: Then you don't get to use (binding ...) on it, or some other value-altering operations.
13:59TimMcNo biggie.
13:59ibdknoxTimMc: Are you starting the NoBiggie movement?
14:01jsabeaudryibdknox, Found out about jayq yesterday, I think that lib is going to be very popular, is it the death of pinot?
14:01TimMcibdknox: what
14:02ibdknoxjsabeaudry: not the death :) The rebirth, all the other parts of pinot are in their own libs
14:02ibdknoxTimMc: NoSQL, NoOps, NoBiggie?
14:04ibdknoxtechnomancy: this heroku survey should allow you to check multiple boxes :p
14:05technomancyibdknox: the leiningen one?
14:06ibdknoxtechnomancy: no, I suspect you actually had nothing to do with this one :) I got some developer survey this morning
14:06ibdknoxfrom Heroku
14:06technomancyoh, heh
14:06TimMcibdknox: Hah! Got it.
14:06ibdknox:p
14:06technomancymy survey's way better
14:07ibdknoxthe one you had a bit ago? I filled that one out
14:08ibdknoxapparently people are getting interested in CLJS: https://github.com/languages/Clojure lol
14:09emezeskeibdknox: the exhibitionist!
14:09ibdknoxlol
14:10ibdknoxI often find lots of neat things people are working on through that list
14:11ibdknoxemezeske: how're the libs working out?
14:11y3dihas anyone built anything noteworthy in clojurescript yet?
14:12ibdknoxy3di: not quite ready for the public yet, but in the next month or so I'll be releasing something sizable
14:12emezeskeibdknox: great! I have 90% of my stuff transitioned from my ad-hoc stuff to your libs now
14:14y3diibdknox: can you say what we should be expecting? or is it a surprise?
14:14emezeskeibdknox: crate is very nice, hopefully I will contribute to it soon with more page/form helpers
14:15ibdknoxy3di: a fun way to play with/learn a little clojure :)
14:15ibdknoxemezeske: cool
14:15ibdknoxI was just lazy and didn't port all of them over :)
14:16TimMcFrom "Most Watched Overall": richhickey / clojure-contrib
14:16TimMc:-(
14:16emezeskeibdknox: should not be hard to do with the foundation you have in place.
14:16ibdknoxTimMc: I know :(
14:16ibdknoxemezeske: yeah, should be super easy :)
14:17ibdknoxabout 100 more watchers and Noir will kick it off the list
14:18emezeskeibdknox: hopefully I'll release this thing I made with fetch soon. It's a macro that lets you create a google app engine datastore record with validation and a full CRUD API, in maybe 5 lines of code
14:18ibdknoxsweet
14:19emezeskeIt used to build the CRUD API out via a bunch of REST-ful routes in compojure
14:19emezeskeBut with fetch, like 50% of that code melted away
14:19ibdknoxRPC ftw
14:19emezeskemmmhmm!
14:20muhoowhere is fetch?
14:20muhoogoogling fetch is.... unsatisfying.
14:21ibdknoxhttp://github.com/ibdknox/fetch
14:21muhoothanks
14:21muhoosee, all i needed to know is who wrote it, then it'd have been easy to find :-)
14:21ibdknoxhehe
14:22muhoodo you accept patches for readme's ?
14:23pandeiroibdknox: webapp clojurescript ide? :)
14:24ibdknoxpandeiro: haha a little, but that's not the real thing
14:24ibdknoxmuhoo: depends on the patch ;) I didn't mean for these to be fully released quite yet
14:24ibdknoxhence why they're not my normal level of documented
14:24muhooi was just enjoying the README.md
14:25muhooyeah, if it abstracts AJAX away with clojure, that will be very helpful
14:25pandeiroibdknox: a cljsfiddle would be pretty sweet...
14:26ibdknoxpandeiro: That wouldn't be too hard to build
14:26pandeiroi was thinking about it yesterday
14:26ibdknoxTimMc: what ended up happening with the CLJS repl?
14:26pandeiroi even went down the websocket rabbithole
14:26TimMcibdknox: It's in the freezer.
14:26ibdknoxlol
14:26TimMcI don't feel like beating my head against namespace issues.
14:27muhooi'd rather have somethig more like slime
14:27muhoowhich, iirc, cljs already has
14:28pandeiromuhoo: i don't think cljs works with slime
14:28ibdknoxthere's some way to run the cljsrepl in emacs
14:28ibdknoxI couldn't get it to work with vimclojure :(
14:28pandeirototally yeah but slime is something else
14:28ibdknoxah
14:28pandeiroslime has... AUTOCOMPLETE
14:28ibdknoxoh
14:29pandeiroand a bunch of other stuff
14:29pandeirobut it got me at autocomplete
14:30muhooheh, with M-/, everything has autocomplete :-P
14:39jkdufairso cljs is feature-complete and runs on the js vm and does not require the jvm?
14:40pandeirojkdufair: requires jvm to compile, still
14:40jkdufairah ok. pretty cool, nonetheless
15:13TimMcbrehaut: We were talking about 'reverse and conjugation the other day. If I write (defn assoc-meta [metable & kvs] (with-meta metable (apply assoc (meta metable) kvs))), is that a conjugation on assoc?
15:15amalloy(aside: you know about vary-meta, right?)
15:16technomancyactually that's not true; nm
15:17brehautTimMc: let me get my brain engaged
15:17TimMcamalloy: Looks about right, thanks.
15:22brehautTimMc: yeah i think it might be a conjugation
15:25TimMcbrehaut: I was unsure because reverse is self-inverse.
15:25brehautTimMc: its a little confused because a bunch of the functions take multiple args
15:26brehautTimMc: the example that made it really clear for me was lines and unlines in haskell forming a dual
15:27jcrossley3if i have an object from a 3rd-party lib that implements java.util.Map, can i "extend" it to implement clojure.lang.IPersistentMap as well?
15:33amalloyjcrossley3: no; you can read it like a regular map but you can't "assoc" it
15:33amalloyif you want to, just dump it into a clojure map with into (easy, since you can read it as if it were one already)
15:35jcrossley3amalloy: thanks
15:37jcrossley3amalloy: would that be lazy? or is there a fn i could call that would turn it into a map without realizing everything?
15:37amalloymaps ain't lazy
15:38brehautTimMc: https://gist.github.com/1773494
15:39alexykso what's up with textmate-clojure? it still wants cake
15:39brehautwow, thats still maintained in any form?
15:40alexykbrehaut: cake?
15:40brehauttextmate-clojure
15:41alexykbrehaut: that's what I'd like to know. The world stops in the summer of 2011, for cake and all cake-based things. Did leon took over completely and is a superset of cake now?
15:41alexyklein
15:42brehautlein and cake are in the process of merging
15:42brehauti believe the expression (merge-with (comp technomancy raynes ninjudd) lein cake) is taking some time to evaluate
15:43alexykah, flatland/cake is updated 1/23/2012
15:43alexyklancepantz
15:43alexykso enlighten me, lein shows a server port now when I say leon repl. Is it doing two JVMs as cake did?
15:48jsabeaudryIs there a way to tell lein to optimize for speed when creating a uberjar?
15:49TimMcjsabeaudry: You can avoid the AOT compilation entirely with the lein-jit plugin I wrote.
15:50SomelauwI am bored
15:55jsabeaudryTimMc, Interesting, didn't know that existed, however I'm am not concerned about portability, I'm investigating cheap ways of improving performance, I already have the warn on reflection setup for example
15:56TimMcjsabeaudry: Oh, you want the resulting jar to be fast, not the creation process.
15:56TimMcYeah, definitely give lein-jit a miss, then!
16:04arohnerin 1.3, can I declare a var :dynamic after the fact?
16:05Raynesarohner: You can call setDynamic on it.
16:06arohneryeah, I just realized that
16:06arohnerthanks!
16:11romain_pstupid korma question: if I want to put each defentity in its own namespace (foo.models.user, foo.models.post) how do I avoid circular dependencies when declaring relationships ? (post belongs to user, user has many posts)...
16:11mebaran151ure
16:11romain_pstupid korma question: if I want to put each defentity in its own namespace (foo.models.user, foo.models.post) how do I avoid circular dependencies when declaring relationships ? (post belongs to user, user has many posts)...
16:11mebaran151sorry about that; emacs buffer switch fail :(
16:11romain_poops
16:11RaynesDouble fail.
16:13ibdknoxromain_p: I stick the entity definitions in one file usually, and then have all my logic for them in their own files
16:13romain_pibdknox: OK, will try that way
16:16TimMcibdknox: Yeah, just put them all in a .h files...
16:16romain_pibdknox: do you ever think about porting noir-blog to korma? That would make a nice tutorial
16:17ibdknoxromain_p: seems like something someone in the community could do :) If I manage to find some free time, there are a few things like that I'd like to do though.
16:18ibdknoxTimMc: Oh god... header files? it pains us. :p
16:18ibdknox~guards
16:18clojurebotSEIZE HIM!
16:19TimMcIt's funny because it's true.
16:19ibdknoxI know :( Unfortunately, I'm not sure of a better solution to get around circular dependencies in that case. They are inherently interdependent
16:20ibdknoxthe only thing you can do is factor the common bits out, which would be the entities.
16:21ibdknoxit's not often that the single pass nature of Clojure bothers me, but when it is an issue, it ends up being a bit ridiculous
16:31TimMcEverything in one file. Done.
16:32TimMcI hope you like scrolling.
16:32RaynesTimMc: Have you seen jedahu's story?
16:32TimMcnope
16:32TimMcIs that the doc app?
16:32Rayneshttps://github.com/jedahu/story/blob/master/src/story/core.clj
16:32Raynesmegafile
16:33TimMcCan't be longer than clojure/core.clj
16:33RaynesIt isn't, but give it a couple of months.
16:33ibdknoxI start getting antsy at around 500 lines
16:33TimMcwhich I don't even try to open in Firefox
16:33Raynesjedahu lives by the file, dies by the file.
16:41seancorfieldlongest file at World Singles is 600 lines
16:41seancorfieldwe have one at 316 lines, another at 247, everything else is below 200
16:43romain_p849 lines? That's a small ocaml file by their standards :(
16:43seancorfieldjust under 4kloc, of which just over 700 is unit tests
16:43ibdknoxwhat'd you use for project level lines?
16:50hiredmanour utils namespace at work is 1,056 lines
16:51seancorfieldibdknox: do you mean "how did (i) count lines?" - i just used wc
16:51ibdknoxI see
16:51jedahuRaynes: hey, that's not fair! not all my work is like that, and it was written in one hackety session :-)
16:52Raynesjedahu: Hehe. :)
16:52RaynesThat's pretty cool for one session.
16:52RaynesRegardless of massive files. :P
16:53jedahuwell, perhaps one session is a wee exaggeration. the reality is that I needed it quickly and couldn't afford to spend much time on the niceties
16:57TimMcwhoa
16:57TimMc"niceties" is an anagram of "nice ties"
16:58TimMc(It must be about the end of the work-day...)
16:58hagnaspace isn't a character?
16:58Raynes&(seq "1 2 3")
16:58lazybot⇒ (\1 \space \2 \space \3)
16:58TimMcRaynes: No, in the "anagram".
16:58hagna:)
16:59RaynesOh.
16:59ibdknoxOMG space exists?
16:59ibdknox,\space
16:59clojurebot\space
16:59TimMc&\newline
16:59lazybot⇒ \newline
17:00ibdknox,\awesome
17:00clojurebot#<ExecutionException java.util.concurrent.ExecutionException: java.lang.RuntimeException: Unsupported character: \awesome>
17:00ibdknox:(
17:01ibdknoxI have end of the work-day syndrome too, obviously. Unfortunately it's the middle of the day
17:03brehautTimMc: the latest firefoxes can display core.clj with only a minimal amount of beachballing
17:05jondot1hi guys. any advice on what to use for image processing? i'd like to get image properties such as width,height and exif data. typically i'd use imagemagick (on ruby/node/anything native)
17:06mebaran151jondot1: Java actually has pretty good image support baked in
17:06brehautjondot1: java2d is pretty decent. you'll get height and width no problem. cant say about exif though
17:07mebaran151jondot1: http://commons.apache.org/sanselan/ actually looks right up your alley
17:08jondot1mebaran151, thanks
17:09ibdknoxlol
17:10ibdknoxI love this: "This library is pure Java. It's slow, consequently, but perfectly portable."
17:10RaynesHah
17:10jondot1hm, i'd rather have something fast but not portable, in this specific usecase i'm looking at.
17:12mebaran151jondot1: java2d is probably as close to the metal as you're gonna find, but I can't speak for its EXIF support
17:12jondot1good enough.
17:14mebaran151btw, does anybody here know of a good tutorial for JGoodies or Mig
17:14mebaran151I'm trying to make some Swing dialogs that don't look completely awful
17:17jondot1for general knowledge, this might be good http://rsbweb.nih.gov/ij/features.html
17:47faust45is it simple way in clojure to implement: one process put data to queue, another watch queue and proceeds items one by one ?
17:48technomancyfaust45: sure; you mean in-process or over a network?
17:48technomancyboth are easy enough
17:49emezeskefaust45: you might also look at agents, they're not exactly what you describe, but may be applicable: http://clojure.org/agents
17:49faust45technomancy: one process listen http feed and parse it and put items to queue, another watch queue and processed them
17:50technomancyfaust45: sure, the most common way is to use rabbitmq; it's pretty straightforward
17:50technomancyhttps://github.com/technomancy/die-roboter
17:52faust45technomancy: rabbitmq? i want use only native clojure java stuff
17:53technomancyrabbit has a native java client
17:53technomancyunless you're talking about in-process queues
18:00faust45if i what run some action and not waiting to finished i can use agents ?
18:01dakronefaust45: you could also check out channels in lamina https://github.com/ztellman/lamina
18:02faust45dakrone: thanks, but i just want wrap my mind around clojure features
18:02brehautor anything implementing http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html
18:03brehautLinkedBlockingQueue being a favorite
18:03dakrone,(doc seque)
18:03clojurebot"([s] [n-or-q s]); Creates a queued seq on another (presumably lazy) seq s. The queued seq will produce a concrete seq in the background, and can get up to n items ahead of the consumer. n-or-q can be an integer n buffer size, or an instance of java.util.concurrent BlockingQueue. Note that reading from a seque can block if the reader gets ahead of the producer."
18:03faust45thanks
18:04faust45but can i use agents for not blocking? or agents not suitable
18:05brehautagents dont block
18:05brehautif you use something like a BlockingQueue you will need to create the threads that consume or populate them yourself
18:27hagnahrm clojure-bitly 0.1.2 has errors about rebinding dynamic variables ...
18:29Rayneshagna: http://github.com/Raynes/hobbit
18:29RaynesRelies on a godawful old version of clj-http, so if you want to update that be my wonderful guest.
18:30hagnaRaynes: ok I guess I could try that
18:31hagnaRaynes: isn't it odd that lein will let me use libraries that won't work?
18:31RaynesNot really.
18:31hagnayeah guess not
18:56hagnaRaynes: how do I get import it (:require hobbit.bitly :as bitly) ?
19:00aperiodichagna: almost, but the namespace and rename bit should all be in a vector: (:require [hobbit.bitly :as bitly])
19:00aperiodichagna: if you're not renaming it, then you can omit the vector and just supply the namespace
19:01aperiodichagna: and remember that in the repl, you'll need to quote the vector/namespace
19:01hagnaaperiodic: I suppose after that I do (type bitly/bitly-url)
19:01hagnato see that it imported correctly?
19:01aperiodicyeah, that'll work
19:02hagnaaperiodic: why do you have to quote the vector/namespace in the repl
19:03TimMchagna: Because require is a function, not a macro.
19:03aperiodichagna: because what require needs are symbols, but since require is a function, the symbols are evaluated before being passed to require.
19:03kilorntechnomancy: hey, are you the maintainer of slime.el on marmalade?
19:04amalloytechnomancy: quick, hide!
19:04hagnaaperiodic: so (dir bitly) yields an error in the repl
19:04kilornhaha, no no, nothing like that, just a bigfix i'd like to offer
19:04alexyktechnomancy: so does leon subsume all of the cake already?
19:04alexyklein dammit
19:04hagnaaperiodic: but (type bitly/bitly-url) is String
19:04kilornpackaging bug more correctly
19:05Raynesalexyk: That isn't a question.
19:05alexykRaynes: prev. line
19:05Raynesalexyk: It doesn't have any sort of persistence yet and that's pretty low-priority. As far as functionality goes, lein 2 is pretty close if not on par with cake.
19:05RaynesAll the way down to profiles and an awesome repl with completion and stuff.
19:06RaynesActually, lein's new repl is better than cake's wa.
19:06Rayneswas*
19:06aperiodichagna: that's because the namespace-qualified symbol bitly/bitly-url refers to a string, so when it is evaluated, it evaluates to that string
19:07technomancyalexyk: the in-process classloader stuff isn't very well tested, and the background JVM process stuff is delegated to jark, but I think that covers most of it
19:08technomancyif you're interested in background JVMs I encourage you to help test out jark
19:08technomancyit's still in progress from what I can tell
19:08alexykRaynes: so for practical purposes, textmate-clojure bundle wants cake. And expects that to start persistent JVMs, for self and project. Would renaming cake to lein there work?
19:08alexyktechnomancy: what's jark?
19:08RaynesNo.
19:08technomancyclojurebot: jark?
19:08clojurebotjark is a clojure daemon for scripting: http://icylisper.in/jark/
19:09Raynesalexyk: My suggestion would be to remove all interactive stuff from the bundle.
19:09Raynesdnolen has long since abandoned it anyways.
19:09RaynesHe was trying to make it not suck but eventually gave up.
19:09technomancyyeah, I don't think textmate is very suited for interacting with subprocesses
19:09aperiodichagna: but when you call require, there's no var in your namespace that's mapped to by the symbol hobbit.bitly, so (require [hobbit.bitly :as bitly]) will complain that there's no var called "hobbit.bitly"
19:10Raynestechnomancy: Sublime Text 2 is much better as far as extensions go and I think could handle that sort of thing.
19:10hagnaaperiodic: ok
19:10Raynestechnomancy: If only it didn't rely on textmate bundles and have completely worthless autoindentation, etc.
19:10technomancykilorn: sort of. I'm trying to encourage people to move away from it towards M-x clojure-jack-in.
19:10ibdknoxyeah ST2 is basically useless for Clojure
19:10aperiodichagna: what you want pass to require is the symbol that tells require what namespace to import, so you need to quote the symbol/vector in order to prevent it from being evaluated
19:11alexykRaynes: it's last edited last summer! Is it long abandonment in Internet age?
19:11Raynesibdknox: Using textmate bundles was a huge mistake. If you, in the 21st century, do not have an editor that has syntax definitions that understands the structure of code at least a little, you've got a problem.
19:11ibdknoxheh
19:11RaynesEven Vim does better than this. Emacs is bloody sentient with that stuff.
19:11technomancywell
19:12RaynesI've heard it whisper indentation rules into my ear.
19:12technomancymost emacs modes still rely on regexes, which is dumb
19:12kilorntechnomancy: the slime.el package on marmalade references two functions from slime-contrib which are not packaged , so slime-eval-defun (*very* useful) doesn't work. may I offer a fix? https://gist.github.com/1775732
19:12technomancybut you can still write a real parser if you like
19:12alexykocaml client for clojure daemon! bestiality is next
19:12technomancydude!
19:12technomancyocaml is awesome
19:12alexykI love ocaml!
19:12kilorntechnomancy: just copy pasted from the orig
19:12ibdknoxClojure is way more awesome :p
19:12RaynesI think I'd go with something else.
19:12alexykit beat clojure for Twitter graph when I handled 5 million users
19:13technomancyit's good at all the things clojure sucks at
19:13RaynesI'd do a Haskell client for a clojure daemon. Or… a Rust client!!!
19:13alexykin fact Haskell beat ocaml narrowly
19:13technomancyalexyk: cool
19:13RaynesIf Rust had decent networking. It's too young. :(
19:13alexykbut I'm just curious why you guys say :"leon merges with cake" if you send me to mark for JVMs!
19:13alexykbecause until leon fully subsumes cake it won't do
19:14ibdknoxlol
19:14alexykmerge means you do everything better
19:14technomancykilorn: hmm... is this so you can use C-M-x from inside the slime-repl?
19:14ibdknoxthis mythical leon
19:14RaynesIt was a team merge, not a code merge. :>
19:14technomancyit already works from within clojure-mode
19:14alexykeffin' lion corrects lein
19:14RaynesAnd by team, it apparently mostly meant "Hey, Raynes is gonna work on Lein now. k?"
19:14alexykRaynes: it's like, cake folks said, we're tired of it guys!
19:14technomancy"Ponce de Lein"
19:14kilorntechnomancy: the repl and slime-mode, yeah, have I stumbled on something known?
19:15alexykElton John's hit "Lein"
19:15technomancykilorn: I guess I'm not sure what you're looking for
19:15technomancywhy would you use C-M-x in the repl; wouldn't RET be just as good?
19:16alexykso the fact is, I can still get cake and it creates persistent JVMs, so it's what I like best, and until I can call lein2 with two JVMs I'm sticking with cake!
19:16technomancyis it for re-evaling something from up in the buffer's history?
19:16technomancyalexyk: have you tried jark?
19:16Raynesalexyk: And that will work fine for you until you find yourself needing to use a lein plugin or find a cake bug that we refuse to fix. :p
19:17kilorntechnomancy: it's not for the repl, it's for evaluating in the edit buffer. what it does is find the surrounding defun no matter where inside it you are, and send it to the swank server, I use it constantly.
19:17alexyktechnomancy: not yet! I see it exists, but from the get-go, I turned back to Clojure in Klout again and I forgot all I knew, so I want things to work out of the box.
19:17technomancyyeah, it's definitely immature
19:17alexykSo if I need to like write plumbing for leon-cake, it's a no-go
19:17alexyklein dammit
19:17alexykI need to teach this Lion
19:17alexykto behave around spelling
19:18technomancykilorn: so you're saying in clojure-mode C-M-x doesn't currently work at all?
19:18kilorntechnomancy: it's broken in the version everyone gets by default from marmalade,I'd just like to have it work by default for new users.
19:18technomancythis is the first I've heard of this problem
19:18kilorntechnomancy: it didn't for me, until I added these functions
19:18kilorntechnomancy: what's it bound to on your machine?
19:19technomancyit's slime-eval-defun
19:19technomancyI mean, once I've connected to a slime server
19:20emezeskeAnyone mind if I use them as a "Friend of Attendee" for $25 my Clojure West ticket?
19:21emezeskes/\$25 my/$25 off my/
19:28kilorntechnomancy: you're right, my bad, slime-eval-defun had an advice around it which had broken dependencies.
19:29technomancyaha, tricky
19:30kilorntechnomancy: that's what I get for haphazardly stealing bits of people's .emacs
19:30technomancyit happens =)
19:31technomancyhmm; one more =) and we'll have balance among the parens
19:31technomancy(for as long as i've been connected to my bouncer anyway
19:31technomancy)
19:32kilornwho on earth would name his project ciste?!
19:33amalloywhy wouldn't you?
19:33amalloyit's not a word with a meaning in english
19:34kilornbecause "puss-bladder" has a much nicer ring
19:35technomancymaybe you meant to call it "cistern" but got bored 70% of the way through typing it
19:35amalloy(a) you're only looking for one S there, and (b) that's cyst. ciste makes me think of cistern, personally
19:35kilornshall we compare edit-distance? =)
19:36amalloy,(= 2 2)
19:36clojurebottrue
19:36kilorna true case of zero-sum potato-tomato
19:42jweisshttps://refheap.com/paste/685 <- anyone recognize what's going wrong with the stdout stream here? it's a snippet of basically clojure.contrib.trace output. not sure how the stream is being written out of order when i'm calling println. shouldn't have anything to do with laziness, right?
19:43hiredmanprinting is not synchronized
19:43jweisshiredman: but it's a single thread
19:43hiredmanwhat makes you think that?
19:43kilornamalloy: you're right, pus does have one 's'. I take it all back.
19:43jweisshiredman: i don't have any code being executed that starts new threads
19:44jweissat least, not that i'm aware of
19:45hiredmanso? I bet selenium creates threads
19:47jweisshiredman: hm, i will dig deeper to see if that's it, but the selenium namespace is my own, not the actual selenium lib - that whole block hasn't even called into the selenium library yet
19:49jweissand the out-of-orderness is awfully consistent to be thread contention, but i suppose even that could come out the same every time
19:54jweissit sure looks like println is allowing thread execution to continue before the entire string is done printing but that doesn't seem possible. Maybe it's the emacs repl causing the issue
19:55amalloyit sounds more like laziness to me, if you're producing lazy sequences with a side effect of printing while trace is printing stuff.
19:56amalloy&(lazy-seq (print 1) (cons 1 (lazy-seq (print 2) (cons 2 nil))))) ;; probably prints overlapping
19:56lazybot⇒ (121 2)
19:56jweissamalloy: it sure looked like laziness to me at first. just not sure how a println can print the open paren, allow more stuff to run, and then print the data it was given.
19:56amalloyif the sequence it's printing is lazy, then it's like "oh, this is a sequence: i'll print a paren. now, let's see what its elements are"
19:57amalloyif the first element causes printing, then...
19:57jweissamalloy: ah, you're right, that is what's happening
19:57jweissthe calculation of the first element calls a traced function.
19:58jweissso... now to figure out how to force evaluation when i don't even know of the object is a lazy or even a sequence
19:58jweiss*if
19:59jweiss(if (coll? x) (doall x) x)
19:59jweisssomething like that i guess
19:59jweissbut that isn't right either, that'll hang on infinite sequences
20:03jweissi think if i call pr-str and pass the string to println that might help...
20:09jweissdamn, well, at least i'm pretty sure the original contrib lib has the same problem.
20:35lneshow to solve this one? http://www.4clojure.com/problem/72
20:35lnesthanks
20:41brehautlnes: if we tell you, you wont learn anything
20:41brehautand that really defeats the point
21:07technomancyanyone in here who's written a lein plugin?
21:10arohnertechnomancy: me
21:11technomancyhow do you feel about testing it on lein2?
21:11arohnersure. I didn't know lein2 was ready for testing
21:12technomancywell, I'd like to ensure more plugins work before getting lots of users to try it out
21:13technomancymind if I pm?
21:13arohnerplease do
21:15TimMctechnomancy: ~anyone :-P
21:15technomancyheh
21:15TimMcAnd I'd be happy to test it out on lein2.
21:16TimMcDoes lein2 have a self-installer yet, or do I have to use the shell script?
21:17technomancyTimMc: you have to bootstrap it with lein1
21:18TimMck
21:21technomancyTimMc: getting my private messages?
21:28TimMcoops, yes
21:28TimMcwandered off
21:29FrozenlockI'm trying (once again) to get started on clojure. In Emacs, I do the M-x clojure-jack-in while in my project.clj file, but I only get a *swank* buffer, with the whole swank code written in it. Any idea what I might be doing wrong?
21:30technomancyFrozenlock: try "lein plugin install swank-clojure 1.4.0" maybe
21:30TimMcFrozenlock: You might be better off just using lein run and lein test for now -- don't let tools get in the way of learning the language.
21:31TimMc(Oh, and lein repl, of course.) I haven't bothered to get set up with swank-clojure yet.
21:33Frozenlocktechnomancy: Good catch, but I have already done it ;)
21:33technomancyFrozenlock: do you have the latest version I mean?
21:33technomancythe old version spewed out a lot more code
21:34FrozenlockUrhm... let me check that
21:34FrozenlockTimMc: you mean without Emacs????
21:34TimMcNo, I use Emacs, just not an integrated REPL.
21:36FrozenlockTechnomancy: I now have 1.3.0, 1.3.1 and 1.4.0 in my lein plugins folder. Still isn't working.
21:36FrozenlockThose are the last line in my *swank* buffer: (provide 'slime-repl)
21:36Frozenlock;;; slime-repl.el ends here
21:36Frozenlock
21:36Frozenlock(run-hooks 'slime-load-hook)
21:36Frozenlockuser=> Connection opened on local port 64903
21:37Frozenlock#<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=64903]>
21:37Frozenlock
21:37technomancyFrozenlock: is it just a few lines (~20) or pages and pages?
21:37FrozenlockAbout 11k lines
21:38technomancyok, try manually clearing out all but 1.4.0 out of ~/.lein/plugins
21:38technomancynewer versions of lein do this for you, but you must have installed with an older version
21:38FrozenlockOh I can't, because apparently I'm using the file I'm trying to erase. -_-
21:39TimMcOn Windows?
21:39FrozenlockYes
21:39FrozenlockDon't throw rocks at me
21:39TimMcNo, I just keep forgetting that Windows doesn't allow you to delete in-use files.
21:40FrozenlockIt isn't the case on other OS? I was taking this as a universal rule... Don't erase file in use.
21:40TimMcSort of.
21:40technomancyIIRC it's like GC; the blocks won't be freed until there's really no one using it
21:40TimMcLinux (and Mac?) delete the path, but the process keeps hold of the file handle.
21:41TimMcThis can lead to a *different* sort of hilarity.
21:41Frozenlocktechnomancy: should I delete the snapshot.jar file too? (155 ko)
21:41technomancysure
21:42mebaran151any guide to do pretty swing with clojure? I'm using seesaw, but I want to make pretty forms for this app. Any guideline would be appreciated
21:42FrozenlockWorking!
21:42FrozenlockThanks guys!
21:42technomancysweet
21:51TimMcOK, would it be *terrible* etiquette to rename and move my lein-jit project to lein-otf?
21:51TimMcRationale: "JIT compilation" is ambiguous, and "OTF compilation" (on-the-fly) is not.
22:22TimMcUgh, lein-jit is currently broken, I think.
23:03tacomannewbie question: I've read that contrib is going away, yet things like vimclojure depend on contrib. Am I misreading something, or am I going to have to adjust my dependencies somehow to deal with this?
23:05TimMctacoman: Many Clojure 1.2 project depend on monolithic clojure.contrib, and there is no monolithic contrib for 1.3. However, vimclojure is probably running in a different JVM from your code.
23:05tacomanso install vimclojure using clojure1.2, and use 1.3 for my own code?
23:06tacomanand I won't run into any issues with multiple Clojures installed, right?
23:06TimMctechnomancy: Has something changed in leiningen that would break lein-otf? I'm relying on :main pulling a dev-dependency into the uberjar, but I think that is no longer happening.
23:06TimMctacoman: Right, because you don't actually install Clojure -- it's just a dependency that happens to be a compiler and runtime,. :-)
23:06tacomangotcha. cool stuff
23:07tacomanhow frequently do they make changes like this big, out of curiosity? I'd imagine frequently given the age of the language
23:08arohnertacoman: this has been the biggest (and most painful) change that's been made in clojure's history
23:08arohnerand I've been here since '08
23:08TimMctacoman: The big change in clojure.core was just numerics. contrib is a separate issue that totally overshadows the core stuff.
23:09tacomangood to know. is there a way to get an email subscription to the dev newsgroup just to read, without having to send in the contributor's agreement and add yourself into the group?
23:09tacomanI'm curious, but I don't have enough experience to actually do much useful yet
23:09TimMcMonolithic contrib never should have happened -- it was a maintenance nightmare.
23:13arohnertacoman: you don't need a CA to read the dev newsgroup
23:13arohneryou need a CA to submit patches
23:13tacomanwell, I know it's on Groups, but I want it sent to my email. the form to do that asked if I'd signed an agreement
23:14tacomanI mostly wanted to make sure I wasn't wasting someone's time by filling that out without one
23:36technomancyTimMc: yeah, sorry I must have missed that in my explanation
23:36technomancy:dev-dependencies is replaced by :profiles
23:36technomancyTimMc: also: thumbs up on a rename
23:44TimMctechnomancy: No, I mean lein-jit doesn't seem to work in 1.6.2 (and 1.7) anymore!
23:44TimMcBah, I'll work on this tomorrow.
23:44technomancyoy
23:44technomancyhrm
23:44TimMcI even tried a checkout-dep.
23:45technomancywell 1.6.2 hasn't changed. =)
23:45technomancywait, you mean using :plugins?
23:45TimMcNope, when using :dev-dependencies
23:45TimMcShould I be using plugins instead?
23:45technomancyeventually
23:53k9quaintanyone used JDO in clojure?