Clojure ad on StackOverflow.com

2010-02-07 Thread Baishampayan Ghose

Hi,

This is an interesting attempt by the StackOverflow people to promote 
FOSS projects 
http://meta.stackoverflow.com/questions/31913/open-source-advertising 
sidebar-1h-2010/31972 (http://bit.ly/so-foss-ads)


I think we should create a couple of Clojure ads and vote them up.

Regards,
BG

--
Baishampayan Ghose 
oCricket.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: metadata and defn: why meta returns a non nil value on a function value ?

2010-02-07 Thread Ludovic Kuty
Thanks for having shared your findings.

I saw a post where Rich Hickey mentionned that he was planning to add
metadata to functions but I didn't know it was already done from what
I saw on the net.

On Feb 8, 2:54 am, Michał Marczyk  wrote:
> On 7 February 2010 16:40, Ludovic Kuty  wrote:
>
> > 1) When I call (meta f), I get something. I thought there can't be any
> > metadata on a function value. But I see :ns and :name in the map.
>
> I completely forgot about the first point... Metadata on functions has
> been introduced some time ago, can't seem to remember when exactly.
>
> Also, I've researched the second issue a little bit more and will post
> my findings in a second while changing the title of this thread in
> hope of bringing extra attention to what I think may be a bug in
> Compiler.java...
>
> Sincerely,
> Michał

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


Parallel version of list comprehension

2010-02-07 Thread Tim Snyder
Is there a straight-forward way to get parallelization when using list
comprehension?
The form of "for" syntax is much preferable to the closest I could
come up with using pmap.  I also was having trouble getting the
correct level of nesting down when using pmap, though probably because
I'm tired.

If there's nothing like a "pfor", is there a way to algorithmically
convert a list comp. into some nested pmaps?

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


An off-by-one error in attaching metadata to functions defined with defn

