Re: [ClojureScript] [ANN] cljs-start 0.0.5
On Nov 25, 2013, at 7:06 AM, Tom Henderson t...@mathpunk.net wrote: It works! I've been discouraged-- I liked programming in Clojure, and I had been hoping Clojurescript would be my grand entry into web sites and apps, but trying to learn HTML and CSS and JS and CLJS all at the same time has been too much. This just straight up WORKED. I'm glad it allows you keep trying hard! I don't understand why the (run) command doesn't give me access to the js namespace, The (run) just start an http server (using ring, composure and enlive libs). Here you're still on the server side (clojure). but (browser-repl) works beautifully. here you are on the client side (cljs) and from here you have access to js. Once I figure out how to include a JS library, and maybe get my head around templating, I'll be unstoppable! :D I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. My best Mimmo -- -- 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: Spit seems to use incorrect line terminator on Windoze
And yet it does happen, with PrintWriter and similar. Consider the output of (println) on different operating systems. On Mon, Nov 25, 2013 at 12:59 AM, Stefan Kamphausen ska2...@gmail.comwrote: I agree with Alex. I would not want any magic to happen to my string. Best, Stefan -- -- 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: Spit seems to use incorrect line terminator on Windoze
On Mon, Nov 25, 2013 at 6:18 AM, Cedric Greevey cgree...@gmail.com wrote: And yet it does happen, with PrintWriter and similar. Consider the output of (println) on different operating systems. Do you have an example of println converting a \n character embedded in a string to the host's line terminator? -- -- 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: Spit seems to use incorrect line terminator on Windoze
(println) outputs nothing *but* the host's line terminator. On Mon, Nov 25, 2013 at 6:22 AM, Tim Visher tim.vis...@gmail.com wrote: On Mon, Nov 25, 2013 at 6:18 AM, Cedric Greevey cgree...@gmail.com wrote: And yet it does happen, with PrintWriter and similar. Consider the output of (println) on different operating systems. Do you have an example of println converting a \n character embedded in a string to the host's line terminator? -- -- 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: Spit seems to use incorrect line terminator on Windoze
On Mon, Nov 25, 2013 at 6:29 AM, Cedric Greevey cgree...@gmail.com wrote: (println) outputs nothing *but* the host's line terminator. Note that you have not embedded a \n character in anything in that example. What does (println \n) print? -- In Christ, Timmy V. http://blog.twonegatives.com/ http://five.sentenc.es/ -- Spend less time on mail -- -- 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.
expand a form
Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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: expand a form
Hi Andy, Doesn't macroexpand do what you are looking for? Thx On Mon, Nov 25, 2013 at 4:55 AM, Andy Smith the4thamig...@googlemail.comwrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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.
println / for unexpected behaviour
Some (println) weirdness (board is a vector to vectors): (println (board 0)) (println (board 1)) (println (board 2)) (println (board 3)) (println (board 4)) (println (board 5)) (println (board 6)) (println (board 7)) Works as I would expect, printing to the console. However: (for [row board] (println row)) Doesn't: the output from println is part of the result of evaluating the for (along with a slew of nils). ([:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :white :black :empty :empty :empty] [:empty :empty :empty :black :white :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] nil nil nil nil nil nil nil nil) Any idea why there is any difference at all between the two? The only thing I can think of is for's lazy evaluation but I don't see how. -- -- 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: println / for unexpected behaviour
Hi Edward, I believe the return value of your expression is (nil nil nil nil ...), but the printlns are forced just after the ( is printed. Thanks, Ambrose On Mon, Nov 25, 2013 at 9:14 PM, edw...@kenworthy.info wrote: Some (println) weirdness (board is a vector to vectors): (println (board 0)) (println (board 1)) (println (board 2)) (println (board 3)) (println (board 4)) (println (board 5)) (println (board 6)) (println (board 7)) Works as I would expect, printing to the console. However: (for [row board] (println row)) Doesn't: the output from println is part of the result of evaluating the for (along with a slew of nils). ([:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :white :black :empty :empty :empty] [:empty :empty :empty :black :white :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] nil nil nil nil nil nil nil nil) Any idea why there is any difference at all between the two? The only thing I can think of is for's lazy evaluation but I don't see how. -- -- 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: println / for unexpected behaviour
Clearly board is a chunked seq in this case. Use doseq when you want side effects for-each of some seqable, but don't care about the return values. The arguments for doseq are identical to those for for, but a) doseq will return nil and b) if the output of for was discarded (rather than the repl realizing the sequence to print the nils) the side effects would never take place, whereas doseq forces them to take place whether or not the nil *it* returns is used or discarded. On Mon, Nov 25, 2013 at 8:25 AM, Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com wrote: Hi Edward, I believe the return value of your expression is (nil nil nil nil ...), but the printlns are forced just after the ( is printed. Thanks, Ambrose On Mon, Nov 25, 2013 at 9:14 PM, edw...@kenworthy.info wrote: Some (println) weirdness (board is a vector to vectors): (println (board 0)) (println (board 1)) (println (board 2)) (println (board 3)) (println (board 4)) (println (board 5)) (println (board 6)) (println (board 7)) Works as I would expect, printing to the console. However: (for [row board] (println row)) Doesn't: the output from println is part of the result of evaluating the for (along with a slew of nils). ([:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :white :black :empty :empty :empty] [:empty :empty :empty :black :white :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] nil nil nil nil nil nil nil nil) Any idea why there is any difference at all between the two? The only thing I can think of is for's lazy evaluation but I don't see how. -- -- 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. -- -- 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] fsrun : file change notifier high order lein task
Deniz Kurucu makka...@gmail.com writes: fsrun is a simple high order lein task that run some other tasks when a file modification occurs. Originally, i wanted to run my clojurescript tests automatically and created fsrun. It is my first clojure project, so please keep that in mind :) github : https://github.com/makkalot/fsrun Ha! I wanted a way of doing this just the other day. My solution was this; linux specifc, unfortunately and slightly more complex than I thought it was going to be. It only shows the first screenful of output on each rerun, so it's could for running a test ticker in the corner of the screen. #!/bin/bash while inotifywait -q -r -e MODIFY --exclude .#* --exclude .*~ . do SIZE=`stty size | cut -d -f1` SIZE=`expr $SIZE - 4` clear date echo lein $* lein $* 21 | head --lines=$SIZE - echo complete done; Phil -- -- 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: println / for unexpected behaviour
Hi Edward, you are being hit by laziness here. Clojure's 'for' is not like the 'for' you may know from other programming languages. It is made for list comprehensions, that is it is building new list-y things. It does not do this instantly, the items may be realized only when the caller asks for them. In your case the caller is your REPL which prints the return value, thereby realizing the lazy sequence. Thus, the output for the REPL and your println mix. As Cedric already wrote, if you want to process the board for side-effect like printing, use doseq. Use for only for its return value and make no assumptions as to when those values are created. Kind regards, Stefan -- -- 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: Spit seems to use incorrect line terminator on Windoze
PrintWriter has a different api than spit. PrintWriter has the ability to print objects and also the ability to println objects. When printing a line, it inserts the host-specific new line characters. If you print a String with PrintWriter, it will be exactly the string you tell it (new lines will not be replaced). spit puts a string in a file. On Monday, November 25, 2013 5:18:17 AM UTC-6, Cedric Greevey wrote: And yet it does happen, with PrintWriter and similar. Consider the output of (println) on different operating systems. On Mon, Nov 25, 2013 at 12:59 AM, Stefan Kamphausen ska...@gmail.comjavascript: wrote: I agree with Alex. I would not want any magic to happen to my string. Best, Stefan -- -- 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. -- -- 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] [ANN] cljs-start 0.0.5
On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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: expand a form
It doesnt seem to expand function calls though right? On Monday, 25 November 2013 12:55:27 UTC, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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.
.cljrc
With all my attention on trying to learn things about clojure, I've either missed or forgotten how do to a simple thing. As I learn clojure I'm writing a few definitions that represent tools I like to use in development. What is the simplest way to have those tools present in arbitrary clojure REPLs started with lein repl, emacs cider-jack-in, etc., without putting them in project.clj files for every lein project I'm working on ? I just want to load some things into the user (or other default ns if my hypothetical .cljrc changes it) namespace and have it happen all the time, except when I'm doing release builds and such of a particular project. Suggestions? -- -- 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: .cljrc
Leiningen profiles in ~/.lein/profiles.clj will be merged into the current project.clj by leiningen. Also dumented in https://github.com/technomancy/leiningen/blob/stable/doc/PROFILES.md On Mon, Nov 25, 2013 at 3:34 PM, Dave Tenny dave.te...@gmail.com wrote: With all my attention on trying to learn things about clojure, I've either missed or forgotten how do to a simple thing. As I learn clojure I'm writing a few definitions that represent tools I like to use in development. What is the simplest way to have those tools present in arbitrary clojure REPLs started with lein repl, emacs cider-jack-in, etc., without putting them in project.clj files for every lein project I'm working on ? I just want to load some things into the user (or other default ns if my hypothetical .cljrc changes it) namespace and have it happen all the time, except when I'm doing release builds and such of a particular project. Suggestions? -- -- 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: [ClojureScript] [ANN] cljs-start 0.0.5
Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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: [ClojureScript] [ANN] cljs-start 0.0.5
Hi, try the following: rm -rf ~/.m2/repository/cljs-start and run again lein new cljs-start youlibname If this does not work try the following git clone https://github.com/magomimmo/cljs-start.git cd cljs-start lein install and try again to create the project with lein new cljs-start yourlibname LTM if it works. mimmo On Nov 25, 2013, at 4:06 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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. -- 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: T-shirts?
Official T shirts are finally available! http://clojure.org/swag Thanks for your support, Rich On Jul 29, 2013, at 5:27 PM, s...@ummon.com wrote: Speaking as the person who made the 'Clojure = Simplicity' hoody/t-shirt, I am more than happy to assign it to the clojure community if wanted. I created it a while back as I couldn't find any. I will also gladly donate my zazzle balance (all $8.12 of it) from the sales :) Regards S. Original Message Subject: Re: T-shirts? From: James Rothering james.rother...@gmail.com Date: Mon, July 29, 2013 5:16 pm To: clojure@googlegroups.com +1 I'll buy, too. On Mon, Jul 29, 2013 at 1:38 PM, Joel Holdbrooks cjholdbro...@gmail.com wrote: +1. I'd love this. On Sunday, July 28, 2013 3:22:21 PM UTC-7, Isaac Wagner wrote: There was a discussion a while ago about stickers which led to http://clojure.org/swag. Could we get some sanctioned T-shirts as well? There are a few Clojure shirts on Zazzle, but what I would be interested in is some black, grey, and white shirts with nothing but a big Clojure logo on the front and I would love to buy them in a way that supports Clojure. Isaac -- -- 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. -- Regards, James Rothering (Msg) 206-888-1776 -- -- 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. -- -- 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: T-shirts?
Yay! Thanks Rich! Good picture of you. Have you been working out before taking those shots in the t-shirt? cheers, Bruce On Mon, Nov 25, 2013 at 4:31 PM, Rich Hickey richhic...@gmail.com wrote: Official T shirts are finally available! http://clojure.org/swag Thanks for your support, Rich On Jul 29, 2013, at 5:27 PM, s...@ummon.com wrote: Speaking as the person who made the 'Clojure = Simplicity' hoody/t-shirt, I am more than happy to assign it to the clojure community if wanted. I created it a while back as I couldn't find any. I will also gladly donate my zazzle balance (all $8.12 of it) from the sales :) Regards S. Original Message Subject: Re: T-shirts? From: James Rothering james.rother...@gmail.com Date: Mon, July 29, 2013 5:16 pm To: clojure@googlegroups.com +1 I'll buy, too. On Mon, Jul 29, 2013 at 1:38 PM, Joel Holdbrooks cjholdbro...@gmail.com wrote: +1. I'd love this. On Sunday, July 28, 2013 3:22:21 PM UTC-7, Isaac Wagner wrote: There was a discussion a while ago about stickers which led to http://clojure.org/swag. Could we get some sanctioned T-shirts as well? There are a few Clojure shirts on Zazzle, but what I would be interested in is some black, grey, and white shirts with nothing but a big Clojure logo on the front and I would love to buy them in a way that supports Clojure. Isaac -- -- 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. -- Regards, James Rothering (Msg) 206-888-1776 -- -- 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. -- -- 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. -- @otfrom | CTO co-founder @MastodonC | mastodonc.com See recent coverage of us in the Economist http://econ.st/WeTd2i and the Financial Times http://on.ft.com/T154BA -- -- 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] Overtone 0.9.0 Released
Hi there noise polluters! It's that glorious time again - another version of Overtone has forced its timbral wings out of its cocoon. 0.9.0 is here and is edgy. It was so edgy, that it burst into flames and mutated into 0.9.1 before a blink of the eye![1] This release represents a fundamental shift in our development approach. Instead of designing and implementing new abstractions that may possibly prove useful, all of the features and modifications in 0.9.1 have been implemented as a reaction to specific performance/composition requirements. One of our major users is the Clojure powered band Meta-eX[2] and they have been using and testing 0.9.1 in all of their recent gigs, including a straight hour techno set in Club Noxx, Antwerp. Now, that's real performance testing ;-) So, what's new? Well, let me invite you to read our Changelog[3] which is much more detailed than previous versions. Major improvements/contributions can be summarised as follows: * apply-by/at improvements * Improved Synth Positioning Syntax * MIDI API revamp * New Graphviz support * Bus Monitoring system * Simple Persistent Store * More pervasive stop fns * Node event handlers * Improved envelope helper fns * New workshop examples As usual, let us know your thoughts and experiences over on the Overtone mailing list: http://groups.google.com/group/overtone/ Happy Hacking! Sam http://sam.aaron.name [1]: https://github.com/overtone/overtone/commit/ec66e790ca14ce36fb9a7c50804e72a3d23ff2bf [2]: http://meta-ex.com [3]: https://github.com/overtone/overtone/blob/master/CHANGELOG.md -- -- 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] [ANN] cljs-start 0.0.5
Hi, both didn't work. Any other ideas ? lein new cljs-start coolappp Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. On Mon, Nov 25, 2013 at 5:20 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: Hi, try the following: rm -rf ~/.m2/repository/cljs-start and run again lein new cljs-start youlibname If this does not work try the following git clone https://github.com/magomimmo/cljs-start.git cd cljs-start lein install and try again to create the project with lein new cljs-start yourlibname LTM if it works. mimmo On Nov 25, 2013, at 4:06 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD http://readme.md/' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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. -- 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. -- -- 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] Optimus - a Ring middleware for frontend performance optimization.
Magnar, Thanks for the project ! Nicely fills up a void. Thanks, Murtaza On Monday, November 25, 2013 3:30:10 AM UTC+5:30, Magnar Sveen wrote: I just open sourced optimus. README and code here: https://github.com/magnars/optimushttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmagnars%2Foptimussa=Dsntz=1usg=AFQjCNHVew3Ey2Bh409AV3mEhpEipbxGzQ Optimus is a Ring middleware for frontend performance optimization. It serves your static assets: - in production: as optimized bundles - in development: as unchanged, individual files In other words: Develop with ease. Optimize in production. *Features* Depending on how you use it, optimus: - concatenates your JavaScript and CSS files into bundles. - minifies your JavaScript with UglifyJS 2https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmishoo%2FUglifyJS2sa=Dsntz=1usg=AFQjCNGjUWtc9t6OLfeCSFD67Qiv1YJHuA - minifies your CSS with CSSOhttp://www.google.com/url?q=http%3A%2F%2Fbem.info%2Ftools%2Foptimizers%2Fcsso%2Fsa=Dsntz=1usg=AFQjCNHFxxUFir_vcxqI79FeEYI-2xijmQ - adds cache-busters to your static asset URLs - adds far future Expires headershttp://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fperformance%2Frules.html%23expiressa=Dsntz=1usg=AFQjCNFc3zu6wMgQIthHxVHy4AoHDyPdQw Also, if you're using Angular.JS: - prepopulates the Angular template cachehttp://www.google.com/url?q=http%3A%2F%2Fdocs.angularjs.org%2Fapi%2Fng.%2524templateCachesa=Dsntz=1usg=AFQjCNE8i4GlTWl0r4u9fKoAyEipcMYAlw with your HTML templates. https://github.com/magnars/optimushttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmagnars%2Foptimussa=Dsntz=1usg=AFQjCNHVew3Ey2Bh409AV3mEhpEipbxGzQ -- -- 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: expand a form
Hi Andy, Not sure what you need in terms of function calls being expanded. Can you provide an example. Here is an silly example, even though this kind of macro is not needed: (def addone [v] (+ v 1) (defmacro testmacro [init] (list 'addone init)) (macroexpand '(testmacro 10)) expands to (addone 10) Thanks Guru On Mon, Nov 25, 2013 at 6:32 AM, Andy Smith the4thamig...@googlemail.comwrote: It doesnt seem to expand function calls though right? On Monday, 25 November 2013 12:55:27 UTC, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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: T-shirts?
Hey Bruce, 2013/11/25 Bruce Durling b...@otfrom.com: Yay! Thanks Rich! Good picture of you. Have you been working out before taking those shots in the t-shirt? It's a direct side-effect of following Clojure's strengths in your life: simplicity, power, focus ;-) -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Jim, Thanks for the note! Yeah we have been talking about ways to make the immutant download optional, so that solves that problem, thanks! It will be coming out in the next release. As for the app/ dir, it is configurable between environments, as long as people know about it. I can make that more clear in the docs for Immutant deployment (actually it is an issue for tomcat deployment as well). Great song btw. Not direct inspiration, but maybe kicking around in the subconscious there? Thanks for Immutant as well, I am a big fan! We run all of our Caribou deployments on Immutant. Still working on integrating some of the larger features into our workflow. On Sun, Nov 24, 2013 at 4:05 PM, Jim Crossley j...@crossleys.org wrote: Prasanna, Ryan and Justin, Hi. I just got around to playing with Caribou today. Very nice! I was happy to see you including Immutant config in the application template, but you don't need it. Immutant will happily bootstrap a deployed app using the :ring options map in project.clj. As long as you're including that, the immutant.clj file in the application template is redundant. Here's more info: http://immutant.org/builds/LATEST/html-docs/initialization.html#initialization-porting And I agree removing the immutant dependency in project.clj will greatly reduce the number of downloaded jars. Technically, you only need that dependency in project.clj when running *outside* of the Immutant container, e.g. when your tests refer to the immutant namespaces. The only other Immutant-related feedback I might offer is wrt the assets dir, app/. Relative paths like that are only gonna work if you start up Immutant in your project's directory, so in production you'll likely want that to be an absolute path. I especially like the project's name. It reminds me of the Pixies song: https://www.youtube.com/watch?v=x6m-pwWCDKU Thanks! Jim On Wed, Nov 13, 2013 at 1:25 AM, Ryan Spangler ryan.spang...@gmail.comwrote: Justin, As far as I know, Immutant is not a dependency, but an option. Let me know if that is not true however. On Tuesday, November 12, 2013 10:13:17 PM UTC-8, Justin Smith wrote: Typically my first step making a caribou app is to remove the immutant dependency. It's pretty straightforward to take it out. On Tuesday, November 12, 2013 9:19:27 PM UTC-8, Prasanna Gautam wrote: This is really cool. Very easy to get up and running for first try. I have a few questions on the architecture. Why Immutant instead of plain ring as the default? I think the number of dependencies could be much lower with it. I know it's only alpha.. but I'm asking this on behalf of others who might be thinking the same. And, are there plans for NoSQL database support, like MongoDB, MapDB ( http://www.mapdb.org/ - I just found out about it myself but this is the only decent in-memory NoSQL solution other than Berkeley DB)? On Tuesday, November 12, 2013 6:52:10 PM UTC-5, Ryan Spangler wrote: Hello Clojure, Excited to announce today the release of Caribou! http://let-caribou.in/ We have been building web sites and web applications with it for over two years now and improving it every day. Currently we have four people working on it and another ten using it to build things, so it is getting a lot of real world testing. It has been designed as a collection of independent libraries that could each be useful on their own, but which come together as a meaningful whole. We have been spending the last couple months getting it ready for a full open source release, and I am happy to say it is finally ready. Funded and supported by Instrument in Portland, OR: http://weareinstrument.com/ We have four projects using it in production, and several more about to be launched (as well as over a dozen internal things). Documentation is here: http://caribou.github.io/ caribou/docs/outline.html Source is here: http://github.com/caribou/caribou (use this for issues, you don't actually need the source as it is installed through a lein template). Some of the independently useful libraries Caribou is built on are: * Polaris -- Routing with data (not macros) and reverse routing! : https://github.com/caribou/polaris * Lichen -- Image resizing to and from s3 or on disk: https://github.com/caribou/lichen * Schmetterling -- Debugging Clojure processes from the browser: https://github.com/prismofeverything/schmetterling * Antlers -- Useful extensions to mustache templating (helpers and blocks, among other things): https://github.com/caribou/antlers * Groundhog -- Replay http requests: https://github.com/ noisesmith/groundhog And many others. Basically this is an Alpha release, and I am announcing it here first in order to get as much feedback from the community as possible. We have made it as useful as we can for our purposes and recognize that for it to improve from here, we really need as many people using it and building things
Re: [ANN] Optimus - a Ring middleware for frontend performance optimization.
Magnar, could you talk a little about how your project is better than/different from Stefon/dieter and cornet? I feel like we have a lot of these projects now, all doing mostly the same thing. I also don't totally understand why they're all done as Ring middleware instead of lein/maven plugins. Maybe this is my Java background talking, but that seems to me to be the logical place to put this sort of thing. jason On Sunday, November 24, 2013 2:00:10 PM UTC-8, Magnar Sveen wrote: I just open sourced optimus. README and code here: https://github.com/magnars/optimushttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmagnars%2Foptimussa=Dsntz=1usg=AFQjCNHVew3Ey2Bh409AV3mEhpEipbxGzQ Optimus is a Ring middleware for frontend performance optimization. It serves your static assets: - in production: as optimized bundles - in development: as unchanged, individual files In other words: Develop with ease. Optimize in production. *Features* Depending on how you use it, optimus: - concatenates your JavaScript and CSS files into bundles. - minifies your JavaScript with UglifyJS 2https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmishoo%2FUglifyJS2sa=Dsntz=1usg=AFQjCNGjUWtc9t6OLfeCSFD67Qiv1YJHuA - minifies your CSS with CSSOhttp://www.google.com/url?q=http%3A%2F%2Fbem.info%2Ftools%2Foptimizers%2Fcsso%2Fsa=Dsntz=1usg=AFQjCNHFxxUFir_vcxqI79FeEYI-2xijmQ - adds cache-busters to your static asset URLs - adds far future Expires headershttp://www.google.com/url?q=http%3A%2F%2Fdeveloper.yahoo.com%2Fperformance%2Frules.html%23expiressa=Dsntz=1usg=AFQjCNFc3zu6wMgQIthHxVHy4AoHDyPdQw Also, if you're using Angular.JS: - prepopulates the Angular template cachehttp://www.google.com/url?q=http%3A%2F%2Fdocs.angularjs.org%2Fapi%2Fng.%2524templateCachesa=Dsntz=1usg=AFQjCNE8i4GlTWl0r4u9fKoAyEipcMYAlw with your HTML templates. https://github.com/magnars/optimushttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fmagnars%2Foptimussa=Dsntz=1usg=AFQjCNHVew3Ey2Bh409AV3mEhpEipbxGzQ -- -- 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 CLR versioning and binary downloads
Thanks David for this information, I really appreciate the work you (and others) are doing on the CLR version. On Sun, Nov 24, 2013 at 7:56 AM, Shantanu Kumar kumar.shant...@gmail.comwrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core at clojure.lang.Compiler.InitAssembly (System.Reflection.Assembly assy, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.Compiler.LoadAssembly (System.IO.FileInfo assyInfo, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath, Boolean failIfNotFound) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.DoInit () [0x0] in filename unknown:0 at clojure.lang.RT..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- at Clojure.CljMain..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- Can you give any pointer where should I probe? Shantanu On Sunday, 24 November 2013 04:59:56 UTC+5:30, dmiller wrote: 1.5.0 of Clojure CLR includes the one fix in 1.5.1. I got excited and went one too far. Normally, the version numbers match exactly. I tagged 1.5.0 a little prematurely. We had some troubles on the NuGet release and on the mono build. I wasn't really ready for an official 1.5.0 release, so I hadn't done the SourceForge binary distributions. That's all been fixed as of earlier today (11/23/2013 relative to Central Standard). ClojureCLR 1.5.0 is officially out. This version has a NuGet package, with binaries for .Net 3.5 and .Net 4.0. All the binaries to run ClojureCLR itself are in one file, Clojure.dll, due to the magic of ILMerge and a lot of new internal plumbing to allow embedded DLL resources and merged DLLs. Also, this version is signed so that it can be referenced in signed projects or GAC'd. There are Debug and Release binaries (not ILMerged) for .Net 3.5 and 4.0 on the SourceForge site. The wiki pages on the github site have been updated. Mono is now supported. You can run it under Mono. You can compile it directly using xbuild with mono. Details on the wiki. Regarding the Clojure.Main and Clojure.Compile binaries in the NuGet package: Yes, you have to move them to run them. Clojure.dll has to be in the lib\ folder in order for the package to work properly when included in a project. Ancillary files such as Clojure.Main and Clojure.Compile are standalones and are not needed for other projects. They are properly contained in the tools\ folder. I was asked to include them in the NuGet package for ClojureCLR. I'm not happy with the current arrangement, in a nitpicky way. I'm open to suggestions. -David On Friday, November 22, 2013 8:41:58 PM UTC-6, Frank Hale wrote: As far as I can tell the Clojure CLR version number does not track the JVM version number at least for some builds. The latest build 1.5.0 as far as I can tell is at the same patch level as 1.5.1 on the JVM. This numbering seems confusing to me. Are there any plans to streamline the version numbers between the two platforms? Additionally I don't understand why on the Clojure CLR SourceForge page there are only debug versions available for download and 1.5.0 is not represented there. If you want 1.5.0 you have to use nuget to get it. I was also a bit dumbfounded that the nuget version was broken out of the box and what I mean by that is that once you have downloaded it you cannot run the compiler or the REPL from it's current directory without first dumping the exe's into the lib folder since they are segregated in the package. Running the compiler or REPL from their directory will result in them complaining that they cannot find the required Clojure CLR DLL's that they need. These are kind of nit-picky issues but they've been bugging me for a while. -- -- 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
Re: Clojure CLR versioning and binary downloads
Are there any plans to directly link the CLR downloads on the Clojure downloads page on Clojure.org? I think it may be helpful to do that because it's a bit difficult to get to the SourceForge download site by first going to Clojure.org. The link on Clojure.org takes you to the Github repo, there you have to click on a link to get to the binary downloads and then you have to scroll through to find the SourceForge link. On Mon, Nov 25, 2013 at 1:38 PM, Frank Hale frankh...@gmail.com wrote: Thanks David for this information, I really appreciate the work you (and others) are doing on the CLR version. On Sun, Nov 24, 2013 at 7:56 AM, Shantanu Kumar kumar.shant...@gmail.comwrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core at clojure.lang.Compiler.InitAssembly (System.Reflection.Assembly assy, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.Compiler.LoadAssembly (System.IO.FileInfo assyInfo, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath, Boolean failIfNotFound) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.DoInit () [0x0] in filename unknown:0 at clojure.lang.RT..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- at Clojure.CljMain..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- Can you give any pointer where should I probe? Shantanu On Sunday, 24 November 2013 04:59:56 UTC+5:30, dmiller wrote: 1.5.0 of Clojure CLR includes the one fix in 1.5.1. I got excited and went one too far. Normally, the version numbers match exactly. I tagged 1.5.0 a little prematurely. We had some troubles on the NuGet release and on the mono build. I wasn't really ready for an official 1.5.0 release, so I hadn't done the SourceForge binary distributions. That's all been fixed as of earlier today (11/23/2013 relative to Central Standard). ClojureCLR 1.5.0 is officially out. This version has a NuGet package, with binaries for .Net 3.5 and .Net 4.0. All the binaries to run ClojureCLR itself are in one file, Clojure.dll, due to the magic of ILMerge and a lot of new internal plumbing to allow embedded DLL resources and merged DLLs. Also, this version is signed so that it can be referenced in signed projects or GAC'd. There are Debug and Release binaries (not ILMerged) for .Net 3.5 and 4.0 on the SourceForge site. The wiki pages on the github site have been updated. Mono is now supported. You can run it under Mono. You can compile it directly using xbuild with mono. Details on the wiki. Regarding the Clojure.Main and Clojure.Compile binaries in the NuGet package: Yes, you have to move them to run them. Clojure.dll has to be in the lib\ folder in order for the package to work properly when included in a project. Ancillary files such as Clojure.Main and Clojure.Compile are standalones and are not needed for other projects. They are properly contained in the tools\ folder. I was asked to include them in the NuGet package for ClojureCLR. I'm not happy with the current arrangement, in a nitpicky way. I'm open to suggestions. -David On Friday, November 22, 2013 8:41:58 PM UTC-6, Frank Hale wrote: As far as I can tell the Clojure CLR version number does not track the JVM version number at least for some builds. The latest build 1.5.0 as far as I can tell is at the same patch level as 1.5.1 on the JVM. This numbering seems confusing to me. Are there any plans to streamline the version numbers between the two platforms? Additionally I don't understand why on the Clojure CLR SourceForge page there are only debug versions available for download and 1.5.0 is not represented there. If you want 1.5.0 you have to use nuget to get it. I was also a bit dumbfounded that the nuget version was broken out of the box and what I mean by that is that once you have downloaded it you cannot run the compiler or the REPL from it's current directory without first dumping the exe's into the lib folder since they are segregated in the package. Running the
Re: [ClojureScript] [ANN] cljs-start 0.0.5
what are: - you operating system - java virtual machine (java -version # from the terminal) - leiningen version (lein version # from the terminal) Have you tried to create a project with others lein-template? e.g. https://github.com/konrad-garus/cljs-kickoff thanks mimmo On Nov 25, 2013, at 6:02 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, both didn't work. Any other ideas ? lein new cljs-start coolappp Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. On Mon, Nov 25, 2013 at 5:20 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: Hi, try the following: rm -rf ~/.m2/repository/cljs-start and run again lein new cljs-start youlibname If this does not work try the following git clone https://github.com/magomimmo/cljs-start.git cd cljs-start lein install and try again to create the project with lein new cljs-start yourlibname LTM if it works. mimmo On Nov 25, 2013, at 4:06 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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. -- 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. -- 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. signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [ANN] Optimus - a Ring middleware for frontend performance optimization.
Hi Jason! Magnar, could you talk a little about how your project is better than/different from Stefon/dieter and cornet? I feel like we have a lot of these projects now, all doing mostly the same thing. Thanks for asking. I'll try to shed some light on the differences as I see them, and hopefully the people behind Dieter/Stefon (they're very similar) can add some details into their thinking. I haven't seen Comet, and google didn't help much either. Can you share a link? As for Optimus vs Stefon: First of all it's a difference in focus. Stefon focuses on being an asset pipeline modelled after Sprockets in Rails. It lets you write LESS, CoffeeScript, Haml - turning it into CSS and JavaScript. Optimus is not about transpiling from other languages, but about frontend optimization. As such, it rewrites your urls to include cache busters and serves your assets with far-future expires headers, so they can be cached aggressively in production. As I add more features to optimus, they too will focus around better frontend performance - and not more languages to be transpiled. While this is the main point in my mind, there are also other differences that aren't just details that everyone will agree on. :-) These two come to mind: 1. Stefon serves assets live in development, but requires a build step in production to precompile the files. Optimus does not require a build step, but compiles your asset when the server starts. 2. Stefon creates bundles by having custom .stefon files with edn-flavored lists of files in your directories of static assets. Optimus also needs a list of bundles, but does so using Clojure in your program. I would think that Stefons' approach is better if your frontend developers are not comfortable editing the Clojure code, while Optimus' approach allows more programatic control. I hope I haven't misrepresented Stefon in any way - these are my impressions. Since I'm a front-end optimization nut, these arguments were enough to sway me to create a different package. It would be several major breaking changes to Dieter and Stefon's architectures and APIs, and I didn't think I would get anywhere fighting for these changes in github issues. I also don't totally understand why they're all done as Ring middleware instead of lein/maven plugins. Maybe this is my Java background talking, but that seems to me to be the logical place to put this sort of thing. Front-end development with a compilation step is pretty horrible. There's also the case that the URL to a static asset and its location on disk is entirely different after optimization. Hope that answers your questions somewhat decently. And if it didn't, maybe you'll be swayed by the argument that a little competition is a good thing for the community. :) - Magnar -- -- 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] [ANN] cljs-start 0.0.5
On Mon, Nov 25, 2013 at 8:59 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: what are: - you operating system Ubuntu 12.04 64 bit - java virtual machine (java -version # from the terminal) java version 1.7.0_45 Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) - leiningen version (lein version # from the terminal) Leiningen 2.1.3 on Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM Have you tried to create a project with others lein-template? e.g. https://github.com/konrad-garus/cljs-kickoff Yes, that one works. thanks mimmo Thanks. On Nov 25, 2013, at 6:02 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, both didn't work. Any other ideas ? lein new cljs-start coolappp Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD http://readme.md/' not found. On Mon, Nov 25, 2013 at 5:20 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: Hi, try the following: rm -rf ~/.m2/repository/cljs-start and run again lein new cljs-start youlibname If this does not work try the following git clone https://github.com/magomimmo/cljs-start.git cd cljs-start lein install and try again to create the project with lein new cljs-start yourlibname LTM if it works. mimmo On Nov 25, 2013, at 4:06 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD http://readme.md/' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.comwrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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. -- 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. -- 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
Re: expand a form
In your example a full expansion might be : (. clojure.lang.Numbers (add 10 1)) On Monday, 25 November 2013 17:16:42 UTC, Guru Devanla wrote: Hi Andy, Not sure what you need in terms of function calls being expanded. Can you provide an example. Here is an silly example, even though this kind of macro is not needed: (def addone [v] (+ v 1) (defmacro testmacro [init] (list 'addone init)) (macroexpand '(testmacro 10)) expands to (addone 10) Thanks Guru On Mon, Nov 25, 2013 at 6:32 AM, Andy Smith the4th...@googlemail.comjavascript: wrote: It doesnt seem to expand function calls though right? On Monday, 25 November 2013 12:55:27 UTC, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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. -- -- 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: T-shirts?
This shirt appears to be complecting fashion, programming, AND advertising. On Mon, Nov 25, 2013 at 11:17 AM, Laurent PETIT laurent.pe...@gmail.comwrote: Hey Bruce, 2013/11/25 Bruce Durling b...@otfrom.com: Yay! Thanks Rich! Good picture of you. Have you been working out before taking those shots in the t-shirt? It's a direct side-effect of following Clojure's strengths in your life: simplicity, power, focus ;-) -- -- 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: expand a form
You won't find the results as easy to read as what you're asking for, but clojure.tools.analyzer will show you calls that have been inlined by the compiler. On Nov 25, 2013 2:24 PM, Andy Smith the4thamig...@googlemail.com wrote: In your example a full expansion might be : (. clojure.lang.Numbers (add 10 1)) On Monday, 25 November 2013 17:16:42 UTC, Guru Devanla wrote: Hi Andy, Not sure what you need in terms of function calls being expanded. Can you provide an example. Here is an silly example, even though this kind of macro is not needed: (def addone [v] (+ v 1) (defmacro testmacro [init] (list 'addone init)) (macroexpand '(testmacro 10)) expands to (addone 10) Thanks Guru On Mon, Nov 25, 2013 at 6:32 AM, Andy Smith the4th...@googlemail.comwrote: It doesnt seem to expand function calls though right? On Monday, 25 November 2013 12:55:27 UTC, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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. -- -- 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: expand a form
Not sure it covers what you're asking for, but if you want to manually step through your function calls, you can use syntax-quote, provided that you have access to the spurce code of the functions you want to step through. Or you can try the debuggers in Clojure-enabled IDEs like Eclipse and IntelliJ. On Monday, 25 November 2013, John D. Hume wrote: You won't find the results as easy to read as what you're asking for, but clojure.tools.analyzer will show you calls that have been inlined by the compiler. On Nov 25, 2013 2:24 PM, Andy Smith the4thamig...@googlemail.com wrote: In your example a full expansion might be : (. clojure.lang.Numbers (add 10 1)) On Monday, 25 November 2013 17:16:42 UTC, Guru Devanla wrote: Hi Andy, Not sure what you need in terms of function calls being expanded. Can you provide an example. Here is an silly example, even though this kind of macro is not needed: (def addone [v] (+ v 1) (defmacro testmacro [init] (list 'addone init)) (macroexpand '(testmacro 10)) expands to (addone 10) Thanks Guru On Mon, Nov 25, 2013 at 6:32 AM, Andy Smith the4th...@googlemail.comwrote: It doesnt seem to expand function calls though right? On Monday, 25 November 2013 12:55:27 UTC, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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. -- -- 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 -- -- 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 style
Given the following code snippet would declaring a Var with an anonymous function be considered bad style? Would there be any real use cases where this would be regarded as a cleaner mechanism to declare a function rather than declaring one with defn? user= (def pow #(Math/pow %1 %2)) #'user/pow user= (pow 2 4) 16.0 -- -- 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 style
Yes, I'd consider this bad style, for one, you don't get the arglists metadata showing the names of variables during a repl session. That metadata is on the var, and not the function itself. I'm not familiar with Math/pow's function signature off the top of my head. I would consider it only in the specific case where you want a computation to happen at compile-time, perhaps by calling a function that returns a function (core.memoize, for instance). The work to set up the cache is done during namespace initialization and never after. On Mon, Nov 25, 2013 at 4:18 PM, Frank Hale frankh...@gmail.com wrote: Given the following code snippet would declaring a Var with an anonymous function be considered bad style? Would there be any real use cases where this would be regarded as a cleaner mechanism to declare a function rather than declaring one with defn? user= (def pow #(Math/pow %1 %2)) #'user/pow user= (pow 2 4) 16.0 -- -- 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 style
Thank you. My example was contrived as I was reading through the Clojure style guide (linked below). This kind of thing isn't specifically mentioned so I had the urge to try it and it works. That got me thinking that this would likely be bad style (hackish). I started Googling but did not find anything yet. It is interesting though. https://github.com/bbatsov/clojure-style-guide On Mon, Nov 25, 2013 at 4:27 PM, Gary Trakhman gary.trakh...@gmail.comwrote: Yes, I'd consider this bad style, for one, you don't get the arglists metadata showing the names of variables during a repl session. That metadata is on the var, and not the function itself. I'm not familiar with Math/pow's function signature off the top of my head. I would consider it only in the specific case where you want a computation to happen at compile-time, perhaps by calling a function that returns a function (core.memoize, for instance). The work to set up the cache is done during namespace initialization and never after. On Mon, Nov 25, 2013 at 4:18 PM, Frank Hale frankh...@gmail.com wrote: Given the following code snippet would declaring a Var with an anonymous function be considered bad style? Would there be any real use cases where this would be regarded as a cleaner mechanism to declare a function rather than declaring one with defn? user= (def pow #(Math/pow %1 %2)) #'user/pow user= (pow 2 4) 16.0 -- -- 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. -- -- 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: T-shirts?
The light-colored shirts have a bug...or is it a feature? On Monday, November 25, 2013 2:29:21 PM UTC-6, Gareth Jones wrote: This shirt appears to be complecting fashion, programming, AND advertising. On Mon, Nov 25, 2013 at 11:17 AM, Laurent PETIT lauren...@gmail.comjavascript: wrote: Hey Bruce, 2013/11/25 Bruce Durling b...@otfrom.com javascript:: Yay! Thanks Rich! Good picture of you. Have you been working out before taking those shots in the t-shirt? It's a direct side-effect of following Clojure's strengths in your life: simplicity, power, focus ;-) -- -- 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. -- -- 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] Optimus - a Ring middleware for frontend performance optimization.
Ok, thanks for the reply. Cornet is at https://github.com/cosmi/cornet, it's similar to stefon. I believe there are some existing middlewares for ring that do similar things (like wrap-not-modified). Do you replace this or work with it? jason On Monday, November 25, 2013 11:10:54 AM UTC-8, Magnar Sveen wrote: Hi Jason! Magnar, could you talk a little about how your project is better than/different from Stefon/dieter and cornet? I feel like we have a lot of these projects now, all doing mostly the same thing. Thanks for asking. I'll try to shed some light on the differences as I see them, and hopefully the people behind Dieter/Stefon (they're very similar) can add some details into their thinking. I haven't seen Comet, and google didn't help much either. Can you share a link? As for Optimus vs Stefon: First of all it's a difference in focus. Stefon focuses on being an asset pipeline modelled after Sprockets in Rails. It lets you write LESS, CoffeeScript, Haml - turning it into CSS and JavaScript. Optimus is not about transpiling from other languages, but about frontend optimization. As such, it rewrites your urls to include cache busters and serves your assets with far-future expires headers, so they can be cached aggressively in production. As I add more features to optimus, they too will focus around better frontend performance - and not more languages to be transpiled. While this is the main point in my mind, there are also other differences that aren't just details that everyone will agree on. :-) These two come to mind: 1. Stefon serves assets live in development, but requires a build step in production to precompile the files. Optimus does not require a build step, but compiles your asset when the server starts. 2. Stefon creates bundles by having custom .stefon files with edn-flavored lists of files in your directories of static assets. Optimus also needs a list of bundles, but does so using Clojure in your program. I would think that Stefons' approach is better if your frontend developers are not comfortable editing the Clojure code, while Optimus' approach allows more programatic control. I hope I haven't misrepresented Stefon in any way - these are my impressions. Since I'm a front-end optimization nut, these arguments were enough to sway me to create a different package. It would be several major breaking changes to Dieter and Stefon's architectures and APIs, and I didn't think I would get anywhere fighting for these changes in github issues. I also don't totally understand why they're all done as Ring middleware instead of lein/maven plugins. Maybe this is my Java background talking, but that seems to me to be the logical place to put this sort of thing. Front-end development with a compilation step is pretty horrible. There's also the case that the URL to a static asset and its location on disk is entirely different after optimization. Hope that answers your questions somewhat decently. And if it didn't, maybe you'll be swayed by the argument that a little competition is a good thing for the community. :) - Magnar -- -- 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: expand a form
You might find tools.trace useful for examining a form as it is executed. https://github.com/clojure/tools.trace On Monday, November 25, 2013 6:55:27 AM UTC-6, Andy Smith wrote: Hi, I am new to clojure and I was wondering if there is a macro I can use to fully expand all symbols and macros in a form, without performing the final evaluation of the built in functions? Thanks Andy -- -- 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 CLR versioning and binary downloads
I added a link here http://clojure.org/clojureclr to the binary download wiki page. I'm happy to update this page in whatever way people find useful - feel free to ping me on email David, Frank, or others. On Monday, November 25, 2013 12:48:51 PM UTC-6, Frank Hale wrote: Are there any plans to directly link the CLR downloads on the Clojure downloads page on Clojure.org? I think it may be helpful to do that because it's a bit difficult to get to the SourceForge download site by first going to Clojure.org. The link on Clojure.org takes you to the Github repo, there you have to click on a link to get to the binary downloads and then you have to scroll through to find the SourceForge link. On Mon, Nov 25, 2013 at 1:38 PM, Frank Hale fran...@gmail.comjavascript: wrote: Thanks David for this information, I really appreciate the work you (and others) are doing on the CLR version. On Sun, Nov 24, 2013 at 7:56 AM, Shantanu Kumar kumar.s...@gmail.comjavascript: wrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core at clojure.lang.Compiler.InitAssembly (System.Reflection.Assembly assy, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.Compiler.LoadAssembly (System.IO.FileInfo assyInfo, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath, Boolean failIfNotFound) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.DoInit () [0x0] in filename unknown:0 at clojure.lang.RT..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- at Clojure.CljMain..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- Can you give any pointer where should I probe? Shantanu On Sunday, 24 November 2013 04:59:56 UTC+5:30, dmiller wrote: 1.5.0 of Clojure CLR includes the one fix in 1.5.1. I got excited and went one too far. Normally, the version numbers match exactly. I tagged 1.5.0 a little prematurely. We had some troubles on the NuGet release and on the mono build. I wasn't really ready for an official 1.5.0 release, so I hadn't done the SourceForge binary distributions. That's all been fixed as of earlier today (11/23/2013 relative to Central Standard). ClojureCLR 1.5.0 is officially out. This version has a NuGet package, with binaries for .Net 3.5 and .Net 4.0. All the binaries to run ClojureCLR itself are in one file, Clojure.dll, due to the magic of ILMerge and a lot of new internal plumbing to allow embedded DLL resources and merged DLLs. Also, this version is signed so that it can be referenced in signed projects or GAC'd. There are Debug and Release binaries (not ILMerged) for .Net 3.5 and 4.0 on the SourceForge site. The wiki pages on the github site have been updated. Mono is now supported. You can run it under Mono. You can compile it directly using xbuild with mono. Details on the wiki. Regarding the Clojure.Main and Clojure.Compile binaries in the NuGet package: Yes, you have to move them to run them. Clojure.dll has to be in the lib\ folder in order for the package to work properly when included in a project. Ancillary files such as Clojure.Main and Clojure.Compile are standalones and are not needed for other projects. They are properly contained in the tools\ folder. I was asked to include them in the NuGet package for ClojureCLR. I'm not happy with the current arrangement, in a nitpicky way. I'm open to suggestions. -David On Friday, November 22, 2013 8:41:58 PM UTC-6, Frank Hale wrote: As far as I can tell the Clojure CLR version number does not track the JVM version number at least for some builds. The latest build 1.5.0 as far as I can tell is at the same patch level as 1.5.1 on the JVM. This numbering seems confusing to me. Are there any plans to streamline the version numbers between the two platforms? Additionally I don't understand why on the Clojure CLR SourceForge page there are only debug versions available for download and 1.5.0 is not represented there. If you
Re: Clojure CLR versioning and binary downloads
Awesome! Thanks Alex. On the current Clojure downloads page it's simple to get a copy of the JVM Clojure but it's not as simple to get a copy of the CLR Clojure. It'd be nice if a direct link could be made to make it just as easy to obtain the CLR version from the SourceForge page here: http://sourceforge.net/projects/clojureclr/files/ Additionally a note about how to obtain the CLR version in other ways (ex. Nuget) may also be handy to post there. I think most people coming into Clojure are going to hit Clojure.org looking for information first and having the current experience of multiple clicks to reach the download site is a bit too cumbersome. I think it'd behoove the community if it was made as easy as possible to get directly to the software from Clojure.org. On Mon, Nov 25, 2013 at 5:10 PM, Alex Miller a...@puredanger.com wrote: I added a link here http://clojure.org/clojureclr to the binary download wiki page. I'm happy to update this page in whatever way people find useful - feel free to ping me on email David, Frank, or others. On Monday, November 25, 2013 12:48:51 PM UTC-6, Frank Hale wrote: Are there any plans to directly link the CLR downloads on the Clojure downloads page on Clojure.org? I think it may be helpful to do that because it's a bit difficult to get to the SourceForge download site by first going to Clojure.org. The link on Clojure.org takes you to the Github repo, there you have to click on a link to get to the binary downloads and then you have to scroll through to find the SourceForge link. On Mon, Nov 25, 2013 at 1:38 PM, Frank Hale fran...@gmail.com wrote: Thanks David for this information, I really appreciate the work you (and others) are doing on the CLR version. On Sun, Nov 24, 2013 at 7:56 AM, Shantanu Kumar kumar.s...@gmail.comwrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+ AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core at clojure.lang.Compiler.InitAssembly (System.Reflection.Assembly assy, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.Compiler.LoadAssembly (System.IO.FileInfo assyInfo, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath, Boolean failIfNotFound) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.DoInit () [0x0] in filename unknown:0 at clojure.lang.RT..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- at Clojure.CljMain..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- Can you give any pointer where should I probe? Shantanu On Sunday, 24 November 2013 04:59:56 UTC+5:30, dmiller wrote: 1.5.0 of Clojure CLR includes the one fix in 1.5.1. I got excited and went one too far. Normally, the version numbers match exactly. I tagged 1.5.0 a little prematurely. We had some troubles on the NuGet release and on the mono build. I wasn't really ready for an official 1.5.0 release, so I hadn't done the SourceForge binary distributions. That's all been fixed as of earlier today (11/23/2013 relative to Central Standard). ClojureCLR 1.5.0 is officially out. This version has a NuGet package, with binaries for .Net 3.5 and .Net 4.0. All the binaries to run ClojureCLR itself are in one file, Clojure.dll, due to the magic of ILMerge and a lot of new internal plumbing to allow embedded DLL resources and merged DLLs. Also, this version is signed so that it can be referenced in signed projects or GAC'd. There are Debug and Release binaries (not ILMerged) for .Net 3.5 and 4.0 on the SourceForge site. The wiki pages on the github site have been updated. Mono is now supported. You can run it under Mono. You can compile it directly using xbuild with mono. Details on the wiki. Regarding the Clojure.Main and Clojure.Compile binaries in the NuGet package: Yes, you have to move them to run them. Clojure.dll has to be in the lib\ folder in order for the package to work properly when included in a project. Ancillary files such as Clojure.Main and Clojure.Compile are standalones and are not needed for other projects. They are properly
Re: [ANN] Optimus - a Ring middleware for frontend performance optimization.
Thanks for the link to cornet. Must be the kerning on my font, since I read comet. :-) I'll definitely check it out. At first glance it looks like a replacement for Dieter/Stefon, more focused on transpiling than optimization. I can't see any mention of it tackling problems like cache busting, and the issues that come with it. For instance how the cache busters on CSS files need to be a cascade of the assets they link to. As for basic ring middlewares, I try not to reimplement them. So you would use wrap-content-type, for instance. As for wrap-not-modified, that's an interesting thought - especially since we know the asset hasn't changed, or it would be under another name. I'll have to look into that further. Nice tip, thanks. - Magnar On Monday, November 25, 2013 10:56:33 PM UTC+1, Jason Bennett wrote: Ok, thanks for the reply. Cornet is at https://github.com/cosmi/cornethttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fcosmi%2Fcornetsa=Dsntz=1usg=AFQjCNGTDwnsbtlpY6VpnA2Xpg3UKB19Sg, it's similar to stefon. I believe there are some existing middlewares for ring that do similar things (like wrap-not-modified). Do you replace this or work with it? jason On Monday, November 25, 2013 11:10:54 AM UTC-8, Magnar Sveen wrote: Hi Jason! Magnar, could you talk a little about how your project is better than/different from Stefon/dieter and cornet? I feel like we have a lot of these projects now, all doing mostly the same thing. Thanks for asking. I'll try to shed some light on the differences as I see them, and hopefully the people behind Dieter/Stefon (they're very similar) can add some details into their thinking. I haven't seen Comet, and google didn't help much either. Can you share a link? As for Optimus vs Stefon: First of all it's a difference in focus. Stefon focuses on being an asset pipeline modelled after Sprockets in Rails. It lets you write LESS, CoffeeScript, Haml - turning it into CSS and JavaScript. Optimus is not about transpiling from other languages, but about frontend optimization. As such, it rewrites your urls to include cache busters and serves your assets with far-future expires headers, so they can be cached aggressively in production. As I add more features to optimus, they too will focus around better frontend performance - and not more languages to be transpiled. While this is the main point in my mind, there are also other differences that aren't just details that everyone will agree on. :-) These two come to mind: 1. Stefon serves assets live in development, but requires a build step in production to precompile the files. Optimus does not require a build step, but compiles your asset when the server starts. 2. Stefon creates bundles by having custom .stefon files with edn-flavored lists of files in your directories of static assets. Optimus also needs a list of bundles, but does so using Clojure in your program. I would think that Stefons' approach is better if your frontend developers are not comfortable editing the Clojure code, while Optimus' approach allows more programatic control. I hope I haven't misrepresented Stefon in any way - these are my impressions. Since I'm a front-end optimization nut, these arguments were enough to sway me to create a different package. It would be several major breaking changes to Dieter and Stefon's architectures and APIs, and I didn't think I would get anywhere fighting for these changes in github issues. I also don't totally understand why they're all done as Ring middleware instead of lein/maven plugins. Maybe this is my Java background talking, but that seems to me to be the logical place to put this sort of thing. Front-end development with a compilation step is pretty horrible. There's also the case that the URL to a static asset and its location on disk is entirely different after optimization. Hope that answers your questions somewhat decently. And if it didn't, maybe you'll be swayed by the argument that a little competition is a good thing for the community. :) - Magnar -- -- 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: .cljrc
Another great feature of Leiningen is the :injections key in project.clj. This lets you run arbitrary code on the Leiningen-managed JVM startup. I recommend this when using Spyscope, which is a debugging tool that only needs to be required before you can use it: https://github.com/dgrnbrg/spyscope#usage Using :injections is a powerful to customize the default referred vars, as well. On Monday, November 25, 2013 10:01:12 AM UTC-5, Moritz Ulrich wrote: Leiningen profiles in ~/.lein/profiles.clj will be merged into the current project.clj by leiningen. Also dumented in https://github.com/technomancy/leiningen/blob/stable/doc/PROFILES.mdhttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftechnomancy%2Fleiningen%2Fblob%2Fstable%2Fdoc%2FPROFILES.mdsa=Dsntz=1usg=AFQjCNGPecCbKEDAS5MWZP4qvsqXetVkTw On Mon, Nov 25, 2013 at 3:34 PM, Dave Tenny dave@gmail.comjavascript: wrote: With all my attention on trying to learn things about clojure, I've either missed or forgotten how do to a simple thing. As I learn clojure I'm writing a few definitions that represent tools I like to use in development. What is the simplest way to have those tools present in arbitrary clojure REPLs started with lein repl, emacs cider-jack-in, etc., without putting them in project.clj files for every lein project I'm working on ? I just want to load some things into the user (or other default ns if my hypothetical .cljrc changes it) namespace and have it happen all the time, except when I'm doing release builds and such of a particular project. Suggestions? -- -- 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. -- -- 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] [ANN] cljs-start 0.0.5
you need to upgrade to leiningen = 2.2.0 lein upgrade # from the terminal On Nov 25, 2013, at 8:18 PM, Deniz Kurucu makka...@gmail.com wrote: On Mon, Nov 25, 2013 at 8:59 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: what are: - you operating system Ubuntu 12.04 64 bit - java virtual machine (java -version # from the terminal) java version 1.7.0_45 Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) - leiningen version (lein version # from the terminal) Leiningen 2.1.3 on Java 1.7.0_45 Java HotSpot(TM) 64-Bit Server VM Have you tried to create a project with others lein-template? e.g. https://github.com/konrad-garus/cljs-kickoff Yes, that one works. thanks mimmo Thanks. On Nov 25, 2013, at 6:02 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, both didn't work. Any other ideas ? lein new cljs-start coolappp Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. On Mon, Nov 25, 2013 at 5:20 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: Hi, try the following: rm -rf ~/.m2/repository/cljs-start and run again lein new cljs-start youlibname If this does not work try the following git clone https://github.com/magomimmo/cljs-start.git cd cljs-start lein install and try again to create the project with lein new cljs-start yourlibname LTM if it works. mimmo On Nov 25, 2013, at 4:06 PM, Deniz Kurucu makka...@gmail.com wrote: Hi, When i run lein new cljs-start wonderful-lib I'm getting that error and nothing is created. Generating fresh 'lein new' cljs-start project. Template resource 'leiningen/new/cljs_start/README.MD' not found. Thanks. On Mon, Nov 25, 2013 at 4:24 PM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: On Nov 25, 2013, at 10:42 AM, Mimmo Cosenza mimmo.cose...@gmail.com wrote: I'm preparing an example on how to use cljs-start with an already implemented cljs lib (I'll use hiccups as an example). If you have a little of patient tomorrow should be published. Hi Tom, here is the sample I was talking about. It use the already implemented hiccups lib to demonstrate by instrumenting it with cljs-start. https://github.com/magomimmo/cljs-start/blob/master/doc/sample.md Inside you'll also find a brepling session with the instrumented hiccups. I don't know why nobody documents any brepl session (even me. in the modern-cljs series I should say something more about this task which is very, very important to become productive in cljs). I hope to contribute a little bit in modifying for the next year the results of the recent survey conducted by the tireless Chas Emerick. HIH Mimmo -- -- 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. -- 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. -- 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
Re: Clojure CLR versioning and binary downloads
It'd be great if this page http://clojure.org/downloads could reflect Clojure JVM, Clojure CLR, Clojurescript or relevant info on how to easily obtain the necessary software to get started. Sure, it's not all that difficult if you are curious and don't mind poking around for a few minutes but I do think that that page could be improved upon specifically for the other versions of Clojure that are out there. On Mon, Nov 25, 2013 at 5:15 PM, Frank Hale frankh...@gmail.com wrote: Awesome! Thanks Alex. On the current Clojure downloads page it's simple to get a copy of the JVM Clojure but it's not as simple to get a copy of the CLR Clojure. It'd be nice if a direct link could be made to make it just as easy to obtain the CLR version from the SourceForge page here: http://sourceforge.net/projects/clojureclr/files/ Additionally a note about how to obtain the CLR version in other ways (ex. Nuget) may also be handy to post there. I think most people coming into Clojure are going to hit Clojure.org looking for information first and having the current experience of multiple clicks to reach the download site is a bit too cumbersome. I think it'd behoove the community if it was made as easy as possible to get directly to the software from Clojure.org. On Mon, Nov 25, 2013 at 5:10 PM, Alex Miller a...@puredanger.com wrote: I added a link here http://clojure.org/clojureclr to the binary download wiki page. I'm happy to update this page in whatever way people find useful - feel free to ping me on email David, Frank, or others. On Monday, November 25, 2013 12:48:51 PM UTC-6, Frank Hale wrote: Are there any plans to directly link the CLR downloads on the Clojure downloads page on Clojure.org? I think it may be helpful to do that because it's a bit difficult to get to the SourceForge download site by first going to Clojure.org. The link on Clojure.org takes you to the Github repo, there you have to click on a link to get to the binary downloads and then you have to scroll through to find the SourceForge link. On Mon, Nov 25, 2013 at 1:38 PM, Frank Hale fran...@gmail.com wrote: Thanks David for this information, I really appreciate the work you (and others) are doing on the CLR version. On Sun, Nov 24, 2013 at 7:56 AM, Shantanu Kumar kumar.s...@gmail.comwrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+ AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core at clojure.lang.Compiler.InitAssembly (System.Reflection.Assembly assy, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.Compiler.LoadAssembly (System.IO.FileInfo assyInfo, System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath, Boolean failIfNotFound) [0x0] in filename unknown:0 at clojure.lang.RT.load (System.String relativePath) [0x0] in filename unknown:0 at clojure.lang.RT.DoInit () [0x0] in filename unknown:0 at clojure.lang.RT..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- at Clojure.CljMain..cctor () [0x0] in filename unknown:0 --- End of inner exception stack trace --- Can you give any pointer where should I probe? Shantanu On Sunday, 24 November 2013 04:59:56 UTC+5:30, dmiller wrote: 1.5.0 of Clojure CLR includes the one fix in 1.5.1. I got excited and went one too far. Normally, the version numbers match exactly. I tagged 1.5.0 a little prematurely. We had some troubles on the NuGet release and on the mono build. I wasn't really ready for an official 1.5.0 release, so I hadn't done the SourceForge binary distributions. That's all been fixed as of earlier today (11/23/2013 relative to Central Standard). ClojureCLR 1.5.0 is officially out. This version has a NuGet package, with binaries for .Net 3.5 and .Net 4.0. All the binaries to run ClojureCLR itself are in one file, Clojure.dll, due to the magic of ILMerge and a lot of new internal plumbing to allow embedded DLL resources and merged DLLs. Also, this version is signed so that it can be referenced in signed projects or GAC'd. There are Debug and Release binaries (not ILMerged) for .Net 3.5 and 4.0 on the SourceForge site. The wiki pages on the github site have been updated.
Re: [ANN] clojure.java.jdbc 0.3.0-beta2 BREAKING CHANGES!
The auto-generated documentation has been updated (thank you Tom!): http://clojure.github.io/java.jdbc/ This separates the documentation clearly into new API and deprecated API. Feedback on docstrings in the new API appreciated (via s...@corfield.org or issues on JIRA if you feel inclined to provide patches as well). Sean On Sun, Nov 24, 2013 at 10:39 PM, Sean Corfield seancorfi...@gmail.com wrote: Based on feedback from the community, I have released clojure.java.jdbc 0.3.0-beta2 to Maven Central. This includes two very important changes: * The clojure.java.jdbc.sql and clojure.java.jdbc.ddl namespaces have been removed. * The API functions that were already marked as deprecated have moved to the clojure.java.jdbc.deprecated namespace This means that if you depend on the clojure.java.jdbc.sql or clojure.java.jdbc.ddl namespaces, which were introduced in 0.3.0-alpha1, you will need to switch to the java-jdbc/dsl project (release 0.1.0 is on Clojars). The new namespaces in that project are java-jdbc.sql and java-jdbc.ddl. If you depend on these namespaces, I strongly recommend you migrate to a more sophisticated DSL, such as: * HoneySQL - https://github.com/jkk/honeysql * SQLingvo - https://github.com/r0man/sqlingvo * Korma - http://www.sqlkorma.com More importantly, if you depend on the older (0.2.3) API in clojure.java.jdbc, you'll need to switch to the clojure.java.jdbc.deprecated namespace in your code, until you can migrate to new API in clojure.java.jdbc instead. These steps are more radical than I would have liked but they simplify the library and streamline the API - and the auto-generated documentation - which should reduce all the confusion expressed about the library right now. This will allow the library to move forward in a more focused manner, with an API that no longer depends on dynamic variables. -- 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) -- 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] Optimus - a Ring middleware for frontend performance optimization.
[FYI: I'm the author/forker of stefon] These libraries aren't bad, but to be honest, I think we've done it all wrong. We're just all scratching our own itches, not writing reusable components (unlike most of the rest of the clojure web ecosystem). If you look at stefon, you get a set of non-composable functions, designed for my exact use case. Optimus, cornet, and dieter all suffer from the same problems. Cornet, supports compilation (with different compiler and versions from stefon), serving assets, and configuring itself from a JVM command line. It also has :dev and :prod modes (though these mean dont minify and do minify. It does split out the functions in a slightly composable way (you can have `(wrap-lesscss-processor loader :mode :dev)`), but those still use :mode. Stefon supports: concatenating JS and CSS, compiling less, coffeescript, hamlcoffee, minification using Closure compiler (currently broken), some trivial css minification, cache-busting and expiry headers, and asset references (eg data-uri to put the contents of one asset in another). It also supports caching compilation and clj-v8 for speed, and expiration headers and cache busting. It has precompilation for production use with a CDN). Dieter is basically like stefon, but older and less maintained, and some different choices around precompilation. Optimus supports concatenating, minification, cache busting, expiry headers, and something angular specific. Also assets dont have to be files on disk, and a there's a list of a dozen or so other features that contrast it to stefon or cornet in a neutral way (neither decision is right or wrong, just different). So basically stefon supports all high level use cases, optimus support all of them except compilation, cornet supports most of it but not cache busting. But where we do support the same things, we do it in many different ways. So my problem here is that we've each chosen to couple everything together. If you want to use stefon's CDN feature in production, with optimus' dev asset serving, with cornet's minification, you're out of luck. Weavejester made a critique of stefon on reddit [1] a while back. He made the point why isn't this just middleware, by which I believe he means why cant this all be split up into composable functions? He's right. We should, IMO, stop doing what we're doing, and rebuild our projects into a set of composable components that play well together: - a choice of caching middlewares - a choice of minifying middlewares - a choice of asset compilers (including different versions and implementations) (also some way for them to interact to support a pipeline) - a choice of precompilation/CDN and compiling on the server - composable optimizations (caching compilations) - a choice of how to concatenate assets I don't really know how to do this though, just that they should be different libraries, and that all orthogonal feature sets should be composable. I'd love to hear people's thoughts on how we can accomplish this. [1] http://www.reddit.com/r/Clojure/comments/1n1n0p/circlecistefon_asset_pipeline_for_clojure_closely/ccexi3a On Monday, 25 November 2013 11:10:54 UTC-8, Magnar Sveen wrote: Hi Jason! Magnar, could you talk a little about how your project is better than/different from Stefon/dieter and cornet? I feel like we have a lot of these projects now, all doing mostly the same thing. Thanks for asking. I'll try to shed some light on the differences as I see them, and hopefully the people behind Dieter/Stefon (they're very similar) can add some details into their thinking. I haven't seen Comet, and google didn't help much either. Can you share a link? As for Optimus vs Stefon: First of all it's a difference in focus. Stefon focuses on being an asset pipeline modelled after Sprockets in Rails. It lets you write LESS, CoffeeScript, Haml - turning it into CSS and JavaScript. Optimus is not about transpiling from other languages, but about frontend optimization. As such, it rewrites your urls to include cache busters and serves your assets with far-future expires headers, so they can be cached aggressively in production. As I add more features to optimus, they too will focus around better frontend performance - and not more languages to be transpiled. While this is the main point in my mind, there are also other differences that aren't just details that everyone will agree on. :-) These two come to mind: 1. Stefon serves assets live in development, but requires a build step in production to precompile the files. Optimus does not require a build step, but compiles your asset when the server starts. 2. Stefon creates bundles by having custom .stefon files with edn-flavored lists of files in your directories of static assets. Optimus also needs a list of bundles, but does so using Clojure in your program. I would think that Stefons' approach is better if your frontend
CloudFormation template generation with Clojure
Hey folks, I'm working on a tool to enable the generation of AWS CloudFormation templates using a Clojure-based syntax kind of like leiningen's project.clj. I'm working on how the syntax should look to be most clojurey, and I wonder if anyone has some input: https://gist.github.com/bellkev/7653342 I should add that I'm very new to Clojure and using this project as an opportunity to learn more about the language internals. So please forgive any particularly non-idiomatic Clojure... Thanks!! -- -- 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: core.logic 0.8.5
This release represents a fairly significant change to the simple DB functionality that core.logic provides - instead of a mess of mutable atoms thanks to Norman Richard we now store facts in a persistent data structure. This is likely a breaking change for some people, but it's a long outstanding issue that I'm happy to see finally remedied. The only other changes in this release are minor performance enhancements to both the Clojure and ClojureScript implementations. More information here: http://github.com/clojure/core.logic Feedback welcome! David -- -- 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: println / for unexpected behaviour
Thanks very much Cedric. (What do you mean by: 'Clearly board is a chunked seq in this case.'?) On Monday, November 25, 2013 1:58:36 PM UTC, Cedric Greevey wrote: Clearly board is a chunked seq in this case. Use doseq when you want side effects for-each of some seqable, but don't care about the return values. The arguments for doseq are identical to those for for, but a) doseq will return nil and b) if the output of for was discarded (rather than the repl realizing the sequence to print the nils) the side effects would never take place, whereas doseq forces them to take place whether or not the nil *it* returns is used or discarded. On Mon, Nov 25, 2013 at 8:25 AM, Ambrose Bonnaire-Sergeant abonnair...@gmail.com javascript: wrote: Hi Edward, I believe the return value of your expression is (nil nil nil nil ...), but the printlns are forced just after the ( is printed. Thanks, Ambrose On Mon, Nov 25, 2013 at 9:14 PM, edw...@kenworthy.info javascript:wrote: Some (println) weirdness (board is a vector to vectors): (println (board 0)) (println (board 1)) (println (board 2)) (println (board 3)) (println (board 4)) (println (board 5)) (println (board 6)) (println (board 7)) Works as I would expect, printing to the console. However: (for [row board] (println row)) Doesn't: the output from println is part of the result of evaluating the for (along with a slew of nils). ([:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :white :black :empty :empty :empty] [:empty :empty :empty :black :white :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] [:empty :empty :empty :empty :empty :empty :empty :empty] nil nil nil nil nil nil nil nil) Any idea why there is any difference at all between the two? The only thing I can think of is for's lazy evaluation but I don't see how. -- -- 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. -- -- 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. -- -- 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: println / for unexpected behaviour
Thanks Stefan. I had a suspicion that it was to do with for's laziness but I had assumed it was a characteristic of the seq it built rather than the forms inside it. Seems a bit strange but will have to get used to it :-) On Monday, November 25, 2013 2:11:45 PM UTC, Stefan Kamphausen wrote: Hi Edward, you are being hit by laziness here. Clojure's 'for' is not like the 'for' you may know from other programming languages. It is made for list comprehensions, that is it is building new list-y things. It does not do this instantly, the items may be realized only when the caller asks for them. In your case the caller is your REPL which prints the return value, thereby realizing the lazy sequence. Thus, the output for the REPL and your println mix. As Cedric already wrote, if you want to process the board for side-effect like printing, use doseq. Use for only for its return value and make no assumptions as to when those values are created. Kind regards, Stefan -- -- 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: CloudFormation template generation with Clojure
I don't know much about CF templates, but stripping some detail from your middle fragment moves further from data and to a DSL: (deftemplate my-template :aws-template-format-version 2010-09-09 :description My description (param my-parameter :type :string :description My string parameter) (mapping my-mapping :first-level-key-one {:second-level-key-one Value} :first-level-key-two {:second-level-key-two Another Value}) (condition my-condition (not my-parameter)) (condition my-second-condition (= (- my-mapping :first-level-key-one :second-level-key-one) my-parameter)) (resource my-instance aws.ec2/instance :image-id ami-79fd7eee) (output my-first-output (:instance-type my-instance)) (output my-second-output my-parameter)) Craig On Tuesday, November 26, 2013 3:41:29 PM UTC+11, Kevin Bell wrote: Hey folks, I'm working on a tool to enable the generation of AWS CloudFormation templates using a Clojure-based syntax kind of like leiningen's project.clj. I'm working on how the syntax should look to be most clojurey, and I wonder if anyone has some input: https://gist.github.com/bellkev/7653342https://www.google.com/url?q=https%3A%2F%2Fgist.github.com%2Fbellkev%2F7653342sa=Dsntz=1usg=AFQjCNF5RUFgHxpojQ1x0EPxJFQ09ibA3A I should add that I'm very new to Clojure and using this project as an opportunity to learn more about the language internals. So please forgive any particularly non-idiomatic Clojure... Thanks!! -- -- 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.