Re: newbie seq question
On 13/04/14 02:21, Stephen Feyrer wrote: // Get the java file io library (import '(java.io http://java.io File)) // Get some files (def f (File. /My/files/)) (def fs (file-seq f)) // Filters for suffixes .mp3 (def get-mp3 (filter #(.endsWith (.getName %) .mp3) fs)) // Get the path of one mp3 (println (take 1 get-mp3)) This code is gathered from various unrelated Clojure forum posts. The resultant collection, I must admit defeats my understanding. My first question is the println statement returns (#File /My/files/path/to/Some of/My Music Collection.mp3), would someone explain this data structure for me, bearing in mind that white spaces and commas are synonymous. It's not a data structure, it's just the way clojure prints out java object: user= f #File /My/files In the REPL Clojure tries to print out readable output, meaning something that can be read again by the reader as input: user= (def a '(1 2 3)) #'user/a user= #'user/a #'user/a user= (var a) #'user/a user= map #core$map clojure.core$map@23130c0a In the case of object instances, it cannot be printed into such readable form, so it uses the # to indicate this is unreadable: user= #File /tmp clojure.lang.LispReader$ReaderException: java.lang.RuntimeException: Unreadable form java.lang.RuntimeException: Unreadable form See also the answer to this stackoverflow question: http://stackoverflow.com/questions/17263929/clojure-read-string-on-functions If you want to know more about reader macros: http://en.wikibooks.org/wiki/Learning_Clojure/Reader_Macros There's also this chapter from an online beginner's book I recommend (you may want to read the stuff before): http://www.braveclojure.com/read-and-eval/ Please note, while I have programmed a little in the past this does not prevent me from asking dumb questions. Thus finally, if this is not the appropriate place for this sort question could you point me in the right direction? You're perfectly fine here, newbies welcome. In fact your question is about something that isn't much talked or written about in clojure. HTH -- 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/d/optout.
Data Literals: How to handle read errors?
Hey there, I upgraded to JDK8 and wanted to start using the new java.time.* packages. I started by implementing reader functions to get rid of #inst like: #time/local-date [2014 4 13] #time/local-datetime [2014 4 13 14 23] While that works fine and as expected, one thing I ran into is confusing error messages. For example, from a REPL: user= (pr-str #time/local-datetime [2014 4 1 0 0 2 999]) DateTimeException Invalid value for NanoOfSecond (valid values 0 - 9): 1215752191 java.time.temporal.ValueRange.checkValidValue (ValueRange.java:311) RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) Or another one: user= (pr-str #time/local-date [2014 4 31]) DateTimeException Invalid date 'APRIL 31' java.time.LocalDate.create (LocalDate.java:431) RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) The first part is what I expected, however the Unmatched delimiter part is not what I expected. Is there any special exception I should be throwing in a reader function that read something that can never be correct? Also why do I need print-dup? Nothing serious, just curious if its a bug or an oversight on my part. Regards, /thomas PS: Clojure 1.6.0 btw -- 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/d/optout.
Puppet Labs and Trapperkeeper
I just saw that there's a library called TrapperKeeper https://github.com/puppetlabs/trapperkeeper from the folks at Puppet Labs. It looks to be a more opinionated and complete version of Stuart Sierra's Component library https://github.com/stuartsierra/component, in that it explicitly pays attention to things like logging configuration and JBoss support. Brendan Younger -- 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/d/optout.
[ANN] Cadejo, A MIDI management tool for Overtone
Hi everyone, I have just released Cadejo, a MIDI management tool for Overtone. It forms an infrastructure which defines how MIDI devices communicate with Overtone instruments. The release also includes 4 full-featured instruments. 1) ALGO, an 8-operator FM synth 2) Alias, a subtractive synth with extensive modulation possibilities 3) MASA, an organ loosely based on the Hammond B3 4) Combo, a simpler organ primarily used for illustration. All instruments have program banks with a few pre-defined patches accessible by MIDI program change. MIDI program 127 generates random patch data. Cadejo supports all MIDI channel messages with the exception of polyphonic after-touch. Some of it's feature are: - Keyboard layering and split points - Tuning tables for alternate intonation. - Velocity, pressure and controller mapping functions. - Separate poly and monophonic response modes. - Program banks with the ability to execute arbitrary Clojure functions in response to MIDI program change events. An introductory video may be viewed at https://www.youtube.com/watch?v=GgXCAMs2EQY The project may be found on git hub at https://github.com/plewto/Cadejo/ 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/d/optout.
Re: Data Literals: How to handle read errors?
On Apr 13, 2014, at 8:31 AM, Thomas Heller th.hel...@gmail.com wrote: [...] confusing error messages. user= (pr-str #time/local-datetime [2014 4 1 0 0 2 999]) [...] RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) Using default #inst reader gives the same behavior. This is an artifact of how the repl currently works. Its input is a stream of characters to which it applies the read, eval, and print operations in a loop. There is prompt-handling code in the repl that makes it feel turn oriented in most cases, but this case isn't handled. It does not currently implement on exception in read, flush the rest of the pending user input and re-prompt. Here's an example with a vanilla clojure 1.6.0 (java -jar the clojure 1.6.0.jar) that may clarify what's going on: user= (println 1 2 3 #inst 4 5 6 7 8 9) RuntimeException Unrecognized date/time syntax: 4 clojure.instant/fn--6236/fn--6237 (instant.clj:118) 5 6 7 8 9 RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) The start of the list (println 1 2 3 reads fine, then the #inst read throws an exception. After the exception, the repl starts working on the remainder of the input characters as if it were fresh user input. It sees integers and prints them. When it hits ), there's no corresponding ( pending, so it throws again. --Steve -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Data Literals: How to handle read errors?
Ah, didn't even think about the REPL causing trouble here. Thanks. On Sunday, April 13, 2014 5:30:09 PM UTC+2, squeegee wrote: On Apr 13, 2014, at 8:31 AM, Thomas Heller th.h...@gmail.comjavascript: wrote: […] confusing error messages. user= (pr-str #time/local-datetime [2014 4 1 0 0 2 999]) […] RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) Using default #inst reader gives the same behavior. This is an artifact of how the repl currently works. Its input is a stream of characters to which it applies the read, eval, and print operations in a loop. There is prompt-handling code in the repl that makes it feel “turn” oriented in most cases, but this case isn’t handled. It does not currently implement “on exception in read, flush the rest of the pending user input and re-prompt”. Here’s an example with a vanilla clojure 1.6.0 (java -jar the clojure 1.6.0.jar) that may clarify what’s going on: user= (println 1 2 3 #inst 4 5 6 7 8 9) RuntimeException Unrecognized date/time syntax: 4 clojure.instant/fn--6236/fn--6237 (instant.clj:118) 5 6 7 8 9 RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221) The start of the list (println 1 2 3” reads fine, then the #inst read throws an exception. After the exception, the repl starts working on the remainder of the input characters as if it were fresh user input. It sees integers and prints them. When it hits “)”, there’s no corresponding “(“ pending, so it throws again. —Steve -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: My experiments with concurrent programming
Hi Cecil, On Apr 12, 2014, at 3:18 PM, Cecil Westerhof cldwester...@gmail.com wrote: I just started playing with Clojure a few days ago, so I am a tabula rasa. I attached what I have until now. If it can be improved, I like to know it. I had a look at your code and it's not clear to me what you are trying to experiment with. Possibly benchmark using futures to run the do-sequential function concurrently. I'll assume that for the moment and make a couple of observations... You are using atoms to store two values (max-diff and max-factor) that are used and changed in main-function. Did you really intend to share these across all the calculations? The code you've provided will have concurrency errors as a result. You might consider writing this as something like (the *completely* untested and so only good as a sketch): (def max-diff (ref 0.0)) (def max-factor (ref 0.0)) (defn init [type] (give-message (format Start %s type)) (dosync (ref-set max-diff 0.0) (ref-set max-factor 0.0))) (defn main-function [i diff] (dosync (ensure max-diff) (ensure max-factor) (when ( diff @max-diff) (give-message (format Different for %12d (%e, %e) i diff (/ diff i))) (alter max-diff max diff) (when ( (/ diff i) @max-factor) (alter max-factor max (/ diff i) The 'ensures' are there because max-diff and max-factor aren't really independent and some interaction between concurrent threads in the outer when could lead to some strange situations (like testing for max-diff (or max-factor) then finding that some other thread ran and changed max-diff (or max-factor) out from under you. Your concurrency will likely be restricted to (some subset) of your cores since there's no IO in there (you're dumping the actual logging off to an agent). This isn't a bug, just mentioning it, but there's something to think about below. There's a problem in your calculation of diff... it's always 0.0 which means that there's nothing being done in main-function. I changed it to something arbitrary (and *completely* untested and so only good as a sketch): (let [v (int (Math/sqrt i)) diff (Math/abs (- (Math/pow v 2) i))] No idea if that's reasonable, but at least main-function does something now. With the hacked up calculation of diff, I was able to demonstrate the concurrency problem in main-function by simply running (the *completely* untested and so only good as a sketch): (defn main-function [i diff] (swap! iterations0 inc) (when ( diff @max-diff) (swap! iterations1 inc) #_(give-message (format Different for %12d (%e, %e) i diff (/ diff i))) (swap! max-diff max diff) (when ( (/ diff i) @max-factor) (swap! iterations2 inc) (swap! max-factor max (/ diff i) and printing the values of iterations* -- with your swap algorithm you get different values for iterations1 and sometimes iterations2 for successive run. If you didn't intend to share max-diff and max-factor, then you'd likely be better off if do-sequential passed local values into main-function, something like (the *completely* untested and so only good as a sketch): (defn main-function [[max-diff max-factor] i] (let [v (int (Math/sqrt i)) diff (Math/abs (- (Math/pow v 2) i))] (if ( diff max-diff) (do #_(give-message (format Different for %12d (%e, %e) i diff (/ diff i))) [(max max-diff diff) (max max-factor (/ diff i))]) [max-diff max-factor]))) (defn do-sequential [start stop step] (reduce main-function [0.0 0.0] (range start stop step))) You've decided to use futures for concurrency. Maybe that's the whole point, but if you're just trying to get a feel for concurrency in Clojure then there are some options. I find I directly use futures and promises, at most, rarely (I can't remember ever using them directly, maybe in the very early days of Clojure). What I find handy for this sort of thing is something like pmap, and if you really want this asynchronous then have a look at core.async. Anyway, with pmap (the *completely* untested and so only good as a sketch): (defn check-concurrent [number] (doall (pmap #(do-sequential % check-until number) (range 1 (inc number) The shutdown-agents call is likely not what you want, you don't need it. You're using agents for the logging. This gets the IO out of your code being tested, but there's still a lot of formatting work happening there (not much of a problem). But you don't know the impact of the agent thread pool on your benchmark. It's possible that it acts as a throttle. You can avoid this easily by not logging anything in main-function (I've commented it out in the example above). Benchmarking is tricky to do. It's a lot easier to use something like criterium, kind of like this (I added the *verbose* dynamic variable for fun to the *completely* untested and so only good as a sketch): (def ^:dynamic *verbose* true) (defn
auto include a certain line in all *.cljs files
Hi, Can I edit some user.clj/config.clj/project.clj file, so that it's as if: (:require-macros [swiss.arrows :refer (-)]) is auto included in *every* cljs file ? [I dislike the constant repetition] 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/d/optout.
Re: auto include a certain line in all *.cljs files
Look at :injections in https://github.com/technomancy/leiningen/blob/master/sample.project.clj. Would that help you? On Sun, Apr 13, 2014 at 7:36 PM, t x txrev...@gmail.com wrote: Hi, Can I edit some user.clj/config.clj/project.clj file, so that it's as if: (:require-macros [swiss.arrows :refer (-)]) is auto included in *every* cljs file ? [I dislike the constant repetition] 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/d/optout. -- 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/d/optout.
Re: [ANN] iroh 0.1.9 - class reflection and exploration
A simple repl-targeted library to introspect classes might prove useful, but is there any reason to use such a short syntax for everything? I'll surely have problems remembering the symbols. On Fri, Apr 11, 2014 at 5:57 AM, zcaudate z...@caudate.me wrote: Please use 0.1.10 update. clojure 1.6 does not load clojure.walk and clojure.set automatically anymore. -- 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/d/optout. -- 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/d/optout.
Re: auto include a certain line in all *.cljs files
What does https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L209-L211 mean ? In particular, I'm confused about: Forms to prepend to every form that is evaluated inside your project. I only want to insert it right into the (ns ...) clause. Thanks! On Sun, Apr 13, 2014 at 10:49 AM, Kevin Ilchmann Jørgensen kijm...@gmail.com wrote: Look at :injections in https://github.com/technomancy/leiningen/blob/master/sample.project.clj. Would that help you? On Sun, Apr 13, 2014 at 7:36 PM, t x txrev...@gmail.com wrote: Hi, Can I edit some user.clj/config.clj/project.clj file, so that it's as if: (:require-macros [swiss.arrows :refer (-)]) is auto included in *every* cljs file ? [I dislike the constant repetition] 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/d/optout. -- 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/d/optout. -- 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/d/optout.
Re: [ANN] iroh 0.1.9 - class reflection and exploration
It's short because i hate typing... And it's meant to be 'intuitive' so that clojure users would find it relatively straight forward to pick up. The only unintuitive bit would be the .% and .% for class information and class hierarchy. The thing is, when combined with the threading macro, all the functions are very powerful tools at the repl: (. 123 .%) get class hierarchy (. 123 .?) get all methods (. 123 (.? :name)) get method name (. 123 .toString (.? :name)) get method names of (.toString 123) Giveit a go! And if you have any suggestions for short names, please let me know. On 14/04/2014, at 5:17, Moritz Ulrich mor...@tarn-vedra.de wrote: A simple repl-targeted library to introspect classes might prove useful, but is there any reason to use such a short syntax for everything? I'll surely have problems remembering the symbols. On Fri, Apr 11, 2014 at 5:57 AM, zcaudate z...@caudate.me wrote: Please use 0.1.10 update. clojure 1.6 does not load clojure.walk and clojure.set automatically anymore. -- 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/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/YEeEMYmjfPM/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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/d/optout.
Re: Puppet Labs and Trapperkeeper
related http://puppetlabs.com/blog/new-era-application-services-puppet-labs On Monday, 14 April 2014 00:24:28 UTC+10, Brendan Younger wrote: I just saw that there's a library called TrapperKeeper https://github.com/puppetlabs/trapperkeeper from the folks at Puppet Labs. It looks to be a more opinionated and complete version of Stuart Sierra's Component library https://github.com/stuartsierra/component, in that it explicitly pays attention to things like logging configuration and JBoss support. Brendan Younger -- 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/d/optout.
Re: [Video] Game development in Clojure (with play-clj)
Hi Kris, Thanks for your comment, and I'm very glad that you found the video helpful. I started doing screencasts because I realised that I learn a new concept fastest by watching someone else doing/explaining it - and I figured I might not be the only one. Saying that, I know screencasts aren't for everyone, and they have a few drawbacks compared to text (harder to search, skim, or repeat sections). So positive comment like yours remind me that I'm not the only auditory/visual learner around here, and inspire me to keep going. Thanks! James On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote: Great video! I've looked through Zach's examples, and even started coding a game myself. But your screencast helped me have a better understanding of some of the concepts and code that I was having trouble understanding just by looking at the example games. Thanks! -Kris On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote: Hi everyone, I thought some of you might be interested to watch my screencast about game development in Clojure with play-cljhttps://www.youtube.com/watch?v=9ilUe7Re-RA . Cheers, James -- 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/d/optout.
Potential Intro clojure projects - libraries and ideas with wow factor
A handful of developers at the organisation I work at, want to encourage interest in Clojure with the aim of using it in production amongst the organisation's wider developer community (hundreds of developers). We ourselves are Clojure hobbyists. We wanted to do this through a basic project (with few moving parts), so I wanted to get feedback on a couple of aspects: 1. Examples of basic project ideas that would be compelling to fellow developers not familiar with Clojure (e.g. something useful that you can do easily with Clojure that's harder to do in more established languages such as Java) 2. Particular libraries that again had a wow factor towards an objective not easily achievable in more established languages (perhaps related to data analysis, visualisation, or taking advantage of the benefit of lazy evaluation in a novel way as examples). I realise these questions are somewhat open-ended, but just wanted to spark off some ideas for us through bouncing these questions off the google group's members. Thanks for any leads! -- 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/d/optout.
Re: [Video] Game development in Clojure (with play-clj)
Actually, I thought it would be even more helpful if you had the source code available (for searching/skimming). Is that somewhere online? -Kris On Sun, Apr 13, 2014 at 2:47 PM, James Trunk james.tr...@gmail.com wrote: Hi Kris, Thanks for your comment, and I'm very glad that you found the video helpful. I started doing screencasts because I realised that I learn a new concept fastest by watching someone else doing/explaining it - and I figured I might not be the only one. Saying that, I know screencasts aren't for everyone, and they have a few drawbacks compared to text (harder to search, skim, or repeat sections). So positive comment like yours remind me that I'm not the only auditory/visual learner around here, and inspire me to keep going. Thanks! James On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote: Great video! I've looked through Zach's examples, and even started coding a game myself. But your screencast helped me have a better understanding of some of the concepts and code that I was having trouble understanding just by looking at the example games. Thanks! -Kris On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote: Hi everyone, I thought some of you might be interested to watch my screencast about game development in Clojure with play-cljhttps://www.youtube.com/watch?v=9ilUe7Re-RA . Cheers, James -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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/d/optout.
Re: [Video] Game development in Clojure (with play-clj)
There's a link to a gist of core.cljhttps://gist.github.com/Misophistful/9892203in the video's description. Cheers, James On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote: Actually, I thought it would be even more helpful if you had the source code available (for searching/skimming). Is that somewhere online? -Kris On Sun, Apr 13, 2014 at 2:47 PM, James Trunk james...@gmail.comjavascript: wrote: Hi Kris, Thanks for your comment, and I'm very glad that you found the video helpful. I started doing screencasts because I realised that I learn a new concept fastest by watching someone else doing/explaining it - and I figured I might not be the only one. Saying that, I know screencasts aren't for everyone, and they have a few drawbacks compared to text (harder to search, skim, or repeat sections). So positive comment like yours remind me that I'm not the only auditory/visual learner around here, and inspire me to keep going. Thanks! James On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote: Great video! I've looked through Zach's examples, and even started coding a game myself. But your screencast helped me have a better understanding of some of the concepts and code that I was having trouble understanding just by looking at the example games. Thanks! -Kris On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote: Hi everyone, I thought some of you might be interested to watch my screencast about game development in Clojure with play-cljhttps://www.youtube.com/watch?v=9ilUe7Re-RA . Cheers, James -- 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 a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/d/optout. -- 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/d/optout.
Re: [Video] Game development in Clojure (with play-clj)
Oh great! I guess I must have missed that :P On Sun, Apr 13, 2014 at 3:13 PM, James Trunk james.tr...@gmail.com wrote: There's a link to a gist of core.cljhttps://gist.github.com/Misophistful/9892203in the video's description. Cheers, James On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote: Actually, I thought it would be even more helpful if you had the source code available (for searching/skimming). Is that somewhere online? -Kris On Sun, Apr 13, 2014 at 2:47 PM, James Trunk james...@gmail.com wrote: Hi Kris, Thanks for your comment, and I'm very glad that you found the video helpful. I started doing screencasts because I realised that I learn a new concept fastest by watching someone else doing/explaining it - and I figured I might not be the only one. Saying that, I know screencasts aren't for everyone, and they have a few drawbacks compared to text (harder to search, skim, or repeat sections). So positive comment like yours remind me that I'm not the only auditory/visual learner around here, and inspire me to keep going. Thanks! James On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote: Great video! I've looked through Zach's examples, and even started coding a game myself. But your screencast helped me have a better understanding of some of the concepts and code that I was having trouble understanding just by looking at the example games. Thanks! -Kris On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote: Hi everyone, I thought some of you might be interested to watch my screencast about game development in Clojure with play-cljhttps://www.youtube.com/watch?v=9ilUe7Re-RA . Cheers, James -- 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 a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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/d/optout.
[ANN] clj-cursor 0.0.1 - server-side cursor for clojure data structures (inspired by om)
Hi, https://github.com/rlewczuk/clj-cursor This is my attempt at (properly) managing application state. It is based on David Nolen's cursor concept implemented in the om library. Cursor allows storing whole application state in a single structure, yet still be able to swap underlying application state and allow application components receiving changes without hassle (think online reconfiguration etc.). Current implementation aims at solving server-side application state, it partially overlaps with what Stuart Sierra work (presentations and accompanying Component framework/convention) aims at. Note that this is highly experimental stuff worth around two evenings of thinking/coding. Currently it is dead simple wrapper for maps and vectors, in many respects incomplete (yet it's propably enough for me to test it on some real world application). I'm announcing this very early version in order to spark some discussion about this topic as I haven't been fully happy with existing solutions for application state management (albeit Stuart's work did push things forward quite a lot). So, any suggestions will be welcome - especially I'm looking for more usage scenarios (in addition to two scenarios I'm currently aware of: distributing config/state across application components and storing local caches of certain types of data (rather low rate of change, eg. dictionary data). Regards, rle -- 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/d/optout.
Re: [ANN] clj-cursor 0.0.1 - server-side cursor for clojure data structures (inspired by om)
Also as I have relatively little experience with Clojure programming, any suggestions about style, non-idiomatic code etc. are also important for me. -- 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/d/optout.
Re: newbie seq question
Hi François, Thank you. I have read through each of the articles you've indicated and will read in full the braveclojure book. I am playing the syntax-quotes and will explore the io/resource package. To be honest I am still not confident in what I'm doing but there are still avenues to explore. At this stage I just want to acknowledge your response and let you know that it is very much appreciated. -- Kind regards Stephen. On 13 April 2014 07:02, François Rey fmj...@gmail.com wrote: On 13/04/14 02:21, Stephen Feyrer wrote: // Get the java file io library (import '(java.io File)) // Get some files (def f (File. /My/files/)) (def fs (file-seq f)) // Filters for suffixes .mp3 (def get-mp3 (filter #(.endsWith (.getName %) .mp3) fs)) // Get the path of one mp3 (println (take 1 get-mp3)) This code is gathered from various unrelated Clojure forum posts. The resultant collection, I must admit defeats my understanding. My first question is the println statement returns (#File /My/files/path/to/Some of/My Music Collection.mp3), would someone explain this data structure for me, bearing in mind that white spaces and commas are synonymous. It's not a data structure, it's just the way clojure prints out java object: user= f #File /My/files In the REPL Clojure tries to print out readable output, meaning something that can be read again by the reader as input: user= (def a '(1 2 3)) #'user/a user= #'user/a #'user/a user= (var a) #'user/a user= map #core$map clojure.core$map@23130c0a In the case of object instances, it cannot be printed into such readable form, so it uses the # to indicate this is unreadable: user= #File /tmp clojure.lang.LispReader$ReaderException: java.lang.RuntimeException: Unreadable form java.lang.RuntimeException: Unreadable form See also the answer to this stackoverflow question: http://stackoverflow.com/questions/17263929/clojure-read-string-on-functions If you want to know more about reader macros: http://en.wikibooks.org/wiki/Learning_Clojure/Reader_Macros There's also this chapter from an online beginner's book I recommend (you may want to read the stuff before): http://www.braveclojure.com/read-and-eval/ Please note, while I have programmed a little in the past this does not prevent me from asking dumb questions. Thus finally, if this is not the appropriate place for this sort question could you point me in the right direction? You're perfectly fine here, newbies welcome. In fact your question is about something that isn't much talked or written about in clojure. HTH -- 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/d/optout. -- 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/d/optout.
cljs, websocket, autoreconnect
Hi, For building robust cljs web apps, I'd like to have a uber websocket which does the following: * when disconnected, it auto reconnects * and re-sends any messages that were not received Before I hand-roll my own hacks, I was wondering -- is there any existing cljs library which already does this? 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/d/optout.
Re: cljs, websocket, autoreconnect
Take a look at Sente (core.async over web socket / xhr) - and contribute anything additional you need to that. On Apr 13, 2014, at 6:16 PM, t x txrev...@gmail.com wrote: For building robust cljs web apps, I'd like to have a uber websocket which does the following: * when disconnected, it auto reconnects * and re-sends any messages that were not received Before I hand-roll my own hacks, I was wondering -- is there any existing cljs library which already does this? signature.asc Description: Message signed with OpenPGP using GPGMail
Annotations on gen-class :state
There are many Java APIs that expect client APIs to annotate fields but Clojure does not support annotations on fields. Is there any plan to add support? And one tangential question: Is there any consideration of adding gen-class support for multiple fields instead of just one? jbs -- 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/d/optout.
Re: [Video] Game development in Clojure (with play-clj)
+1 nice video On Mon, Apr 14, 2014 at 3:45 AM, Kris Calabio kriscala...@gmail.com wrote: Oh great! I guess I must have missed that :P On Sun, Apr 13, 2014 at 3:13 PM, James Trunk james.tr...@gmail.comwrote: There's a link to a gist of core.cljhttps://gist.github.com/Misophistful/9892203in the video's description. Cheers, James On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote: Actually, I thought it would be even more helpful if you had the source code available (for searching/skimming). Is that somewhere online? -Kris On Sun, Apr 13, 2014 at 2:47 PM, James Trunk james...@gmail.comwrote: Hi Kris, Thanks for your comment, and I'm very glad that you found the video helpful. I started doing screencasts because I realised that I learn a new concept fastest by watching someone else doing/explaining it - and I figured I might not be the only one. Saying that, I know screencasts aren't for everyone, and they have a few drawbacks compared to text (harder to search, skim, or repeat sections). So positive comment like yours remind me that I'm not the only auditory/visual learner around here, and inspire me to keep going. Thanks! James On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote: Great video! I've looked through Zach's examples, and even started coding a game myself. But your screencast helped me have a better understanding of some of the concepts and code that I was having trouble understanding just by looking at the example games. Thanks! -Kris On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote: Hi everyone, I thought some of you might be interested to watch my screencast about game development in Clojure with play-cljhttps://www.youtube.com/watch?v=9ilUe7Re-RA . Cheers, James -- 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 a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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/d/optout. -- 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/d/optout.
Re: Puppet Labs and Trapperkeeper
As a non-clojure user, but a Puppet expert (ahum ;) ) I wrote a blog post about this announcement that might be interesting for some folks here. I'd also love to see comments on the post itself if I have drawn any wrong conclusions: http://www.olindata.com/blog/2014/04/clojure-outsiders-investigation On Sunday, 13 April 2014 16:24:28 UTC+2, Brendan Younger wrote: I just saw that there's a library called TrapperKeeper https://github.com/puppetlabs/trapperkeeper from the folks at Puppet Labs. It looks to be a more opinionated and complete version of Stuart Sierra's Component library https://github.com/stuartsierra/component, in that it explicitly pays attention to things like logging configuration and JBoss support. Brendan Younger -- 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/d/optout.
Re: Potential Intro clojure projects - libraries and ideas with wow factor
On Monday, 14 April 2014 05:15:31 UTC+8, utel wrote: A handful of developers at the organisation I work at, want to encourage interest in Clojure with the aim of using it in production amongst the organisation's wider developer community (hundreds of developers). We ourselves are Clojure hobbyists. We wanted to do this through a basic project (with few moving parts), so I wanted to get feedback on a couple of aspects: 1. Examples of basic project ideas that would be compelling to fellow developers not familiar with Clojure (e.g. something useful that you can do easily with Clojure that's harder to do in more established languages such as Java) 2. Particular libraries that again had a wow factor towards an objective not easily achievable in more established languages (perhaps related to data analysis, visualisation, or taking advantage of the benefit of lazy evaluation in a novel way as examples). Disclaimer: Slightly a plug for my own personal projects and interests :-) There are a lot of great opportunities to get involved around the numerical computing space in Clojure, especially if you think that data analysis and visualisation counts as a wow factor. We welcome open source contributions from all perspectives. In particular: 1. The core.matrix librray / API for array programming (see: https://github.com/mikera/core.matrix) 2. The Incanter environment for data science / statistical computing (see: http://incanter.org/) If you are interested in exploring this area further, here are some useful links: - The Numerical Clojure google group: https://groups.google.com/forum/#!forum/numerical-clojure - My Enter The Matrix talk at the Clojure Conj: http://www.youtube.com/watch?v=_h9TLJtjSJo - Enter The Matrix slides: http://www.slideshare.net/mikeranderson/2013-1114-enter-thematrix - Clojure Dojo core.matrix repository: https://github.com/clojure-numerics/core.matrix.dojo The last link includes some fun data analysis examples, using match results from the English Premier League hopefully some of these give you a taste of the wow factor in terms of rapid data processing and very efficient coding in an array-programming style. -- 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/d/optout.
Re: cljs, websocket, autoreconnect
Google Closure implements an auto-reconnecting websocket. You can read docs on it herehttp://docs.closure-library.googlecode.com/git/class_goog_net_WebSocket.html and see an example of it being imported herehttps://github.com/kovasb/session/blob/1bf7346a87597aa8f6ad2bc031bd9f959b5d662a/resources/public/cljs/session/main.cljs#L8 and used herehttps://github.com/kovasb/session/blob/1bf7346a87597aa8f6ad2bc031bd9f959b5d662a/resources/public/cljs/session/main.cljs#L41 On Sunday, April 13, 2014 6:16:08 PM UTC-7, t x wrote: Hi, For building robust cljs web apps, I'd like to have a uber websocket which does the following: * when disconnected, it auto reconnects * and re-sends any messages that were not received Before I hand-roll my own hacks, I was wondering -- is there any existing cljs library which already does this? 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/d/optout.