ANN Langohr 2.1.0 is released
Langohr [1] is a small, feature complete Clojure client for RabbitMQ. 2.1.0 is a bug fix and usability improvements release. Release notes: http://blog.clojurewerkz.org/blog/2014/01/07/langohr-2-dot-1-0-is-released/ 1. http://clojurerabbitmq.info -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: ClojureScript integration with Emacs/Cider ?
On Mon, Jan 6, 2014 at 11:10 PM, Colin Fleming colin.mailingl...@gmail.comwrote: Since Cursive (http://cursiveclojure.com) resolves everything statically from source, ClojureScript completion and navigation works for most symbols. There are still a lot that it doesn't know about since cljs-specific functionality is still pretty low, so js/* symbols have no support, and any functions included from Closure are not found either. But for pure cljs it should work pretty well. There are quite a few people using Cursive for cljs dev now, despite the slightly embarrassing lack of explicit support :-) Hi Colin, I just installed Cursive and looks very promising. I'll try using it. Do you plan to explicitly support ClojureScript? Do you have an ETA? That would be awesome, because viewing the implementation of Clojure's core libs is very valuable and from what I understand, there are differences between Clojure and ClojureScript (e.g. protocols are at the bottom in ClojureScript) and it would be valuable if I could click on a function and see its ClojureScript specific code and documentation. Also handling the Javascript interop would be awesome too. Thanks, -- Alexandru Nedelcu www.bionicspirit.com PGP Public Key: https://bionicspirit.com/key.aexpk -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Hadoop Online Training in Canada
Hadoop Online Training by Sunitlabs We are providing excellent Hadoop Training by real-time IT industry experts Our training methodology is very unique Our Course Content covers all the in-depth critical scenarios. We have completed more than 200 Hadoop batches through Online Hadoop Training program, Our Hadop Classes covers all the real time scenarios, and its completely on Hands-on for each and every session.Please call us for the Demo Classes we have regular batches and weekend batches. Contact Number : India :+91 9030928000, Email : i...@sunitlabs.com , Web: http://www.sunitlabs.com/hadoop-online-training/ -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ClojureScript] Re: ANN: Om, a ClojureScript binding to Facebook's React
If you install locally you need to depend on [om 0.1.6-SNAPSHOT] I did make a mistake and accidentally did not push the previous version to Clojars which you can depend on as specified in the README: [om 0.1.5] On Tue, Jan 7, 2014 at 6:29 AM, Rick Walsh rick.wa...@gmail.com wrote: Hi Guys, So... I'm trying to compile a cljs project with OM. As in instructed above I've: cloned the repo: git clone https://github.com/swannodette/om.git Installed: lein install (Output shown below) Retrieving org/clojure/clojurescript/0.0-2138/clojurescript-0.0-2138.pom from central Retrieving org/clojure/core.async/0.1.267.0-0d7780-alpha/core.async-0.1.267.0-0d7780-alpha.pom from central Retrieving com/facebook/react/0.8.0.1/react-0.8.0.1.pom from clojars Retrieving org/clojure/core.async/0.1.267.0-0d7780-alpha/core.async-0.1.267.0-0d7780-alpha.jar from central Retrieving org/clojure/clojurescript/0.0-2138/clojurescript-0.0-2138.jar from central Retrieving com/facebook/react/0.8.0.1/react-0.8.0.1.jar from clojars Created G:\om\target\om-0.1.6-SNAPSHOT.jar I then added to my projects cljs a dependency of [om 0.1.6] I still get the following error on compilation: Could not find artifact om:om:jar:0.1.6 in central ( http://repo1.maven.org/maven2/) Could not find artifact om:om:jar:0.1.6 in clojars ( https://clojars.org/repo/) I'm clearly being terribly stupid. Any suggestions? -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups ClojureScript group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescr...@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Namespaces in waiting
You can use find-namespaces from http://clojure.github.io/tools.namespace/#clojure.tools.namespace.find to + clojure.java.classpath to get a list of all namespaces in current classpath... On Mon, Jan 6, 2014 at 7:45 PM, Stephen C. Gilardi scgila...@gmail.comwrote: On Jan 1, 2014, at 3:26 PM, Dave Tenny dave.te...@gmail.com wrote: When I use 'lein repl' in some project context and get to the REPL prompt, there's an available but as yet not ... present ... namespace, i.e. (all-ns) won't list the namespace(s) created in the lein project directory tree. Is there some API I can use to see a list these available but not active namespaces? I’m not aware of one. I'm guessing that looking at what's on the class path doesn't necessarily tell me what namespaces might be USE-able via (use 'x). Walking the classpath including the contents of jar files would be a way to construct such a list of USE-able (or REQUIRE-able) namespaces. It would involve traversing the directory structure under each entry in the classpath and reading at least the first ns form in each candidate file (or jar entry). —Steve -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Are all clojure namespaces loaded in repl by default?
I am using Clojure 1.5, and reading a book on Clojure 1.3. I am reading over the namespaces chapters but I appears in my repl I can already access everything with its fully qualified name without a require. For example on this website, namespaces examplehttp://blog.8thlight.com/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.htmlthey show how if you try to use (clojure.string.split) without first using require you get a class not found exception... but it works fine for me. I also am able to use (clojure.test/is) , which makes sense to me why would i need to require it if I am accessing its fully qualified name... but i suppose there probably is a good reason.. I am just wondering why I dont need to require any of these libs but examples in the books and online show I do. I am assuming something changed in a latest version. Can someone please explain for me, since my references appear to be outdated. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Are all clojure namespaces loaded in repl by default?
The namespaces you mentioned have already been loaded and thus you can use the fully qualified name . What if you try (clojure.inspector/inspect [1 2 3]) in a bare repl??? ClassNotFoundException clojure.inspector java.net.URLClassLoader$1.run (URLClassLoader.java:366) I hope that clarifies it a bit :) Jim On 07/01/14 14:55, John Kida wrote: I am using Clojure 1.5, and reading a book on Clojure 1.3. I am reading over the namespaces chapters but I appears in my repl I can already access everything with its fully qualified name without a require. For example on this website, namespaces example http://blog.8thlight.com/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html they show how if you try to use (clojure.string.split) without first using require you get a class not found exception... but it works fine for me. I also am able to use (clojure.test/is) , which makes sense to me why would i need to require it if I am accessing its fully qualified name... but i suppose there probably is a good reason.. I am just wondering why I dont need to require any of these libs but examples in the books and online show I do. I am assuming something changed in a latest version. Can someone please explain for me, since my references appear to be outdated. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Are all clojure namespaces loaded in repl by default?
Thanks, that does work as expected now. Is it simply documented somewhere what clojure preloads for you? Or is there a way to reflect this? I found the (all-ns) command, not sure if there is a better way to view this info. Are the preloaded classed documented on the clojure site? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
Yesql is a simple library for blending SQL queries Clojure together, cleanly. Here's how it workshttps://github.com/krisajenkins/yesql#rationale, and how to use it https://github.com/krisajenkins/yesql#example-usage. Project: https://github.com/krisajenkins/yesql Leiningen: [yesql 0.3.0] New since v0.2.x: Support for multiple queries in a single file. Feedback welcomed, Kris -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure.org: Concurrency screencast 404
http://clojure.org/concurrent_programming Apologies for the delayed response. On Fri, Dec 27, 2013 at 1:41 AM, Alex Miller a...@puredanger.com wrote: Which page had the link? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Queer little twists and quirks go into the making of an individual. To suppress them all and follow clock and calendar and creed until the individual is lost in the neutral gray of the host is to be less than true to our inheritance Life, that gorgeous quality of life, is not accomplished by following another man's rules. It is true we have the same hungers and same thirsts, but they are for different things and in different ways and in different seasons Lay down your own day, follow it to its noon, your own noon, or you will sit in an outer hall listening to the chimes but never reaching high enough to strike your own. - Angelo Patri -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure.org: Concurrency screencast 404
Oh. Looks like the link has been updated already. Missed that earlier. On Tue, Jan 7, 2014 at 9:49 PM, abhi abhiji...@gmail.com wrote: http://clojure.org/concurrent_programming Apologies for the delayed response. On Fri, Dec 27, 2013 at 1:41 AM, Alex Miller a...@puredanger.com wrote: Which page had the link? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Queer little twists and quirks go into the making of an individual. To suppress them all and follow clock and calendar and creed until the individual is lost in the neutral gray of the host is to be less than true to our inheritance Life, that gorgeous quality of life, is not accomplished by following another man's rules. It is true we have the same hungers and same thirsts, but they are for different things and in different ways and in different seasons Lay down your own day, follow it to its noon, your own noon, or you will sit in an outer hall listening to the chimes but never reaching high enough to strike your own. - Angelo Patri -- Queer little twists and quirks go into the making of an individual. To suppress them all and follow clock and calendar and creed until the individual is lost in the neutral gray of the host is to be less than true to our inheritance Life, that gorgeous quality of life, is not accomplished by following another man's rules. It is true we have the same hungers and same thirsts, but they are for different things and in different ways and in different seasons Lay down your own day, follow it to its noon, your own noon, or you will sit in an outer hall listening to the chimes but never reaching high enough to strike your own. - Angelo Patri -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
ANN Route One 1.0.0 is released
Route One [1] is a small library that generates URLs/URIs from routes and parameters. Release notes: http://blog.clojurewerkz.org/blog/2014/01/04/route-one-1-dot-0-0-is-released/ 1. https://github.com/clojurewerkz/route-one -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
ANN Validateur 1.6.0 is released
Validateur [1] is a Clojure data validation library. Release notes: http://blog.clojurewerkz.org/blog/2014/01/04/validateur-1-dot-6-0-is-released/ 1. http://clojurevalidations.info -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
ANN Machine Head 1.0.0-beta6
Machine Head [1] is a small Clojure MQTT client. Release notes: http://blog.clojurewerkz.org/blog/2014/01/07/machine-head-1-dot-0-0-beta6-is-released/ 1. http://clojuremqtt.info -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
ANN Meltdown 1.0.0-beta3 is released
Meltdown [1] is a Clojure interface to Reactor [2]. Release notes: http://blog.clojurewerkz.org/blog/2014/01/07/meltdown-1-dot-0-0-beta3-is-released/ 1. http://github.com/clojurewerkz/meltdown 2. https://spring.io/blog/2013/11/12/it-can-t-just-be-big-data-it-has-to-be-fast-data-reactor-1-0-goes-ga -- MK http://github.com/michaelklishin http://twitter.com/michaelklishin -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Are all clojure namespaces loaded in repl by default?
Generally speaking, you wouldn't care what has been loaded and what hasn't and you certainly should not rely on something having been implicitly loaded. The current best practice is to use :require in conjunction with :refer or :as, in all your ns declarations, thus avoiding the need for fully qualified names. Also, it needs to be noted that strictly speaking, Clojure doesn't preload anything for you...these namespaces just happen to have been loaded because Clojure needed them during bootstrap...Nothing really happens for the user - at least this is my understanding. Jim On 07/01/14 15:44, John Kida wrote: Thanks, that does work as expected now. Is it simply documented somewhere what clojure preloads for you? Or is there a way to reflect this? I found the (all-ns) command, not sure if there is a better way to view this info. Are the preloaded classed documented on the clojure site? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure.org: Concurrency screencast 404
Yeah, I found it. :) On Tuesday, January 7, 2014 10:21:24 AM UTC-6, Abhijith wrote: Oh. Looks like the link has been updated already. Missed that earlier. On Tue, Jan 7, 2014 at 9:49 PM, abhi abhi...@gmail.com javascript:wrote: http://clojure.org/concurrent_programming Apologies for the delayed response. On Fri, Dec 27, 2013 at 1:41 AM, Alex Miller al...@puredanger.comjavascript: wrote: Which page had the link? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/groups/opt_out. -- Queer little twists and quirks go into the making of an individual. To suppress them all and follow clock and calendar and creed until the individual is lost in the neutral gray of the host is to be less than true to our inheritance Life, that gorgeous quality of life, is not accomplished by following another man's rules. It is true we have the same hungers and same thirsts, but they are for different things and in different ways and in different seasons Lay down your own day, follow it to its noon, your own noon, or you will sit in an outer hall listening to the chimes but never reaching high enough to strike your own. - Angelo Patri -- Queer little twists and quirks go into the making of an individual. To suppress them all and follow clock and calendar and creed until the individual is lost in the neutral gray of the host is to be less than true to our inheritance Life, that gorgeous quality of life, is not accomplished by following another man's rules. It is true we have the same hungers and same thirsts, but they are for different things and in different ways and in different seasons Lay down your own day, follow it to its noon, your own noon, or you will sit in an outer hall listening to the chimes but never reaching high enough to strike your own. - Angelo Patri -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
defqueries for the win! Excellent minimal syntax choice, Kris. I'm using yesql in my current work project, and it's been a real delight to work with thus far. Being able to put multiple queries in one file just makes it that much sweeter. ~Gary On Tuesday, January 7, 2014 10:57:55 AM UTC-5, Kris Jenkins wrote: Yesql is a simple library for blending SQL queries Clojure together, cleanly. Here's how it workshttps://github.com/krisajenkins/yesql#rationale, and how to use it https://github.com/krisajenkins/yesql#example-usage. Project: https://github.com/krisajenkins/yesql Leiningen: [yesql 0.3.0] New since v0.2.x: Support for multiple queries in a single file. Feedback welcomed, Kris -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
You just gave me a great solution to the sql pain points I've been having. On Tue, Jan 7, 2014 at 10:30 AM, Gary Johnson gwjoh...@uvm.edu wrote: defqueries for the win! Excellent minimal syntax choice, Kris. I'm using yesql in my current work project, and it's been a real delight to work with thus far. Being able to put multiple queries in one file just makes it that much sweeter. ~Gary On Tuesday, January 7, 2014 10:57:55 AM UTC-5, Kris Jenkins wrote: Yesql is a simple library for blending SQL queries Clojure together, cleanly. Here's how it works, and how to use it. Project: https://github.com/krisajenkins/yesql Leiningen: [yesql 0.3.0] New since v0.2.x: Support for multiple queries in a single file. Feedback welcomed, Kris -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
clojure.core.async java.lang.IllegalArgumentException
Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Contributors needed for Rouge (Clojure on Ruby)
On Jan 4, 2014, at 06:43, gvim wrote: I have recently moved most of my work to Clojure and ClojureScript but neither of these implementations seem suitable for non-http scripting, for which I currently use Ruby. So, you can imagine my elation when I discovered Rouge which is Clojure implemented on Ruby: This might be of interest: Clojure to Objective-C compiler https://github.com/joshaber/clojurem It's not Ruby, but the start-up time should be better than on the JVM. It might also be possible to link in MacRuby liobraries, etc. -r -- http://www.cfcl.com/rdm Rich Morin r...@cfcl.com http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA +1 650-873-7841 Software system design, development, and documentation -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: clojure.core.async java.lang.IllegalArgumentException
You are trying to close a nil channel. W/O the code it's all I can say :) Did you check to make sure you are not trying to handle nil as a channel ? Luc P. Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
This lib is a perfect fit here, we create adapter plugins for databases of various software suppliers. Being able to load the queries as resources is absolutely in line with how we handle these plugins, as optional configurable dynamically loadable components. Combined with views to return EDN data compliant with our business model it simplifies the support of these plugins. Thank you, great idea :) Luc P. Yesql is a simple library for blending SQL queries Clojure together, cleanly. Here's how it workshttps://github.com/krisajenkins/yesql#rationale, and how to use it https://github.com/krisajenkins/yesql#example-usage. Project: https://github.com/krisajenkins/yesql Leiningen: [yesql 0.3.0] New since v0.2.x: Support for multiple queries in a single file. Feedback welcomed, Kris -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: clojure.core.async java.lang.IllegalArgumentException
I've changed all of the go blocks to thread and got an exception that I cannot recur over a try catch. mm.. did not get this error in my go block. removing the recur's over try catch blocks makes the code work now with both go and thread. At least this is what I've changed now and the error has gone away. On Tuesday, 7 January 2014 21:55:06 UTC+1, Gerrit Jansen van Vuuren wrote: I do not have a single close! statement in my code anywhere. I've double checked with grep -lhr close\! . through my whole codebase and all the projects in it. On Tuesday, 7 January 2014 21:05:53 UTC+1, Luc wrote: You are trying to close a nil channel. W/O the code it's all I can say :) Did you check to make sure you are not trying to handle nil as a channel ? Luc P. Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefo...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: clojure.core.async java.lang.IllegalArgumentException
Maybe hidden in the go macro expanded code. I do not have access to it (iPhone). You may want to use macroexpand and grep on the expansion. Just take your go block and wrap it in (macroexpand '(your form)) Don't forget the quote. Maybe the expansion will shed some light. Do not panic on the look of the expansion, the code shuffling is kind of heavy. Luc I do not have a single close! statement in my code anywhere. I've double checked with grep -lhr close\! . through my whole codebase and all the projects in it. On Tuesday, 7 January 2014 21:05:53 UTC+1, Luc wrote: You are trying to close a nil channel. W/O the code it's all I can say :) Did you check to make sure you are not trying to handle nil as a channel ? Luc P. Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefo...@softaddicts.ca javascript: sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: clojure.core.async java.lang.IllegalArgumentException
Just got your email, I remember vaguely about this issue maybe when Tim did is presentation at fhe Conj. Or maybe on the mailing list. You may try what I described in my previous email and make your mind about this. Luc P. I've changed all of the go blocks to thread and got an exception that I cannot recur over a try catch. mm.. did not get this error in my go block. removing the recur's over try catch blocks makes the code work now with both go and thread. At least this is what I've changed now and the error has gone away. On Tuesday, 7 January 2014 21:55:06 UTC+1, Gerrit Jansen van Vuuren wrote: I do not have a single close! statement in my code anywhere. I've double checked with grep -lhr close\! . through my whole codebase and all the projects in it. On Tuesday, 7 January 2014 21:05:53 UTC+1, Luc wrote: You are trying to close a nil channel. W/O the code it's all I can say :) Did you check to make sure you are not trying to handle nil as a channel ? Luc P. Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefo...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: clojure.core.async java.lang.IllegalArgumentException
Like normal clojure code, gos don't support a recur that jumps out through a try. However, the go macro should be patched to bring that to the attention of the user. Timothy On Tue, Jan 7, 2014 at 2:22 PM, Luc Prefontaine lprefonta...@softaddicts.ca wrote: Just got your email, I remember vaguely about this issue maybe when Tim did is presentation at fhe Conj. Or maybe on the mailing list. You may try what I described in my previous email and make your mind about this. Luc P. I've changed all of the go blocks to thread and got an exception that I cannot recur over a try catch. mm.. did not get this error in my go block. removing the recur's over try catch blocks makes the code work now with both go and thread. At least this is what I've changed now and the error has gone away. On Tuesday, 7 January 2014 21:55:06 UTC+1, Gerrit Jansen van Vuuren wrote: I do not have a single close! statement in my code anywhere. I've double checked with grep -lhr close\! . through my whole codebase and all the projects in it. On Tuesday, 7 January 2014 21:05:53 UTC+1, Luc wrote: You are trying to close a nil channel. W/O the code it's all I can say :) Did you check to make sure you are not trying to handle nil as a channel ? Luc P. Hi, I'm getting the following error over and over again in my code, I've tried adding in some print statement and suddenly the error went away and my code worked again, then today I got the same error yet again. I suspect this might be a race condition or something similar. I can take the same library from the repl and it works, but when I use it from inside another app I suddenly get this problem error only at certain times. I've removed all close! statements from my code and I still get the same error :(, The code is https://github.com/gerritjvv/clj-tcp/blob/master/clj-tcp/src/clj_tcp/client.clj Exception in thread async-dispatch-6 java.lang.IllegalArgumentException: No implementation of method: :close! of protocol: #'clojure.core.async.impl.protocols/Channel found for class: nil at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541) at clojure.core.async.impl.protocols$fn__779$G__774__784.invoke(protocols.clj:21) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:818) at clj_tcp.client$client$fn__6374.invoke(client.clj:334) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) Any ideas? -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefo...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups
[ANN] jnanomsg 0.2.0 - Clojure and Java bindings for nanomsg.
Clojure and Java bindings for nanomsg[1] (build on top of JNA) nanomsg[1] is a socket library that provides common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. This is a first announcement of this library with 0.2 version! 0.1 version was just a proof of concept. Github: https://github.com/niwibe/jnanomsg Doc: http://niwibe.github.io/jnanomsg/ [1]: http://nanomsg.org/ -- Andrey Antukh - Андрей Антух - n...@niwi.be http://www.niwi.be http://www.niwi.be/about.html https://github.com/niwibe -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: ClojureScript integration with Emacs/Cider ?
Great, let me know if you have any questions. I'm definitely planning ClojureScript support sometime soon. I think most of the symbol resolution for core cljs should work (since it's mostly the same as clj) for for pure cljs (including the core libs) everything at http://cursiveclojure.com/userguide/documentation.html should work. If you see anything that's not working either let me know directly or we have an issue tracker at https://github.com/cursiveclojure/cursive/issues. I'm also planning to handle JS interop but that's tricky because that support is only present in IntelliJ Ultimate. I'm still working out how to handle that but it's definitely on the roadmap. On 8 January 2014 00:26, Alexandru Nedelcu a...@bionicspirit.com wrote: On Mon, Jan 6, 2014 at 11:10 PM, Colin Fleming colin.mailingl...@gmail.com wrote: Since Cursive (http://cursiveclojure.com) resolves everything statically from source, ClojureScript completion and navigation works for most symbols. There are still a lot that it doesn't know about since cljs-specific functionality is still pretty low, so js/* symbols have no support, and any functions included from Closure are not found either. But for pure cljs it should work pretty well. There are quite a few people using Cursive for cljs dev now, despite the slightly embarrassing lack of explicit support :-) Hi Colin, I just installed Cursive and looks very promising. I'll try using it. Do you plan to explicitly support ClojureScript? Do you have an ETA? That would be awesome, because viewing the implementation of Clojure's core libs is very valuable and from what I understand, there are differences between Clojure and ClojureScript (e.g. protocols are at the bottom in ClojureScript) and it would be valuable if I could click on a function and see its ClojureScript specific code and documentation. Also handling the Javascript interop would be awesome too. Thanks, -- Alexandru Nedelcu www.bionicspirit.com PGP Public Key: https://bionicspirit.com/key.aexpk -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Namespaces in waiting
Thanks for the pointer. This appears to work solely off the clojure source and may be very useful. It raises all kinds of non-namespace-related questions for me though that I'll ask in another topic. On Tue, Jan 7, 2014 at 9:02 AM, Alex Ott alex...@gmail.com wrote: You can use find-namespaces from http://clojure.github.io/tools.namespace/#clojure.tools.namespace.find to + clojure.java.classpath to get a list of all namespaces in current classpath... On Mon, Jan 6, 2014 at 7:45 PM, Stephen C. Gilardi scgila...@gmail.comwrote: On Jan 1, 2014, at 3:26 PM, Dave Tenny dave.te...@gmail.com wrote: When I use 'lein repl' in some project context and get to the REPL prompt, there's an available but as yet not ... present ... namespace, i.e. (all-ns) won't list the namespace(s) created in the lein project directory tree. Is there some API I can use to see a list these available but not active namespaces? I’m not aware of one. I'm guessing that looking at what's on the class path doesn't necessarily tell me what namespaces might be USE-able via (use 'x). Walking the classpath including the contents of jar files would be a way to construct such a list of USE-able (or REQUIRE-able) namespaces. It would involve traversing the directory structure under each entry in the classpath and reading at least the first ns form in each candidate file (or jar entry). —Steve -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/mu25hM3Cw4w/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Clojure deployment questions w.r.t. jars, clojure source files, compiled class files
So if I sample some clojure jars in my local maven .m2 directory, most of the jar files have only clojure code, and a project.clj. If I look at the org.clojure project there, it has many java class files, what appear to be corresponding clojure source files, and *no* project.clj. With only a little experiencing on some single AOT compiled modules, I wondered 1) When and under what circumstances projects are compiled in source versus .class form? 2) Why there is no project.clj in the org.clojure jar file? 3) When the clojure 'compile' function comes into play in your typical clojure project deployments? (vs. :aot targets or other leiningen deployment techniques). Any pointers or enlightenment on the above questions appreciated. I read the clojure compilation page, but I haven't quite put together what that's telling me about *how* to comjpile a file and gen-class a class, versus why I see all these clojure .m2 jar files with no classes whatsoever. Thanks, Dave -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
It looks great and I will try it. Have you thought about namespaces and different database implementations? Something like a general repository for SQL files and some vendor specific override repositories. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Namespaces in waiting
I just stumbled across this, which looks very much like it may be what I wanted: clojure.core/loaded-libs http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/loaded-libs E.g. $ lein repl user= (loaded-libs) bultitude.core cemerick.pomegranate cemerick.pomegranate.aether classlojure.core clj-stacktrace.core clj-stacktrace.repl clj-stacktrace.utils clojure.core clojure.core.protocols clojure.instant ... clojure.zip complete.core dynapath.defaults dynapath.dynamic-classpath dynapath.util flatland.useful.fn flatland.useful.seq flatland.useful.utils jdt.cl jdt.core jdt.java jdt.shell leiningen.core.classpath leiningen.core.eval leiningen.core.main leiningen.core.project leiningen.core.ssl leiningen.core.user leiningen.core.utils leiningen.repl leiningen.trampoline me.raynes.conch me.raynes.conch.low-level net.cgrand.parsley net.cgrand.parsley.fold net.cgrand.parsley.grammar net.cgrand.parsley.lrplus net.cgrand.parsley.stack net.cgrand.parsley.tree ... and so on -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure deployment questions w.r.t. jars, clojure source files, compiled class files
AOT in my experience is a little dicey and complicated. On Tue, Jan 7, 2014 at 7:26 PM, Dave Tenny dave.te...@gmail.com wrote: So if I sample some clojure jars in my local maven .m2 directory, most of the jar files have only clojure code, and a project.clj. If I look at the org.clojure project there, it has many java class files, what appear to be corresponding clojure source files, and *no* project.clj. With only a little experiencing on some single AOT compiled modules, I wondered 1) When and under what circumstances projects are compiled in source versus .class form? In general, you always want to distribute libs as maven artifacts with source included and no AOT compilation. Adding in compiled classes means also adding a dependency on whatever clojure version was used to compile those classes. The effects of this lead to often confounding errors. As an extra caveat, AOT currently does not make it easy to separate that project's class files from every other deps generated class files, so any project artifact will have extra classfiles in it. My company has grappled with separating these about five different ways in order to not distribute source, and there is a ticket to address it, but it looks like it'll persist. 2) Why there is no project.clj in the org.clojure jar file? Clojure itself isn't built with leiningen, hence no project.clj. 3) When the clojure 'compile' function comes into play in your typical clojure project deployments? (vs. :aot targets or other leiningen deployment techniques). Any pointers or enlightenment on the above questions appreciated. I read the clojure compilation page, but I haven't quite put together what that's telling me about *how* to comjpile a file and gen-class a class, versus why I see all these clojure .m2 jar files with no classes whatsoever. Thanks, Dave -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] Yesql 0.3.0 - Clojure SQL queries rethought.
This is neat, I'll need to give this a shot. Our application involves a lot of OLAP-style queries and I currently have several DAL namespaces of clojure.jdbc with 30+ lines of SQL query in them, which is pretty nasty to look at. This should clean up things nicely. On Tue, Jan 7, 2014 at 4:26 PM, Marco Shimomoto mashi...@gmail.com wrote: It looks great and I will try it. Have you thought about namespaces and different database implementations? Something like a general repository for SQL files and some vendor specific override repositories. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Alexandr Kurilin 206.687.8740 | @alex_kurilin https://twitter.com/alex_kurilin | bloghttp://www.kurilin.net -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] jnanomsg 0.2.0 - Clojure and Java bindings for nanomsg.
Andrey, Thank-you for the lib and adding the pipeline protocol. Cheers. Amar On Tuesday, January 7, 2014 5:10:17 PM UTC-5, Andrey Antukh wrote: Clojure and Java bindings for nanomsg[1] (build on top of JNA) nanomsg[1] is a socket library that provides common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. This is a first announcement of this library with 0.2 version! 0.1 version was just a proof of concept. Github: https://github.com/niwibe/jnanomsg Doc: http://niwibe.github.io/jnanomsg/ [1]: http://nanomsg.org/ -- Andrey Antukh - Андрей Антух - ni...@niwi.be javascript: http://www.niwi.be http://www.niwi.be/about.html https://github.com/niwibe -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: ANN - New podcast Functional Geekery
The feed is live in iTunes for those who were wanting to subscribe there. https://itunes.apple.com/us/podcast/functional-geekery/id790455326?mt=2ign-mpt=uo%3D4 Thanks, --Proctor On Wednesday, January 1, 2014 7:08:06 PM UTC-6, Steven Proctor wrote: I am doing a new podcast Functional Geekery, with the goal to cover topics across multiple languages, Clojure included. I am announcing it here, as Clojure was the language that got me to dig deeper into functional programming. The site can be found here: http://www.functionalgeekery.com/ and the first episode is posted. I am working on getting the feed in iTunes and the Zune Music Marketplace, but it should be in those soon. If you have any suggestions or topics for the show, I would love to hear you feedback. Thanks! --Proctor -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure deployment questions w.r.t. jars, clojure source files, compiled class files
On Tue, Jan 7, 2014 at 4:26 PM, Dave Tenny dave.te...@gmail.com wrote: 1) When and under what circumstances projects are compiled in source versus .class form? Most Clojure projects ship in source form (and are therefore compiled to bytecode on demand as they are loaded). 2) Why there is no project.clj in the org.clojure jar file? It's built with Maven. As are most of the Clojure contrib libraries too, although some are now starting to sport project.clj files to make local development easier. In the last round of development, I added Leiningen support to clojure.java.jdbc to make it easier to jack in with Emacs and test the code. It still uses Maven for primary testing (on build.clojure.org) and packaging - and Clojure plus its contrib libraries are hosted on Maven Central (where they are retrieved primarily by Leiningen into other Clojure projects). 3) When the clojure 'compile' function comes into play in your typical clojure project deployments? (vs. :aot targets or other leiningen deployment techniques). At World Singles, we AOT compile very little of our code. We only AOT namespaces that generate Java-compatible classes for situations where we must be natively callable from Java (e.g., we have a log4j appender written in Clojure). Within that AOT-compiled code, we require namespaces and resolve symbols dynamically (at runtime) to bind the Java-called code to the rest of our code base. Part of the reason is for the flexibility that source deployments provide: the ability to REPL into a live, running process and reload code from updated source files without needing to stop the world, for example. If you're relatively new to Clojure, I'd recommend completely ignoring the whole compilation thing unless you specifically need to generate natively callable code for Java to Clojure interop. In case anyone is interested, our pattern for bridging from the AOT-compiled namespace to the rest of the code base tends to look like this: (def the-symbol (delay (do (require 'the.namespace) (resolve (symbol the.namespace/the-symbol) and then: ... (@the-symbol arg1 arg2) ... Our AOT-compiled layer is deliberately minimal and serves only to provide the Java-callable API so the rest of our code can be developed and tested in our normal interactive, incremental way. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: ANN - New podcast Functional Geekery
Excellent! Downloading as I type. - Magnar Den 8. jan. 2014 kl. 03:23 skrev Steven Proctor steven.proc...@gmail.com: The feed is live in iTunes for those who were wanting to subscribe there. https://itunes.apple.com/us/podcast/functional-geekery/id790455326?mt=2ign-mpt=uo%3D4 Thanks, --Proctor On Wednesday, January 1, 2014 7:08:06 PM UTC-6, Steven Proctor wrote: I am doing a new podcast Functional Geekery, with the goal to cover topics across multiple languages, Clojure included. I am announcing it here, as Clojure was the language that got me to dig deeper into functional programming. The site can be found here: http://www.functionalgeekery.com/ and the first episode is posted. I am working on getting the feed in iTunes and the Zune Music Marketplace, but it should be in those soon. If you have any suggestions or topics for the show, I would love to hear you feedback. Thanks! --Proctor -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/aaFoQeR7_F8/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Clojure deployment questions w.r.t. jars, clojure source files, compiled class files
Just to throw a wrench in this thread :))) a) We AOT our stuff to avoid shipping our sourde code to customer sites (:aot [regex...]), this requirement is the basis for what follows. b) We filter classes using lein to remove from our artifacts classes from other libs so only our AOT code is shipped in our jar files (:jar-exclusions [regex...]). This prevents mixing compiled classes of third party in our own jars which I agree can be pretty confusing (from which jar comes this compiled class ? Euuuh) c) We are strict on version control and obviously will not ship Clojure code compiled with different versions of Clojure, this is a recipe for disaster when there are feature changes in Clojure. We follow Orson's advice here, We will sell no wine before its time. We skipped some Clojure releases in the past and we moved to 1.5.1 by mid 2013. d) Most of the source code shipped comes from the open source libs we build upon. We can deploy site patches as source code and get them applied at app startup time when we need quick fixes in prod but they are not part of the build (otherwise they would not be called patches :) e) We also have Clojure data/code stored as part of the configuration and loaded on demand, it's been mixing fine with our AOT compiled aritfacts. e) We use an integrated nrepl console embedded in our apps and attach to it. We can investigate live in prod, apply patches live albeit with some limitations but as far as I can see AOT is not bitting us here. Restrictions have more to do with the app life cycle which we are improving along the way. f) We obvisously do integration tests using AOT compiled artifacts while dev testing is not to avoid time travels to stone age (edit compile restart hell) In our design most of the stuff is done in our supervisor process and each supervisor auto configures itself differently using plugins according to the local configuration and it has to run 24/7. I think we kept most of the dynamic benefits while meeting the goal in a). We have been using AOT for 4 years now. It's not at as hard as people think it is but you need a minimal understanding of the underlying machinery and if you come from a non Java background I agree 100%, it's not easy to find a path between the sand traps to get you to putt in the hole from dev to prod. End of the wrench throwing :))) Luc P. AOT in my experience is a little dicey and complicated. On Tue, Jan 7, 2014 at 7:26 PM, Dave Tenny dave.te...@gmail.com wrote: So if I sample some clojure jars in my local maven .m2 directory, most of the jar files have only clojure code, and a project.clj. If I look at the org.clojure project there, it has many java class files, what appear to be corresponding clojure source files, and *no* project.clj. With only a little experiencing on some single AOT compiled modules, I wondered 1) When and under what circumstances projects are compiled in source versus .class form? In general, you always want to distribute libs as maven artifacts with source included and no AOT compilation. Adding in compiled classes means also adding a dependency on whatever clojure version was used to compile those classes. The effects of this lead to often confounding errors. As an extra caveat, AOT currently does not make it easy to separate that project's class files from every other deps generated class files, so any project artifact will have extra classfiles in it. My company has grappled with separating these about five different ways in order to not distribute source, and there is a ticket to address it, but it looks like it'll persist. 2) Why there is no project.clj in the org.clojure jar file? Clojure itself isn't built with leiningen, hence no project.clj. 3) When the clojure 'compile' function comes into play in your typical clojure project deployments? (vs. :aot targets or other leiningen deployment techniques). Any pointers or enlightenment on the above questions appreciated. I read the clojure compilation page, but I haven't quite put together what that's telling me about *how* to comjpile a file and gen-class a class, versus why I see all these clojure .m2 jar files with no classes whatsoever. Thanks, Dave -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to
Re: Clojure deployment questions w.r.t. jars, clojure source files, compiled class files
To complement my previous post and in relation to this one, we use (if-not *compile-file* ...) to wrap expressions that cannot be AOT compiied (like loading configuration or connecting to external resources which you do not want to do at compile time but at run time only:) This confused a lot of people in the past trying to use AOT. For many the compilation phase and code execution are perceived as a single step. When working in the REPL you do not need to be aware of this. With AOT it's important to be aware of the difference when writing code in dev. Luc P. On Tue, Jan 7, 2014 at 4:26 PM, Dave Tenny dave.te...@gmail.com wrote: 1) When and under what circumstances projects are compiled in source versus .class form? Most Clojure projects ship in source form (and are therefore compiled to bytecode on demand as they are loaded). 2) Why there is no project.clj in the org.clojure jar file? It's built with Maven. As are most of the Clojure contrib libraries too, although some are now starting to sport project.clj files to make local development easier. In the last round of development, I added Leiningen support to clojure.java.jdbc to make it easier to jack in with Emacs and test the code. It still uses Maven for primary testing (on build.clojure.org) and packaging - and Clojure plus its contrib libraries are hosted on Maven Central (where they are retrieved primarily by Leiningen into other Clojure projects). 3) When the clojure 'compile' function comes into play in your typical clojure project deployments? (vs. :aot targets or other leiningen deployment techniques). At World Singles, we AOT compile very little of our code. We only AOT namespaces that generate Java-compatible classes for situations where we must be natively callable from Java (e.g., we have a log4j appender written in Clojure). Within that AOT-compiled code, we require namespaces and resolve symbols dynamically (at runtime) to bind the Java-called code to the rest of our code base. Part of the reason is for the flexibility that source deployments provide: the ability to REPL into a live, running process and reload code from updated source files without needing to stop the world, for example. If you're relatively new to Clojure, I'd recommend completely ignoring the whole compilation thing unless you specifically need to generate natively callable code for Java to Clojure interop. In case anyone is interested, our pattern for bridging from the AOT-compiled namespace to the rest of the code base tends to look like this: (def the-symbol (delay (do (require 'the.namespace) (resolve (symbol the.namespace/the-symbol) and then: ... (@the-symbol arg1 arg2) ... Our AOT-compiled layer is deliberately minimal and serves only to provide the Java-callable API so the rest of our code can be developed and tested in our normal interactive, incremental way. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- Softaddictslprefonta...@softaddicts.ca sent by ibisMail from my ipad! -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Extracting a database schema and using it to synthesize and check SQL queries at compile time
Hey everyone, We've been exploring ways to make working with database code more efficient and less error prone. For complex queries, we prefer working directly with SQL. However, like for many others, a lot of our queries are very simple and repetitive. For example, retrieving or updating single rows, or a set of rows based on a foreign key. As an experiment, we wrote a prototype that uses the information_schema standard to automatically extract the schema from a database and represent it as clojure code at compile time. With this, we were able to synthesize some simple SQL queries. The interesting part of this is that the code generator automatically picks up primary key constraints and also performs validation on table and column names. All of this is done at compile time. Errors are caught early and the compiled code uses clojure.java.jdbc prepared statements. You can find the code and demo here: https://github.com/diligenceengine/edl I'm personally not a big fan of huge ORM systems, so I don't know where to go with this, if anywhere. Though it seems useful for building small macros for common patterns we have. Would love to hear if anyone has thoughts on the technique. Alex -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.