Re: Clojure + Redis

2010-01-05 Thread Gabi
I think you should do "(binding [*print-dup* true] (pr-str value).."
instead of  just (pr-str value) in the encode-value function. (line 20
in redis_memo.clj)

On Jan 4, 2:55 pm, Steve Purcell  wrote:
> Read the code I posted in this thread and put up on github after you 
> expressed interest.
>
> That's part of what it does, using the reader/printer representation.
>
> Alternatives would include standard Java binary serialisation or 3rd party 
> libraries (Hessian/Burlap?).
>
> -Steve
>
> On 4 Jan 2010, at 12:15, Gabi wrote:
>
> > What if I wanted to use Redis just persist binary (serialized) clojure
> > objects ?
> > What's the easiest (and fastest) way to serialize/de-serialize vectors
> > or lists in Clojure ? (so the can stored as blobs in Redis)
>
> > On Jan 4, 12:59 pm, Gabi  wrote:
> >> Maybe, though I would avoid distributed transactions as much as
> >> possible. They are complex and slow creatures.
>
> >> On Jan 4, 12:51 pm, Shantanu Kumar  wrote:
>
> >>> On Jan 2, 5:12 am, Gabi  wrote:
>
>  I am interested in the idea: Completely stateless set of Clojure nodes
>  (on many machines), operating on a central state stored in some
>  datastore.
>  If transactions could be managed somehow, I think it would be very
>  compelling model for many applications.
>
> >>> Do you mean distributed transactions?
>
> > --
> > 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: Maven dependency on release 1.1.0

2010-01-05 Thread Mark Derricutt
Good to know - I didn't realize that had the release in it - how come
no /release repo or central syncing?
-- 
Pull me down under...

On Tue, Jan 5, 2010 at 10:42 AM, Phil Hagelberg  wrote:
> You can use http://build.clojure.org/snapshots as a repository. Even
> though it has "snapshots" in the URL, it still contains the 1.1.0
> release.

-- 
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: Understanding the continuation monad's bind operator

2010-01-05 Thread Konrad Hinsen
On 05.01.2010, at 02:23, Steven E. Harris wrote:

