Re: Spread work onto multiple threads (in pure Clojure)

2011-09-21 Thread Sean Corfield
On Wed, Sep 21, 2011 at 6:06 PM, ronen  wrote:
> (defn email-approved [approved]
>  (doall (pmap deref (for [req approved] (future (email-request
> req))

Wouldn't the following be close enough to what you want?

(defn email-approved [approved]
  (doall (pmap email-request approved)))
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.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


Re: Storm

2011-09-21 Thread nathanmarz
Yea, I have it on my todo list to document this (which seems to be
getting longer by the minute). Hopefully I'll do that within the next
few weeks. In the meantime, I pasted some example code showing usage
of the Clojure DSL, if that helps at all in the meantime:

https://gist.github.com/1228302

-Nathan


On Sep 20, 10:41 pm, Baishampayan Ghose  wrote:
> Hi Nathan,
>
> On Tue, Sep 20, 2011 at 8:35 PM, nathanmarz  wrote:
> > Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed
> > and fault-tolerant realtime computation system hosted at
> >https://github.com/nathanmarz/storm
>
> I would like to congratulate you on the release. Storm seems to be
> very interesting and apparently it has certain advantages that no
> other existing system seem to offer.
>
> > ones) on top of Storm. That said, Storm has a Clojure DSL for
> > programming topologies which is what I personally use for developing
> > topologies.
>
> It would be great if the Clojure DSL is documented on the wiki (or did
> I miss it?). I am really keen on taking it for a test drive and I am
> sure others in the Clojure community would like to do so as well.
>
> Regards,
> BG
>
> --
> Baishampayan Ghose
> b.ghose at gmail.com

-- 
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


Re: Arithmetic Exception in 1.3

2011-09-21 Thread PC
I see!  I'll have to go back and read up on these features.

Thanks to everyone!

-- 
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

Re: How to attach debugger on clojure's repl ?

2011-09-21 Thread Scott Jaderholm
While that still works, ritz is really where it's at for awesome debugging
clojure in emacs. It allows stepping and stuff with a nice UI.

https://github.com/pallet/ritz

Video (only for overview, follow instructions at url above)
http://www.youtube.com/watch?v=d_L51ID36w4

One of my favorite things with it is using it with OpenJDK w/ source so I
can go down the rabbit hole of stepping into my code, Clojure, and the JVM
itself (just for fun, not had a need for this yet).

Scott


On Wed, Sep 21, 2011 at 6:01 PM, Timothy Washington wrote:

> This guy's put together a good video on how to use debugging to swank /
> slime.
>
>- http://www.youtube.com/watch?v=galfpq969Hg
>
>
> Tim Washington
> twash...@gmail.com
> 416.843.9060
>
>
>
> On Tue, Sep 20, 2011 at 10:37 AM, cran1988 wrote:
>
>> I am trying to figure out how abcl does it
>>
>> On Sep 20, 12:41 pm, Herwig Hochleitner 
>> wrote:
>> > You can debug clojure code with a normal Java Debugger.
>> > When using Emacs, you can tryhttp://
>> georgejahad.com/clojure/swank-cdt.html
>> >
>> > --
>> > __
>> > Herwig Hochleitner
>>
>> --
>> 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 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 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

Re: ClojureScript on repl.it?

2011-09-21 Thread amjad.masad
Hi, I'm one of the developer's who built repl.it.
I really like Clojure and ClojureScript, and would love to have it in
repl.it.
However ClojureScript uses the JVM to compile, and repl.it's main
philosophy
is to be completely client-side. There is always the possibility of
embedding
a Java Applet into the page. I don't know if the CS compiler would be
able
to run inside an applet, has anyone tried?

Anyhow we have plans of exploring the possibility of having a Java
applet built into
our sandboxed language engine:
https://github/replit/jsrepl


On Sep 21, 4:19 am, Tal Liron  wrote:
> Wouldn't it be nice to add ClojureScript to this list:
>
> http://repl.it/
>
> Food for thought!

-- 
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


Re: coding-dojo-20110921

2011-09-21 Thread eniotna
R.E.R : Réseau Express Régional, "Regional Express Network"

2011/9/21 eniotna 

> Hi Ken,
>
> 2011/9/21 Ken Wesson 
>
>> On Wed, Sep 21, 2011 at 3:13 PM, Meikel Brandmeyer  wrote:
>> >
>> > Am 21.09.2011 um 19:59 schrieb Ken Wesson:
>> >
>> >> On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye 
>> wrote:
>> >>>
>> >>> On a code une implem alternative de retour dans le RER:
>> >>> https://gist.github.com/1231894
>> >>>
>> >>
>> >> On a code what??
>> >>
>> >
>> > That's french.
>>
>> Yeah, I thought it might be. But it's odd that it suddenly switched
>> from plain English to a foreign language in mid-sentence.
>>
>> He did not switch.
> Here is the confusion, "on a code" is french for "we have coded".
>
> We're supposed to add an accent on the "e" of code in this sentence
> but our keyboards are mapped in qwerty and we're too lazy to learn how to
> add accent in qwerty...
>
>
>>  > Someone has programmed an alternative implementation of return in the
>> RER.
>>
>> ... The RER?
>>
>>
> it's a train that links Paris and the suburbs.
> I do not even know what the meaning of R.E.R means in french :D
>
> Good night,
>
> Antoine R. Dumont
>
>>  --
>>
>> Protege: What is this seething mass of parentheses?!
>> Master: Your father's Lisp REPL. This is the language of a true
>> hacker. Not as clumsy or random as C++; a language for a more
>> civilized age.
>>
>> --
>> 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 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

Re: coding-dojo-20110921

2011-09-21 Thread eniotna
Hi Ken,

2011/9/21 Ken Wesson 

> On Wed, Sep 21, 2011 at 3:13 PM, Meikel Brandmeyer  wrote:
> >
> > Am 21.09.2011 um 19:59 schrieb Ken Wesson:
> >
> >> On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye 
> wrote:
> >>>
> >>> On a code une implem alternative de retour dans le RER:
> >>> https://gist.github.com/1231894
> >>>
> >>
> >> On a code what??
> >>
> >
> > That's french.
>
> Yeah, I thought it might be. But it's odd that it suddenly switched
> from plain English to a foreign language in mid-sentence.
>
> He did not switch.
Here is the confusion, "on a code" is french for "we have coded".

We're supposed to add an accent on the "e" of code in this sentence
but our keyboards are mapped in qwerty and we're too lazy to learn how to
add accent in qwerty...


> > Someone has programmed an alternative implementation of return in the
> RER.
>
> ... The RER?
>
>
it's a train that links Paris and the suburbs.
I do not even know what the meaning of R.E.R means in french :D

Good night,

Antoine R. Dumont

> --
> Protege: What is this seething mass of parentheses?!
> Master: Your father's Lisp REPL. This is the language of a true
> hacker. Not as clumsy or random as C++; a language for a more
> civilized age.
>
> --
> 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 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

clojurescript closure problem?

2011-09-21 Thread Eric Harris-Braun
Check out this little bit of code:

(doseq [hid ["a" "b" "c"]]
  (goog.dom.appendChild (goog.dom.$ "some-element-id")
(goog.dom.createDom "div" (.strobj {"id" hid})  (str "Test-"hid)))
  (goog.events.listen (goog.dom.$ hid) goog.events.EventType.CLICK,
(fn [e] (js/alert hid

What I want it do to is add in a few div's that when clicked on simply
alert with the value their id value.  That doesn't actually happen,
what happens is that they all alert with the "c" ie. the last value in
the list.  This code, on the other-hand works:

(defn hidfn [hid]
  (fn [e] (js/alert hid))
  )
(doseq [hid ["a" "b" "c"]]
  (goog.dom.appendChild (goog.dom.$ "the-receptor")
(goog.dom.createDom "div" (.strobj {"id" hid})  (str "Test-"hid)))
  (goog.events.listen (goog.dom.$ hid) goog.events.EventType.CLICK,
(hidfn hid)))

Shouldn't the clojurescript compiler detect that the usage of "hid" in
the function in the first case requires the creation of an anonymous
function to close around that value?  Why do I have to do it manually?

-- 
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


issues to build clojure-1.3.0-RC0 with JDK-1.7

2011-09-21 Thread JSchmitt
Hallo,

I have tried to build clojure-1.3.0-RC0 agains Fedora Rawhide, which
supports JDK-1.7.

Unfortunately, I have got error messages in the for:

[java] FAIL in (test-annotations-on-field) (java_6_and_later.clj:
65)
 [java] expected: (= expected-annotations (into #{} (map
annotation->map (.getAnnotations (.getField Bar "b")
 [java]   actual: (not (= #{{:enabled false, :annotationType
javax.xml.ws.soap.Addressing, :required true} {:annotationType
javax.xml.ws.WebServiceRefs, :value [{:mappedName "", :name
"fred", :annotationType javax.xml.ws.WebServiceRef, :type
java.lang.String, :wsdlLocation "", :value java.lang.Object}
{:mappedName "lucy", :name "ethel", :annotationType
javax.xml.ws.WebServiceRef, :type java.lang.Object, :wsdlLocation
"", :value java.lang.Object}]} {:annotationType
java.lang.annotation.Retention, :value #}
{:annotationType java.lang.Deprecated} {:annotationType
javax.annotation.processing.SupportedOptions, :value ["foo" "bar"
"baz"]}} #{{:annotationType javax.xml.ws.WebServiceRefs, :value
({:annotationType javax.xml.ws.WebServiceRef, :name
"fred", :mappedName "", :lookup "", :type
java.lang.String, :wsdlLocation "", :value javax.xml.ws.Service}
{:annotationType javax.xml.ws.WebServiceRef, :name
"ethel", :mappedName "lucy", :lookup "", :type
java.lang.Object, :wsdlLocation "", :value javax.xml.ws.Service})}
{:annotationType java.lang.annotation.Retention, :value
#} {:annotationType java.lang.Deprecated}
{:annotationType javax.annotation.processing.SupportedOptions, :value
("foo" "bar" "baz")} {:annotationType
javax.xml.ws.soap.Addressing, :enabled false, :required
true, :responses #}}))
 [java]


You can find the whole build log at:

http://koji.fedoraproject.org/koji/getfile?taskID=3367891&name=build.log

It may be nice, if you have any hint to solve this issue.

Best Regards:

Jochen Schmitt

-- 
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


Re: Spread work onto multiple threads (in pure Clojure)

2011-09-21 Thread Nathan Sorenson
Futures begin executing their contents immediately, you don't have to
deref them to trigger the side effects. (perhaps you were thinking of
delay?)

I'm assuming you are using futures because email-request is an io-
blocking operation? The thing to note is that the body of a future
automatically runs in its own thread, so you could go ahead and just
do a regular map: (doall (map #(future (email-request %)) approved));
all the emails would then be sent in parallel threads.

On Sep 21, 4:06 pm, ronen  wrote:
> I was looking for a pure Clojure solution to run multiple non-
> dependant tasks on multiple threads, iv considered using Agent,
> Promises or Futures, yet the simplest cleanest succinct solution iv
> found is:
>
> (defn email-approved [approved]
>   (doall (pmap deref (for [req approved] (future (email-request
> req))
>
> The only thing that I don't like about it is the use of pmap, main
> since Im using the parallel mapping action just for side effects
> (triggering the consumptions of futures by derefing them).
>
> Iv seen solution that involve Java service executor and the Work
> project (https://github.com/getwoven/work), yet id rather achieve this
> in pure Clojure.
>
> Thanks
> Ronen

-- 
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


Re: Spread work onto multiple threads (in pure Clojure)

2011-09-21 Thread Andy Fingerhut
pmap already uses future/deref in its implementation.  When it does so, it
limits the *maximum* parallelism possible to be at most (number-of-cpus + 2)
threads running at a time, and depending upon the time taken by each of the
objects you are mapping over, it can be less then that.

I don't know if it would work for your purposes, but Amit Rathore created a
small Clojure library called Medusa that is basically a wrapper around Java
executors:

https://github.com/amitrathore/medusa

Andy


On Wed, Sep 21, 2011 at 4:06 PM, ronen  wrote:

> I was looking for a pure Clojure solution to run multiple non-
> dependant tasks on multiple threads, iv considered using Agent,
> Promises or Futures, yet the simplest cleanest succinct solution iv
> found is:
>
> (defn email-approved [approved]
>  (doall (pmap deref (for [req approved] (future (email-request
> req))
>
> The only thing that I don't like about it is the use of pmap, main
> since Im using the parallel mapping action just for side effects
> (triggering the consumptions of futures by derefing them).
>
> Iv seen solution that involve Java service executor and the Work
> project (https://github.com/getwoven/work), yet id rather achieve this
> in pure Clojure.
>
> Thanks
> Ronen
>
> --
> 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 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

Spread work onto multiple threads (in pure Clojure)

2011-09-21 Thread ronen
I was looking for a pure Clojure solution to run multiple non-
dependant tasks on multiple threads, iv considered using Agent,
Promises or Futures, yet the simplest cleanest succinct solution iv
found is:

(defn email-approved [approved]
  (doall (pmap deref (for [req approved] (future (email-request
req))

The only thing that I don't like about it is the use of pmap, main
since Im using the parallel mapping action just for side effects
(triggering the consumptions of futures by derefing them).

Iv seen solution that involve Java service executor and the Work
project (https://github.com/getwoven/work), yet id rather achieve this
in pure Clojure.

Thanks
Ronen

-- 
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


Re: coding-dojo-20110921

2011-09-21 Thread Meikel Brandmeyer

Am 21.09.2011 um 22:31 schrieb Ken Wesson:

>> That's french.
> 
> Yeah, I thought it might be. But it's odd that it suddenly switched
> from plain English to a foreign language in mid-sentence.

That's all french. It just happens by coincidence that the words also have some 
meaning in english.

>> Someone has programmed an alternative implementation of return in the RER.
> 
> ... The RER?

Dea snam? (To throw in another language)

-- 
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


Re: How to attach debugger on clojure's repl ?

2011-09-21 Thread Timothy Washington
This guy's put together a good video on how to use debugging to swank /
slime.

   - http://www.youtube.com/watch?v=galfpq969Hg


Tim Washington
twash...@gmail.com
416.843.9060



On Tue, Sep 20, 2011 at 10:37 AM, cran1988  wrote:

> I am trying to figure out how abcl does it
>
> On Sep 20, 12:41 pm, Herwig Hochleitner 
> wrote:
> > You can debug clojure code with a normal Java Debugger.
> > When using Emacs, you can tryhttp://
> georgejahad.com/clojure/swank-cdt.html
> >
> > --
> > __
> > Herwig Hochleitner
>
> --
> 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 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

Re: implement a shell in repl

2011-09-21 Thread Timothy Washington
+1. My project has a shell on top of a repl, which is just load in a
different namespace and associated functions and macros.


This assumes that your shell language is an extension of Clojure / LISP,
which is certainly the path I chose. I replaced a customed DSL I designed in
Java, using SableCC.


Incidentally, I was able to pull in the SableCC library and use my custom
language on top of the repl, exactly as you describe. The lexer (waiting for
user input) was using a PushbackReader. But I imagine you can use anything
that does a blocked read on stdin.


But in the end, I realised that a few custom Clojure functions and macros
pretty much covered what my DSL was doing. So now my "shell" is just a
namespace inside of a repl.


HTH

Tim


On Tue, Sep 20, 2011 at 2:08 PM, Ken Wesson  wrote:

> Wouldn't the simplest way be to simply use the REPL itself as the
> shell, with a few things defined like this?
>
> (def dir (atom (System/getProperty "user.home")))
>
> (defn pwd [] @dir)
>
> (defn cd [dir] (reset! @dir dir))
>
> (defn ... )
>
> --
> Protege: What is this seething mass of parentheses?!
> Master: Your father's Lisp REPL. This is the language of a true
> hacker. Not as clumsy or random as C++; a language for a more
> civilized age.
>
> --
> 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 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

Re: Re: clojars question

2011-09-21 Thread labwork07

Thanks. It does get confusing some times.

On , Mark Rathwell  wrote:

Anyone can create their own account on clojars and publish their own



forks to their own group name. There are 22 forks of enlive on



github, the original is by Chrisotphe Grand [1], [2]. His most recent



version published to clojars is 1.0.0. Generally, people try not to



publish their own forks to clojars unless they have good reason (eg



the original is no longer maintained, or will not accept desired



patches, or doesn't publish quickly enough, etc.).





Unless there is something in one of the forked versions that you want,



I would use the original: [enlive "1.0.0"]. You may, however, want to



post to the enlive group [3] to see if maybe there is a reason to use



one of the other versions.





[1] https://github.com/cgrand/enlive



[2] http://clojars.org/enlive



[3] http://groups.google.com/group/enlive-clj







On Wed, Sep 21, 2011 at 5:12 PM, labwor...@gmail.com> wrote:



> I'm confused on what version to obtain from clojars for enlive. I see


> 1.2.0-alpha1 dated yesterday but I also see 2.00 dated from August.  
Which



> one should I pick? are there several versions? Please enlighten 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 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 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

Re: clojars question

2011-09-21 Thread Mark Rathwell
Anyone can create their own account on clojars and publish their own
forks to their own group name.  There are 22 forks of enlive on
github, the original is by Chrisotphe Grand [1], [2].  His most recent
version published to clojars is 1.0.0.  Generally, people try not to
publish their own forks to clojars unless they have good reason (e.g.
the original is no longer maintained, or will not accept desired
patches, or doesn't publish quickly enough, etc.).

Unless there is something in one of the forked versions that you want,
I would use the original: [enlive "1.0.0"].  You may, however, want to
post to the enlive group [3] to see if maybe there is a reason to use
one of the other versions.

[1] https://github.com/cgrand/enlive
[2] http://clojars.org/enlive
[3] http://groups.google.com/group/enlive-clj


On Wed, Sep 21, 2011 at 5:12 PM,   wrote:
> I'm confused on what version to obtain from clojars for enlive. I see
> 1.2.0-alpha1 dated yesterday but I also see 2.00 dated from August. Which
> one should I pick? are there several versions? Please enlighten 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 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


Re: clojure type casting vs java type casting

2011-09-21 Thread Nathan Sorenson
long entails a call to RT/longCast, which dynamically dispatches on
the type of the object passed to it. I haven't tested this, but i
would imagine the java cast would compile directly to the single byte-
code instruction i2l. Presumably, then, the java call would be a touch
faster by a few instructions.

Of course the standard disclaimer applies: you have to be wary of
making performance decisions w/o benchmarking, especially with a good
hotspot compiler under your feet.

On Sep 17, 7:55 am, Brent Millare  wrote:
> Is the following clojure code:
>
> (long (.some-method-that-returns-int this))
>
> equivalent in semantics and performance to the following java code:
>
> (long)some-method-that-returns-int();
>
> I need to make type casts in an inner loop (hot zone), and I was
> wondering if there was something implicit that makes writing it in
> java faster.

-- 
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


Re: advantage of dynamic typing

2011-09-21 Thread Nathan Sorenson
These types of discussions seem to get very broad in their scope and
not much is ever settled.

That being said, it seems one place where dynamic typing is a huge
advantage is for records--Clojure records are prevalent and extremely
easy to use, and are an excellent substrate for where we would
normally use objects.

Now, it's possible to have records in statically typed languages, but
there are many different ways to do it, and not all buy you the same
properties you enjoy in a dynamic language (duck-typing a record if it
contains the correct fields, adding additional fields the library
designer didn't originally allow, etc.)

Haskell has been trying for years to get a grip on it's record story.
This isn't because it's impossible to have nice records in a static
type system, it's simply because with a static type system you have to
make a careful up-front choice about what your type system will
allow.

In a dynamic language you have none of these worries, and you are free
to impose whatever invariants you like on your records.

Great power/great responsibility, etc.

On Sep 21, 12:09 pm, Dennis Haupt  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Am 21.09.2011 19:58, schrieb Ken Wesson:
>
> > On Wed, Sep 21, 2011 at 3:00 AM, Dennis Haupt
> >  wrote:
> >> yes, but you magically need to know a) for which types does it
> >> work? if you give a byte to the function, will you get an error,
> >> or its first bit? or its first char after its been converted to a
> >> string? b) if i want my data structure to support this, how do i
> >> have to do that?
>
> > I'm curious: in what world is API documentation considered to be
> > magical? :)
>
> - --
>
> good point. in my experience, public apis often are well documented
> (no problem with clojure standard lib) while in-team-code is rarely
> documented at all
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v2.0.14 (MingW32)
> Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org/
>
> iQIcBAEBAgAGBQJOejZrAAoJENRtux+h35aGZ8gP/0sKZAOSjMLYZgD0pFy9vs5v
> 54wUcP9/D+YEreM8hW67P1j0lNcRqFzEjPDvGX+dykdrZKOrfQ1xpFboiARusLSn
> XbtoO4vlkwxwwMv9kcB6DyWtTsP7vEc9M9jJkHRNEERynk6DKBrtAX0RHXz4Qfyj
> uHHovEG+a68vcbrY1C9GqRck/Qqhdn0JjoKwFXkZGEUaPVf6rLRfav/JY8wl5Mj2
> AKYhj/0LTUCknqkMFYkflAdLLVFjYLWX+zAeac18E2/RtRFFT5kedhYzHe3CpPY4
> x6BaT5hCS/fZkyYR2kzbar1F18RL4vixmg8HbjGceLLOobW2r5EVyNRxQMv8DIpi
> XkjZiW0jqC6XFpoK2KVCaMzJwM46SWNoY6xYglV9/prdQ0Jmf5Isa/FVL+T24Mrq
> uaI6AzlKMHk4NzfQNEvJYr22q/H9oT8waEPKDMtWgQsFkSwRFotCfkqu1L5T78MT
> BlPek1RIZLTPjxt4kXNwdTC0Q52hiLKNNJakIEakHxSdlwmeT+1i3b+v+luFfdw6
> 6mGb0H8x0pUJKnU/QHFzPA/hPhg0LMOhdwTdvUm+O/7cbFhAakvhLMdUZlEmj70Y
> 9DugBMLto6bHyMk4kXUyHzP4ProiFmTwNE5P5UFhtl60svAmkxYuQXFl6JeisxX/
> zTIgie+GRZPuGSTtcKPy
> =pfvF
> -END PGP SIGNATURE-

-- 
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


clojars question

2011-09-21 Thread labwork07
I'm confused on what version to obtain from clojars for enlive. I see  
1.2.0-alpha1 dated yesterday but I also see 2.00 dated from August. Which  
one should I pick? are there several versions? Please enlighten 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

Re: Swarming experiment at Conj?

2011-09-21 Thread Linus Ericsson
Would it be possible to store the original defn s-expression source code in
metadata added to the java byte-code function? It would be highly
inefficient (and most of the time meaningless) for autogenerated functions,
but quite a  small overhead for the few locs a developer spits out during a
hack-togheter-sessions - which btw sounds marvelous!

/Linus

2011/9/21 Colin Yates 

> Have you considered opening it to remote users?
>
> I wouldn't be able to contribute anything, but I would love to watch...
>
>
> On 21 September 2011 14:07, Brian Marick  wrote:
>
>>
>> On Sep 9, 2011, at 11:55 AM, Christopher Redinger wrote:
>> > Thursday evening we'll have the time, space and power to do this
>> post-supper. A round table may be hard to come by, but I'll see what we can
>> do.
>> >
>> > Keep me in the loop on what else you'll need.
>>
>> Thanks Chris. Not enough people (2) said they were interested for this to
>> go forward.
>>
>> -
>> Brian Marick, Artisanal Labrador
>> Contract programming in Ruby and Clojure
>> Occasional consulting on Agile
>> www.exampler.com, www.twitter.com/marick
>>
>> --
>> 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 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 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

Re: Recursion/Algorithm Question

2011-09-21 Thread Nathan Sorenson
A recursive formulation is exactly the right idea. Also, you're right
when you say it won't work with recur as you've set it up. In fact,
you won't be able to use recur at all in this situation as a you are
doing a depth-first search through possible paths--it's impossible to
formulate a depth-first search as a tail-recursive function.

You are definitely on the right track with your current idea. Though I
would offer a hint: it's even simpler to return a sequence of all the
paths (in a way very similar to how you've set it up) without using
ANY of the state ref types.

On Sep 21, 9:29 am, ax2groin  wrote:
> I've been working through algorithm problems to learn the language a
> little better. I'm currently struggling with the question about a
> "robot" traversing a grid. If the grid is completely open, then the
> answer to "how many possible ways to traverse the grid?" is simply the
> math for combinations using factorials (see Project Euler #15). But if
> you suppose that some places in the grid are blocked or that you have
> to actually traverse the paths?
>
> I know that the code below doesn't work yet (recur is not at the
> tail). Think of it as pseudo-code to show my intent. I've left out the
> other methods to get at the heart of what I'm asking about.
> Essentially, each path leads to two more recursion points (at least
> the way I've formulated it in my "else"), until they finally run out
> of bounds or meet the goal. The input "n" represents the width of the
> square grid. I'm using a two-element vector to represent a point in
> the grid.
>
> (defn get-paths
>  [n]
>  (let [paths (agent '()) goal (vector n n)]
>   (loop [point [0 0] path '()]
>    (cond (points-equal? goal point) (send paths conj (conj path
> point))
>          (out-of-bounds? n point) nil
>          (blocked? point) nil
>          :else (recur (inc-x point) (conj path point))
>                (recur (inc-y point) (conj path point
>   (deref paths)))
>
> Perhaps ultimately, the approach I've tried here is a dead-end? I'm
> not sure that this loop formulation would ever exit, or perhaps it
> would exit too quickly.

-- 
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


Re: coding-dojo-20110921

2011-09-21 Thread Ken Wesson
On Wed, Sep 21, 2011 at 3:13 PM, Meikel Brandmeyer  wrote:
>
> Am 21.09.2011 um 19:59 schrieb Ken Wesson:
>
>> On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye  wrote:
>>>
>>> On a code une implem alternative de retour dans le RER:
>>> https://gist.github.com/1231894
>>>
>>
>> On a code what??
>>
>
> That's french.

Yeah, I thought it might be. But it's odd that it suddenly switched
from plain English to a foreign language in mid-sentence.

> Someone has programmed an alternative implementation of return in the RER.

... The RER?

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
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


Re: ClojureScript: Problem getting Browser Repl Env to Work

2011-09-21 Thread David Nolen
Do you get any JS errors from the browser at the JS console?

David

On Wed, Sep 21, 2011 at 4:23 PM, Volker Schlecht
wrote:

> Hi,
>
> no, I've tried it against - essentially - a manual replication of the
> built-in sample. But thanks for the hint, because the sample does
> work, but so far I haven't figured out the deciding difference ... at
> least I have a reference now to compare against.
>
> Thanks!
> Volker
>
> On Sep 21, 7:26 pm, David Nolen  wrote:
> > Hmm in my experience
> >
> > 1. Start the Browser REPL
> > 2. Open your project's main html file (index.html)
> >
> > And you're good to go. Sometimes you need to refresh the browser but
> that's
> > about it as far as I can tell.
> >
> > Are you trying this against the built in sample?
> >
> > David
> >
> > On Tue, Sep 20, 2011 at 4:32 PM, Volker Schlecht
> > wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Hi everybody,
> >
> > > I'm trying out the new browser repl-environment using both the
> > > tutorial (https://github.com/clojure/clojurescript/wiki/The-REPL-and-
> > > Evaluation-Environments) but so far am unable to get it to work.
> >
> > > Using current (as of the writing of this mail) master from github, and
> > > following the Steps in the tutorial:
> >
> > > 1. Starting up the repl works, leads me straight to the repl (i.e.
> > > allows me to enter an expression). I remember trying a previous
> > > version of the in-browser repl which worked for me, but in which i
> > > couldn't enter anything before the browser initiated a connection. The
> > > docs mention a wait for a browser connection being neccesary here ...
> >
> > > 2. Setting up the XPC communication works, i.e. I see the initial GET
> > > request receiving sensible-looking javascript, and I see a POST of
> > > "ready" being answered by a "goog.provide('user')".
> >
> > > 3. That's it however - connection closed. Non-surprisingly, entering
> > > any expression only hangs the REPL.
> >
> > > Using curl as per browser.clj:
> >
> > > 1. Startting REPL works, as above
> > > 2. curl -v -d "ready"http://localhost:9000/responds with
> >
> > > < HTTP/1.1 200 OK
> > > < Server: ClojureScript REPL
> > > < Content-Type: text/javascript; charset=utf-8
> > > < Content-Length: 26
> > > <
> > > * Connection #0 to host localhost left intact
> > > * Closing connection #0
> > > goog.provide('cljs.user');
> >
> > > 3. Looking not too bad except for the closed connection, so entering
> > > (+ 1 1) hangs the REPL
> >
> > > 4. curl -v -d "2"http://127.0.0.1:9000then responds with the
> > > compiled javascript as far as I can tell:
> >
> > > < HTTP/1.1 200 OK
> > > < Server: ClojureScript REPL
> > > < Content-Type: text/javascript; charset=utf-8
> > > < Content-Length: 61
> > > <
> > > cljs.core.pr_str.call(null,cljs.core._PLUS_.call(null,1,1));
> > > * Connection #0 to host localhost left intact
> > > * Closing connection #0
> >
> > > To me it seems that something is awry with keeping that connection
> > > really open on my system.
> >
> > > I'm on Debian SID and tried with firefox 6 and 7-beta as well as with
> > > google-chrome. JDK is Oracle Java 1,6.0_26-b03, ClojureScript is as
> > > stated above a vanilla copy of current master, freshly bootstrapped.
> >
> > > Reverting to select previous states of ClojureScript (i.e. right after
> > > clojure.browser was merged into master, and right before) yielded no
> > > better results, except that those didn't get me to a REPL prompt at
> > > all and were stuck at "Server started...". The last and only time I
> > > had that working was with the clojure.browser branch from some time
> > > around August 26th.
> >
> > > What am I doing wrong? Any hints?
> >
> > > regards,
> > > Volker
> >
> > > --
> > > 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 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 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/grou

Re: ClojureScript: Problem getting Browser Repl Env to Work

2011-09-21 Thread Volker Schlecht
Hi,

no, I've tried it against - essentially - a manual replication of the
built-in sample. But thanks for the hint, because the sample does
work, but so far I haven't figured out the deciding difference ... at
least I have a reference now to compare against.

Thanks!
Volker

On Sep 21, 7:26 pm, David Nolen  wrote:
> Hmm in my experience
>
> 1. Start the Browser REPL
> 2. Open your project's main html file (index.html)
>
> And you're good to go. Sometimes you need to refresh the browser but that's
> about it as far as I can tell.
>
> Are you trying this against the built in sample?
>
> David
>
> On Tue, Sep 20, 2011 at 4:32 PM, Volker Schlecht
> wrote:
>
>
>
>
>
>
>
> > Hi everybody,
>
> > I'm trying out the new browser repl-environment using both the
> > tutorial (https://github.com/clojure/clojurescript/wiki/The-REPL-and-
> > Evaluation-Environments) but so far am unable to get it to work.
>
> > Using current (as of the writing of this mail) master from github, and
> > following the Steps in the tutorial:
>
> > 1. Starting up the repl works, leads me straight to the repl (i.e.
> > allows me to enter an expression). I remember trying a previous
> > version of the in-browser repl which worked for me, but in which i
> > couldn't enter anything before the browser initiated a connection. The
> > docs mention a wait for a browser connection being neccesary here ...
>
> > 2. Setting up the XPC communication works, i.e. I see the initial GET
> > request receiving sensible-looking javascript, and I see a POST of
> > "ready" being answered by a "goog.provide('user')".
>
> > 3. That's it however - connection closed. Non-surprisingly, entering
> > any expression only hangs the REPL.
>
> > Using curl as per browser.clj:
>
> > 1. Startting REPL works, as above
> > 2. curl -v -d "ready"http://localhost:9000/responds with
>
> > < HTTP/1.1 200 OK
> > < Server: ClojureScript REPL
> > < Content-Type: text/javascript; charset=utf-8
> > < Content-Length: 26
> > <
> > * Connection #0 to host localhost left intact
> > * Closing connection #0
> > goog.provide('cljs.user');
>
> > 3. Looking not too bad except for the closed connection, so entering
> > (+ 1 1) hangs the REPL
>
> > 4. curl -v -d "2"http://127.0.0.1:9000then responds with the
> > compiled javascript as far as I can tell:
>
> > < HTTP/1.1 200 OK
> > < Server: ClojureScript REPL
> > < Content-Type: text/javascript; charset=utf-8
> > < Content-Length: 61
> > <
> > cljs.core.pr_str.call(null,cljs.core._PLUS_.call(null,1,1));
> > * Connection #0 to host localhost left intact
> > * Closing connection #0
>
> > To me it seems that something is awry with keeping that connection
> > really open on my system.
>
> > I'm on Debian SID and tried with firefox 6 and 7-beta as well as with
> > google-chrome. JDK is Oracle Java 1,6.0_26-b03, ClojureScript is as
> > stated above a vanilla copy of current master, freshly bootstrapped.
>
> > Reverting to select previous states of ClojureScript (i.e. right after
> > clojure.browser was merged into master, and right before) yielded no
> > better results, except that those didn't get me to a REPL prompt at
> > all and were stuck at "Server started...". The last and only time I
> > had that working was with the clojure.browser branch from some time
> > around August 26th.
>
> > What am I doing wrong? Any hints?
>
> > regards,
> > Volker
>
> > --
> > 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 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


Re: Swarming experiment at Conj?

2011-09-21 Thread Colin Yates
Have you considered opening it to remote users?

I wouldn't be able to contribute anything, but I would love to watch...

On 21 September 2011 14:07, Brian Marick  wrote:

>
> On Sep 9, 2011, at 11:55 AM, Christopher Redinger wrote:
> > Thursday evening we'll have the time, space and power to do this
> post-supper. A round table may be hard to come by, but I'll see what we can
> do.
> >
> > Keep me in the loop on what else you'll need.
>
> Thanks Chris. Not enough people (2) said they were interested for this to
> go forward.
>
> -
> Brian Marick, Artisanal Labrador
> Contract programming in Ruby and Clojure
> Occasional consulting on Agile
> www.exampler.com, www.twitter.com/marick
>
> --
> 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 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

Re: Swarming experiment at Conj?

2011-09-21 Thread Brian Marick

On Sep 9, 2011, at 11:55 AM, Christopher Redinger wrote:
> Thursday evening we'll have the time, space and power to do this post-supper. 
> A round table may be hard to come by, but I'll see what we can do.
> 
> Keep me in the loop on what else you'll need.

Thanks Chris. Not enough people (2) said they were interested for this to go 
forward. 

-
Brian Marick, Artisanal Labrador
Contract programming in Ruby and Clojure
Occasional consulting on Agile
www.exampler.com, www.twitter.com/marick

-- 
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


Re: coding-dojo-20110921

2011-09-21 Thread Denis Labaye
But I can provide a translation:

We did a clojure coding dojo at Paris, the exercise was: find the nth prime
numbers, in TDD (midje), and in clojure

With a co-worker we needed to go earlier, so we implemented an alternative
solution in the tube https://gist.github.com/1231894

On Wed, Sep 21, 2011 at 9:20 PM, Denis Labaye wrote:

> ops!
>
>  I posted on clojure google group instead of *clojure-paris-user-group* google
> group
>
> sorry :-)
>
>
> On Wed, Sep 21, 2011 at 9:13 PM, Meikel Brandmeyer  wrote:
>
>>
>> Am 21.09.2011 um 19:59 schrieb Ken Wesson:
>>
>> > On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye 
>> wrote:
>> >>
>> >> On a code une implem alternative de retour dans le RER:
>> >> https://gist.github.com/1231894
>> >>
>> >
>> > On a code what??
>> >
>>
>> That's french.
>>
>> Someone has programmed an alternative implementation of return in the RER.
>>
>> --
>> 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 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

Re: coding-dojo-20110921

2011-09-21 Thread Denis Labaye
ops!

 I posted on clojure google group instead of *clojure-paris-user-group* google
group

sorry :-)

On Wed, Sep 21, 2011 at 9:13 PM, Meikel Brandmeyer  wrote:

>
> Am 21.09.2011 um 19:59 schrieb Ken Wesson:
>
> > On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye 
> wrote:
> >>
> >> On a code une implem alternative de retour dans le RER:
> >> https://gist.github.com/1231894
> >>
> >
> > On a code what??
> >
>
> That's french.
>
> Someone has programmed an alternative implementation of return in the RER.
>
> --
> 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 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

Re: coding-dojo-20110921

2011-09-21 Thread Meikel Brandmeyer

Am 21.09.2011 um 19:59 schrieb Ken Wesson:

> On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye  wrote:
>> 
>> On a code une implem alternative de retour dans le RER:
>> https://gist.github.com/1231894
>> 
> 
> On a code what??
> 

That's french.

Someone has programmed an alternative implementation of return in the RER.

-- 
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


Re: advantage of dynamic typing

2011-09-21 Thread Dennis Haupt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 21.09.2011 19:58, schrieb Ken Wesson:
> On Wed, Sep 21, 2011 at 3:00 AM, Dennis Haupt
>  wrote:
>> yes, but you magically need to know a) for which types does it
>> work? if you give a byte to the function, will you get an error,
>> or its first bit? or its first char after its been converted to a
>> string? b) if i want my data structure to support this, how do i
>> have to do that?
> 
> I'm curious: in what world is API documentation considered to be
> magical? :)
> 


- -- 

good point. in my experience, public apis often are well documented
(no problem with clojure standard lib) while in-team-code is rarely
documented at all
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.14 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJOejZrAAoJENRtux+h35aGZ8gP/0sKZAOSjMLYZgD0pFy9vs5v
54wUcP9/D+YEreM8hW67P1j0lNcRqFzEjPDvGX+dykdrZKOrfQ1xpFboiARusLSn
XbtoO4vlkwxwwMv9kcB6DyWtTsP7vEc9M9jJkHRNEERynk6DKBrtAX0RHXz4Qfyj
uHHovEG+a68vcbrY1C9GqRck/Qqhdn0JjoKwFXkZGEUaPVf6rLRfav/JY8wl5Mj2
AKYhj/0LTUCknqkMFYkflAdLLVFjYLWX+zAeac18E2/RtRFFT5kedhYzHe3CpPY4
x6BaT5hCS/fZkyYR2kzbar1F18RL4vixmg8HbjGceLLOobW2r5EVyNRxQMv8DIpi
XkjZiW0jqC6XFpoK2KVCaMzJwM46SWNoY6xYglV9/prdQ0Jmf5Isa/FVL+T24Mrq
uaI6AzlKMHk4NzfQNEvJYr22q/H9oT8waEPKDMtWgQsFkSwRFotCfkqu1L5T78MT
BlPek1RIZLTPjxt4kXNwdTC0Q52hiLKNNJakIEakHxSdlwmeT+1i3b+v+luFfdw6
6mGb0H8x0pUJKnU/QHFzPA/hPhg0LMOhdwTdvUm+O/7cbFhAakvhLMdUZlEmj70Y
9DugBMLto6bHyMk4kXUyHzP4ProiFmTwNE5P5UFhtl60svAmkxYuQXFl6JeisxX/
zTIgie+GRZPuGSTtcKPy
=pfvF
-END PGP SIGNATURE-

-- 
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


Re: coding-dojo-20110921

2011-09-21 Thread Ken Wesson
On Wed, Sep 21, 2011 at 8:20 AM, Denis Labaye  wrote:
> Hello,
>
> On a code une implem alternative de retour dans le RER:
> https://gist.github.com/1231894
>
> A+
>
> Denis

Hello,

On a code what??

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
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


Re: advantage of dynamic typing

2011-09-21 Thread Ken Wesson
On Wed, Sep 21, 2011 at 3:00 AM, Dennis Haupt  wrote:
> yes, but you magically need to know
> a) for which types does it work? if you give a byte to the function,
> will you get an error, or its first bit? or its first char after its
> been converted to a string?
> b) if i want my data structure to support this, how do i have to do that?

I'm curious: in what world is API documentation considered to be magical? :)

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
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


Re: ClojureScript: Problem getting Browser Repl Env to Work

2011-09-21 Thread David Nolen
Hmm in my experience

1. Start the Browser REPL
2. Open your project's main html file (index.html)

And you're good to go. Sometimes you need to refresh the browser but that's
about it as far as I can tell.

Are you trying this against the built in sample?

David

On Tue, Sep 20, 2011 at 4:32 PM, Volker Schlecht
wrote:

> Hi everybody,
>
> I'm trying out the new browser repl-environment using both the
> tutorial (https://github.com/clojure/clojurescript/wiki/The-REPL-and-
> Evaluation-Environments) but so far am unable to get it to work.
>
> Using current (as of the writing of this mail) master from github, and
> following the Steps in the tutorial:
>
> 1. Starting up the repl works, leads me straight to the repl (i.e.
> allows me to enter an expression). I remember trying a previous
> version of the in-browser repl which worked for me, but in which i
> couldn't enter anything before the browser initiated a connection. The
> docs mention a wait for a browser connection being neccesary here ...
>
> 2. Setting up the XPC communication works, i.e. I see the initial GET
> request receiving sensible-looking javascript, and I see a POST of
> "ready" being answered by a "goog.provide('user')".
>
> 3. That's it however - connection closed. Non-surprisingly, entering
> any expression only hangs the REPL.
>
> Using curl as per browser.clj:
>
> 1. Startting REPL works, as above
> 2. curl -v -d "ready" http://localhost:9000/ responds with
>
> < HTTP/1.1 200 OK
> < Server: ClojureScript REPL
> < Content-Type: text/javascript; charset=utf-8
> < Content-Length: 26
> <
> * Connection #0 to host localhost left intact
> * Closing connection #0
> goog.provide('cljs.user');
>
> 3. Looking not too bad except for the closed connection, so entering
> (+ 1 1) hangs the REPL
>
> 4. curl -v -d "2" http://127.0.0.1:9000 then responds with the
> compiled javascript as far as I can tell:
>
> < HTTP/1.1 200 OK
> < Server: ClojureScript REPL
> < Content-Type: text/javascript; charset=utf-8
> < Content-Length: 61
> <
> cljs.core.pr_str.call(null,cljs.core._PLUS_.call(null,1,1));
> * Connection #0 to host localhost left intact
> * Closing connection #0
>
> To me it seems that something is awry with keeping that connection
> really open on my system.
>
> I'm on Debian SID and tried with firefox 6 and 7-beta as well as with
> google-chrome. JDK is Oracle Java 1,6.0_26-b03, ClojureScript is as
> stated above a vanilla copy of current master, freshly bootstrapped.
>
> Reverting to select previous states of ClojureScript (i.e. right after
> clojure.browser was merged into master, and right before) yielded no
> better results, except that those didn't get me to a REPL prompt at
> all and were stuck at "Server started...". The last and only time I
> had that working was with the clojure.browser branch from some time
> around August 26th.
>
> What am I doing wrong? Any hints?
>
> regards,
> Volker
>
> --
> 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 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

Recursion/Algorithm Question

2011-09-21 Thread ax2groin
I've been working through algorithm problems to learn the language a
little better. I'm currently struggling with the question about a
"robot" traversing a grid. If the grid is completely open, then the
answer to "how many possible ways to traverse the grid?" is simply the
math for combinations using factorials (see Project Euler #15). But if
you suppose that some places in the grid are blocked or that you have
to actually traverse the paths?

I know that the code below doesn't work yet (recur is not at the
tail). Think of it as pseudo-code to show my intent. I've left out the
other methods to get at the heart of what I'm asking about.
Essentially, each path leads to two more recursion points (at least
the way I've formulated it in my "else"), until they finally run out
of bounds or meet the goal. The input "n" represents the width of the
square grid. I'm using a two-element vector to represent a point in
the grid.

(defn get-paths
 [n]
 (let [paths (agent '()) goal (vector n n)]
  (loop [point [0 0] path '()]
   (cond (points-equal? goal point) (send paths conj (conj path
point))
 (out-of-bounds? n point) nil
 (blocked? point) nil
 :else (recur (inc-x point) (conj path point))
   (recur (inc-y point) (conj path point
  (deref paths)))

Perhaps ultimately, the approach I've tried here is a dead-end? I'm
not sure that this loop formulation would ever exit, or perhaps it
would exit too quickly.

-- 
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


coding-dojo-20110921

2011-09-21 Thread Denis Labaye
Hello,

On a code une implem alternative de retour dans le RER:
https://gist.github.com/1231894

A+

Denis

-- 
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


Re: Exception: Can't define method not in interfaces: fly

2011-09-21 Thread ru
Oops!
Sorry, my fault :(
Sincerely,
  ru

On 20 сен, 21:11, Meikel Brandmeyer  wrote:
> Hi,
>
> Am 20.09.2011 um 18:47 schrieb ru:
>
> > So, we can't define the same method with different signatures in one
> > protocol. Is it justifiably?
>
> ??? You were shown the correct syntax: (defprotocol Fly (fly [x] [x y])).
>
> Sincerely
> Meikel

-- 
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


Re: Exception: Can't define method not in interfaces: fly

2011-09-21 Thread ru
Oops!
Sorry, my fault :(
Sincerely,
  ru

On 20 сен, 21:11, Meikel Brandmeyer  wrote:
> Hi,
>
> Am 20.09.2011 um 18:47 schrieb ru:
>
> > So, we can't define the same method with different signatures in one
> > protocol. Is it justifiably?
>
> ??? You were shown the correct syntax: (defprotocol Fly (fly [x] [x y])).
>
> Sincerely
> Meikel

-- 
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


Re: advantage of dynamic typing

2011-09-21 Thread Laurent PETIT
2011/9/21 Thorsten Wilms 

> On 09/21/2011 01:51 AM, Laurent PETIT wrote:
>
>> I would see no problem of e.g. having a way to explicitly declare, in
>> the "public interface of the function" (as opposed to "derived
>> implicitly from the current implementation detail of the function") the
>> necessary constraints on the function arguments. And the guarantees on
>> the function's result.
>>
>> Those could then allow more checks at compile time, without sacrificing
>> genericity of the code.
>>
>
> Something like Racket's contracts, perhaps?
> http://pre.racket-lang.org/**docs/html/guide/contracts.html
>

Contracts are indeed a generalization of constraints on type properties


>
>
> --
> Thorsten Wilms
>
> thorwil's design for free software:
> http://thorwil.wordpress.com/
>
> --
> 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+unsubscribe@**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 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

Re: Storm

2011-09-21 Thread Max Weber
Thank you very much for such a great contribution to the Clojure
ecosystem! I cannot not wait to use Storm in my Clojure projects :-)

Best regards

Max

On 20 Sep., 17:05, nathanmarz  wrote:
> Yesterday I open-sourced Storm at Strange Loop. Storm is a distributed
> and fault-tolerant realtime computation system hosted 
> athttps://github.com/nathanmarz/storm
>
> Just want to preempt a few questions that I know people are wondering
> about the project:
>
> "Is Storm mostly written in Java?"
>
> If you look at the languages graph on Github, it says that Storm is
> "64% Java". However, this is inaccurate because those numbers include
> the Java code generated by the Thrift compiler. If you exclude the
> generated code, you'll find that Storm is over 50% Clojure in terms of
> line count. In terms of functionality though, Storm is around 98%
> Clojure. The Java code I wrote is mostly interfaces and small classes
> that a user of Storm would encounter in the public API (Java is, ahem,
> verbose).
>
> "Why isn't Storm written completely in Clojure?"
>
> I want Storm to be as accessible to as wide an audience as possible. A
> user's language preference or constraints shouldn't prevent them from
> being able to use Storm to solve their realtime computation problems.
> This is why I chose to define Storm's main interfaces in Java, and
> this is also why Storm supports using any language (including non-JVM
> ones) on top of Storm. That said, Storm has a Clojure DSL for
> programming topologies which is what I personally use for developing
> topologies.
>
> Clojure was a magnificent language to use to build Storm. Storm is a
> complex, intricate system, and Clojure helped a great deal in managing
> the complexity of the implementation.
>
> If you have any questions, I'd be happy to answer them.
>
> -Nathan

-- 
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


Re: advantage of dynamic typing

2011-09-21 Thread Dennis Haupt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 20.09.2011 22:55, schrieb Islon Scherer:
> Scala is a OO language with FP support, clojure is a functional
> language with OO support, they are very different. It's normal for
> someone with a OO background to think that every method receives a
> object of some kind and it's good to know it's type in advance, and
> if you want polymorphism you create a subclass or implement an
> interface but in clojure functions are polymorphic not classes. 
> Let's take the function first as an example, if you give a String
> to first you'll get the first char, if you give a vector or list
> you'll get the first element, if you give a java array you'll get
> the element at index 0.

yes, but you magically need to know
a) for which types does it work? if you give a byte to the function,
will you get an error, or its first bit? or its first char after its
been converted to a string?
b) if i want my data structure to support this, how do i have to do that?

both questions are answered by a signature. the java one would be via
an interface, and scala offers structural types which are much more
elegant in this case:
  def first[A](fromThis: {def first: A}) = fromThis.first

if that hurts, you can extract the type definition:

  type SupportsFirst[A] = {
def first:A
  }

  def first[A](fromThis: SupportsFirst) = fromThis.first

the compiler will tell you if whatever you want to put in there
doesn't have a method "first" having a matching signature



> In scala each collection class has a overriden first method so you
> can have a static and pre-defined return type, in clojure the first
> function is itself polymorphic so it doesn't make sense to say that
> the return type of first is Object because it depends on the
> parameter. You can code clojure's first function in scala but the
> parameter and return type would be Object, and you would have to
> typecast it anyway.

no, see above. i can tell scala (and even java!) to return whatever is
coming in

> (Maybe with scala's extremely fancy type system you can create a
> generic first function a la clojure but the type signature would
> make my eyes hurt :) With doc, source (the functions) and the repl,
> a static typing system would'n be that useful
> 
> -- 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

i have to object. a function signature in scala that takes something
(A) which contains something else (B) and returns such a something
else (B), for example first, would look like this:

def first[A, M[B]](fromThis:M[B]):A

- -- 

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.14 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJOeYudAAoJENRtux+h35aGB6MQAJqhJKRwW1ZJ2GVfU8jEqtJe
WMuckgmI2aXB2dn862ebQ5XOmbqy45twVICSql85ARJsVoRCJtUaIdu/nsQYQiXa
2cNCPGFgD1VN2woAd0P4glsBdtsfKTirz/HcLNbHlE34sTMHrn8h96TXuupb9XVM
s1Yg0Gdr/sUsvZmvwn/gi+pLQDuvkU0LW0dx+TJv64gm42nWanKypvGSGSzXpQNm
/4ilBEI3peMj9BIV5zZGJqiJoHaJ/cZuCtZEF19ic3o0RhtqPReOr5ud5+uzIQoN
A6/gmoAJ+GQX58XWCPCJsr7INjv9B4Zp/oAzTJ1Br5fZcMfHDRQ7ZurXXuRlxX8M
CkvbvHegVR8IAl9/EF3YlT//CDvHpgLGCTFgngzmmSUQ3MJEQA3g7S7VpE/zZq7Z
tBowTHNf3jOrYNUzrvhnvSMX3aGKvgKvEK0MRkD6zgueVfTGLPwXiUVscYM8/dhP
x0vvo3g5nSSdo5RxjHVnxJbudWDBznRbDSM3yJcDHouSit4MRPzBVLufegJn7sWF
MBK+z4Wd+YDtqL0ieDpS87VVtaTyUVUEdzcnbd6LaFgwyXPyCNYp9B7g4+CBxLMZ
IiRs+CG3LhGWh64LnkZ6Cy9zhkWvION9gb336GafkaGJgke+y+kz0pMCLLjVoki0
nlvrXMuWvS7hiwzOXW8J
=tVBH
-END PGP SIGNATURE-

-- 
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