Using map on multiple collections.

2009-12-22 Thread Nicolas Buduroi
Hi, today I needed to use the map function on multiple collections
which didn't had all the same length. In this case, it returns a
sequence of the size of smallest one. But the problem I was facing was
required to map until the end of the longest, padding the smaller ones
with a default value. I came up with this:

(defn mappad [f val & colls]
  (let [longest (apply max (map count colls))
colls   (map #(if (< (count %) longest)
(concat % (repeat val))
%) colls)]
(apply (partial map f) colls)))

user> (mappad #(+ %1 %2 %3) 0 [1] [2 3] [4 5 6])
(7 8 6)

Is there a better way?

- budu

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 + Music Notation

2009-12-22 Thread Mark Engelberg
Despite what others have said, I'm going to chime in and say that I
think an immutable hierarchy is going to be awkward for the use case
you describe.

In your example, notes are buried fairly deep in a hierarchy.  Now if
you always tend to make manipulations by starting from the root score
node and working your way down the hierarchy, immutability works just
fine.  But if you want to modify a note that somehow you've stored in
a separate list of notes, or the user has clicked on the note, or some
other kind of interaction where the note is being considered
separately from the rest of the hierarchy, you've got a problem.
update-in and assoc-in are only useful if you know the route from the
root score node to the note.  And that information might not be
readily available.  Similarly, the zipper library is only useful if
you've arrived at a given note through a series of zipper-style
navigations down the hierarchy.  So I really doubt that either of
these proposed solutions will do you much good if you need to
frequently manipulate notes without drilling down to get to them.

I think you have two basic options:

1.  Use refs.  A score/measure/note/etc. are each refs containing the
appropriate struct.  This is basically like using pointers in a
typical language, but you have the advantage of using transactions to
make a bunch of simultaneous updates where other threads will never
see the tree in an intermediate state.

2.  Each struct for score/measure/note also contains a "name" field
which contains a unique name.  Maintain a big map of all names to
structs.  Scores do not directly link to measures, but instead contain
the *names* of the measures.  To drill down from a score to the
measure, you must look up the measure by name in the big map.  To
update a note, you just assoc the note name with the new note object
in the big map.  This method is fully immutable.  Updating a note
without knowing the full route through the hierarchy is easy because
the objects are not directly coupled.  The big map of names to structs
is a persistent object that essentially can give you a snapshot
history of all changes that are made.  The main price you pay is that
drilling down through the hierarchy becomes a bit slower because you
must always look up the names in the map.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: text flow - a trivial generator of RFC like ASCII call flows (sequence diagrams)

2009-12-22 Thread Richard Newman
> Thanks, look very interesting!
> On what SIP server did you try it, only Sailfin?

Yes, just SailFin. It should work seamlessly with SIPMethod, too, and  
is likely to work with any SIP Servlet-compliant container. I've never  
used WebLogic/OCCAS.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Why use monads

2009-12-22 Thread jim
Chouser,

You're right that maybe-comp is simpler. Once you realize that the
functions you want to compose are monadic functions under the maybe-m
monad, you get that composition for 'free', with no further mental
effort. With such a simple example, it's hard to see the benefit, but
with more complicated monads the difference between the monad
composition and ad-hoc style becomes greater. Where the ad-hoc version
would have to be debugged, the monad version would already be proven
to be correct.

Beyond that, there are other things that you get 'for free' by using
the monad functions. Don't have time to enumerate them now but might
later.

Jim

On Dec 22, 3:14 pm, Chouser  wrote:
>
> It's interesting to me that the definition of maybe-comp above is
> arguably simpler that the definition of maybe-m, even without
> counting the machinery of 'defmonad'.  Presumably this is a hint
> to how much more powerful maybe-m is than maybe-comp, and simply
> shows I don't yet understand the power of monads.
>
> --Chouser
> --
> -- I funded Clojure 2010, did you?  http://clojure.org/funding

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Why use monads

2009-12-22 Thread Chouser
On Mon, Dec 21, 2009 at 7:18 PM, jim  wrote:
> Just posted a short piece on why monads are useful. This was prompted
> by some conversations last week with some folks. Comments, questions
> and criticisms welcome.
>
> http://intensivesystems.net/tutorials/why_monads.html

Thanks for writing that up.  I keep reading approachable tidbits
about monads like this, without really digging into learning all
there is to know about monads.  It's hardly fair of me to comment
on this at all before I do that deeper digging, but for what it's
worth here's a non-monadic solution to the particular problem
presented.  It's just a high-level function that defines
a comp-like fn with the desired behavior:

  (defn maybe-comp [& fns]
(fn [x] (reduce #(when %1 (%2 %1)) x (reverse fns

Use it like this:

  (def all (maybe-comp dec-m double-m inc-m))

It's interesting to me that the definition of maybe-comp above is
arguably simpler that the definition of maybe-m, even without
counting the machinery of 'defmonad'.  Presumably this is a hint
to how much more powerful maybe-m is than maybe-comp, and simply
shows I don't yet understand the power of monads.

--Chouser
--
-- I funded Clojure 2010, did you?  http://clojure.org/funding

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: eval performance

2009-12-22 Thread kyle smith
I haven't touched it in a while, but I'm going to pick it back up soon.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Renaming 1.1.0-alpha-SNAPSHOT is causing problems with projects on Clojars

2009-12-22 Thread liebke
I uploaded a version of Compojure to Clojars, that depends on the
renamed clojure jar, as temporary fix. Use the following line to your
project.clj file:

 [org.clojars.liebke/compojure "0.3.1-master"]

I mention this problem here:
http://incanter-blog.org/2009/11/29/incanter-webapp/

David


On Dec 22, 7:02 am, Baishampayan Ghose  wrote:
> Phil,
>
> >> I like the new naming scheme, but would it be possible to add 1.1.0-
> >> alpha-SNAPSHOT back to the repository (in addition to the new names),
> >> so that builds dependent on projects in Clojars will be able to
> >> download their dependencies correctly again, at least until everybody
> >> gets a chance to upload new poms to Clojars?
>
> > The jars with the old version number haven't disappeared, have they?
> > Projects relying on -alpha should still work, they will just not get the
> > latest and greatest version of Clojure.
>
> > Please speak up if you've noticed otherwise, but that's my understanding.
>
> Well, the jars never existed for me since I started using Leiningen
> recently. I want to migrate our project to Leiningen but I can't since
> Compojure still depends on a non-existent clojure package.
>
> Is it too hard to fix this problem?
>
> 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: Clojure + Music Notation

2009-12-22 Thread Meikel Brandmeyer
Hi,

Am 21.12.2009 um 22:09 schrieb PM:

> I've mocked it up before using structmaps, but I get stuck when it
> comes to doing all this with immutable structures.  Immutability is no
> problem for a system like Lilypond where the score data is fixed when
> the program runs, but in a system where some of these items may be
> changing as the score is edited, how do you handle that?  Returning a
> new note via assoc implies that a track's contents would also change,
> making it a new track, and so on up the chain. (?)

Besides zippers you might also want to look update-in and assoc-in. They work 
both with maps and vectors.

(update-in score [:this-measure :that-stave :the-other-track] modify-track with 
additional args)
(assoc-in score [:this-measure :that-stave :a-new-track] some-new-track)

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: Recommendation for Clojure Indentation tool

2009-12-22 Thread Laurent PETIT
There is John Harrop's one, here
http://groups.google.com/group/clojure/browse_thread/thread/6a16bb89340f46d8/fb03dffa410e919a?lnk=gst&q=harrop+indent#fb03dffa410e919a



2009/12/22 Gabi 

> I need a simple command-line tool to indent Clojure source files.
> Any recommendation ?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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 + Music Notation

2009-12-22 Thread Miron Brezuleanu
Hello,

On Mon, Dec 21, 2009 at 11:09 PM, PM  wrote:
> I'm a new Clojure user.  I've been working my way through SICP and the
> videos that accompany it, and I've also read the Clojure book.  I
> already do a lot of work with a music notation library (JMSL) in Java,
> and I'd like to see if I could do some tasks more simply in Clojure.
>
> One of the issues I run into is how to represent a musical score using
> immutable objects.  A naïve representation of a score might look
> something like:
>
> - Score contains measures
> - Measures contain staves
> - Staves contain tracks
> - Tracks contain notes
> - Notes contain articulations, dynamics, and other extras.
>
> I've mocked it up before using structmaps, but I get stuck when it
> comes to doing all this with immutable structures.  Immutability is no
> problem for a system like Lilypond where the score data is fixed when
> the program runs, but in a system where some of these items may be
> changing as the score is edited, how do you handle that?  Returning a
> new note via assoc implies that a track's contents would also change,
> making it a new track, and so on up the chain. (?)

Are you worried about data structure copying? Because I think you
shouldn't be. Clojure's persistent data structure minimize copying,
and besides, even in older languages this kind of update has a
'functional flavor'.

For instance, in K&R's "The C Programming Language", 1st edition,
there is an example about counting words which uses a binary tree to
ensure quick access to a word. So this is C, imperative, with manual
memory management. But what they do is reuse subtrees a lot (If one
has to add a word to a tree, it's either added to the left or the
right subtree, and the unmodified subtree is just reused - this means
that, barring unbalancing of the tree, when modifying a tree with N
elements, they actually only change/rebuild Log2(N) nodes, and the
rest is reused).

The same happens a lot with data structures in functional languages -
the simplest example being consing, which creates a new list from an
old list, but it's all a O(1) operation because the old list is just
reused/linked to.

With nested maps in Clojure it's the same. If you use update-in or
assoc-in to update a note, the score is mostly the same, because most
of the old score is reused (even though it's a 'new one' - which makes
sense). <=== so try using update-in, assoc-in and get-in and maybe
your data structure will be easier to manipulate. Zippers are great
too, as James Sofra suggests.

I hope I managed to describe what you were missing, I probably used
too many words in the attempt :-)

-- 
Miron Brezuleanu

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Renaming 1.1.0-alpha-SNAPSHOT is causing problems with projects on Clojars

2009-12-22 Thread Baishampayan Ghose
Phil,
>> I like the new naming scheme, but would it be possible to add 1.1.0-
>> alpha-SNAPSHOT back to the repository (in addition to the new names),
>> so that builds dependent on projects in Clojars will be able to
>> download their dependencies correctly again, at least until everybody
>> gets a chance to upload new poms to Clojars?
>
> The jars with the old version number haven't disappeared, have they?
> Projects relying on -alpha should still work, they will just not get the
> latest and greatest version of Clojure.
>
> Please speak up if you've noticed otherwise, but that's my understanding.

Well, the jars never existed for me since I started using Leiningen 
recently. I want to migrate our project to Leiningen but I can't since 
Compojure still depends on a non-existent clojure package.

Is it too hard to fix this problem?

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: Second Lisp to Learn

2009-12-22 Thread blackdog

Thanks for the links, the last gives a good summary.

I think newlisp is great for scripting, if i were on the jvm on a large
project I'd use clojure, but for tasks that I might use ruby,python, or
perl for i find newlisp refreshingly clean and direct.

It may be warty, if warty means practical. Clojure is practical too yet
here described as an abomination, http://www.loper-os.org/?p=42 - it's
too bad folks trying to get work done get a bad wrap from those in ivory
towers.

bd


On Mon, 2009-12-21 at 11:06 -0800, Richard Newman wrote:
> > newLISP
> 
> I've seen enough about newLISP to not bother.
> 
> http://lambda-the-ultimate.org/node/257#comment-1901
> 
> http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/39a9e50aa548637f
> 
> http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
> 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 and c++ and a bit more

2009-12-22 Thread mac
On Dec 21, 3:09 pm, pmf  wrote:
> On Dec 20, 7:22 pm, nathaniel  wrote:
>
> > Does anyone know of Clojure features
> > which rely on Java features that would be prohibitively difficult to
> > implement in C++?
>
> You might run into the problem than any C++ garbage collector you find
> will probably not be quite as efficient as the JVM's garbage collector
> (I don't think it would be possible to implement Clojure without a
> GC). Additionally, a lot of Clojure's concurrency features rely on
> Java's concurrency mechanisms and how these are mapped to the JVM's
> concurrency semantics and memory model, for which you will also have
> to find a suitable C++ library.

Yes, if you want to port Clojure to native code it might be easier to
use a host language that already has these features but closely
resembles C++.
Candidates are D and the new Google Go.
Go in particular seems interesting because one of their goals is to
make a very efficient GC and the language is somewhat multicore aware.

/mac

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 create instance of java class that is internal of other?

2009-12-22 Thread Alex Ott
Resolved, thanks to peoples from #clojure

Alex Ott  at "Tue, 22 Dec 2009 11:03:28 +0100" wrote:
 AO> Hello

 AO> I'm currently playing with closure-templates, and have one question - to
 AO> load template, i need to create instance of class, that is internal class
 AO> of another java class:

 AO> in java example there is following code

 AO> SoyFileSet sfs = (new SoyFileSet.Builder()).add(new 
File("simple.soy")).build();

 AO> I'm trying to use following Clojure code:

 AO> (ns hello-world
 AO> (:import com.google.template.soy.SoyFileSet))

 AO> (let [sfs (doto (new SoyFileSet.Builder)
 AO>   (.add (File. "hello_world.soy"))
 AO>   (.build))]


 AO> but has no success - i tried to import explicitly via (:import
 AO> com.google.template.soy.SoyFileSet.Builder), but only get
 AO> java.lang.ClassNotFoundException

 AO> How to properly create such instances?



-- 
With best wishes, Alex Ott, MBA
http://alexott.blogspot.com/   http://xtalk.msk.su/~ott/
http://alexott-ru.blogspot.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


Recommendation for Clojure Indentation tool

2009-12-22 Thread Gabi
I need a simple command-line tool to indent Clojure source files.
Any recommendation ?

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


how to create instance of java class that is internal of other?

2009-12-22 Thread Alex Ott
Hello

I'm currently playing with closure-templates, and have one question - to
load template, i need to create instance of class, that is internal class
of another java class:

in java example there is following code

SoyFileSet sfs = (new SoyFileSet.Builder()).add(new File("simple.soy")).build();

I'm trying to use following Clojure code:

(ns hello-world
(:import com.google.template.soy.SoyFileSet))

(let [sfs (doto (new SoyFileSet.Builder)
  (.add (File. "hello_world.soy"))
  (.build))]


but has no success - i tried to import explicitly via (:import
com.google.template.soy.SoyFileSet.Builder), but only get
java.lang.ClassNotFoundException

How to properly create such instances?

-- 
With best wishes, Alex Ott, MBA
http://alexott.blogspot.com/   http://xtalk.msk.su/~ott/
http://alexott-ru.blogspot.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: eval performance

2009-12-22 Thread Gabi
Superb!
This is exactly what I needed.. A way to get rid of the awkward intern
and boost performance.
Have you progressed far with your GP experimenting ?






On Dec 22, 4:17 am, kyle smith  wrote:
> Here's the macro I used when I dabbled in Genetic Programming:
>
> user> (time (dotimes [_ 1000]
>               (intern  'user 'x (rand))
>               (eval '(+ (* x x) 5
> "Elapsed time: 425.754877 msecs"
>
> user> (defmacro capture-vars [vars expr]
>         `(fn [...@vars] ~(first (next expr
> #'user/capture-vars
> user> (time (let [f (eval (capture-vars [x] '(+ (* x x) 5)))]
>               (dotimes [_ 100];note the iterations!
>                 (f (rand)
> "Elapsed time: 73.936157 msecs"

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Renaming 1.1.0-alpha-SNAPSHOT is causing problems with projects on Clojars

2009-12-22 Thread bOR_
solved my problem by figuring out that in ubuntu, leiningen / maven
needs to have the proxy settings specified in ~/.m2/settings.xml


[INFO] snapshot incanter:incanter:1.0-master-SNAPSHOT: checking for
updates from central
[WARNING] repository metadata for: 'snapshot incanter:incanter:1.0-
master-SNAPSHOT' could not be retrieved from repository: central due
to an error: Error transferring file
[INFO] Repository 'central' will be blacklisted
[INFO] snapshot incanter:incanter:1.0-master-SNAPSHOT: checking for
updates from clojure-snapshots
[WARNING] repository metadata for: 'snapshot incanter:incanter:1.0-
master-SNAPSHOT' could not be retrieved from repository: clojure-
snapshots due to an error: Error transferring file
[INFO] Repository 'clojure-snapshots' will be blacklisted
[INFO] snapshot incanter:incanter:1.0-master-SNAPSHOT: checking for
updates from clojars
[WARNING] repository metadata for: 'snapshot incanter:incanter:1.0-
master-SNAPSHOT' could not be retrieved from repository: clojars due
to an error: Error transferring file
[INFO] Repository 'clojars' will be blacklisted


  .
  .
  
   
  true
  http
  proxy.somewhere.com
  8080
  proxyuser
  somepassword
  www.google.com|*.somewhere.com

  
  .
  .



On Dec 11, 9:31 am, bOR_  wrote:
> Not sure what was causing it, butleiningen/ clojars couldn't get its
> deps yesterday. I thought it was caused by clojure and clojure-contrib
> no longer being on clojars.org, but maybe the renaming on
> build.clojure.org has something to do with it.
>
> On Dec 11, 6:18 am, Phil Hagelberg  wrote:
>
>
>
> > liebke  writes:
> > > I like the new naming scheme, but would it be possible to add 1.1.0-
> > > alpha-SNAPSHOT back to the repository (in addition to the new names),
> > > so that builds dependent on projects in Clojars will be able to
> > > download their dependencies correctly again, at least until everybody
> > > gets a chance to upload new poms to Clojars?
>
> > The jars with the old version number haven't disappeared, have they?
> > Projects relying on -alpha should still work, they will just not get the
> > latest and greatest version of Clojure.
>
> > Please speak up if you've noticed otherwise, but that's my understanding.
>
> > -Phil

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


Re: text flow - a trivial generator of RFC like ASCII call flows (sequence diagrams)

2009-12-22 Thread Tzach
Thanks, look very interesting!
On what SIP server did you try it, only Sailfin?
I'm working mostly with Oracle OCCAS (formerly WebLogic Sip Server).

BTW, I added a minor feature, which make the actor specify optional.

On Dec 22, 2:54 am, Richard Newman  wrote:
> > Thanks Newman
> > Useful link!
> > I'm doing a lot of SIP as well, and I even have a (not so) secret plan
> > to extend this to create a simple SIP UA simulation.
>
> You might be interested in
>
> http://github.com/rnewman/clj-sip

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en