2010-02-07 Thread Michał Marczyk
Apparently the fn objects constructed with defn will have attached to
them the metadata which was attached to the Var named by the `name'
symbol in the defn form *prior* to the evaluation of defn form -- or
else the metadata of a freshly created Var when the Var did not exist
previously.

I think this is due to DefExpr's eval method binding the Var to
init.eval() first and attaching the supplied metadata to the Var later
-- see Compiler.java lines 341-352. (Note the Var is always already in
place when init.eval() is called, regardless of whether it existed
prior to the evaluation of the def / defn.) Thus the init expression
supplied by defn sees the old (and wrong) metadata on the Var.

Simply switching the if(initProvided) and if(meta != null) around
seems to produce some weird error, though, and my Java-fu is
regrettably too limited for me to be able to suggest a solution. :-(

Please find below a sample interaction at the REPL illustrating the
above (quoted from my earlier answer to Ludovic Kuty).

Sincerely,
Michał

> user> (def #^{:foo "bar"} x 5)
> #'user/x
> user> (meta #'x)
> {:ns #, :name x, :file "NO_SOURCE_FILE", :line 1, :foo "bar"}
> user> (defn x [] 5)
> #'user/x
> user> (x)
> 5
> user> (meta x)
> {:ns #, :name x, :file "NO_SOURCE_FILE", :line 1, :foo "bar"}
> user> (meta #'x)
> {:ns #, :name x, :file "NO_SOURCE_FILE", :line 1,
> :arglists ([])}

-- 
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: metadata and defn: why meta returns a non nil value on a function value ?

2010-02-07 Thread Michał Marczyk
On 7 February 2010 16:40, Ludovic Kuty  wrote:
> 1) When I call (meta f), I get something. I thought there can't be any
> metadata on a function value. But I see :ns and :name in the map.

I completely forgot about the first point... Metadata on functions has
been introduced some time ago, can't seem to remember when exactly.

Also, I've researched the second issue a little bit more and will post
my findings in a second while changing the title of this thread in
hope of bringing extra attention to what I think may be a bug in
Compiler.java...

Sincerely,
Michał

-- 
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: Inheriting from IDeref - good idea or bad practise?

2010-02-07 Thread Stuart Halloway
IMO Anything that implements IDeref should adhere to Clojure's vision  
for identity, e.g. reads need to be thread safe, cheap, require no  
coordination, and block no one.


Stu


Hi folks,

Would those more knowledgable about Clojure care to weigh in on
whether it be a good idea to create a custom class inheriting from
IDeref? I've been considering creating session proxy objects (to be
later replaced with protocols) that would respond to deref calls, e.g.

(def session
 (proxy [IDeref] []
   (deref [this]
 (read-session (.store this)))
   (store [this]
 {:type ::memory-store})))

Is this a good idea, or is it considered bad practice to use IDeref in
anything apart from core Clojure concurrently primitives?

- 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 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: Inheriting from IDeref - good idea or bad practise?

2010-02-07 Thread Allen Rohner
I can't comment on style, but I can say I successfully made a protocol
to implement SoftReferences:

(deftype SoftRefHolder [#^java.lang.ref.Reference ref]
  clojure.lang.IDeref
  (deref []
 (.get ref)))

(defn soft-reference
  "returns a soft reference to x. Access using deref"
  [x]
  (let [reference (SoftReference. x)
obj (SoftRefHolder reference)]
obj))

It works great, and I haven't encountered any problems yet. My
interpretation of the clojure source code is that Rich intentionally
made "things that can be dereferenced" (IDeref) orthogonal to "things
that participate in clojure concurrency" (IRef / Atom / Agent)

My one concern about fetching the session map from a database is the
cost in time. All the other deref operations take about as much time
as grabbing a lock. Going to the DB is an order of magnitude longer.
Typically, I use the session data multiple times per request. Maybe if
it were cached / memoized, that would be better.

Allen

On Feb 7, 3:12 pm, James Reeves  wrote:
> On Feb 7, 4:06 pm, Laurent PETIT  wrote:
>
> > I don't know, but it seems like a bad smell that you can't find your
> > joy by using the built-in state management constructs
>
> The build-in state management constructs only deal with data in
> memory. I'm thinking "deref" could potentially be more general. For
> instance, derefing a session object might fetch the corresponding
> session map from a SQL database.
>
> The alternative would be to write some deref-like function with a
> different name. However, I'm wondering if deref is currently generic
> enough that it could be used instead.
>
> - 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


Re: Inheriting from IDeref - good idea or bad practise?

2010-02-07 Thread James Reeves
On Feb 7, 4:06 pm, Laurent PETIT  wrote:
> I don't know, but it seems like a bad smell that you can't find your
> joy by using the built-in state management constructs

The build-in state management constructs only deal with data in
memory. I'm thinking "deref" could potentially be more general. For
instance, derefing a session object might fetch the corresponding
session map from a SQL database.

The alternative would be to write some deref-like function with a
different name. However, I'm wondering if deref is currently generic
enough that it could be used instead.

- 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


Re: Inheriting from IDeref - good idea or bad practise?

2010-02-07 Thread Laurent PETIT
I don't know, but it seems like a bad smell that you can't find your
joy by using the built-in state management constructs

( a bad smell in general, not saying on your side or on clojure side )

2010/2/7 James Reeves :
> Hi folks,
>
> Would those more knowledgable about Clojure care to weigh in on
> whether it be a good idea to create a custom class inheriting from
> IDeref? I've been considering creating session proxy objects (to be
> later replaced with protocols) that would respond to deref calls, e.g.
>
> (def session
>  (proxy [IDeref] []
>    (deref [this]
>      (read-session (.store this)))
>    (store [this]
>      {:type ::memory-store})))
>
> Is this a good idea, or is it considered bad practice to use IDeref in
> anything apart from core Clojure concurrently primitives?
>
> - 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 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


Inheriting from IDeref - good idea or bad practise?

2010-02-07 Thread James Reeves
Hi folks,

Would those more knowledgable about Clojure care to weigh in on
whether it be a good idea to create a custom class inheriting from
IDeref? I've been considering creating session proxy objects (to be
later replaced with protocols) that would respond to deref calls, e.g.

(def session
  (proxy [IDeref] []
(deref [this]
  (read-session (.store this)))
(store [this]
  {:type ::memory-store})))

Is this a good idea, or is it considered bad practice to use IDeref in
anything apart from core Clojure concurrently primitives?

- 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


Re: metadata and defn: why meta returns a non nil value on a function value ?

2010-02-07 Thread Michał Marczyk
Oh, and of course the final line of the above REPL interaction is this:

user> (meta #'x)
{:ns #, :name x, :file "NO_SOURCE_FILE", :line 1,
:arglists ([])}

Thus there's a sort of an off-by-one error in that the function
created by defn gets the metadata which was attached to its Var
*before* the defn form was evaluated (which will be the metadata of a
newborn Var if the defn form is the first one to have it constructed),
whereas the Var is subsequently given the correct metadata for the
function. Ouch. :-)

Sincerely,
Michał

-- 
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: metadata and defn: why meta returns a non nil value on a function value ?

2010-02-07 Thread Michał Marczyk
My conjecture would be that the Var gets constructed and assigned its
name in the current namespace first, then the function is constructed,
then metadata gets attached to the Var. Thus the first defn pulls
metadata to be attached to the newly constructed function from a newly
constructed Var, whereas the second defn re-uses the Var which was in
place earlier...

This would appear to support the above:

user> (def #^{:foo "bar"} x 5)
#'user/x
user> (meta #'x)
{:ns #, :name x, :file "NO_SOURCE_FILE", :line 1, :foo "bar"}
user> (defn x [] 5)
#'user/x
user> (x)
5
user> (meta x)
{:ns #, :name x, :file "NO_SOURCE_FILE", :line 1, :foo "bar"}

Sincerely,
Michał

-- 
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: Cartesian product of map pairs w/labels

2010-02-07 Thread Michał Marczyk
On 7 February 2010 16:28, Robert Campbell  wrote:
> That works perfectly and is much simpler, thank you.

Sure thing!

As for your macro producing (), note that it never uses its argument
in its body. What it does use instead is something called
'coordinates' -- my guess would be that you had that bound to an empty
map (or possibly an empty set -- wouldn't really make a difference)
and thus the result was hard-wired to be ().

Also, you're using something called flatten in your code to process
the result of a call to map -- check out mapcat for a shorter way to
do what I think this does. :-)

Sincerely,
Michał

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


metadata and defn: why meta returns a non nil value on a function value ?

2010-02-07 Thread Ludovic Kuty
Hello everyone,

I came upon a weird behaviour of Clojure. Weird as far as I understand
what is going on with metadata. Maybe not very far.

I understand that the reader macro #^ associates metadata with a form,
for use by macros or the compiler as illustrated below.

user=> (defmacro m [form] `(println (meta (quote ~form
#'user/m
user=> (m #^{:foo "bar"} '(1 2 3))
{:line 7, :foo bar}
nil
user=> (m #^{:foo "bar"} x)
{:foo bar}
nil

I think using a macro like m is the only way to get the metadata
associated with the symbol because symbols are different everytime we
construct one, even if their spelling is the same. That explains why
(defn ff [#^Integer x] (println (meta 'x)) x) fails to display the
metadata associated with formal argument x.

But when I define a function with defn augmenting the definition with
metadata, I observe two things I don't understand. I will comment on
the code below to illustrate my problem.

mac:clojure ludo$ clj
Clojure 1.2.0-master-SNAPSHOT
user=> (defn #^{:doc "doubles argument" :tag Integer} f [#^Integer x]
(* x 2))
#'user/f
user=> (meta f)
{:ns #, :name f}
user=> (defn #^{:doc "doubles argument" :tag Integer} f [#^Integer x]
(* x 2))
#'user/f
user=> (meta f)
{:ns #, :name f, :file "NO_SOURCE_PATH", :line
1, :arglists ([x]), :doc "doubles argument", :tag java.lang.Integer}
user=> (meta #'f)
{:ns #, :name f, :file "NO_SOURCE_PATH", :line
3, :arglists ([x]), :doc "doubles argument", :tag java.lang.Integer}

The first defn defines a fuction called f with metadata provided by
the reader for the symbol f and the symbol x. Thus the special form
def (hidden behind the macro defn) takes the metadata and associates
it with the var #'f.

1) When I call (meta f), I get something. I thought there can't be any
metadata on a function value. But I see :ns and :name in the map.

2) If a redefine f with the same call to defn, I get full metadata on
the value of f as well as #'f. As meta is an ordinary function, the
argument f gets evaluated, producing a function value and then I
retrieve the metadata associated with the value and get the whole
stuff as if I called it on #'f.

Point 1 is weird but point 2 is even weirder.

I would be thankful if anyone could provide insights on this problem.

Ludovic Kuty

-- 
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: Cartesian product of map pairs w/labels

2010-02-07 Thread Robert Campbell
Hi Michał,

That works perfectly and is much simpler, thank you.


On Sun, Feb 7, 2010 at 4:23 PM, Michał Marczyk  wrote:
> Ouch, sorry, I misread your specs... Use this instead:
>
> (map #(zipmap (keys coordinates) %)
>  (apply cartesian-product (vals coordinates)))
>
> With coordinates bound to your example map, this produces
>
> ({"baz" true, "bar" \a, "foo" 1}
>  {"baz" false, "bar" \a, "foo" 1}
>  ...)
>
> (which is your example output with the keys ordered differently in the
> small maps).
>
> Sincerely,
> Michał
>
> --
> 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: Cartesian product of map pairs w/labels

2010-02-07 Thread Michał Marczyk
Ouch, sorry, I misread your specs... Use this instead:

(map #(zipmap (keys coordinates) %)
  (apply cartesian-product (vals coordinates)))

With coordinates bound to your example map, this produces

({"baz" true, "bar" \a, "foo" 1}
 {"baz" false, "bar" \a, "foo" 1}
 ...)

(which is your example output with the keys ordered differently in the
small maps).

Sincerely,
Michał

-- 
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: Dutch Clojure users

2010-02-07 Thread Robert Campbell
I'm only 1.5hr flight away in Prague. I'd be happy to host any Clojure
users to trade notes over our famous beer.


On Sat, Feb 6, 2010 at 12:26 PM, Joop Kiefte  wrote:
> Hello folks!
> I am from the Netherlands and I am learning Clojure now, using it at work,
> and loving it so far. Are there any more dutch Clojure programmers on this
> list so we can meet? I am also interested to know about Clojure-programmers
> from any country in a reasonable distance from Strasbourg.
> Joop Kiefte
> --
> Communication is essential. So we need decent tools when communication is
> lacking, when language capability is hard to acquire...
>
> - http://esperanto.net  - http://esperanto-jongeren.nl
>
> Linux-user #496644 (http://counter.li.org) - first touch of linux in 2004
>
> --
> 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: Cartesian product of map pairs w/labels

2010-02-07 Thread Michał Marczyk
On 7 February 2010 16:10, Robert Campbell  wrote:
> Imagine a map m {
> [ snip ]
> }
>
> How could I transform that into a seq s (
> [ snip ]
> )

To answer this part of the question:

You could (use 'clojure.contrib.combinatorics) (for cartesian-product), then do

(map #(interleave (keys coordinates) %)
  (apply cartesian-product (vals coordinates)))

Note that you could parametrise it to make it into a function -- no
macro needed here.

Sincerely,
Michał

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


Cartesian product of map pairs w/labels

2010-02-07 Thread Robert Campbell
Imagine a map m {
   "foo" [1 2 3 4]
   "bar" [\a \b \c]
   "baz" [true false]
}

How could I transform that into a seq s (
   {"foo" 1 "bar" \a "baz" true}
   {"foo" 1 "bar" \a "baz" false}
   {"foo" 1 "bar" \b "baz" true}
   {"foo" 1 "bar" \b "baz" false}
   {"foo" 1 "bar" \c "baz" true}
   {"foo" 1 "bar" \c "baz" false}
   {"foo" 2 "bar" \a "baz" true}
   ...
)

I've made a macro to expand the map over a for:
(defmacro cartesian-map [m]
  `(for ~(vec (reduce #(concat %1 %2) (map #(identity [(symbol %)
(list 'coordinates %)]) (keys coordinates
 ~(apply hash-map (flatten (map #(identity [% (symbol %)]) (keys
coordinates))

and expands correctly:
(clojure.core/for [foo (coordinates "foo") bar (coordinates "bar") baz
(coordinates "baz")] {"foo" foo, "bar" bar, "baz" baz})

but when I run it, I only get (), which doesn't make any sense because
if I run the expansion against the map m, it performs correctly.

Why would the macro expand correctly, but no run correctly in the
REPL? Also, are there any ways to simplify my macro?

Rob

-- 
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: Dutch Clojure users

2010-02-07 Thread Hubert Iwaniuk
Great to hear that there is Clojure group around.

For ease of finding it:
http://groups.google.com/group/amsterdam-clojurians?hl=en

Cheers,
Hubert



On Sun, Feb 7, 2010 at 4:37 AM, Jeff Rose  wrote:
> There is a group of us hacking Clojure in Amsterdam and Utrecht.
> Where are you?  Join the Amsterdam Clojurians Google group, and we'll
> meet for a pizza.
>
> -Jeff
>
> On Feb 6, 12:26 pm, Joop Kiefte  wrote:
>> Hello folks!
>>
>> I am from the Netherlands and I am learning Clojure now, using it at work,
>> and loving it so far. Are there any more dutch Clojure programmers on this
>> list so we can meet? I am also interested to know about Clojure-programmers
>> from any country in a reasonable distance from Strasbourg.
>>
>> Joop Kiefte
>>
>> --
>> Communication is essential. So we need decent tools when communication is
>> lacking, when language capability is hard to acquire...
>>
>> -http://esperanto.net -http://esperanto-jongeren.nl
>>
>> Linux-user #496644 (http://counter.li.org) - first touch of linux in 2004
>
> --
> 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: Dutch Clojure users

2010-02-07 Thread Joop Kiefte
I'm closer to Utrecht (Ede) but the train reaches both places directly. And
I work closer to Rotterdam.

2010/2/7 Jeff Rose 

> There is a group of us hacking Clojure in Amsterdam and Utrecht.
> Where are you?  Join the Amsterdam Clojurians Google group, and we'll
> meet for a pizza.
>
> -Jeff
>
> On Feb 6, 12:26 pm, Joop Kiefte  wrote:
> > Hello folks!
> >
> > I am from the Netherlands and I am learning Clojure now, using it at
> work,
> > and loving it so far. Are there any more dutch Clojure programmers on
> this
> > list so we can meet? I am also interested to know about
> Clojure-programmers
> > from any country in a reasonable distance from Strasbourg.
> >
> > Joop Kiefte
> >
> > --
> > Communication is essential. So we need decent tools when communication is
> > lacking, when language capability is hard to acquire...
> >
> > -http://esperanto.net -http://esperanto-jongeren.nl
> >
> > Linux-user #496644 (http://counter.li.org) - first touch of linux in
> 2004
>
> --
> 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
>



-- 
Communication is essential. So we need decent tools when communication is
lacking, when language capability is hard to acquire...

- http://esperanto.net  - http://esperanto-jongeren.nl

Linux-user #496644 (http://counter.li.org) - first touch of linux in 2004

-- 
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 Jobs in White Plains, NY

2010-02-07 Thread Michael Kohl
On Thu, Feb 4, 2010 at 10:29 PM, Eric Thorsen  wrote:
> ThorTech Solutions
> care...@thotech-solutions.com

Is the missing 'r' in the mail address a kind of pre-selection of
applicants? ;-)

Michael

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