> ,
> | (fn m-bind-cont [mv f]
> |   (fn [c]
> | (mv (fn [v] ((f v) c)
> `
>
> I'm curious why there's an extra delaying wrapper function there. The
> outermost `fn' form taking the argument "c" as a continuation looks  
> like
> it serves only to delay evaluation of the remaining forms.

Exactly. The result of m-bind must be a continuation-accepting  
function again. That's the role of the outer layer (fn [c] ...).

> If all of that is true, then the form
>
> ,
> | (f v)
> `
>
> should evaluate to a monadic value and be suitable as a return value
> from `m-bind'

It is indeed a value of the right type, but it is not right value that  
represents the composite computation.

> In short, why is this not an acceptable implementation?
>
> ,
> | (fn m-bind-cont [mv f]
> |   (mv (fn [v] (f v
> `

This version of m-bind would not return the composite computation, but  
rather execute it immediately. This is best seen by the position of  
mv. In your m-bind, mv is called when m-bind is called. That's not the  
desired behaviour.

Konrad.

-- 
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: [ANN] FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Rick Moynihan
2010/1/5 Mark McGranaghan :
> Hi All,
>
> I'm happy to announce the alpha release of 'FleetDB', a schema-free
> database implemented in Clojure and optimized for agile development.

>From a quick skim of the docs, this looks pretty interesting.  Some questions:

1) Is it possible to implement a join across several collections,
within the same database snapshot?

2) What happens when the data exceeds available memory?

R.

-- 
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 add extend print-method without screwing up ?

2010-01-05 Thread Gabi
Hi
I am trying to extend Clojures' print-method using defmethod for a
library I develop.:
How can I do this without affecting users of my lib (i want only my
lib to be affected )?

(derive clojure.lang.Fn ::fn)
(prefer-method print-method ::fn  java.lang.Object)

(defmethod print-method ::fn
[o w]
   (.write w "Some Fn")

This is quite nice, but I would like to use a private hierarchy for
the above, but cant. (print-method is defined on global hierarchy)
What should I do ?

-- 
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: clj-peg v0.6 released

2010-01-05 Thread Seth
I forgot to appreciate having something like clg-peg to play with...
no clue where my manners went. Is this comparable at all to Scala's
parser combinators?

On Jan 5, 12:17 am, Richard Lyman  wrote:
> Yeah, the management software for my site is in flux. Getting RSS done is on
> the todo list, but not very high.
>
> There really aren't pre-releases - when I have a version to release I
> announce it here as soon as it's available. I hadn't thought that there
> might actually be people interested in pre-releases... thanks for the
> suggestion. Maybe adding RSS feeds back in should take a higher priority.
>
> -Rich
>
>
>
> On Mon, Jan 4, 2010 at 8:25 PM, Seth  wrote:
> > An RSS feed might help early adopters test prereleases, but it's been
> > explicitly disabled?
>
> > On Jan 4, 5:43 pm, Richard Lyman  wrote:
> > > Oh, sorry!
>
> > > I was thinking about releasing this version last week - but with the new
> > > year likely taking precedence I thought I'd wait.
>
> > > Maybe next time I'll send you a version a few days before I announce it.
> > ;-)
>
> > > -Rich
>
> > > On Mon, Jan 4, 2010 at 3:32 PM, Anniepoo  wrote:
> > > > Sweet!
>
> > > > Wish I'd had this a few days ago, I just spent the last few days
> > > > writing parsers.

-- 
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: clj-peg v0.6 released

2010-01-05 Thread Richard Lyman
I'm not familiar with Scala's parser combinators, in addition, I'm fuzzy on
the technical definition of a parser combinator.

I think I'd call it a parser combinator, since the grammar is embedded in
the code using native Clojure data structures, evaluation can be delayed,
and grammar definitions can be modified at runtime before the parser is
generated.

What key parts to the definition of "parser combinator" would need to be met
in order to be comparable to Scala's parser combinators?

-Rich


On Tue, Jan 5, 2010 at 6:00 AM, Seth  wrote:

> I forgot to appreciate having something like clg-peg to play with...
> no clue where my manners went. Is this comparable at all to Scala's
> parser combinators?
>

-- 
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: [ANN] FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Anders Rune Jensen
On Tue, Jan 5, 2010 at 1:12 AM, Mark McGranaghan  wrote:
> Hi All,
>
> I'm happy to announce the alpha release of 'FleetDB', a schema-free
> database implemented in Clojure and optimized for agile development.
>
> From the homepage at http://fleetdb.org: "FleetDB offers a flexible
> and expressive data model designed for the needs of modern application
> developers; a combination of schema-free records, declarative queries,
> automatically maintained indexes, and an optimizing query planner make
> it easy to manipulate and retrieve data. By keeping all data in RAM as
> persistent data structures, FleetDB is able to offer multi-document
> transactions, excellent concurrency semantics, and high performance.
> Writing to an append-only log provides durability in the form of a
> single file that can be transfered and analyzed using standard Unix
> tools. FleetDB is accessible via a simple JSON-based protocol that is
> implemented by clients in several programming languages."

Very interesting! I've been looking for something like this. I was
looking through the documentation and it seems that "automatically
maintained indexes" is not implemented yet?

-- 
Anders Rune Jensen
http://people.iola.dk/arj/

-- 
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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Meikel Brandmeyer
Hello Mark,

On Jan 5, 1:12 am, Mark McGranaghan  wrote:

> I'm happy to announce the alpha release of 'FleetDB', a schema-free
> database implemented in Clojure and optimized for agile development.

This seems very nice on a first look. Maybe exactly what I was looking
for: small and easy to use (I don't need distribution and such...).
Just one question for data persistence: Is there a way of doing some
snapshots of the db to cut the log down? Or at least to merge updates
to the same entries? I don't want to replay the last three years when
restarting the server.

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


Clojure, Maven and Swank

2010-01-05 Thread Kyle R. Burton
Hello,

I was wondering if anyone else had run into these issues or might know
what we're experiencing.

Our project is using the maven clojure plugin (works superbly) and
swank.  We have a long running service that both runs a swank listener
and a Repl when it starts (so we can connect to and interact with it).
 We've listed swank-clojure as a dependency in the pom.xml file, but
if we require swank.swank from the ns definition in clojure, then
something strange happens: the maven compilation hangs just after the
clojure compiler prints out that it's compiling the last of our
clojure files.  As far as we can tell, neither mvn, or java are doing
anything useful - strace shows that the parent java process (mvn) is
in a call to futex and the child process is in the same system call.
Whatever they are awaiting eventually happens and the compile finishes
- though it takes a significant amount of time.  Removing the require
eliminates the mysterious hang.

We've worked around this by not doing the require in the ns
definition, still mentioning swank as a dependency in the pom, using
assembly:assembly to build a full jar (which includes swank correctly)
and then a simple runner clojure script to require swank and then run
our serivces.

Has anyone else seen this or know what we might be experiencing?


Best Regards,

Kyle

-- 
--
kyle.bur...@gmail.comhttp://asymmetrical-view.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: extend can't do interfaces?

2010-01-05 Thread David Thomas Hume


On Jan 4, 9:40 pm, Raoul Duke  wrote:
> > It is interfaces that are more restrictive than protocols, and extend
> > can't fix that. This ability to extend an existing type to a protocol
> > is a main reason protocols exist.
>
> i guess i'm horribly confused about the right mental model for all of
> this, apologies.
>
> e.g. it sounds like the only way i can get a type to participate in an
> interface is if i control the source file that has the deftype. i
> thought in previous versions of the new branch i could use extend to
> get a type i don't own to participate in an interface, which seems
> desirable. maybe i am horribly confabulating. perhaps the idea would
> be to make a new protocol that 'mirrors' the already existing
> interface somehow?
>

Broadly speaking yes; you can only have a type participate in an
interface if you control the type; because interfaces work via Java
methods; i.e. you invoke them with "." syntax, like: (.compareTo c1
c2).  Protocols, on the other hand, register their "methods" as
clojure functions, which you call as a normal function, e.g. (compare-
to c1 c2).  In order to make a type support an interface, you'd
literally have to change the class to add definitions for the
interface methods, which you can't (for the purposes of this
dicussion) do once the class has been loaded.  Since protocol
"methods" are just Clojure "functions", there is under-the-hood
machinery that allows them to support implementation of a protocol on
a type via a number of different mechanisms; protocol methods
implemented inside a deftype construct are translated into traditional
java-style methods, while protocol methods implemented with "extend"
generate normal clojure functions which are then "hooked" into the
protocol system (this is the reason that protocols implemented inside
deftype are "faster" than those implemented with "extend").

This is what Rich means when he says that "It is interfaces that are
more restrictive than protocols".  The problem of "adding" an
interface to a type is often referred to as the "expression problem",
particularly in the Clojure documentation around types / protocols.

Hope this helps (apologies if anything's glaringly wrong...),

-DTH

-- 
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: [ANN] clj-peg v0.6 released

2010-01-05 Thread Stefan Tilkov
Richard, can you elaborate on the license? 

The license page says "Permission is granted to use and redistribute this 
software except for commercial use […]"

Stefan
--
Stefan Tilkov, http://www.innoq.com/blog/st/



On 04.01.2010, at 23:27, Richard Lyman wrote:

> All,
> 
> This project adds support in Clojure for Parsing Expression Grammars.
> You'll be able to write pseudo-ebnfs directly in your Clojure code. 
> 
> Currently, this...
>  Expr  <- [Sum $]
>  Sum   <- [Product (* [SumOp Product])]
>  Product   <- [Value (* [ProductOp Value])]
>  Value <- (| Num Sum)
>  Num   <- JSONNumber
>  SumOp <- #"^[+-]"
>  ProductOp <- #"^[*/]"
> ... turns into a parser with only a few extra lines of code (three more lines 
> would be comfortable).
> 
> The grammar reads quite easily as well. The production for the non-terminal 
> Sum could be read, "A Sum is a Product followed by zero-or-more of the SumOp 
> Product pair."
> 
> Project page: http://www.lithinos.com/clj-peg/index.html
> Manual: http://www.lithinos.com/clj-peg/0.6.10/clj-peg-manual.pdf
> 
> -Rich
> 
> -- 
> 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: Mocking a namespace?

2010-01-05 Thread Brian Hurt
A better solution that looks like it works is this: load the mock module
second.  Say I have a module I want to mock:

(ns tomock)
(defn foo [] 4)

and a module that requires it:

(ns totest
(:require tomock))

(defn bar [] (tomock/foo))

So if I create the file mock_tomock.clj which contains:

 file: mock_tomock.clj 

(ns mock-tomock)
(def x nil) ; it looks like some symbol in mock is necessary

(ns mock)
(defn foo []
(do
(println "Got here!")
3))

-

Now if I, in a repl, (require 'totest) and then (require 'mock-tomock),
calls to (totest/bar) call my mocked foo, and not the original foo.

Brian

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

installing leiningen system-wide?

2010-01-05 Thread Stuart Halloway
We are considering adding leiningen to a chef install for EC2  
instances. However, we want lein (and the associated maven cruft) to  
be available to all users, not just the user running the install script.

Is this a solved problem?

Stu

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


Release Candidates for clojure-contrib 1.0 and 1.1

2010-01-05 Thread Stuart Sierra
As announced yesterday on the dev list, I have created two release
candidates for clojure-contrib.

The idea is to get numbered contrib releases that match Clojure
version numbers.  So contrib 1.0 will work with Clojure 1.0 and
contrib 1.1 will work with Clojure 1.1.

This does NOT say anything about the quality/completeness of any
libraries in contrib.  These releases are just a convenience for
people who want to download a pre-compiled contrib without using git.

For 1.0.0:
http://clojure-contrib.googlecode.com/files/clojure-contrib-1.0.0-RC1.zip

For 1.1.0:
http://clojure-contrib.googlecode.com/files/clojure-contrib-1.1.0-RC1.zip

Please test these distributions out and report any errors in the
packaging or build.

-SS

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


and, why does lein try to put clojure.jar on the BOOTCLASSPATH?

2010-01-05 Thread Stuart Halloway

...when it is also buried in the leiningen standalone?

Stu

-- 
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: [ANN] clj-peg v0.6 released

2010-01-05 Thread Richard Lyman
For now I'd rather be compensated if someone were planning on using clj-peg
commercially. I'm not sure how much I'd charge for a commercial-friendly
license, and I don't have an automated process for handling billing and
production of a differently licensed product, so I'm reluctant to move that
direction for now.

If you were interested in licensing clj-peg under different terms I'm
willing to discuss it outside of this mailing list.

Did that answer your question?

-Rich



On Tue, Jan 5, 2010 at 8:17 AM, Stefan Tilkov wrote:

> Richard, can you elaborate on the license?
>
> The license page says "Permission is granted to use and redistribute this
> software except for commercial use […]"
>
> Stefan
> --
> Stefan Tilkov, http://www.innoq.com/blog/st/
-- 
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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Mark McGranaghan
Hi Rick,

> 1) Is it possible to implement a join across several collections,
> within the same database snapshot?

Not, not yet. I may add a feature in the future that looks like:

["snapshot", ]
=> 

["on-snapshot"  ]
=> 

["on-snapshot"  ]
=> 

Once again, Clojure's persistent data structures to the rescue!

Also, would you be willing to describe a little more what type of
joins you'de like to be able to do in FleetDB?

> 2) What happens when the data exceeds available memory?

The OS will swap to disk. The current version of FleetDB is designed
for datasets that fit in RAM. I'll be adding a FAQ page soon that
addressees this question in more detail, as it comes up a lot.

- Mark

On Jan 5, 4:26 am, Rick Moynihan  wrote:
> 2010/1/5 Mark McGranaghan :
>
> > Hi All,
>
> > I'm happy to announce the alpha release of 'FleetDB', a schema-free
> > database implemented in Clojure and optimized for agile development.
>
> From a quick skim of the docs, this looks pretty interesting.  Some questions:
>
> 1) Is it possible to implement a join across several collections,
> within the same database snapshot?
>
> 2) What happens when the data exceeds available memory?
>
> R.
-- 
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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Mark McGranaghan
Hi Meikel,

Yep, what you're looking for is compaction:

http://fleetdb.org/docs/queries/compact.html

- Mark

On Jan 5, 2:59 am, Meikel Brandmeyer  wrote:
> Hello Mark,
>
> On Jan 5, 1:12 am, Mark McGranaghan  wrote:
>
> > I'm happy to announce the alpha release of 'FleetDB', a schema-free
> > database implemented in Clojure and optimized for agile development.
>
> This seems very nice on a first look. Maybe exactly what I was looking
> for: small and easy to use (I don't need distribution and such...).
> Just one question for data persistence: Is there a way of doing some
> snapshots of the db to cut the log down? Or at least to merge updates
> to the same entries? I don't want to replay the last three years when
> restarting the server.
>
> 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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Mark McGranaghan
Hi Andres,

By "automatically maintained indexes" I mean that FleetDB
automatically and atomically updates all declared indexes when you
insert, update or delete a record. You do need to declare them first
though; at this point FleetDB cannot infer what indexes are needed by
your application.

The key point is that you don't need to implement indexes in the
application layer and suffer the corresponding complexity and possible
non-atomicity, as you need to with some other non-sql datastores.

- Mark

On Jan 5, 12:56 am, Anders Rune Jensen 
wrote:
> On Tue, Jan 5, 2010 at 1:12 AM, Mark McGranaghan  wrote:
> > Hi All,
>
> > I'm happy to announce the alpha release of 'FleetDB', a schema-free
> > database implemented in Clojure and optimized for agile development.
>
> > From the homepage athttp://fleetdb.org:"FleetDB offers a flexible
> > and expressive data model designed for the needs of modern application
> > developers; a combination of schema-free records, declarative queries,
> > automatically maintained indexes, and an optimizing query planner make
> > it easy to manipulate and retrieve data. By keeping all data in RAM as
> > persistent data structures, FleetDB is able to offer multi-document
> > transactions, excellent concurrency semantics, and high performance.
> > Writing to an append-only log provides durability in the form of a
> > single file that can be transfered and analyzed using standard Unix
> > tools. FleetDB is accessible via a simple JSON-based protocol that is
> > implemented by clients in several programming languages."
>
> Very interesting! I've been looking for something like this. I was
> looking through the documentation and it seems that "automatically
> maintained indexes" is not implemented yet?
>
> --
> Anders Rune Jensenhttp://people.iola.dk/arj/
-- 
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 + Redis

2010-01-05 Thread Steve Purcell
Indeed, thanks - I realized that earlier today myself!

-Steve


On 5 Jan 2010, at 09:24, Gabi wrote:

> I think you should do "(binding [*print-dup* true] (pr-str value).."
> instead of  just (pr-str value) in the encode-value function. (line 20
> in redis_memo.clj)
> 
> On Jan 4, 2:55 pm, Steve Purcell  wrote:
>> Read the code I posted in this thread and put up on github after you 
>> expressed interest.
>> 
>> That's part of what it does, using the reader/printer representation.
>> 
>> Alternatives would include standard Java binary serialisation or 3rd party 
>> libraries (Hessian/Burlap?).
>> 
>> -Steve
>> 
>> On 4 Jan 2010, at 12:15, Gabi wrote:
>> 
>>> What if I wanted to use Redis just persist binary (serialized) clojure
>>> objects ?
>>> What's the easiest (and fastest) way to serialize/de-serialize vectors
>>> or lists in Clojure ? (so the can stored as blobs in Redis)
>> 
>>> On Jan 4, 12:59 pm, Gabi  wrote:
 Maybe, though I would avoid distributed transactions as much as
 possible. They are complex and slow creatures.
>> 
 On Jan 4, 12:51 pm, Shantanu Kumar  wrote:
>> 
> On Jan 2, 5:12 am, Gabi  wrote:
>> 
>> I am interested in the idea: Completely stateless set of Clojure nodes
>> (on many machines), operating on a central state stored in some
>> datastore.
>> If transactions could be managed somehow, I think it would be very
>> compelling model for many applications.
>> 
> Do you mean distributed transactions?
>> 
>>> --
>>> 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: Clojure + Redis

2010-01-05 Thread Steve Purcell
Or rather, more importantly, I realised I should bind *print-level* to nil...

As for *print-dup*, I guess there's a danger that stored values might become 
unreadable if any implementation structure classes were to get renamed in a 
future clojure release.

-Steve


On 5 Jan 2010, at 09:24, Gabi wrote:

> I think you should do "(binding [*print-dup* true] (pr-str value).."
> instead of  just (pr-str value) in the encode-value function. (line 20
> in redis_memo.clj)
> 
> On Jan 4, 2:55 pm, Steve Purcell  wrote:
>> Read the code I posted in this thread and put up on github after you 
>> expressed interest.
>> 
>> That's part of what it does, using the reader/printer representation.
>> 
>> Alternatives would include standard Java binary serialisation or 3rd party 
>> libraries (Hessian/Burlap?).
>> 
>> -Steve
>> 
>> On 4 Jan 2010, at 12:15, Gabi wrote:
>> 
>>> What if I wanted to use Redis just persist binary (serialized) clojure
>>> objects ?
>>> What's the easiest (and fastest) way to serialize/de-serialize vectors
>>> or lists in Clojure ? (so the can stored as blobs in Redis)
>> 
>>> On Jan 4, 12:59 pm, Gabi  wrote:
 Maybe, though I would avoid distributed transactions as much as
 possible. They are complex and slow creatures.
>> 
 On Jan 4, 12:51 pm, Shantanu Kumar  wrote:
>> 
> On Jan 2, 5:12 am, Gabi  wrote:
>> 
>> I am interested in the idea: Completely stateless set of Clojure nodes
>> (on many machines), operating on a central state stored in some
>> datastore.
>> If transactions could be managed somehow, I think it would be very
>> compelling model for many applications.
>> 
> Do you mean distributed transactions?
>> 
>>> --
>>> 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: installing leiningen system-wide?

2010-01-05 Thread Phil Hagelberg
Stuart Halloway  writes:

> We are considering adding leiningen to a chef install for EC2  
> instances. However, we want lein (and the associated maven cruft) to  
> be available to all users, not just the user running the install script.
>
> Is this a solved problem?

You should be fine just changing the values of LEIN_JAR and optionally
CLOJURE_JAR in the bin script.

> and, why does lein try to put clojure.jar on the BOOTCLASSPATH?
> ...when it is also buried in the leiningen standalone?

>From what I've heard on OS X the boot times are more or less intolerable
if you have to go through the verification phases that the boot
classpath skips. If this isn't a problem on your platform you can leave
CLOJURE_JAR alone and it will still work.

-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: installing leiningen system-wide?

2010-01-05 Thread Stuart Halloway

Thanks Phil.

It looked like I could change the environment variables, but when I  
saw the dreaded string ".m2" I became sore afraid.


Stu
"maven-free for over 40 years"


Stuart Halloway  writes:


We are considering adding leiningen to a chef install for EC2
instances. However, we want lein (and the associated maven cruft) to
be available to all users, not just the user running the install  
script.


Is this a solved problem?


You should be fine just changing the values of LEIN_JAR and optionally
CLOJURE_JAR in the bin script.


and, why does lein try to put clojure.jar on the BOOTCLASSPATH?
...when it is also buried in the leiningen standalone?


From what I've heard on OS X the boot times are more or less  
intolerable

if you have to go through the verification phases that the boot
classpath skips. If this isn't a problem on your platform you can  
leave

CLOJURE_JAR alone and it will still work.

-Phil
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient  
with your first post.

To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en


-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To 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 add extend print-method without screwing up ?

2010-01-05 Thread Laurent PETIT
How about creating your own print-method multimethod in a lib of your
own, and in your libs, excluding clojure.core/print-method and
importing your-lib/print-method instead.

Then, in your-lib, make the default print-method invocation just call
clojure.core/print-method, create your own private hierarchy, and
provide defmethods for those types you want to provide with your own
implementation of defmethod ...

Cant' think of something better, for now ...

HTH,

-- 
Laurent

2010/1/5 Gabi :
> Hi
> I am trying to extend Clojures' print-method using defmethod for a
> library I develop.:
> How can I do this without affecting users of my lib (i want only my
> lib to be affected )?
>
> (derive clojure.lang.Fn ::fn)
> (prefer-method print-method ::fn  java.lang.Object)
>
> (defmethod print-method ::fn
>    [o w]
>   (.write w "Some Fn")
>
> This is quite nice, but I would like to use a private hierarchy for
> the above, but cant. (print-method is defined on global hierarchy)
> What should I do ?
>
> --
> 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: Maven dependency on release 1.1.0

2010-01-05 Thread Phil Hagelberg
Mark Derricutt  writes:

> Good to know - I didn't realize that had the release in it - how come
> no /release repo or central syncing?

Nobody's gotten around to it yet is all.

-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: and, why does lein try to put clojure.jar on the BOOTCLASSPATH?

2010-01-05 Thread bOR_
Not sure, but wasn't that so that you don't need to compile your
project against the same version of clojure as that leiningen was
compiled to?

On Jan 5, 5:55 pm, Stuart Halloway  wrote:
> ...when it is also buried in the leiningen standalone?
>
> Stu
-- 
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: Release Candidates for clojure-contrib 1.0 and 1.1

2010-01-05 Thread Stefan Kamphausen
Hi,

On Jan 5, 5:22 pm, Stuart Sierra  wrote:

> For 
> 1.1.0:http://clojure-contrib.googlecode.com/files/clojure-contrib-1.1.0-RC1...

works for me.  Will use it in the following days.  If I stay quiet, it
continues to work :-)

Thanks for providing this.

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

Re: How to add extend print-method without screwing up ?

2010-01-05 Thread Gabi
Hmm.. I hoped I could avoid this.  Multi-methods should be extended,
not copied and then extended :)
But if there is no other way, I probably settle for this cumbersome
solution..


On Jan 5, 11:21 pm, Laurent PETIT  wrote:
> How about creating your own print-method multimethod in a lib of your
> own, and in your libs, excluding clojure.core/print-method and
> importing your-lib/print-method instead.
>
> Then, in your-lib, make the default print-method invocation just call
> clojure.core/print-method, create your own private hierarchy, and
> provide defmethods for those types you want to provide with your own
> implementation of defmethod ...
>
> Cant' think of something better, for now ...
>
> HTH,
>
> --
> Laurent
>
> 2010/1/5 Gabi :
>
> > Hi
> > I am trying to extend Clojures' print-method using defmethod for a
> > library I develop.:
> > How can I do this without affecting users of my lib (i want only my
> > lib to be affected )?
>
> > (derive clojure.lang.Fn ::fn)
> > (prefer-method print-method ::fn  java.lang.Object)
>
> > (defmethod print-method ::fn
> >    [o w]
> >   (.write w "Some Fn")
>
> > This is quite nice, but I would like to use a private hierarchy for
> > the above, but cant. (print-method is defined on global hierarchy)
> > What should I do ?
>
> > --
> > 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: installing leiningen system-wide?

2010-01-05 Thread ianp
> We are considering adding leiningen to a chef install for EC2  
> instances. However, we want lein (and the associated maven cruft) to  
> be available to all users, not just the user running the install script.

I guess that if Leiningen just uses the repo/dep stuff from maven then
the following should work:

mkdir /usr/local/share/mvn
echo "\nMAVEN_REPO=/usr/local/share/mvn" >> /etc/profile

Caveat: I haven't actually tried this, I'm just hypothesising here.
-- 
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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Meikel Brandmeyer
Hello Mark,

Am 05.01.2010 um 18:37 schrieb Mark McGranaghan:

> Yep, what you're looking for is compaction:
> 
> http://fleetdb.org/docs/queries/compact.html

Doh. Those who can read have a clear advantage. ^^"

Ok. After a second look: compact is asynchronous. How do I find out whether it 
is finished or whether there is still a compaction going on? And related: how 
do I shut down the server gracefully?

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: How to add extend print-method without screwing up ?

2010-01-05 Thread Laurent PETIT
Multi-methods can be extended ... to the extent of what their
dispatch-function defines.

So for what you want to work, you should have this notion of "from
where is the multi-method called" wired in the dispatch function.
Imagineyou could redefine the dispatch function (which you can not for
print-method, or this would be very hackish I guess). Even there,
you'll have to solve the "how does the dispatch method know from which
namespace the multimethod is called ?" ...). Generally, dispatch
methods will work on the arguments of the multi-method. Surely, they
could also work by doing introspection of the call stack by hooking
into clojure internals, and also you could make them work differently
by having them inspect global variables ... huck !!!

What you want isn't even easily solved by OOP like in javascript,
where you can change every method implementation of every object,
because you would like the method implementation to be chosen
depending on the caller of the method, not just the callee or a
function of the other arguments of the method ...

HTH,

-- 
Laurent

2010/1/5 Gabi :
> Hmm.. I hoped I could avoid this.  Multi-methods should be extended,
> not copied and then extended :)
> But if there is no other way, I probably settle for this cumbersome
> solution..
>
>
> On Jan 5, 11:21 pm, Laurent PETIT  wrote:
>> How about creating your own print-method multimethod in a lib of your
>> own, and in your libs, excluding clojure.core/print-method and
>> importing your-lib/print-method instead.
>>
>> Then, in your-lib, make the default print-method invocation just call
>> clojure.core/print-method, create your own private hierarchy, and
>> provide defmethods for those types you want to provide with your own
>> implementation of defmethod ...
>>
>> Cant' think of something better, for now ...
>>
>> HTH,
>>
>> --
>> Laurent
>>
>> 2010/1/5 Gabi :
>>
>> > Hi
>> > I am trying to extend Clojures' print-method using defmethod for a
>> > library I develop.:
>> > How can I do this without affecting users of my lib (i want only my
>> > lib to be affected )?
>>
>> > (derive clojure.lang.Fn ::fn)
>> > (prefer-method print-method ::fn  java.lang.Object)
>>
>> > (defmethod print-method ::fn
>> >    [o w]
>> >   (.write w "Some Fn")
>>
>> > This is quite nice, but I would like to use a private hierarchy for
>> > the above, but cant. (print-method is defined on global hierarchy)
>> > What should I do ?
>>
>> > --
>> > 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: How to add extend print-method without screwing up ?

2010-01-05 Thread Gabi
Yes. I guess you have a point. Maybe I just wanted too much out of it.
This think could be solved easily if defmethod supported hierarchy as
arg (or in meta).
But on the other hand, such feature would make it very easy to make a
total mess..



On Jan 5, 11:59 pm, Laurent PETIT  wrote:
> Multi-methods can be extended ... to the extent of what their
> dispatch-function defines.
>
> So for what you want to work, you should have this notion of "from
> where is the multi-method called" wired in the dispatch function.
> Imagineyou could redefine the dispatch function (which you can not for
> print-method, or this would be very hackish I guess). Even there,
> you'll have to solve the "how does the dispatch method know from which
> namespace the multimethod is called ?" ...). Generally, dispatch
> methods will work on the arguments of the multi-method. Surely, they
> could also work by doing introspection of the call stack by hooking
> into clojure internals, and also you could make them work differently
> by having them inspect global variables ... huck !!!
>
> What you want isn't even easily solved by OOP like in javascript,
> where you can change every method implementation of every object,
> because you would like the method implementation to be chosen
> depending on the caller of the method, not just the callee or a
> function of the other arguments of the method ...
>
> HTH,
>
> --
> Laurent
>
> 2010/1/5 Gabi :
>
> > Hmm.. I hoped I could avoid this.  Multi-methods should be extended,
> > not copied and then extended :)
> > But if there is no other way, I probably settle for this cumbersome
> > solution..
>
> > On Jan 5, 11:21 pm, Laurent PETIT  wrote:
> >> How about creating your own print-method multimethod in a lib of your
> >> own, and in your libs, excluding clojure.core/print-method and
> >> importing your-lib/print-method instead.
>
> >> Then, in your-lib, make the default print-method invocation just call
> >> clojure.core/print-method, create your own private hierarchy, and
> >> provide defmethods for those types you want to provide with your own
> >> implementation of defmethod ...
>
> >> Cant' think of something better, for now ...
>
> >> HTH,
>
> >> --
> >> Laurent
>
> >> 2010/1/5 Gabi :
>
> >> > Hi
> >> > I am trying to extend Clojures' print-method using defmethod for a
> >> > library I develop.:
> >> > How can I do this without affecting users of my lib (i want only my
> >> > lib to be affected )?
>
> >> > (derive clojure.lang.Fn ::fn)
> >> > (prefer-method print-method ::fn  java.lang.Object)
>
> >> > (defmethod print-method ::fn
> >> >    [o w]
> >> >   (.write w "Some Fn")
>
> >> > This is quite nice, but I would like to use a private hierarchy for
> >> > the above, but cant. (print-method is defined on global hierarchy)
> >> > What should I do ?
>
> >> > --
> >> > 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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Rick Moynihan
2010/1/5 Mark McGranaghan :
> Hi Rick,
>
>> 1) Is it possible to implement a join across several collections,
>> within the same database snapshot?
>
> Not, not yet. I may add a feature in the future that looks like:
>
> ["snapshot", ]
> => 
>
> ["on-snapshot"  ]
> => 
>
> ["on-snapshot"  ]
> => 
>
> Once again, Clojure's persistent data structures to the rescue!
>
> Also, would you be willing to describe a little more what type of
> joins you'de like to be able to do in FleetDB?

In truth, I don't know; as I've not really thought about what I'd use
fleetdb for or whether I even need such a thing...  So my interest at
this stage is primarily academic, it just stood out as an omission.
However at the most basic level I'd expect being able to do simple
inner joins on a foreign key would be nice.

You explicitly state creating a snapshot, but when I was looking for
information on joins I was wondering whether it might have been
possible using the multi-read, perhaps where the second query would
operate on the result of the first?

Out of curiosity I glanced through the code to see whether you were
making use of the STM, agents etc... and was surprised by their
omission.  Is there a reason you chose to use the executor thread pool
over agents...   Am I right in thinking the reason you're not using
refs is because you don't currently allow joins... therefore updates
require no coordination beyond atomic updates.  If you add the ability
to join across collections will you need them?  How about changes to
indexed values?  Are these atomically updated in the record and index?

Sorry for the dumb questions... I'm still learning clojure and I'm curious :-)

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

1.1.0 *release* of clojure-contrib?

2010-01-05 Thread Mark Derricutt
Is there likely to be a RELEASE version of clojure-contrib 1.1.0 in
the maven repo to match clojure 1.1.0 at all?

The lack of a release build prevents using the maven release plugin to
run with any project using it :(


Also - if 1.1.0 is released, why is build.clojure.org/snapshots still
getting NEW SNAPSHOT builds of 1.1.0?  Surely that should be 1.1.1, or
1.2.0-SNAPSHOT now?

Mark


-- 
Pull me down under...
-- 
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: 1.1.0 *release* of clojure-contrib?

2010-01-05 Thread Jarkko Oranen


On Jan 6, 2:21 am, Mark Derricutt  wrote:
> Is there likely to be a RELEASE version of clojure-contrib 1.1.0 in
> the maven repo to match clojure 1.1.0 at all?
>
> The lack of a release build prevents using the maven release plugin to
> run with any project using it :(
>
> Also - if 1.1.0 is released, why is build.clojure.org/snapshots still
> getting NEW SNAPSHOT builds of 1.1.0?  Surely that should be 1.1.1, or
> 1.2.0-SNAPSHOT now?
>

Heh, I guess the answer to the whys is just that no-one has got around
to fixing those things yet. There have been only three releases (or 4?
How many were before 1.0?), and only one after the git transition, so
I guess the whole release process is still in a flux as people are
trying to figure out what works best. I'm sure it'll settle down
eventually :)

It looks like there will indeed be a contrib release matching 1.1.0,
but I'm not sure when exactly.

--
Jarkko
-- 
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: FleetDB: A schema-free database implemented in Clojure

2010-01-05 Thread Mark McGranaghan
> Ok. After a second look: compact is asynchronous. How do I find out whether 
> it is finished or whether there is still a compaction going on? And related: 
> how do I shut down the server gracefully?

There is currently no query for checking whether compaction is going
on, though I am working on this now.

As for server shutdown, FleetDB has a crash-only design; you can shut
down the server by CTRL-C'ing or kill(1)'ing it. In the alpha version
of the database, it is conceivable that this could leave the database
file  with an incomplete trailing line (cat(1) any FleetDB database
file if its unclear what this would mean). This is not hard to
correct, but FleetDB doesn't currently implement internally. A future
release will address this issue.

- Mark
-- 
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: 1.1.0 *release* of clojure-contrib?

2010-01-05 Thread Sean Devlin
There is a release candidate for contribs 1.0.0 and 1.1.0

http://groups.google.com/group/clojure/browse_thread/thread/6570c2969d8b956

It'll be out soon.

Sean

On Jan 5, 8:29 pm, Jarkko Oranen  wrote:
> On Jan 6, 2:21 am, Mark Derricutt  wrote:
>
> > Is there likely to be a RELEASE version of clojure-contrib 1.1.0 in
> > the maven repo to match clojure 1.1.0 at all?
>
> > The lack of a release build prevents using the maven release plugin to
> > run with any project using it :(
>
> > Also - if 1.1.0 is released, why is build.clojure.org/snapshots still
> > getting NEW SNAPSHOT builds of 1.1.0?  Surely that should be 1.1.1, or
> > 1.2.0-SNAPSHOT now?
>
> Heh, I guess the answer to the whys is just that no-one has got around
> to fixing those things yet. There have been only three releases (or 4?
> How many were before 1.0?), and only one after the git transition, so
> I guess the whole release process is still in a flux as people are
> trying to figure out what works best. I'm sure it'll settle down
> eventually :)
>
> It looks like there will indeed be a contrib release matching 1.1.0,
> but I'm not sure when exactly.
>
> --
> Jarkko
-- 
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

Having difficulties with compilation in slime, emacs and clojure-project

2010-01-05 Thread Rob Lachlan
I've been trying to compile clojure files from emacs.  The issue I run
into is of my own clj files not being found on the classpath.  (If I'm
trying to compile a standalone file, which references only clojure
core, there's no problem.  It's when I have multiple files, and I'm
trying to include a file of my own with use or require, that I run
into this issue.)

I found the clojure-project function, by Phil Hagelberg, at:

http://www.mail-archive.com/clojure@googlegroups.com/msg18268.html

but when I put it in .emacs, and invoked it, the function seemed to
get stuck.  I'm asked in the mini-buffer for the project root, and I
write it in and press return, but nothing happens.  I just keep
getting carriage returns in the mini-buffer.  Any ideas?

Or are there any other convenient ways for managing class paths for
various clojur projects in emacs?
-- 
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: Having difficulties with compilation in slime, emacs and clojure-project

2010-01-05 Thread Konrad Hinsen

On 06.01.2010, at 07:26, Rob Lachlan wrote:


but when I put it in .emacs, and invoked it, the function seemed to
get stuck.  I'm asked in the mini-buffer for the project root, and I
write it in and press return, but nothing happens.  I just keep
getting carriage returns in the mini-buffer.  Any ideas?


The root directory should be a directory containing subdirectories  
src, test, and lib (each one is optional, but there needs to be at  
least one of them). src and test are put directly on the classpath,  
and all jar files in lib are added as well.


Perhaps you specified as project root directlly the directory  
containing your source code?


Konrad.
-- 
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: Having difficulties with compilation in slime, emacs and clojure-project

2010-01-05 Thread Rob Lachlan
I have src and test in the directory I'm passing in.  The problem
however, seems to be
on the emacs end.  In the mini-buffer when I enter in Project root:
 and
press return, the cursor just moves to the next line in the mini-
buffer.  So I think that the
clojure-project function is getting stuck right at that spot.


On Jan 5, 11:01 pm, Konrad Hinsen  wrote:
> On 06.01.2010, at 07:26, Rob Lachlan wrote:
>
> > but when I put it in .emacs, and invoked it, the function seemed to
> > get stuck.  I'm asked in the mini-buffer for the project root, and I
> > write it in and press return, but nothing happens.  I just keep
> > getting carriage returns in the mini-buffer.  Any ideas?
>
> The root directory should be a directory containing subdirectories  
> src, test, and lib (each one is optional, but there needs to be at  
> least one of them). src and test are put directly on the classpath,  
> and all jar files in lib are added as well.
>
> Perhaps you specified as project root directlly the directory  
> containing your source code?
>
> Konrad.
-- 
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