#clojure logs

2011-07-07

00:36amalloytechnomancy: rebuilding my .emacs, and i can't figure out where to put the (setq slime-protocol-version 'ignore)
00:37amalloywhether before or after my (require 'package) (package-initialize), i still get warnings about the version
00:38hiredmanmaybe in a hook on clojure-mode or slime-mode or whatever
00:42ihodestotally OT, but is there a config for irssi that allows you to monitor mentions; e.g. i'm awya for 5 hours, come back and a few people have messaged me and i see a highlighted 5 or something on my status bar?
00:46pcavswhat's the proper way to union two dictionaries?
00:46ihodesmerge
00:47pcavs$findfn {:key1 "val1"} {:key2 "val2"} {:key1 "val1 :key2 "val2"}
00:47sexpbot[]
00:47pcavsthanks ihodes!
00:47ihodespcavs: no problem :)
00:52pcavsI'm using leiningen and the swank leiningen plugin, I'm trying to read from standard in from the repl, is this possible? If so, what's the escape char to send EOF?
01:07Tcepsapcavs: I believe this was established as being a bug in Ant. I think someone was going to tackle a workaround/fix/thing in Leiningen working with technomancy, but I am not sure whether anything has yet come of that.
01:07Tcepsapcavs: Short answer: I don't think that's possible.
01:07pcavstcepsa: thanks for the info
01:07pcavstcepsa: (read-line) seems to work just fine from the repl through swank
01:08Tcepsapcavs: But if you just want to send EOF, that should be Ctrl-d or Ctrl-f depending on whether you're using Linux or Windows (can't remember which is for which)
01:08pcavssorry not through swank, but through the repl
01:08TcepsaOh! Maybe they got it fixed!
01:10TcepsaAhh, okay, yeah, I got the impression that Leiningen used Ant for something related to the Swank REPL and so (read-line) doesn't work if you do lein repl or lein swank and then connect. (This is totally hearsay and I have not experienced or explored it)
01:10ihodesant is a build-tool
01:11ihodes(should't have anything to do with the repl)
01:11ihodesand from memory working on the part that reads from the repl, it's not at all involved with that part
01:12Tcepsaihodes: See the last question of the Leiningen FAQ, here: https://github.com/technomancy/leiningen
01:13ihodesTcepsa: damn, i wonder what that's from. i'm going to look now haha. thanks for linking
01:14Tcepsaihodes: No problem; I agree that it's totally non-intuitive. If you see a way around it, that'd be great! ^_^
01:15TcepsaAnd I'm off
01:24landyjjj
01:24amalloypcavs: fwiw they're only called dictionaries in python. here they're maps or (sometimes) hashes
01:25pcavsamalloy: I'll keep that in mind, I've always used them interchangeably, probably angering the comp sci gods
01:42Scriptorit's funny how a hashmap isn't really like (map f coll)...except it is
01:51replacadnolen: are you around this late?
01:51replaca~seen dnolen
01:51clojurebotdnolen was last seen in #clojure, 481 minutes ago saying: ejackson: sounds like that's the plan.
02:21replacaare george jahad or technomancy around?
02:21replacaor am I all alone tonight?
02:21replaca:)
03:43^^when im running lein swank, where would the current working directory be?
03:44bsteuber^^: your project root
03:53bsteuberI wonder that's allowed as a nickname oO
04:10clgvIn leiningen 1.5.2 I explicitely used :warn-on-reflection false and >none< of my files contains any (set! *warn-on-reflection* true) but I get a lot of reflection warnings - most of them are in third party libraries like incanter which I dont want to edit. does someone know a fix for this?
04:14clgvnow I did set "(set! *warn-on-reflection* false)" at the first line of my Main.clj which is used as ":main" in project.clj and I still get all these warnings
04:20bsteuberclgv: because the dependencies are compiled before the first line of your namespace gets eval'ed
04:20bsteuberso no idea what to do
04:21clgvbsteuber: but the thing is that my dependencies didnt change and suddenly after doing a "lein clean" and "lein compile" this behavior emerged
04:21bsteuberprobably ask the library maintainer to not set it to true in release code
04:22bsteuberguess it's done every time the library gets compiled
04:22clgvthere was no call to "lein deps" and the files didnt change in binary as well since I added them to my git repository.
04:22bsteuberbut when compiling a namespace, clojure will also compile all required ones
04:23bsteuberso the libraries will get compiled once, too
04:23bsteuberif they've been distrubuted as code
04:23clgvI had this stupid mass-warning about two months ago. then I somehow got rid of them without actively doing anything (no lein deps, nothing). now they show up again
04:24clgvbsteuber: yeah but they are always compiled. so the above observation does not make any sense :(
04:24bsteuberif you aot-compile a file requiring the lib
04:24bsteuberthe lib will get compiled and the classes written out
04:25bsteuberand then not be compiled again until clean
04:25bsteuberbut if you just call compile from swank, I guess the class files are not written
04:25bsteuberso it happens again and again
04:26bsteuberdoes that make any sense?
04:27clgvhm yes. so it seems to be some oddity with CCW. since CCW always showed these warnings.
04:27bsteuber"call compile" means slime-compile here
04:27clgvnow I ran "lein compile"
04:27clgvthe second time I ran "line compile" it had no warnings
04:27clgvand now CCW doesnt show any warnings as well
04:28clgvok. I have to remember that ^^
04:28bsteuberso probably now ccw won't show the warnings anymore, either
04:28clgvyes. as written above ;)
04:28bsteuberbut you probably still wanna ask the lib maintainer to remove the line when pushing to clojars
04:28clgvbsteuber: thx for the help :)
04:28bsteuberah too slow :)
04:32clgvyeah but I'd have to figure out which dependency actually sets the warnings. there are quite a lot in my lib folder already ;)
04:35bsteuberif I didn't suck that bad at shell, I'd now give you a one-liner that greps all the jar contents ^^
04:36amalloyclgv: java.classpath currently sets that
04:37clgvamalloy: args! I am using that one. bad Stuart ;)
04:37amalloyindeed. it bit us a day or two ago as well
04:38amalloythere's a patch in the works to remove the one offending line. should be released in the next few months :P
04:38bsteuberjust for the sake of completeness - googling around gave me
04:38bsteuberfor file in *.zip ; do if unzip -p $file | strings | grep searchstring > /dev/null ; then echo $file ; fi ; done
04:39bsteuberwell replace zip by jar and searchstring by "*warn-on-reflection*"
04:39amalloybsteuber: or just use zgrep :P
04:39clgvbsteuber: good find ;)
04:39clgvzgrep sounds even better^^
04:40amalloyhm. zgrep may not recognize jar files, absurd as that sounds
04:41clgvamalloy: hm yes it does not :/
04:42bsteuberand zgrep doesn't recognize -r on my machine, though it'S supposed to forward this to grep
04:42amalloybsteuber: uh. -r on an archive file is unlikely to work out well
04:43bsteuberic
04:43amalloysince zgrep is unzipping the file and passing them to grep via a pipe, there's no directories to recurse into
04:43bsteuberamalloy: by the way, I wanted to ask you about this flatland thing
04:44bsteuberis this some sort of startup, or just some hackers sharing code?
04:44amalloybsteuber: ninjudd started it a week or two ago as a shared place for the devs at our company to put code that's not proprietary
04:44amalloysince having it all under his name was kinda silly
04:45bsteuberi see
04:45bsteuberso you're also one of the lucky guys who can use clojure at their company
04:45bsteuberwell me too :)
04:47clgvwhich companies do you two work for?
04:48amalloygeni
04:49bsteuberpandanet, some japanese server for playing go
04:50amalloyalso: lucky? i moved to LA for the privilege
04:50clgvuh there are more hits to geni then I though. have to add LA ;)
04:52amalloyif you can't get foo.com as your website, your company probably shouldn't pick the name foo :P
04:52clgvhehe. got it ;) you are "the LA transplant from the Big Apple"? ;)
04:53ejacksonamalloy: i think its to the point where all three letter domains are registered. Guess i'll have to be IBM2.com :)
04:55amalloyclgv: eh? what about the big apple?
04:55ibdknoxamalloy: I think he was looking for you in this list: http://www.geni.com/corp/the-geni-team/
04:55clgvclgv: that was written on the staff page for one of the guys. so I guessed ;)
04:55ibdknoxwhich you don't appear to be in
04:56clgvseems to be a wrong guess then
04:56amalloyah. yes
04:56amalloyclgv: i started a month ago
04:57clgvok, so we need to wait a bit
04:57clgv;)
04:57ibdknoxamalloy: where were you before?
04:57amalloysan francisco
04:58ibdknoxI meant more of who were you working for
04:58amalloyheh
04:58amalloywww.hubpages.com
04:59ibdknoxI see :)
05:02ibdknoxamalloy: did you have any luck with the aichallenge stuff?
05:02amalloyibdknox: i got your starter kit running. haven't tried changing anything yet
05:02amalloyprobably won't have time for a few days
05:03juturnaHow should you handle async access to resources like files in clojure?
05:03ibdknoxcool, well if you do mess around with it some, I'd love to hear what you come up with
05:04amalloyjuturna: reminds me of college, when i implemented an AI for CodeRuler, one of IBM's similar things
05:06amalloyer
05:06amalloyibdknox: ^
05:06juturnaI was really wondering how your AI reminded you of async file io in clojure
05:07amalloyjuturna: depends what you want to do. async is pretty vague
05:07amalloynot my fault some idiot put the I and J keys so close on this keyboard
05:07juturnawell I want to access files from within transactions on N threads
05:08Fossiamalloy: your choice to use such an insane layout ;)
05:08juturnais there some way to treat a file the same way as a ref? If the file has been changed, retry the transaction?
05:08juturnawould wrapping the file object in a ref do this?
05:08Fossialthough i have to admit the distance between i and j wasnt the biggest factor in switching to dvorak
05:08juturnabut I guess that doesn't really make sense
05:08Fossi:D
05:10ibdknoxjuturna: you can use futures to generically do something asynchronously
05:11ibdknoxthat won't have any retry semantics though
05:13amalloyyou probably want an agent
05:16ibdknoxamalloy: how does that work though, since the thing changing is a file?
05:17amalloyibdknox: it works great in what i'm pretending his use case is, which is appending to log files. he still hasn't said what he wants to do besides "access" the file
05:18ibdknoxamalloy: ah, yes. changes work nicely, I was assuming he was trying to read the latest version of a file that is constantly changing
05:18ibdknoxlol
05:18clgvwhat is the easiest way to remove the last "/" of a file path like "/home/bla/blubb/"?
05:18ibdknoxjuturna: better problem statement please :D
05:19amalloyif you have a file that's changing all the time and you need to read and write it deterministically across threads, you should be using a database, not a file
05:19juturnaI have a serversocket accepting clients and spawning a fresh thread for each. The users are then prompted to log in, and each account is stored in a separate file
05:19amalloy(disclaimer: the above is an overstatement)
05:19ibdknoxamalloy: lol
05:19ibdknoxI agree
05:20juturnaI know I COULD use a database, but I'm just trying to keep stuff simple and mess around with the language
05:20juturnaand I know I COULD put them all in one file
05:20ibdknoxjuturna: what's the value in having them be separate?
05:20amalloyibdknox: putting them together wouldn't really help his issue, would it?
05:21ibdknoxI guess not
05:21juturnait's really just a matter of taste... I want to be able to quickly edit an account through a text editor
05:22amalloyjuturna: and each user has the ability to affect any other user?
05:22clojurebotchouser: I really did wonder why you had all those photobombers on slide 2.... audio is so useful :)
05:22amalloyclojurebot: way to go on the phantom ping
05:22clojurebotllahna: anyway the answer is no. you can use #(some-fn %1 default-arg %2), for example
05:22juturnawell if two users try to log in to the same account at the same time
05:22juturnathen each thread would be trying to get to the same file
05:24ibdknoxclgv: this will do it: (if (= \/ (last my-path)) (subs my-path 0 (dec (count my-path))) my-path)
05:25ibdknoxclgv: though I'm pretty sure the java Path class has something for it too
05:25clgvibdknox: I am doing it reverse now. I check whether it's not there and add it in that case, since I'll need it later anyway
05:27ibdknoxI see
05:29clgvhmm I cant attach metadata to a string :/
05:31ibdknoxalright guys, it's late. G'nite!
07:47lnostdal-laptoptechnomancy, https://github.com/technomancy/leiningen/issues/228 .. lein repl seems to work ok, but it still fails in lein swank here (last update to swank-clojure repo is from 24 june also i see)
07:49lnostdal-laptopbsteuber, does futures work for you now?
07:51bsteuberlnostdal-laptop: yes it does
07:51lnostdal-laptophm
07:52bsteuberI installed swank-clojure as a plugin, so not sure if it updated the version
07:57pyris it expected that when using lein repl, resources can't be accessed ?
07:57bsteuberlnostdal-laptop: oh you'e right, it still doesn't work
07:57bsteuberhad some github lein version
08:00lnostdal-laptop"Leiningen 1.6.1 on Java 1.7.0 Java HotSpot(TM) 64-Bit Server VM" here .. from git .. it only works in the repl, yeah
08:02bsteuberok so better downgrade to 1.5.2 until swank is fixed
08:04matthias_i'm using "Leiningen 1.5.0 on Java 1.6.0_22 OpenJDK 64-Bit Server VM
08:04matthias_" is that bad?
08:13lnostdal-laptopmatthias_, i think 1.6.0 is what broke calls to future, so 1.5 should be ok in that regard .. if that's what you mean
08:22matthias_i mean generally. i haven't been keeping up with it all... could be that everyone thinks my version is crap and are all really happy that they dont have to use it anymore and im still using it ;)
08:23lnostdal-laptopok, well i guess doing `lein upgrade' would be a bad idea right now :)
08:23lnostdal-laptopsince it'll upgrade to the very latest; not something in-between your 1.5.0 and 1.6.1
08:23lnostdal-laptop(or <=1.6.0)
08:24matthias_is it normal that my "uberjar" contains 8.7mb of clojure stuff? seems a little much :p
08:25taliosthats uber!
08:25lnostdal-laptopyes, you should add some more java stuff to it; to balance things out .. heh :)
08:56clgvhow can I read a resource file within a jar?
08:57fliebelclgv: I think there is some weird jar:/path/file syntax for that, or... some getResource call on the classpath thing. I can;t remember.
08:58clgvI tried FileReader and failed
08:59fliebelhm http://stackoverflow.com/questions/941754/how-to-get-a-path-to-a-resource-in-a-java-jar-file
09:00cemerickclgv: if you're trying to load from your current classpath, use the resource methods on Class, e.g. (.getResource clojure.lang.RT "/clojure/lang/PersistentVector.class")
09:03clgvfliebel: I already have the path. it's just the reading. I need some Reader that I can put into a PushbackReader
09:03fliebelcemerick: What has happened to the Clojure survey? Just busy, busy, busy? I don;t want to hurry you, but I *am* curious :)
09:04cemerickIt's coming, I promise.
09:04cemerickYes, it's been a crushing, difficult past couple of weeks.
09:05fliebelclgv: Maybe getResourceAsStream combined with InputStreamReader?
09:06clgvfliebel: that could work
09:06cemerickclojure.java.io/reader will return a Reader from the URL
09:06clgvbut it's a pity that it is not transparent between jar and non-jar
09:07clgvcemerick: oh ok. with clojure.java.io/reader I only need an URL and it wil be transparent between jar and non-jar?
09:07cemerickexactly
09:07clgv:)
09:10clgvgreat. just tested in-place with debug-repl
09:15pyrso, yeah, apparently resources are not accessible from a repl inside a project
09:22clgvpyr: what exactly do you mean? I access clj-resource files from repl with two different modes: (1) via use (2) via reader
09:24pyrI have files in resources/
09:25clgvyeah thats where I have them as well
09:25pyrVia reader I have to specify an absolute path
09:25pyri.e, I can't do (reader "somefile")
09:26clgvyou can use clojure.java.io to get an URL with only specifying the relative path within "resources"
09:26pyr'k
09:26clgvoh the function is called "resource"
09:27pyryou're right
09:28lpetithello
09:28pyrclgv: resource it is!
09:28lpetitJust to let you know that CCW 0.3.0 is out. Only one change since 0.2.0, but an important one : perf. improvement of the source code editor for medium to large files
09:28clgvpyr: and 'reader when you actually want to read it
09:29peteriserinsIs there a limitation of 1000 related to something around pmap, doseq or the like?
09:29clgvlpetit: great^^
09:29pyrclgv: yes that part I got :)
09:30peteriserinsMy program after refactoring with pmap updates exactly 1000 entries of a database.
09:30dnolen_lpetit: nice
09:32lpetitAnd I've also some interesting stats: ccw version 0.2.1 (just prior to this one) has generated 1718 downloads.
09:32clgvlpetit: count me 4 times ;)
09:32lpetitclgv: yes, probably to be cut by 2 or 3 at least
09:33clgvlpetit: I have it on 2 working pcs on is dual boot and my laptop ;)
09:33cemericklpetit: the revenge of parsley is here?! :-D
09:33lpetitcemerick: yep :)
09:35lpetitNext step: remove antlr which is still used for syntax coloration :-D
09:36lpetitCorrection: for lexical coloration. Removing antlr will also result in having syntax coloration (eg correct coloration of #(comments) for example )
09:45clgvlpetit: also correct coloration of local names that are equal to clojure.core names?
09:46lpetitclgv: this would not be just syntax coloration, but rather semantic coloration. Definitely a must have, but probably not at the same time of the antlr removal.
09:47lpetitclgv: and to be honest, there's something into having local names coloration equal to clojure.core names. Like a gentle way to warn you that you're shadowing things :)
09:47clgvI have a bash script that wraps my call to a jar with rlwrap. I forward parameter with "$*" the problem is that filenames with spaces become separate argument through that. any idea how I can fix this?
09:49clgvlpetit: but there are some quite common names that are already taken by core. e.g. "name" ;)
09:49lpetitclgv: quite true.
09:50clgvlpetit: I wont shadow it, if I needed the core function ;)
09:50peteriserinsI pull 2k entries from a database, pmap parse them, then doseq put the results in the database. It only updates 1000 entries. Where could the problem arise?
10:01StrangeLoopyHi everyone. I'm kind of new to clojure, but I've been really enjoying the libraries. One thing I found very useful is to wrap a lazy-xml/parse-trim output in a zipper. My question is, once all the modifications and filters have occured, is there an idiomatic way to print back to xml? xml/emit or prxml don't work with the lazy version.
10:06chouserlazy-xml has an emit that ought to work
10:07StrangeLoopyHmm. I'll give that a look.
10:08StrangeLoopyBy the way, I love your book "The Joy of Clojure."
10:09chouserThanks, that's very kind of you!
10:10Fossiah, another thing to finally put on my amazon list
10:13StrangeLoopyThe clojure aphorisms tie everything together. The whole thing is very zen. e.g. "Awkwardness is good. It is a sign that the developer is straying from the path of clojure enlightenment."
10:14chouserWell, you should thank Fogus not me for any such nice turns of phrasing.
10:15chouserAlso, anything to do with vocabulary, organiztion, philosophy, or literary references. :-)
10:17StrangeLoopyI'll be sure to do that. I know I've been using a ton of code that you authored though, so I'll thank you for that.
10:18StrangeLoopyI guess a ton of code in clojure is not very many lines, but that's one of the plus sides. Lots of functionality with little bulk.
10:19StrangeLoopy:)
10:19chouser:-)
10:19chouserI'm in the process of reorganizing lazy-xml and getting it ready for Clojure 1.3
10:20StrangeLoopyWhat is going to change?
10:21StrangeLoopyAnd is 1.3 going to be the release that sees the par branch hit main once open-jdk 7 is released?
10:21chouserThe underlying concepts will be the same. The function names may change a bit, the api cleaned up, the deps will be managed better, the algorithms will be lazier.
10:21chouserprxml may be better integrated
10:22chouserI think 1.3 is in beta with no par work that I'm aware of, so I'd have to guess no.
10:27StrangeLoopyThanks for the info. Back to reading your book for a while.
10:51pyrso if I get things correctly
10:52pyrin clojure 1.3, clojure.contrib.logging is clojure.tools.logging and clojure.contrib.json is clojure.data.json, right ?
10:53fliebelpyr: sounds reasonable.
10:54fliebelI also heard you can substitute contrib with amalloy-utils, but I've never tried that. :P
11:18dnolenStrangeLoopy: there's nothing stopping an enthusiastic contributor from releasing a parallel collection library for contrib :)
11:23StrangeLoopyRich Hickey's github has a good start with his par branch. I might poke around there.
11:24chouserdnolen, StrangeLoopy: hasn't there been some work on par (for example as discussed at the 2010 Conj) that isn't realeased anywhere?
11:25fliebelWhat is par about?
11:28StrangeLoopychouser, dnolen: The only place I've seen par is on rich's github. Do you have a video link for the 2010 conj? fliebel: In my limited viewing, par is an abstraction library for running parallel computation for list comprehension. For instance, pmap, pfilter, and preduce use a queing algorithm to distribute the work to different threads automatically. pvmap pvfilter and pvreduce use a divide
11:28StrangeLoopyand conquer distribution thats better for larger collections.
11:29fliebelah, the forkjoin stuff. want! want!
11:31StrangeLoopyMy impression is that the convenience something like dosync offers for concurrency over locks is much like what the par collection functions would offer over making your own threads, using a java ThreadBufferQueue or whatever their optimized work queue is, etc.
11:32jcromartieIs there any support in ClojureQL for "like"?
11:41StrangeLoopyWhat is the point of like other than pattern matching fields?
11:42StrangeLoopyYou can use clojure lang predicates to pattern match fields directly in select.
11:47StrangeLoopyThis is just a cursory glance, but something like (select (table :yourtable) where (empty? (re-matches #"pattern" :yourfield)))
11:48StrangeLoopyparentheses should have gone around the entire where ^^
11:52replacadnolen: you still here?
11:53dnolenreplaca: yup
11:54replacadnolen: I've been setting up autodoc for the new clojure contrib libs & I wanted to see what you want to do about core.logic
11:54replacaI see that you're already building out gh-pages
11:54replacawhich is where autodoc usually goes
11:55replaca(though I'm sure we can figure out how to have both your stuff and the autodoc stuff in there if you want)
11:55replacaI just wanted to get your read on how you'd like to proceed there
11:56replacano hurry, either, I just noticed it over the weekend
11:58dnolenreplaca: ah, hmm ... yeah need to think about that. I might just remove the current gh-pages since I don't really have time to build that out at the moment. But gh-pages for docs will also be said since core.logic has no inline docs at all.
11:58replacahah! :)
11:59replacadnolen: the idea is to have a autodoc repository for each lib and then a global index for clojure and all the contrib libraries
11:59replacabut, of course, we need docstrings
12:00replacain any case, give it some thought
12:01replacahugod: it's coming. I haven't had much time for it, but I'm trying to make some now
12:02dnolenreplaca: yeah, probably won't add docstrings until I get this optimization stuff sorted out, but it will happen eventually.
12:02replacathere's a long backlog of autodoc stuff that I need to get to
12:02replacadnolen: cool. just keep me posted and I can turn it on when you're ready
12:03technomancyautodoc is an eval-in-leiningen project anyway, so it shouldn't be declaring *any* dependencies
12:03replacatechnomancy: yes, but it's also a standalone project, so it needs to have the clojure dependency
12:03hugodtechnomancy: not even for use outside lein?
12:04replacaI need to separate the lein plug-in from the regular autodoc
12:04replacatechnomancy: in the latest standalone autodoc I started using the leiningen maven jar collection stuff as a library
12:05replacabut lein isn't on clojars or central in a recent version, so that's a little problematic
12:06replacado you want to make tht type of use available or is it ok if I copy the deps code over to autodoc (or some other option)?
12:07technomancyreplaca: leiningen is an application rather than a library, so making it available as a dependency opens up a whole new can of worms I'm not sure I'm ready to do
12:08technomancywhat do you mean by "jar collection"?
12:08replacatechnomancy: but it's got so much useful stuff! :)
12:09replacaWhen autodoc is run standalone, I now allow you to set dependencies in a similar way to what lein allows in the defproject
12:09replaca(autodoc has its own parameter file format)
12:10replacaI don't copy the libs, but reference them straight from ~/.m2
12:10replacadince you already had code to figure all that out, do dependency update, etc., I just call that and it's super-simple
12:11technomancyI'm not sure I understand. you want to run autodoc on a project that doesn't use leiningen, but still uses leiningen's dependency notation?
12:11replacamore or less, yes
12:12technomancysounds really ... hypothetical.
12:12replacaexcpet that I'm doing it now and it's great
12:12hiredmansounds like the kind of thing cemerick may want to do
12:12replacaproblem is that I have to build a version of lein locally and install it
12:12technomancyso you have to repeat your dependencies in two places?
12:12hiredmansince he prefers to use build systems with an ecosystem
12:13cemerickhiredman: well played :-)
12:13replacawell, for programs like the contrib libraries, this makes things easier for me cause I don't have to parse every way that deps could be referenced
12:13replacaI just have my own
12:14technomancyshouldn't it read the pom? that's the canonical dependency list.
12:14hiredmancemerick: huzzah
12:14cemerick"I don't always use build systems. But when I do, I prefer to use one with an ecosystem."
12:14replacayeah, but I'd still need to act on that info
12:15replacaso it doesn't matter too much how I spcify it, I need to be able to do something with it
12:15replaca(i.e. get the deps, figure out the jar paths and add them to my classpath)
12:15replacaso it's not the syntax, it's the semantics
12:16technomancyoh... and since clojure-maven-plugin is mostly written in java you would rather avoid going that route?
12:16cemerickThe application/library divide is tricky. I understand where replaca is coming from, but thanks to different circumstances.
12:16hugodreplaca sounds like you need a maven plugin…
12:16replacahugod: not for what I'm doing here
12:16replacaI'm actually outsde the project looking at it, not inside the project building it
12:17replacahugod: although in general, a maven plugin would be good for autodoc
12:17hugodiiuc you want the project dependencies, which maven can pass to a plugin
12:17replacaI *know* the dependencies, I just want maven to get them for me
12:17hugodclojure-maven-plugin has a goal for autodoc
12:18hugodit can pass the resolved dependencies
12:18replacatechnomancy has already written a bunch of great code to do this so it's a one line call to get the jars fetched and expanded
12:18technomancyreplaca: probably best to copy it now; I'll consider factoring out library vs application in the next version.
12:19replacahugod: right, but I'm not running maven here
12:19replacatechnomancy: cool, thanks. So long as that's OK with you.
12:20replacatechnomancy: I think that's a useful set of stuff for lots of different tools that might want to think about using maven to manage jars that they may be using in different ways
12:21replacatechnomancy: 2nd question: Have you and George though about integrating swank-cdt into lein jack-in in a way that doesn't require modding the project.clj?
12:22technomancyreplaca: well in the next version it'll all be done using aether rather than maven, which is all about separating the library from the application
12:22replacatechnomancy: oh, that sounds nine
12:22replaca*nice
12:22technomancyreplaca: I definitely want to make it easier to piggy-back elisp code from swank and other jars into the Emacs process.
12:23technomancyright now it only works with slime and slime-repl, but it should be easy to make it pluggable for other things like slamhound and cdt
12:24replacatechnomancy: yeah, mostly you just want an option to clojure-jack-in that tells lein jack-in to set the right jvm args (and probably do the classpath stuff for tools.jar since that looks broken in 1.3 beta1)
12:25technomancyreplaca: oh, stuff for the lein launch, not elisp. yeah you could setenv JVM_OPTS I suppose
12:25technomancyopen to suggestions on that front
12:26replacatechnomancy: well, it depends how "native" you want CDT to be in this.
12:26replacatechnomancy: a solution where lein just "knew" what args to set for debug would be easy for folks
12:27replacathen lein jack-in debug
12:27replacaor something
12:27technomancymaybe the prefix arg or something; not a bad idea
12:27replacayeah, or another entry point: clojure-jack-in-debug
12:27replacadoesn't matter too much
12:28replaca(at least to me)
12:28technomancygood call. open a clojure-mode issue?
12:28replacawill do
12:28replacaI think I'll see George tonight too, so I'll talk to him about it
12:29replacatechnomancy: thx
13:16sritchiedoes anyone here use midje?
13:19midssritchie: gave it a try but fell back on clojure.test
13:20amalloyfliebel: amalloy-utils is a drop-in replacement for contrib, provided you don't mind that all your code stops working
13:21fliebelamalloy: Doesn't it contain all the answers to "does clojure have a function that does X"?
13:21fliebelamalloy: I swear someone told me he replaced contrib with amalloy-utils and claimed it works.
13:21amalloy*chuckle*
13:22clgvhow do I do something like (assoc-in data [:a last :b] value)?
13:22fliebelBut as I said, I did not try it myself. I don;t want to spoil the magic.
13:22clgvis there such a shortcut for vectors?
13:22fliebelclgv: So you have a map in a vector in a map?
13:23clgvyes sir
13:23mids(-> x :a last :b)
13:24clgvbut I need assoc-in^^
13:24fliebel(assoc-in data [:a (count (:a data)) :b] value)
13:24clgvfliebel: thats ugly ;)
13:24clgvit's even more ugly since the "data" is an atom ;)
13:25fliebelclgv: well, yea.
13:25pauldoohow do I know which version of (the same) function to use when it's available from two different contrib places? (e.g read-lines from c.c.duck-streams or c.c.io)
13:25amalloy(update-in x [:a] #(assoc-in % [(count %) :b] value)) is the best you can do, i think
13:25pauldooin this case read-lines has exactly the same implementation, so I suspect one is deprecated, but I can't tell which
13:26clgvamalloy: I'll write a helper defn then... ;)
13:26joegallopauldoo: http://clojure.github.com/clojure-contrib/#duck-streams
13:26joegallosays it's deprecated since clojure-contrib 1.2
13:26amalloythey're both deprecated, use ##(doc line-seq)
13:26sexpbot⟹ "([rdr]); Returns the lines of text from rdr as a lazy sequence of strings. rdr must implement java.io.BufferedReader."
13:26joegallonot on the function individually, but on the namespace
13:27pauldooamalloy: so this answer is incorrect? http://stackoverflow.com/questions/6613470/using-line-seq-with-reader-when-is-the-file-closed/6613685#6613685
13:27fliebelctrl+r has ceased to show the command history for cake. What provides that? Am I silently switched to JLine?
13:28amalloyfliebel: ruby readline. cake's terminal i/o is mostly in ruby, so i doubt it's jline
13:30fliebelamalloy: Hm, okay, so any gem command I need to run?
13:31amalloybeats me, i'm afraid
13:34fliebelI installed rb-readline but it doesn't work. My cake experience has been troubled recently.
13:36bsod1what should I add to my project.clj to be able to use clojure.contrib?
13:37StrangeLoopyHey joegallo
13:37StrangeLoopyKeithwyss here.
13:37joegalloSeriously?
13:37StrangeLoopyYessir.
13:37joegalloWOW.
13:37joegalloWhat brings you to clojure?
13:37joegalloAlso, let's move this over into a private chat.
13:37StrangeLoopyIt's the best language to handle changes to multicore in hardware imho.
13:39amalloypauldoo: read-lines is necessarily side-effecty and unpredictable. what if someone decides to (take 20) on the line seq? the file never gets closed
13:39amalloyinstead, you're encouraged to structure your code so that with-open will work, rather than just passing around an open file handle everywhere
13:40amalloyeg, by moving all the work inside of a constrained scope, or calling (doall) on the sequence if you don't mind having it all in memory at once
13:41bsod1what should I add to my project.clj to be able to use clojure.contrib?
13:41amalloy:dependencies [[clojure-contrib "1.2.0"]]
13:54dnolencemerick: that chart looks a lot better now :)
13:54amalloycemerick: charts! that reminds me: did i miss the results of the survey?
13:54dnolenI meant flowchat
13:54cemerickdnolen: yeah, once I pulled my head out of the interop chapter I was building it for, it improved significantly. It's now the basis for an appendix.
13:55pauldooamalloy, joegallo: it's a shame clojuredocs.org doesn't show them as deprecated
13:55cemerickamalloy: No, I've been flailing. :-( Coming, honest, really, for serious.
13:56dnolencemerick: make that type fit in those diamonds.
13:56cemerickdnolen: It's fine for the blog. O'Reilly's illustrators will make it print-worthy.
13:57dnolencemerick: I think it's really useful for people book aside - make that type fit in those diamonds. That should be on the dev.clojure.
13:58pauldoohm - interesting that clojure.contrib.io isn't marked as deprecated, only duck-streams
14:01pauldoogrr - more deprecated fun.. join, where the docs don't say what to use instead... http://clojuredocs.org/clojure_contrib/clojure.contrib.string/join
14:02midspauldoo: clojure.string/join
14:03dnolenpauldoo: any contrib not visible on http://github.com/clojure is deprecated.
14:05cemerickdnolen: fair enough, text fixed
14:09dnolencemerick+
14:10dnolenoops, cemerick: cool! that's a great resource.
14:10cemerickdnolen: Thanks for the early feedback. :-)
14:13pauldoohm - is there a util to take two sequences [1 2 3] [4 5 6] and produce [[1 4] [2 5] [3 6]] ?
14:14edwWhoa! My copy of the Dylan reference manual is worth $200, if the CLojure Bookshelf page on Amazon.com is any indication.
14:16pauldooaha - (map vector .. )
14:23bsteuber,(assoc {})
14:23clojurebotjava.lang.IllegalArgumentException: Wrong number of args (1) passed to: core$assoc
14:23bsteuber,(apply assoc {} [])
14:23clojurebotjava.lang.IllegalArgumentException: Wrong number of args (1) passed to: core$assoc
14:23edw,(assoc {:a 42} :b 13)
14:23clojurebot{:b 13, :a 42}
14:24bsteuberthis violates the principle of least surprise, doesn't it?
14:24edwHow so?
14:25bsteuberbecause I might want to write something like (apply assoc {:foo 1} args)
14:25bsteuberof course I can still do
14:25bsteuber(into {:foo 1} (partition 2 args))
14:26bsteuberbut in a language where (+) works, I don't think (assoc {}) should break
14:26bsteuberso I wonder if I should file an issue
14:26edw,(let [foo []] (and (seq foo) (apply assoc {:a 42} foo)))
14:26clojurebotnil
14:27edwYeah, I can see how (assoc {...}) might be handy.
14:28fliebelI agree. I remember some other function got this functionality as well recently. Like comp, I think.
14:28fliebel&(comp)
14:28sexpbotjava.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$comp
14:29bsteuber,(clojure-version)
14:29clojurebot"1.2.0"
14:29edwHuh, ASSOC works with vectors too...
14:29bsteuberyes
14:29dnolenhttp://outputstream.io/dear-scalasphere-why-arent-we-talking-more-ab
14:30dnolen^ STM vs. Actors from Scala perspective
14:30edwWhere's the URL shortener bot when you need it?
14:30bsteuberfliebel: indeed, (comp) works in 1.3
14:30bsteuberthen I'll report it and write a patch
14:30edwCongrats, nathanmarz, btw.
14:32fliebeledw: What is he to be congratulated for that I'm unaware of?
14:32edwBacktype was acquired by Twitter.
14:32nathanmarzedw: thanks
14:33edwHope your experience goes way better than eBay's acquisition of Half.com.
14:33fliebelOh, dunno if that's a good thing, but, congratulations.
14:35fliebelnathanmarz: I hope Twitter is not going to make you rewrite your stuff in Scala, like those classic acquisitions with Clisp and such.
14:35ejacksonfliebel: a liquidity event is *always* a good thing :)
14:35ejacksonyou were the one wanting to fly in private jets not so long ago :D
14:36fliebelejackson: Care to explain? I know to little about these things. What do private jets have to do with it?
14:36edwejackson: Remember that Twitter's still privately held, and we have no idea what how the deal was structured, and that nathanmarz quite possibly is not eager to discuss these things.
14:36ejacksonedw: of course, I'm not suggesting he does. I surely wouldn't.
14:37ejacksonfliebel: aquisition :: [ramen noodles] -> $$$
14:38ejacksonin the general case
14:38edwejackson: I hope you didn't think I was suggesting that you were suggesting that. ;)
14:38ejacksonedw: oh NO !!! its turtles all the way down again. I hate it when that happens :
14:40fliebelejackson: Turtles? I don't understand you... If some sources wouldn;t have told me otherwise, I;d have said you where american.
14:40edwfliebel: You seriously don't know what he's talking about?
14:40ejacksonfliebel: its worse, I'm Zimbabwean by way of South Africa. However, I did *marry* an American.
14:41fliebeledw: I get the noodles -> $$$ now, but not the turtles.
14:41ejacksonfliebel: oh its a reference: http://en.wikipedia.org/wiki/Turtles_all_the_way_down
14:42edw(That's my Fb religion, btw: "Turtles all the way down")
14:43ejacksonlol
14:43fliebelbtw, if $$$ would stop me from writing NoSQL databases in Clojure, I'd prefer noodles ;)
14:44ejacksonyummm.... noodles.
14:45technomancyoh man I am totally having shin ramun for lunch now
14:49hugodhow do you call a protected static method of a base class from a gen-class method implementation function?
14:50ejacksonhugod: i don't think you can
14:50ejacksoni've had to got through and make those suckers public in the past
14:50hugodmm, so reflection it is…
14:50hugodI have no control over the base class
14:51ejacksonbummer
14:57edwtechnomancy: Shin ramun?
14:58technomancyramyun I guess: http://en.wikipedia.org/wiki/Shin_Ramyun
14:59technomancyhell of spicy
15:00edwAh.
15:01edwWith two eggs (egg drop style), I could eat those indefinitely.
15:01technomancymy mouth is already begging for mercy
15:02zerokarmaleftwith kimchi is the only way to eat it
15:03technomancyoh! I think I have some kimchi in the back of my fridge
15:04hiredmanpretty sure you would know that for a fact
15:04dnolenzerokarmaleft: I agree.
15:05dnoleneven better than shin ramyun w/ kimchee is some properly extra spicy kimchee chigae.
15:06ejacksonhiredman: i dunno, the best kimchi can just decide to leave on its own accord. Ain't nothing in the fridge gonna stand up to it.
15:06MosterdWhat is wrong with my arities? The look completely different. http://pastebin.com/dFJXRLnc
15:06zerokarmaleftdnolen: touche
15:07bsteuberMosterd: two of your cases define one-argument functions
15:07hiredmanMosterd: the last two are both arity 1
15:08bsteuberwith different destructuring
15:08bsteuberbut that doesn't count :)
15:08zerokarmaleftthough you might as well go for a home-cooked korean meal at that point
15:09MosterdI just noticed my first one doesn't pattern match a list.
15:10MosterdIt seems to work when I change it to [[]].
15:10dnolenMosterd: destructuring is not pattern matching.
15:10MosterdOr it just prints a different error.
15:13ejacksonwelcome, man of the moment !
15:13MosterdShould I use the length function instead of trying to destructure a list?
15:19MosterdI could abuse the apply function.
15:22lnostdal-laptopon vacation .. still reading clojure; http://goo.gl/VJTRg ... :)
15:22timvisherlnostdal-laptop: my kind of vacation! :)
15:27dnolenMosterd: Clojure doesn't have pattern matching, you'll probably want to use cond.
15:30lnostdal-laptoptimvisher, ^^
15:30Mosterddnolen: I got it to work using if. Somehow I thought clojure would support pattern matching.
15:30MosterdBut it's still a great language.
15:40dnolenMosterd: rhickey is not a fan of current pattern matching implementations. I've done some work towards fixing that but it's a long term project.
15:41fliebeldnolen: What doe he have against them?
15:41dnolenfliebel: clause order limitation.
15:42fliebeldnolen: Ah, hi predicate dispatch.
15:42dnolenfliebel: yup
15:49Mosterddnolen: I don't understand what you mean by clause order limitation means, but I think that pattern matching would be a great addition.
16:00dnolenMosterd: clause order matters in pattern matching.
16:01dnolenMosterd: pattern matching is also often implemented to only allow a closed set.
16:02dnolenMosterd: Pure Prolog is a more interesting model to strive for.
16:03jsnikerisI've just setup a hello-world webapp w/ leiningen/ring/compojure/enlive. The Content-Type response headers are indicating a charset of iso-8859-1, but I'd rather have them be UTF-8. What would be the preferred way to fix this? I'm not sure where on the stack, the default charset is being decided.
16:06MosterdBut when using cond clause order matters as well?
16:06dnolenMosterd: of course, cond is precisely what you don't want - it's a fixed order and closed.
16:10MosterdI think I don't really understand the disadvantages.
16:12Mosterdprolog would require returning multiple values
16:12amalloyjsnikeris: someone was asking this in here just a few days ago. i'll see if i can find the log
16:13jsnikerisamalloy:Thanks. I've been reading lots of threads about it, but I'm not really seeing a definitive answer
16:14amalloyjsnikeris: discussion starts at roughly http://clojure-log.n01se.net/date/2011-07-05.html#00:09
16:15jsnikerisamalloy: thanks as always :)
16:18jsnikerisamalloy: amalloy: too many pronouns. none of those "it"s are clearly bound
16:18jsnikeris:)
16:22dnolenMosterd: you can't extend pattern matching after the fact. disadvantage. You have to be very careful about order. disadvantage.
16:25dnolenMosterd: yes Prolog would return multiple values, but that's not necessary.
16:26dnolenwhat I'm talking about would have an implied once.
16:28nathanmarzfliebel: we're going to continue using clojure
16:29fliebelnathanmarz: Wee :)
16:31Mosterddnolen: thanks
16:33dnolenMosterd: some thoughts/examples on the matter here, https://github.com/swannodette/match/wiki/Crazy-Ideas
16:34dnolenMosterd: I'd like to support local matching as well as matching across fns.
16:35dnolenMosterd: I'd like the generality of multimethods but the perf from OCaml/SML/Haskell pattern matching compilation
16:41ibdknoxanyone in here messed with Noir?
16:47Mosterddnolen: Okay, so pattern matching won't be there for a while because you are working on a better idea.
16:48dnolenMosterd: there's already pattern matching libs for Clojure. I'm working on a better idea that I plan on submitting as a contrib lib. Even so I don't think it'll make core anytime soon.
18:16chuckHi all! I've got a question about Clojure web development
18:16chuckWith the hacker news code, there's some sort of REPL that can be used to modify the server's running code to change how the site functions while the server is still running
18:16chuckIs this possible somehow with clojure/compojure?
18:19sritchiehey all -- I see the following in the midje code: (defmacro facts [& forms] (with-meta `(fact ~@forms) (meta &form)))
18:19sritchiecan anyone explain what &form means, here?
18:20sritchieah, got it: http://blog.jayfields.com/2011/02/clojure-and.html
18:23technomancychuck: definitely possible; usually done by running the server out of swank or embedding a swank server in your application. but a raw socket-repl can be used if you don't like slime.
19:00amalloytechnomancy: if i (setq slime-net-coding-system 'utf-8-unix), should slime/swank be able to handle any unicode character?
19:00amalloyi'm fiddling around with stuff like using ∘ as a shortcut to comp
19:00hiredmanamalloy: you also need to set the jvm to use utf8 as a file encoding
19:01hiredmanor as the default
19:01technomancyI think M-x clojure-jack-in with the latest slime should get you unicode across the board
19:01technomancywith raw slime that setq should do the trick though
19:03amalloyhiredman: as a file encoding? i'm not even asking clojure to compile a file (yet); i'm just sending it a character over the slime tunnel
19:03amalloytechnomancy: doesn't seem to. slime-eval-region with just ∘ highlighted sends slime into a black hole until i slime-disconnect
19:04hiredmanamalloy: file.encoding is used as the default for all streams I believe
19:04technomancyhm; I may have been mislead
19:04technomancymisled?
19:05technomancyworks here
19:05amalloyhiredman: i see. (System/getProperty "file.encoding") is already "UTF-8"
19:05hiredmanhmmm
19:06hiredmanhttps://gist.github.com/1070768 is what I have for emacs
19:07amalloytechnomancy: what's the magic words to install the swank plugin for lein these days?
19:07technomancylein plugin install swank-clojure 1.4.0-SNAPSHOT
19:09amalloytechnomancy: thanks. looks like a cake bug (ninjudd!)
19:09amalloyworks fine in lein
19:33jonabbey/?
19:33clojurebot:negative/num-1 + :positive/num-1 = :zero/zero
19:36keithwyssHello everyone. Quick question. If I open a java.io.File(".") in a leiningen project, say in src/myproject/myproject.core, where does the . point to?
19:38technomancykeithwyss: should be the project root
19:38amalloy,(.getAbsolutePath (java.io.File. "."))
19:38clojurebotjava.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
19:39amalloykeithwyss: try the above yourself and see
19:39keithwyssThanks.
19:48keithwyssGreat. The root it was. Once I wrap everything in an uberjar, I don't see prints though. Do those get redirected to some other stream? Do I have to use the test folder for stuff like this?
21:00tauntaunset beep_msg_level hilight msgs dccmsgs
21:11gmtreacyhello all, does anyone know why a println would be suppressed when it is called indirectly?
21:12gmtreacy(defn improve [guess x]
21:12gmtreacy (println "guess: " guess " x: " x)
21:12gmtreacy (average (square guess) (/ x guess))
21:12gmtreacythat works but if i try to run a function that calls improve, the print does not show up in the repl output. I am using clojurebox
21:50technomancyhttp://clojure.org/getting_started -> (. javax.swing.JOptionPane (showMessageDialog nil "Hello World")) ; what is this I don't even
21:54technomancythat whole page is a facepalm really
21:57danlarkindnolen and abedra and like the only two voices of reason on the ML
21:57danlarkinit must be difficult
21:57technomancyjswat and yourkit are not "getting started" topics
21:58technomancywhy is asm mentioned at the top?
21:59dnolen_technomancy: because some Java folks want to know what's in the jar. nothing weird about that.
22:00technomancyI posit that less than 1% of developers in the history of clojure have cared about asm on their first day of using Clojure.
22:00danlarkinposition seconded!
22:01dnolen_when I first used Clojure near 3 years ago, I was like HELLS YES, I download a jar and it works! time to start < 30s.
22:02dnolen_no effin make file, no global install, no C deps, no ... etc
22:02technomancywhen I started the readme didn't even have working build instructions.
22:03scgilardidnolen_: yeah, that was pretty darn cool. and then delving into clojure.clj and reading and learning the bootstrap. very sweet.
22:06cemerickWow, I hadn't looked at the ML in a number of days. Seems swampy.
22:06technomancycemerick: yeah......skip it
22:07scgilardigetting-started could definitely use some updating. one can, however, download the zip file from the "downloads" like at the upper right and then read the readme in it to get into a repl.
22:07technomancya repl without readline is hardly a repl
22:07scgilardinot true
22:07cemericktechnomancy: Yeah. I should definitely do that. Maybe just one message…
22:09dnolen_I mean if you look at Ruby / Python Getting Started they're hardly any better. It's just that some unbelievably selfless person(s) has created a pre-package binary for their platform so you don't have to read Getting Started for those langs. Where are those people for Clojure I ask? Where?!
22:10dnolen_Hey somebody forgot to add "brew install node" to the Node.js getting started page?!
22:12technomancydnolen_: the second code sample on getting started on clojure.org has deprecated dot notation
22:14dnolen_technomancy: since when was that deprecated? (I missed this if so)
22:17scgilardiI had recalled deprecated as well, but this is all I can find currently: java interop mentions this: "The member access forms given at the top of this section are preferred [over a form beginning with .] for use in all cases other than in macros."
22:17technomancyit's only kept around for use from within macros
22:17scgilardiso it's at leas showing a non-preferred form (that's harder to read than the preferred alternative)
22:19dnolen_technomancy: well the better update this then too http://clojure.org/java_interop
22:19dnolen_doesn't seem deprecated to me.
22:25technomancyI know it's been mentioned in here by either rich or stu H
22:29duck1123What's the best way to read in some config information for my app? Previously, I had a namespaced file that contained some settings, but I want to get this out of my src tree
22:30duck1123I could read a pushbackreader from the file, but is there a better option?
22:30duck1123alternately, I could look into something like yaml, but clojure is the superior syntax IMO
22:31technomancyduck1123: (comp read-string slurp) maybe
22:33duck1123oh nice, that is a bit shorter than what I had
22:33duck1123but is that my best bet for the equivalent of a config/database.yml ?
22:45cemerickduck1123: stick a map literal in a file, use what technomancy provided, and you're done :-)
22:45cemerickassuming the values are literals and you're not looking to eval things
22:47duck1123Thanks. That's what I'm doing. I just wanted to make sure I wasn't missing anything cool
22:48cemerickduck1123: dude, that's not cool enough for you? ;-)
22:49duck1123well, at the time I didn't know about read-string
22:49duck1123and the alternative felt dirty
23:02sritchiehey all - does any function like this exist? https://gist.github.com/1071033
23:03sritchieI was looking for a way to compose predicates, to see if any match
23:16cemericksritchie: every-pred
23:17cemerick,((every-pred number? odd?) 3 9 11)
23:17clojurebotjava.lang.Exception: Unable to resolve symbol: every-pred in this context
23:17cemerickhah, 1.3-only
23:17cemerickclojurebot: you're a luddite
23:17clojurebotExcuse me?
23:17sritchieah, got it
23:18sritchietime to upgrade!
23:18duck1123get with the picture, clojurebot
23:18sritchieand some-pred, or some-fn?
23:18cemericksritchie: or just copy/paste into a private ns until you do
23:19cemericksritchie: some-fn, yes
23:38Yamazaki-kunAre clojure.test deftests supposed to just work with Enclojure?
23:39Yamazaki-kunThe test options in the GUI claim no tests run. Works fine with lein test.
23:42technomancyheeeeeeeeroku: http://deep-snow-641.herokuapp.com/
23:47Yamazaki-kunhm. have to show up to a Seajure meeting one of these days. Problem is I'm never in Seattle on a Thursday night.
23:51hugodtechnomancy: :) is that up on the seajure github yet?
23:56hugoddoes it suffer GAE like startup latency?