ANN Monger 2.0.0 is released

2014-06-15 Thread Michael Klishin
Monger [1] is a Clojure MongoDB driver for a more civilized age.

Release notes:
http://blog.clojurewerkz.org/blog/2014/06/15/monger-2-dot-0-0-is-released/

1. http://clojuremongodb.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Elastisch 2.0.0 is released

2014-06-15 Thread Michael Klishin
Elastisch [1] is a small, feature rich Clojure client for ElasticSearch
that supports both HTTP and native transports.

2.0 is packed with improvements, large and small, and brings improved
compatibility with ElasticSearch up to 1.2.x.

Release notes:
http://blog.clojurewerkz.org/blog/2014/06/15/elastisch-2-dot-0-0-is-released/

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Convert clj-time date-time to UTC

2014-06-14 Thread Michael Klishin
2014-06-14 20:49 GMT+04:00 gvim gvi...@gmail.com:

 Can't think why it's not baked into the library, though, as it must be a
 common requirement.


Feel free to submit a pull request and a few tests. The clj-time
maintainers are responsive
and the library is primarily driven by user feedback at this point.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN metrics-clojure 2.1.0 is released

2014-06-14 Thread Michael Klishin
metrics-clojure [1] is a Clojure interace to Coda Hale's Metrics library
[2]. If you are not sure
why collecting metrics about your app is valuable, take a moment and watch
[3].

Release notes:
https://github.com/sjl/metrics-clojure/blob/master/ChangeLog.md#changes-between-20x-and-210

1. https://github.com/sjl/metrics-clojure/
2. http://metrics.codahale.com/
3. http://www.youtube.com/watch?v=czes-oa0yik
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [clojure-rabbitmq] Re: Socket Exception thrown when trying to make a remote connection to server over adhoc network

2014-06-11 Thread Michael Klishin
On 11 June 2014 at 21:57:11, Samuel Nelson (snels...@ycp.edu) wrote:
  Caused by:
 SocketException Connection reset

This message is very generic and does not explain much. Can you see connection
entries in RabbitMQ log? Try connecting to RabbitMQ via telnet, for example
(note that it will quickly close connection unless
you enter a valid protocol header, AMQP091, and then due to connection
negotiation timeout). 
--  
MK  

Software Engineer, Pivotal/RabbitMQ

-- 
You received this message because you are subscribed to the Google Groups 
clojure-rabbitmq group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure-rabbitmq+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Clojure Contributor Agreement process update

2014-06-10 Thread Michael O'Keefe
Thank you for all you do. This is wonderful!

-Michael O'Keefe

On Tuesday, June 10, 2014 6:49:52 AM UTC-6, Tim Visher wrote:

 (boom) 

 On Mon, Jun 9, 2014 at 1:23 PM, Alex Miller al...@puredanger.com 
 javascript: wrote: 
  Starting today, we have updated the Clojure Contributor Agreement 
 process. 
  The prior process which involved signing and mailing a form has been 
  replaced with an online e-signing process. 
  
  Existing contributors that have signed the Contributor Agreement are 
  unaffected - those agreements are still in effect. New signers will use 
 the 
  online process. 
  
  Information has been updated at: 
  http://clojure.org/contributing 
  
  As always, we welcome your contributions to the Clojure community and 
 hope 
  that we can continue to improve Clojure together! 
  
  - Alex Miller, Rich Hickey, and the Clojure team 
  
  
  
  -- 
  You received this message because you are subscribed to the Google 
 Groups 
  Clojure Dev group. 
  To unsubscribe from this group and stop receiving emails from it, send 
 an 
  email to clojure-dev...@googlegroups.com javascript:. 
  To post to this group, send email to cloju...@googlegroups.com 
 javascript:. 
  Visit this group at http://groups.google.com/group/clojure-dev. 
  For more options, visit https://groups.google.com/d/optout. 


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


Re: Clojure Contributor Agreement process update

2014-06-09 Thread Michael Klishin
2014-06-09 21:23 GMT+04:00 Alex Miller a...@puredanger.com:

 Starting today, we have updated the Clojure Contributor Agreement process.
 The prior process which involved signing and mailing a form has been
 replaced with an online e-signing process.


\o/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN metrics-clojure 2.0.3

2014-06-09 Thread Michael Klishin
metrics-clojure [1] is a Clojure interface to the Metrics library [2].

2.0.3 is a bug fix release:
https://github.com/sjl/metrics-clojure/blob/stable/ChangeLog.md#changes-between-202-and-203

If you are not sure why gathering metrics about your apps and infrastructure
is a big deal, consider watching [3].

1. https://github.com/sjl/metrics-clojure
2. http://metrics.codahale.com/
3. http://www.youtube.com/watch?v=czes-oa0yik
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Cassaforte 2.0.0-beta1 is released

2014-06-08 Thread Michael Klishin
Cassaforte [1] is a Clojure Cassandra client built around CQL 3.

2.0 is a major release that introduces breaking public API changes
announced earlier [2].

Release notes:
http://blog.clojurewerkz.org/blog/2014/06/07/cassaforte-2-dot-0-0-beta1-is-released/

1. http://clojurecassandra.info
2.
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [clojure-rabbitmq] Re: Can TopologyRecoveryException be simulated?

2014-06-04 Thread Michael Klishin
On 4 June 2014 at 18:21:51, Brian Marick (br...@getset.com) wrote:
  I'll have the new guy do it when he starts in August.

Hopefully it'll be done by then ;) 
--  
MK  

Software Engineer, Pivotal/RabbitMQ

-- 
You received this message because you are subscribed to the Google Groups 
clojure-rabbitmq group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure-rabbitmq+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


ANN Neocons 3.0 is released

2014-05-29 Thread Michael Klishin
Neocons [1] is a Clojure client for the Neo4J REST API.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/29/neocons-3-dot-0-0-is-released/

1. http://clojureneo4j.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Welle 3.0.0 is released

2014-05-29 Thread Michael Klishin
Welle [1] is a small Clojure client for Riak with batteries included.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/29/welle-3-dot-0-0-is-released/

1. http://clojureriak.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Langohr 2.11.0 is released

2014-05-26 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure RabbitMQ client.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/24/langohr-2-dot-11-dot-0-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Welle 3.0.0-rc1 is released

2014-05-26 Thread Michael Klishin
Welle [1] is a Clojure client for Riak with batteries included.

3.0 includes a major API revision announced earlier [2].
Release notes:
http://blog.clojurewerkz.org/blog/2014/05/24/welle-3-dot-0-0-rc1-is-released/

1. http://clojureriak.info
2.
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [ANN] monarch 0.2.0 - Simple database migrations for Clojure.

2014-05-26 Thread Michael Cramm
Good question. I had originally wanted a separate, untracked config file 
but couldn't decide on a format. (like separating out protocol, host, port, 
etc) Exporting the environment variable felt the most non-committal at the 
time. 

It wouldn't be too much work to have a file living in 
`resources/monarch/...`, and add another optional param to `project.clj` to 
tell monarch where to look. I'll see about adding this to the next version.

Thanks for the feedback!

On Sunday, 25 May 2014 21:16:56 UTC-6, Atamert Ölçgen wrote:

 Is there a reason why DATABASE_URL isn't in the project config?

 I guess a more relevant question would be to ask if there's something like 
 a local config file for leiningen projects? Something that is per-project 
 but ideally ignored by the VCS. Something that you can use to override 
 what's inside the project.clj.


 On Sat, May 24, 2014 at 7:27 PM, Michael Cramm gmc...@gmail.comjavascript:
  wrote:

 I realize that there are other database migration frameworks already 
 availablefor clojure projects, but I always seem to run into issues pretty 
 fast in trying to use them.

 This is also the first plugin I've developed and made publicly available, 
 so I'd love some feedback! I've been using Clojure for a while now but I 
 don't really have anyone mentoring me :).

 https://github.com/mcramm/monarch
  
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.comjavascript:
 Note that posts from new members are moderated - please be patient with 
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+u...@googlegroups.com javascript:.
 For more options, visit https://groups.google.com/d/optout.




 -- 
 Kind Regards,
 Atamert Ölçgen

 -+-
 --+
 +++

 www.muhuk.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
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[ANN] monarch 0.2.0 - Simple database migrations for Clojure.

2014-05-25 Thread Michael Cramm
I realize that there are other database migration frameworks already 
availablefor clojure projects, but I always seem to run into issues pretty 
fast in trying to use them.

This is also the first plugin I've developed and made publicly available, 
so I'd love some feedback! I've been using Clojure for a while now but I 
don't really have anyone mentoring me :).

https://github.com/mcramm/monarch

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


Re: [clojure-rabbitmq] SocketTimeoutExceptions terminates listening process

2014-05-21 Thread Michael Klishin


On 21 May 2014 at 16:58:38, Thomas Kristensen (thomas.kristen...@uswitch.com) 
wrote:
  you'll notice that the message gets rejected as we'd expect  
 when the exception is NOT re-thrown, but the reject seems to be  
 ignored in the case where we re-throw. You could argue that you  
 should never have a handler throw exceptions to the langohr-lib,  
 but seeing as this can happen, and since it handles exceptions  
 just fine when :auto-ack is true (not demonstrated in the experiment,  
 but tested and verified), it seems that a consistent behaviour  
 on a reject should be to continue consuming.
  
 Is there something I'm missing?

What do you mean by ignored? Is the channel still open? Do you see 
basic.reject
on the wire? (e.g. using Tracer: http://www.rabbitmq.com/java-tools.html)

Throwing exceptions in delivery handlers is fine, it should not exhaust
consumer thread pool or anything like that.
--  
MK  

Software Engineer, Pivotal/RabbitMQ

-- 
You received this message because you are subscribed to the Google Groups 
clojure-rabbitmq group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure-rabbitmq+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [clojure-rabbitmq] SocketTimeoutExceptions terminates listening process

2014-05-21 Thread Michael Klishin


On 21 May 2014 at 19:15:50, Thomas Kristensen (thomas.kristen...@uswitch.com) 
wrote:
  You are right, the channel has been closed by me throwing on the 
 exception. I attached a debugger and traced it to line 106 of 
 DefaultExceptionHandler 
 which closes the channel in handleChannelKiller. All of this 
 does makes sense as a default behaviour, but it doesn't seem to 
 be documented in langohr, so it took quite a while to figure out. 

Feel free to contribute doc improvements.

 - ack-unless-exception is confusing at best - it should not throw 
 the exception on but handle it to be valuable. Otherwise users 
 of langohr should just call .basicAck and .basicReject themselves. 
 I'd vote for just removing it from langohr.
 - The behaviour of langohr in the case where a handler throws an 
 exception is not documented in the doc-string of langohr.consumers/subscribe 

Screw doc strings. They cannot describe much because they can't be too
long. http://clojurerabbitmq.info should cover this, in both Working with Queues
and Error Handling and Recovery (the Queues guide can link to the Error 
Handling one, for example ).
-- 
MK 

Software Engineer, Pivotal/RabbitMQ

-- 
You received this message because you are subscribed to the Google Groups 
clojure-rabbitmq group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure-rabbitmq+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Cljs and core.async issue

2014-05-18 Thread Michael Breen
Hi Joseph.

Good to hear that you figured out your  issue. LightTable has actually
fixed this issue and it is available in master.

Best.
Mike
On May 18, 2014 4:15 PM, Joseph Rollins rollins.jos...@gmail.com wrote:

 Managed to figure out the culprit with some help from IRC. I was
 attempting to use cljs-http 0.1.10 with clojurescript 0.0-2173 (for
 lighttable compat). By swapping to using 0.1.8 of cljs-http, it worked
 perfectly.

 I assumed that leiningen would alert me that I had dependency mismatches,
 but it appears with the default settings it doesn't throw a red flag. I
 would love to hear if there is a way to change that so things don't go pow
 without warning; however, I did find that grepping through the output of
 lein deps :tree for overrides is a good way to detect collisions in the
 meantime.

 As an aside, I think I will be trying out SublimeText w/ SublimeREPL until
 LightTable fixes its dependence on an increasingly old release of
 clojurescript.

 -Joseph

 On Sunday, May 18, 2014 2:43:58 PM UTC-4, Joseph Rollins wrote:

 I'm having some trouble with what should be a trivial application of
 core.async and cljs-http. I have tried to debug it, but I don't have a
 great setup for properly debugging. Also, debugging core.async channels is
 well above my current ability.

 I've whittled the code down to the least common denominator. The code is
 pasted below as well as available here: https://www.refheap.com/85610.

 (ns shouter.core
   (:require-macros [cljs.core.async.macros :refer [go]])
   (:require [om.core :as om :include-macros true]
 [om.dom :as dom :include-macros true]
 [cljs-http.client :as http]
 [cljs.core.async :refer [! ! chan put!]]))

 (enable-console-print!)

 (def app-state (atom {:shouts [{:shout shout 1}{:shout shout 2}]}))

 (defn- fetch-shouts [page]
   (let [c (chan)]
 (go (let [response (! (http/get http://google.com;))]
 (! c response)))
 c))

 (defn shouts-view [app owner]
   (reify
 om/IWillMount
 (will-mount [_]
 (go (let [shouts (! (fetch-shouts 1))]
   (prn shouts
 om/IRender
 (render [_]
(apply dom/ul nil
   (map #(dom/li nil (:shout %)) (:shouts app))

 (om/root
  shouts-view
  app-state
  {:target (. js/document (getElementById container))})


 The error I'm getting is:


1. Uncaught TypeError: undefined is not a function core.cljs:33
   1. requestcore.cljs:33
   2. cljs_http.client.wrap_edn_paramsclient.cljs:65
   3. cljs_http.client.wrap_edn_response.cljs.core.async.impl.
   dispatch.run.call.switch__6217__auto__client.cljs:72
   4. (anonymous function)client.cljs:72
   5. cljs_http.client.wrap_edn_response.cljs.core.async.impl.
   dispatch.run.call.state_machine__6218__auto1client.cljs:72
   6. cljs_http.client.wrap_edn_response.cljs.core.async.impl.
   dispatch.run.call.state_machine__6218__auto__client.cljs:72
   7. run_state_machineioc_helpers.cljs:34
   8. run_state_machine_wrappedioc_helpers.cljs:38
   9. (anonymous function)client.cljs:72
   10. process_messagesdispatch.cljs:19
   11. cljs.core.async.impl.dispatch.message_channel.port1.onmessage


 Any help would be greatly appreciated. I am trying to tie together a
 light restful service backend to a heavy client frontend with Om. It has
 been really fun so far, but running into snags like above is really putting
 a damper on things.

 Regards,
 Joseph

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


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


ANN Cassaforte 1.3.0 is released

2014-05-15 Thread Michael Klishin
Cassaforte [1] is a Clojure client for Cassandra built around CQL.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/15/cassaforte-1-dot-3-0-is-released/

Next Cassaforte release will be 2.0 and will introduce a major public API
change:
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/

1. http://clojurecassandra.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Monger 2.0 RC1 is released

2014-05-13 Thread Michael Klishin
Monger [1] is a Clojure MongoDB client for a more civilized age.

2.0 is a major release that has *breaking public API changes*.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/14/monger-2-dot-0-0-rc1-is-released/

Please give this RC a try. This is the biggest revision of Monger in
the entire history of the project.

1. http://clojuremongodb.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Leiningen/javax.imageio

2014-05-12 Thread Michael Shaffer
What dependencies do I add to leiningen to get javax.imageio package?

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


ANN Monger 1.8.0 is released

2014-05-10 Thread Michael Klishin
Monger [1] is a Clojure MongoDB client for a more civilized age.

Release notes:
http://blog.clojurewerkz.org/blog/2014/05/10/monger-1-dot-8-0-is-released/

Note that the next release will be 2.0, including these breaking API
changes:
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/

1. http://clojuremongodb.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Do not understand the - macro here

2014-05-03 Thread Michael Wood
That whole form is not something you would be likely to write. I think the
exercise is just trying to demonstrate that the version with the - is
equivalent to the version without the arrow and perhaps also that (= a b c)
can be used instead of (and (= a b) (= b c)).

-- 
Michael Wood
On 01 May 2014 5:02 PM, Roelof Wobben rwob...@hotmail.com wrote:

 oke,

 I misunderstood everyone.
 The right answer is last.

 (def A (__ (sort (rest (reverse [2 5 4 1 3 6])
 which would be :

 (def A (last (sort (rest (reverse [2 5 4 1 3 6])
 which resolves to 5

 (def B (- [2 5 4 1 3 6] (reverse) (rest) (sort) (__)))
 Which would be :

 (def B (- [2 5 4 1 3 6] (reverse) (rest) (sort) (last)))

 which resolves also to 5

 so the last part :

 ( = a b 5) is also true ( = 5 5 5)

 Still I find it wierd to make such sort of form.

 Roelof


 Op donderdag 1 mei 2014 16:35:59 UTC+2 schreef Erlis Vidal:

 Look that (def A ...) won't compile as given, so you cannot say A is [1 2
 3 4 5], A is something else once you make it compile filling the blank
 space with the missing function.


 On Thu, May 1, 2014 at 10:24 AM, Maik Schünemann maiksch...@gmail.comwrote:

 The task is to replace __ with the function that makes this true in this
 case makes [1 2 3 4 5] to 5


 On Thu, May 1, 2014 at 4:23 PM, Maik Schünemann maiksch...@gmail.comwrote:




 On Thu, May 1, 2014 at 3:51 PM, Roelof Wobben rwo...@hotmail.comwrote:



 Op donderdag 1 mei 2014 15:20:38 UTC+2 schreef Erlis Vidal:

 I think the confusion is because they used multiple values when
 comparing the equality

 (= (__ (sort (rest (reverse [2 5 4 1 3 6]
(- [2 5 4 1 3 6] (reverse) (rest) (sort) (__))
5)

 This can be seen as :
 (def A (__ (sort (rest (reverse [2 5 4 1 3 6])
 (def B (- [2 5 4 1 3 6] (reverse) (rest) (sort) (__)))

 Then the 4Clojure exercise can be written as:

 (= A B 5)

 Do not feel bad, this took me some time to realize 5 was not part of
 B.


 No problem. But still it does not make any sense.

 If I do it right. this schould be the output of the functions

 A [ 1 2 3 4 5]
 B [ 1 2 3 4 5]
 (= A B 5) -- [1,2,3,4,5] = [1,2,3,4,5] = 5 and this is not true.

This is the output when you don't write the function to replace __.








 On Thu, May 1, 2014 at 7:52 AM, Roelof Wobben rwo...@hotmail.comwrote:

 Is this a nice explanation about macros :
 http://bryangilbert.com/code/2013/07/30/anatomy-of-a-clojure-macro/

 or is there a better one for a beginner.

 Roelof


 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.com

 Note that posts from new members are moderated - please be patient
 with your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com

 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To unsubscribe from this group and stop receiving emails from it,
 send an email to clojure+u...@googlegroups.com.

 For more options, visit https://groups.google.com/d/optout.


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



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


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

ANN Meltdown 1.0 is released

2014-04-29 Thread Michael Klishin
Meltdown is a Clojure interface to Reactor, an asynchronous
programming, event passing and stream processing toolkit for the JVM.

After several alphas and a dozen of betas, Meltdown is
ready to go 1.0. If you're not sure what Meltdown is about, see
the intro post:
http://blog.clojurewerkz.org/blog/2013/09/04/introducing-meltdown/

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/29/meltdown-1-dot-0-0-is-released/

Documentation:
https://github.com/clojurewerkz/meltdown#documentation

1. https://github.com/clojurewerkz/meltdown
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Meltdown 1.0.0-beta12

2014-04-28 Thread Michael Klishin
Meltdown [1] is a Clojure interface to Reactor.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/28/meltdown-1-dot-0-0-beta12-is-released/

1. http://github.com/clojurewerkz/meltdown
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Balagan, a new ClojureWerkz project

2014-04-28 Thread Michael Klishin
On behalf of the ClojureWerkz team, I'm happy to announce
a new project (brain child of Alex Petrov): Balagan [1].

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/28/balagan-1-dot-0-0-is-released/

1. https://github.com/clojurewerkz/balagan
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Welle 2.0 is released

2014-04-28 Thread Michael Klishin
Welle [1] is a small, expressive Clojure client for Riak.

2.0 is a major release that has one major public API change.
Release notes:
http://blog.clojurewerkz.org/blog/2014/04/28/welle-2-dot-0-0-is-released/

Note that there is one more major public API change coming soon in
3.0:
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/

1. http://clojureriak.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: ANN Major breaking public API changes coming to several ClojureWerkz projects

2014-04-27 Thread Michael Klishin
2014-04-27 18:12 GMT+04:00 dgrnbrg dsg123456...@gmail.com:

 Is this slated for Welle too? I didn't see it mentioned.


Yes.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Major breaking public API changes coming to several ClojureWerkz projects

2014-04-26 Thread Michael Klishin
If you use a ClojureWerkz project or two please read this announcement:

http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Neocons 3.0.0-rc1 is released

2014-04-26 Thread Michael Klishin
Neocons [1] is an idiomatic Clojure client for the Neo4J REST API.

3.0 has a *major breaking API change*.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/26/neocons-3-dot-0-0-rc1-is-released/

Background:
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/

1. http://clojureneo4j.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Elastisch 2.0.0-rc1 is released

2014-04-26 Thread Michael Klishin
Elastisch [1] is a small, feature complete Clojure client for ElasticSearch
that supports both REST and native transports.

2.0 has one major breaking API change and is packed with improvements
related to ElasticSearch 1.0 and 1.1 releases.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/26/elastisch-2-dot-0-0-rc1-is-released/

Background:
http://blog.clojurewerkz.org/blog/2014/04/26/major-breaking-public-api-changes-coming-in-our-projects/

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: What's clojure killer app? I don't see any.

2014-04-19 Thread Michael Klishin
2014-04-19 20:15 GMT+04:00 Paulo Suzart paulosuz...@gmail.com:

 People say clojure is good for data. But where are the cases? And more
 specifically, where are the frameworks and libs to support it? Are they
 talking about wrappers around java for Hadoop? Sigh...


I see lots of companies of all sizes use Clojure successfully for data
processing. The great thing about data
processing is that there are many ways to do it. Some use Cascalog, some
use libraries unrelated to Hadoop,
others use just Clojure. So while there may or may not be a single killer
app like Rails, Clojure is fantastic
at this particular group of problems, as demonstrated by companies from 
10 to 10s of thousands of people.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: What's clojure killer app? I don't see any.

2014-04-19 Thread Michael Klishin
2014-04-20 1:26 GMT+04:00 Paulo Suzart paulosuz...@gmail.com:

 You are taking about a bunch of wrappers. They are not bad, but will not
 make these people to move their asses from java.


Ask someone who's used Cascalog if they want to go back to writing Hadoop
jobs in Java.
Just a wrapper can be a drastic productivity booster.

-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: what's the elegant way to write this code in clojure?

2014-04-18 Thread Michael Gardner
On Apr 18, 2014, at 09:05 , sd song sd.s...@gmail.com wrote:

 another question is: i think code like: (if (nil? page) lmt page) is ugly. is 
 there some functions in clojure like (get_default_value_3_if_a_is_null a 3) ?

If you're OK with false being treated the same as nil, you can do (or page lmt).

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


ANN Meltdown 1.0.0-beta10 is released

2014-04-18 Thread Michael Klishin
Meltdown [1] is a Clojure interface to Reactor, an asynchronous programming
toolkit for the JVM.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/18/meltdown-1-dot-0-0-beta10-is-released/

1. http://github.com/clojurewerkz/meltdown
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Elastisch 2.0.0-beta4 is released

2014-04-18 Thread Michael Klishin
Elastisch [1] is a small, feature complete Clojure client for ElasticSearch.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/11/elastisch-2-dot-0-0-beta4-is-released/

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: boolean problem

2014-04-17 Thread Michael Gardner
On Apr 17, 2014, at 02:34 , Tassilo Horn t...@gnu.org wrote:

 And now you have an if without then which will give you another
 exception.

Not true. It's more common to use 'when', but single-branch ifs are perfectly 
fine.

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


Re: boolean problem

2014-04-17 Thread Michael Gardner
On Apr 17, 2014, at 07:38 , Tassilo Horn t...@gnu.org wrote:

 Michael Gardner gardne...@gmail.com writes:
 
 And now you have an if without then which will give you another
 exception.
 
 Not true. It's more common to use 'when', but single-branch ifs are
 perfectly fine.
 
 Yes, but that was a zero-branch if, and that's not ok.

Oh duh, my bad. I read that as if without else for some reason. Sorry for the 
noise.

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


ANN Elastisch 2.0.0-beta4 is released

2014-04-10 Thread Michael Klishin
Elastisch [1] is a small, feature complete Clojure client for ElasticSearch.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/11/elastisch-2-dot-0-0-beta4-is-released/

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Langohr 2.9.0 is released

2014-04-09 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure client for RabbitMQ.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/09/langohr-2-dot-9-0-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Thoughts on a curly-infix reader macro?

2014-04-04 Thread Michael Fogus
I prefer Unfix -- http://fogus.me/fun/unfix/ ;-)

On Fri, Apr 4, 2014 at 12:45 PM, Alex Miller a...@puredanger.com wrote:
 Incanter supports this with the $= prefix:
 ($= 7 + 8 - 2 * 6 / 2)

 http://data-sorcery.org/2010/05/14/infix-math/

 Might be worth looking at...


 On Thursday, April 3, 2014 11:17:32 PM UTC-5, Joshua Brulé wrote:

 Proposal:

 For an *odd* number of forms a, x, b, ...

 {a x b x c ...} = (x a b c ...)
 {a x b y c ...} = (*nfx* a x b y c ...)

 Reasoning:

 Even after a lot of practice, prefix math is still harder (at least for
 me...) to read than non-prefix math. The [], () and  matching delimiters
 are already taken, but {} is only used for an even number of forms (and, in
 fact, throws an exception on an odd number of forms.)

 ; trumped-up examples
 (defn harmonic-mean [x1 x2]
   {{2 * x1 * x2} / {x1 + x2}})

 (defn fib [n]
   (cond
 {n = 0} 1
 {n = 1} 1
 :else {(fib {n - 1}) + (fib {n - 2})}))

 Basically, I'm claiming a solid win on readability, and no risk of
 breaking any existing code.

 I realize there's a certain risk of mistaking curly-infix for a map
 literal when reading code, but I think it's minimal. To me, at least, {x +
 y} just doesn't look like a map.

 Thoughts?

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



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

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


ANN Langohr 2.8.2 is released

2014-04-03 Thread Michael Klishin
Langohr 2.8.2 has no change log entry: there are no user facing changes
from 2.8.1, only some corrections to make it compile against RabbitMQ
Java client 3.3.0 from scratch (after `lein clean`).
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Validateur 2.0.0 is released

2014-04-02 Thread Michael Klishin
Validateur [1] is a small validation library for Clojure and ClojureScript.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/02/validateur-2-dot-0-0-is-released/

1. http://clojurevalidations.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Propertied 1.2.0

2014-04-02 Thread Michael Klishin
Propertied [1] is a tiny library for working with property files
and java.util.Properties.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/02/propertied-1-dot-2-0-is-released/

1. https://github.com/michaelklishin/propertied
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Langohr 2.8 is released

2014-04-02 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure RabbitMQ client.

Release notes:
http://blog.clojurewerkz.org/blog/2014/04/02/langohr-2-dot-8-1-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Amazonica performance: options?

2014-03-28 Thread Michael Cohen
time ec2-describe-images -a  ec2-cli-images.txt

real  1m26.401s
user  0m6.551s
sys 0m1.159s

and writes a 7.5MB file to disk. Note the -a flag, to list all of the 
available public images.

in a repl,

(time (spit clj-awz-images.txt (describe-images)))

Elapsed time: 90258.47 msecs

and writes an 18MB file to disk containing all the available public images. 

Am I missing something? 

You can also pass a list of filters to the call to narrow the result.



On Friday, March 28, 2014 7:59:48 AM UTC-7, Dave Tenny wrote:

 I'm trying to code some amazonica based solutions in a nontrivial AWS 
 environment.
 I work with many AWS accounts and it isn't unusual to see a thousand 
 instances running on one account, and similar excesses in other types of 
 AWS resources.  So if you're going an ec2-describe-instances (or amazonica 
 equivalent), it needs not to choke in this environment.

 I like the way amazonica does all the bean marshalling for me so I can 
 express queries simply.  But the returned datasets need to be more 
 pragmatic/performant.

 The problem for me is that Amazonica doesn't seem up to the task of 
 dealing with queries that return large volumes of data.
 It has nothing to do with reflection I suspect, and more to do with 
 unwieldy amounts of duplicate information in the result unmarshalling 
 process.
 The clojure all the way down philosophy results of duplicated 
 information and just printing the result to a file takes a long time.
 If I accidentally let the output go to an emacs cider repl buffer, then 
 things get so wedged up to the point I  may as well kill -9 emacs.
 (Known cider repl issues here, it isn't all amazonica).

 For example:  here's how long it takes to run the java based ec2 cli to 
 describe instances on an account:

 $ time ec2-describe-images /tmp/ec2-cli-images.out

 real0m11.484s
 user0m2.564s 
 sys 0m0.129s 


 And here's how long it takes from a 'lein repl' to run the same query on 
 the same account:

 (time (with-output [/tmp/clj-awz-images.out] (println 
 (ec2/describe-images
 Elapsed time: 194685.552683 msecs

 Now the amount of data being printed by the EC2 CLI is of course much 
 different than the output from Amazonica,
 amazonica is returning everything in gory duplicate map detail, ec2 is 
 not, as evidenced by the relative output sizes:

 -rw-rw-r--.  1 dave dave 17201290 Mar 28 10:35 clj-awz-images.out
 -rw-rw-r--.  1 dave dave99342 Mar 28 10:26 ec2-cli-images.out.11.5s

 Where the amazonica output starts with:
 {:images [{:hypervisor xen, :state available, :virtualization-type 
 paravirtual, :root-device-type instance-store,
 ... and goes on like that with duplicate keywords all the way down.

 Anyway, my goal isn't to turn amazonica into ec2 cli.  But even the most 
 trivial operations in amazonica (especially the most trivial, i.e. those 
 lacking filters against large data sets), pretty  much whack me left and 
 right
 with CPU wedged tools and (completely unacceptable) long waits for results.

 Any suggestions on how to use amazonica in a way where the output is ... 
 different, and minimal/workable?

 Or am I left with going to another package or writing my own java sdk 
 api's directly?

 I'm pretty sure the results need to be structures whose relationship to 
 data values is implicit (and not explicit in map keys). I don't see any 
 options with amazonica to change this however.

 Thanks for suggestions, forgive me if I've missed something obvious.  I'm 
 just trying to see what's out there and at the same time move along quickly 
 enough that I can get some usable tools for work (so I can lose all my 
 python and bash scripts for various interfaces, I want clojure!).

 - Dave




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


Re: vim-fireplace debug workflow: modifying jars

2014-03-27 Thread Michael Blume
Don't worry about the jar, especially. You can have your own git checkout 
of the upstream project you're working with, and that'll work just fine. 
Open a source file you need to work with, connect with nrepl, edit a 
function, and eval -- that should be enough.

On Thursday, March 27, 2014 11:43:19 AM UTC-7, Brian Craft wrote:

 Describing my debug workflow woes at clojure/west, it was suggested to me 
 that I could jump into the jar file for a library and add print statements 
 to elucidate its inner workings. I guess this is supported in emacs? Jump 
 into the library source jar, edit, reload into the repl? How does this 
 work, exactly? Does it rewrite the zip file and load that to the repl, or 
 just update the repl from the working buffer?

 I just tried this in vim-fireplace, but it threw an error on writing to 
 the jar buffer. Alternatively, perhaps I should eval it w/o trying to save 
 the jar. That works so long as I then only evaluate expressions from the 
 same namespace. In other namespaces, the edits are not apparent. It's like 
 there are two versions of the namespace active in the repl. Not sure what's 
 going on, or how to make other namespaces aware of the changes.


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


Re: creating a map

2014-03-26 Thread Michael Gardner
For reasons unclear to me, (into {} ...) expects a sequence of 2-element 
*vectors*, not just 2-element collections. partition returns a seq of lists, 
not vectors, which is why you're getting that exception. You could try (into {} 
(map vec (partition 2 2 12))) instead.

On Mar 26, 2014, at 15:36 , Andy Smith the4thamig...@googlemail.com wrote:

 Hi all,
 
 I was wondering why this doesn't create a map 1 - 2 :
 
 (into {} (partition 2 2 12))
 
 Must be yet another misunderstanding of mine.
 
 Thanks
 
 Andy
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

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


ANN Elastisch 2.0.0-beta2 is released

2014-03-23 Thread Michael Klishin
Elastisch [1] is a small, feature complete client for ElasticSearch
that provides both REST and native clients.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/23/elastisch-2-dot-0-0-beta2-is-released/

Sister projects: http://clojurewerkz.org

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-18 Thread Michael Klishin
2014-03-18 18:21 GMT+04:00 Alex Miller a...@puredanger.com:

 We need your help in checking out the current release candidate - this is
 your opportunity to let us know about problems *before* we release, rather
 than after.


No issues to report from testing 20+ ClojureWerkz projects on 1.6.0-RC1.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Calling from a macro to a private macro

2014-03-17 Thread Michael Blume
You don't have the macro generate a call to the private function, you have 
the macro call the private function directly

replace:

(defmacro call-self* [x]
  `(~x ~x))

(defmacro call-self [x]
  `(do
(println calling form  ~(str x)  with itself)
(call-self ~x)))

with:

(defn- call-self* [x]
  `(~x ~x))

(defmacro call-self [x]
  `(do
(println calling form  ~(str x)  with itself)
~(call-self x)))

The function call-self* is still called at compile-time and is called *by 
the call-self macro*, not the generated client code. Make sense?


On Monday, March 17, 2014 10:31:36 AM UTC-7, Yoav Rubin wrote:

 I need to do it, as I need the arguments to remain not evaluated until 
 they get to that private macro. That private macro does some work on the 
 arguments before they get evaluated (the arguments themselves are 
 s-expressions).

 Still, even if it is a private function - how can I call it from a macro 
 that is called from another namespace?

 On Monday, March 17, 2014 4:19:19 PM UTC+2, James Reeves wrote:

 Don't use a private macro: use a function that spits out an s-expression.

 - James


 On 17 March 2014 06:02, Yoav Rubin yoav...@gmail.com wrote:

 Hi All,

 I have a namespace that has two macros as part of its public API, and 
 another macro that act as helpers for the public macro

 (defmacro helper-mac [arg1 arg2 f]
 ;; do stuff with f , arg1 and arg2
 )

 (defmacro m0 [arg1 arg2]
(priv-mac arg1 arg2 f1)
 )
  
 (defmacro m1 [arg1 arg2] (
   (priv-mac arg1 arg2 f2)
 )

 f1 and f2 are just two functions.

 I would like to make the helper macro private (using  ^:private), but 
 when I do it and call either m0 or m1 from another namespace, I get an 
 exception saying that helper-mac is private.

 Is it possible to call from to a macro in another namespace when that 
 macro is calling a private macro in its namespace?

 Thanks,

 Yoav

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




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


ANN Meltdown 1.0.0-beta8

2014-03-16 Thread Michael Klishin
Meltdown [1] is a Clojure interface to Reactor [2], an asynchronous
programming
toolkit for the JVM.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/16/meltdown-1-dot-0-0-beta8-is-released/

1. https://github.com/clojurewerkz/meltdown
2.
http://spring.io/blog/2013/11/12/it-can-t-just-be-big-data-it-has-to-be-fast-data-reactor-1-0-goes-ga

-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: XOR two arrays into a third on Clojure

2014-03-13 Thread Michael Gardner
Might be slow because of the polymorphic nature of nth. If you replace nth with 
aget (and turn on *warn-on-reflection*, which is a good idea when 
performance-tuning), you'll get reflection warnings because Clojure doesn't 
know what Java method to use since it doesn't know what type of objects a and b 
are. Once you silence those with type hints like in Walter's example, you get 
roughly a 2x speedup (in my tests).

BTW, I'd write it like this:

(defn inplace-xor [^bytes a ^bytes b ^bytes out]
(dotimes [i (alength a)]
(aset-byte out i
(bit-xor (aget a i) (aget b i)

On Mar 13, 2014, at 00:26 , Ignacio Corderi icord...@soe.ucsc.edu wrote:

 Hey guys, here is a huge performance problem I'm trying to figure out:
 
 ;; Say you have 2 data arrays sitting out there of 1 MB
 
 (def one-mb (byte-array (* 1024 1024))) 
 (def another-mb (byte-array (* 1024 1024))) 
 
 ;; and another one that should have the byte-by-byte XOR of the previous two 
 
 (def out-mb (byte-array (* 1024 1024)))
 
 ;; question is... how do you code this guy, so that it doesn't take forever
 
 (defn inplace-xor [a b out]
   (def ln (count a))
   (loop [x 0]
 (if ( x ln)
   (do 
 (aset-byte out x (bit-xor (nth a x) (nth b x)))
 (recur (+ x 1))
 
 
 ;; checking the time 
 
 (time (inplace-xor one-mb another-mb out-mb))
 
 ;; takes about ~400ms which is well... A LOT
 
 ;; I'm happy to receive a solution that involves calling some java library...
 
 Thanks in advance!
 -Ignacio
 
  
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

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


Re: XOR two arrays into a third on Clojure

2014-03-13 Thread Michael Gardner
On Mar 13, 2014, at 07:34 , Alex Miller a...@puredanger.com wrote:

 Agreed with all the comments on this so far. I would also say that dotimes is 
 slower than loop for stuff like this so I would also make that change.

The dotimes version is slightly faster on my hardware. Why would it be slower?

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


Re: traversing amazonica (or other nested data) results

2014-03-12 Thread Michael Cohen
 I get a typical clojure-y set of data fairly deeply nested data 
structures that I have yet to master with respect to traversing  using 
basic clojure operations

You get an arbitrarily nested Clojure, not Clojure-y, data structure 
precisely because those maps, lists, and sets suffice in 99% of cases and 
the language has probably the best set of functions (including those data 
structures themselves!) for working with them of any language out there. 
Honestly, Clojure's data structures and the suite of polymorphic functions 
that go with them are kind of the whole point of the language. Just keep 
practicing using them. 

2 maps, a flatten, a select-keys, anddata...

(- (describe-instances)
   :reservations
   (map :instances)
   flatten
   (map #(select-keys % [:instance-id :instance-type 
:public-ip-address]))) ;; whatever other keys you're interested in



On Wednesday, March 12, 2014 4:13:06 AM UTC-7, Dave Tenny wrote:

 If I do something like a describe-instances call in amazonica, I get a 
 typical clojure-y set of data fairly deeply nested data structures
 that I have yet to master with respect to traversing  using basic clojure 
 operations.

 Given a result that basically ends up looking like pages of interleaved 
 maps and arrays, what should I be using to pick out
 nested key/value information?

 {:reservations [{:reservation-id r-3da23a55,
 ... pages of output ...
 }]}]}]}
 user=

 'get-in' won't do it because of the arrays (or PersistentArrayMaps, as the 
 case may be).
 I was hoping to avoid zippers, but maybe that is the idiomatic way to do 
 it, I don't know.

  What's the easy way to traverse these things?  This is a very common data 
 pattern in using clojure to access everything from html content to AWS data.
  I just want to pluck out the :instance k/v information in the nested 
 morass of data printed at my REPL but I haven't yet found the intuitive and 
 idiomatic way to do it.







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


ANN Langohr 2.7.1 is released

2014-03-11 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure client for RabbitMQ.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/11/langohr-2-dot-7-1-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Elastisch 2.0.0-beta1 is released

2014-03-11 Thread Michael Klishin
Elastisch [1] is a small, feature complete Clojure client for ElasticSearch
that provides both HTTP and native transports.

2.0 focuses on compatibility with and support for the new features in
ElasticSearch 1.0.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/10/elastisch-2-dot-0-0-beta1-is-released/

1. http://clojureelasticsearch.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Langohr 2.5.0 is released

2014-03-06 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure client for RabbitMQ.

Release notes:
http://blog.clojurewerkz.org/blog/2014/03/06/langohr-2-dot-5-0-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [ANN] Clojure 1.6.0-beta2

2014-03-05 Thread Michael Klishin
2014-03-05 21:47 GMT+04:00 Sean Corfield s...@corfield.org:

 We've been running our (World Singles) test suite against
 1.6.0-master-SNAPSHOT for some time as a matter of course and haven't
 tripped over anything so far (that I can recall). The only change in our
 bugbase due to 1.6.0 was the earlier change to disallow keyword literals
 that start with a digit (which I believe was reverted?).

 CongoMongo had a test failure (due to the hashing changes?). It was a
 suspicious test that was relying on the sequence ordering of iterating over
 a set so I just fixed the test.


All or nearly all ClojureWerkz projects test against 1.6.0-beta2 and
master. Most order dependent
tests fail with 1.6, and sometimes it is annoying (e.g. JSON generation
tests that compare strings).

Nothing that I'd consider a Clojure bug, though.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: ANN: rx-cljs, A ClojureScript wrapper for Reactive Extensions

2014-03-01 Thread Michael Marsh
Awesome! I've been addicted to Rx lately and this is just what I need for 
one of my projects. I'll definitely check this out and let you know how it 
goes.

On Tuesday, May 21, 2013 4:01:46 AM UTC-4, Leonardo Borges wrote:

 Hey guys,

 Given some recent work I've been doing with RxJS [1], I ended up writing a 
 small Clojurescript wrapper for it.

 The idea of being familiar with a common API in multiple environments 
 (Java, Javascript and Clojurescript) is what triggered this approach.

 The README contains sample snippets and a link to an example app, as well 
 as a list of what's been implemented. 
 But be warned: it's very early days and this wrapper is still very much 
 incomplete.

 I'm keen on spending more time on it if there is enough interest - at the 
 moment I've only implemented what I needed.

 Where to find it:

 Github: https://github.com/leonardoborges/rx-cljs
 Clojars: https://clojars.org/com.leonardoborges/rx-cljs

 [1]: https://github.com/Reactive-Extensions/RxJS


 Cheers,
 Leonardo Borges
 www.leonardoborges.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
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: The future of CongoMongo?

2014-02-28 Thread Michael Klishin
2014-02-28 14:35 GMT+04:00 xavi xavi.caba...@gmail.com:

 When asked (a year ago) why I didn't use Monger I said I prefer CongoMongo
 because it's smaller and so probably easier to understand


Monger's API follows MongoDB shell. CongoMongo invents a completely new
API. I'll let you decide which one is easier to understand.



 Not having used Monger, I don't know what you mean by much richer
 composable DSL, but in general I don't like using specific DSLs for
 something that it already has its own language (I mean that MongoDB already
 has a query language, so I prefer to use something as close as possible to
 that, not another abstraction on top of that with its own limitations and
 problems that at the ends doesn't save me from having to learn the original
 language).


Monger's query DSL is documented and completely optional:
http://clojuremongodb.info/articles/querying.html#monger_query_dsl

If you don't use it, you query/update/etc using the same constructs as in
Mongo shell.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Comparing Regular Expression pattens for equality?

2014-02-26 Thread Michael Gardner
You can compare the output of the .pattern or .toString methods if all you care 
about is finding regexes made from the exact same patterns. There's no simple 
way to detect equivalent regexes made from different patterns, though.

As for why = doesn't do this, you'd have to talk to the Java folks about that 
(since Clojure's = just calls .equals on Java objects). I suspect it has to do 
with the problem of equivalent patterns.

On Feb 26, 2014, at 05:55 , Thomas th.vanderv...@gmail.com wrote:

 Hi Everyone,
 
 I am creating some regular expressions programmatically with re-pattern. In 
 order to avoid creating the same regex pattern again I want to check if it 
 already exists. But comparing regex pattern doesn't seem to be work:
 
 user= (= #test #test)
 false
 user= (identical? #test #test)
 false
 
 Not surprised that identical? doesn't work to be honest, but = should have 
 worked IMHO
 
 Is there a way to do this?
 
 TIA
 
 Thomas
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.

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


Re: error in website text

2014-02-26 Thread Michael Fogus
I do believe that the sentence is correct as written.  That is,
Clojure strives to solve the same kinds of problems that Java is
typically used to solve.

On Wed, Feb 26, 2014 at 8:58 AM, Janek Warchoł
lemniskata.bernoull...@gmail.com wrote:
 Hello,

 On clojure.org/rationale there is a sentence

 It endeavors to be a general-purpose language suitable in those areas
 where Java is suitable


 It seems that a not is missing at the end.

 best,
 Janek Warchoł

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



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

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


Re: The future of CongoMongo?

2014-02-26 Thread Michael Klishin
2014-02-27 4:56 GMT+04:00 Mark Engelberg mark.engelb...@gmail.com:

 I've looked at monger a couple of times, and felt it was more involved
 than I wanted.  For example, I was turned off by the need to manually
 create object IDs as part of creating records.  I like how congomongo does
 it for me.


See monger.collection/insert-and-return


-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Email delivery libs not working

2014-02-25 Thread Michael Klishin
2014-02-25 14:08 GMT+04:00 The Dude (Abides) exel...@gmail.com:

 (postal/send-message
 ^{:host smtp.mandrillapp.com
   :user your mandrill acct email address
   :pass your mandrill api key
   :port 587}
  {:type text/html
   :from from email address
   :to to email address
   :subject (render Hi from {{firstname}} {:firstname (session/get
 :firstname)})
   :body [{:type text/html; charset=utf-8
   :content (render-resource
 email/templates/hello.html.mustache
{:name Uncle Scooby :memberid (session/get :member-id)})
 }] })


Let me just say that the choice to use metadata to pass crucial connection
arguments
in Postal was wrong.

We will be replacing Postal in ClojureWerkz Mailer for this reason.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Image Resizer lib exception error

2014-02-25 Thread Michael Klishin
2014-02-25 16:46 GMT+04:00 Moritz Ulrich mor...@tarn-vedra.de:

 Just from the looks of the exception, you might need to pass an
 input-stream or reader instead of a path.


which can be instantiated with

http://clojuredocs.org/clojure_core/clojure.java.io/input-stream

and

http://clojuredocs.org/clojure_core/clojure.java.io/reader

-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Meltdown 1.0.0-beta5 is released

2014-02-25 Thread Michael Klishin
Meltdown [1] is a Clojure interface to Reactor [2], an asynchronous
programming
toolkit for the JVM.

beta5 is a development release that primarily focuses on updating Reactor
to 1.1.0.M1 and fixing issues.

Release notes:
http://blog.clojurewerkz.org/blog/2014/02/26/meltdown-1-dot-0-0-beta5-is-released/

1. https://github.com/clojurewerkz/meltdown
2.
http://spring.io/blog/2013/11/12/it-can-t-just-be-big-data-it-has-to-be-fast-data-reactor-1-0-goes-ga
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Clojure / polyglot position at OpinionLab in Chicago

2014-02-24 Thread Michael Klishin
2014-02-24 22:47 GMT+04:00 John Jacobsen eigenhom...@gmail.com:

 Though I'm fairly new here I'm happy to answer questions or forward them
 to the appropriate place.


Lots of people on this list are not based in Chicago or US. Will remote
candidates be considered?


-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: clojure - beam compiler

2014-02-23 Thread Michael Klishin
2014-02-23 13:40 GMT+04:00 t x txrev...@gmail.com:

 Thus, my question -- are there any active efforts to port clojure
 (say via cljs's compiler) to Erlang/Beam ?


Take a look at Joxa:

http://joxa.org/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Hiring Clojure developers for our distributed team at Outpace Systems

2014-02-19 Thread Michael Klishin
2014-02-19 18:41 GMT+04:00 Paul Stadig p...@stadig.name:

 If you are interested in working from home on a distributed team writing
 Clojure code, then feel free to contact me. If you aren't quite sure how
 the distributed team thing works, or are concerned about your Clojure skill
 level etc, then please still feel free to contact me. Not everyone at
 Outpace has a background in Clojure.


Paul,

I believe last time candidates from non-US timezones were not considered.
Is it still the case? I'm pretty sure plenty of potential candidates on
this list care to know.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: call clojure from java

2014-02-18 Thread Michael Klishin
2014-02-18 16:00 GMT+04:00 Sunil S Nandihalli sunil.nandiha...@gmail.com:

 You can't call a clojurescript function from java. However you can call
 clojure-code from Java and clojurescript code from javascript.


I think the idea is to call a Clojure script (with a space) from Java.

Use clojure.lang.RT#var and clojure.lang.IFn#invoke to call
clojure.core/load-file
and similar clojure.core functions:

http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips#Invoking_Clojure_from_Java
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: Function that weaves two collections together - looking for feedback

2014-02-18 Thread Michael Gardner
You may be interested in the core function 'interleave'. As for (into []), it's 
perfectly idiomatic as long as you actually need to return a vector and not 
just some kind of sequence (the more common case). But note also the 
mapv/filterv/reduce-kv family of functions, though they're not directly 
applicable here.

On Feb 18, 2014, at 22:58 , Laurent Droin laurentdr...@gmail.com wrote:

 Hi,
 
 Continuing my little pet project (small program really) to learn Clojure, I 
 am now working on a function whose description would be something like:
   Returns a collection 'weaving' 2 collections (boundaries into categories).
   Boundaries must have one element less than categories.
   For example, if categories is [:z1 :z2 :z3 :z4 :z5]  
   and boundaries is [120 150 165 180] 
   returns [:z1 120 :z2 150 :z3 165 :z4 180 :z5]
 
 Assume the precondition is enforced.
 If categories has n elements, boundaries has n-1.
 
 I have tried to come up with a good implementation. I actually came up with 
 two, one that is non recursive, and one that is recursive. But I'm not fully 
 satisfied. I have the feeling that it's possible to make the function 
 simpler, and more elegant but I only know a subset of Clojure and am surely 
 missing some good idioms that I could/should be using.
 So once again, relying on feedback from experienced Clojurists to show me the 
 way :-)
 
 Here is what I have so far:
 
 1- the non recursive function - based on mapcat
 (defn build-quantize-defs
 
   
 [categories boundaries]
 
 
 (conj (into [] (mapcat #(vector %1 %2) categories boundaries)) (last 
 categories)))
 
 2 - the recursive function
 (defn build-quantize-defs-recur [categories boundaries]
 
   
 (let [c (first categories) b (first boundaries)]
 
 
 (if (nil? b)
  
   
 [c]
  
   
 (into [] (concat [c] [b] (build-quantize-defs-recur (rest categories) (rest 
 boundaries)))
 
 Both functions work (on my example at least).
 
 One of the things I don't like, is my abusing (or the feeling that I am 
 abusing anyway) of this into []  idiom. I find myself constantly turning 
 things into vectors. That doesn't seem right and maybe I am using it in 
 places it's not needed. That's probably because I don't quite have a very 
 good idea of how collections work just yet. 
 
 Thanks for any feedback.

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


Re: [ANN] Clojure 1.6.0-beta1

2014-02-14 Thread Michael Gardner
On Feb 14, 2014, at 17:25 , Alex Miller a...@puredanger.com wrote:

 The names of these functions were chosen by Rich. There was already some name 
 overloading of some even before these new functions with some (truthy) and 
 some-/some- (not nil). The new functions keep with the latter meaning. 
 Many other names were considered, including everything I've seen someone 
 mention (-not-nil, exists, nnil, etc). As far as I know these names are 
 final, however, I will relay all of the feedback I've seen here, on #clojure, 
 and on Twitter to Rich for consideration.

Probably way too late for this, but if there are truthy and non-nil versions of 
multiple functions/macros then it would be good to use a consistent suffix to 
indicate those semantics, e.g. if/if*, when-let/when-let*, etc (asterisk just 
used as an example).

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


Re: java.jdbc 0.3.3 select query exception: clojure.lang.LazySeq cannot be cast to clojure.lang.IFn

2014-02-14 Thread Michael Klishin
2014-02-15 7:55 GMT+04:00 The Dude (Abides) exel...@gmail.com:

 However this results in an exception error:

 java.lang.ClassCastException
 clojure.lang.LazySeq cannot be cast to clojure.lang.IFn


Please post a complete stack trace.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: range-sum

2014-02-13 Thread Michael Gardner
On Feb 13, 2014, at 08:56 , Stuart Sierra the.stuart.sie...@gmail.com wrote:

 No. Clojure's `apply` is lazy. Varargs are passed to the
 function as a lazy sequence, and it's up to the function to
 realize them or not.

It's worth noting (for people who might try to rely on that laziness) that 
apply will always realize its first four arguments. See 
http://clojurian.blogspot.com/2012/11/beware-of-mapcat.html

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


Re: range-sum

2014-02-13 Thread Michael Gardner
On Feb 13, 2014, at 14:31 , Michael Gardner gardne...@gmail.com wrote:

 On Feb 13, 2014, at 08:56 , Stuart Sierra the.stuart.sie...@gmail.com wrote:
 
 No. Clojure's `apply` is lazy. Varargs are passed to the
 function as a lazy sequence, and it's up to the function to
 realize them or not.
 
 It's worth noting (for people who might try to rely on that laziness) that 
 apply will always realize its first four arguments. See 
 http://clojurian.blogspot.com/2012/11/beware-of-mapcat.html

On further examination, I don't think this is correct.

user= (defn f [x] (println x) x)
#'user/f
user= (defn s [n] (lazy-seq (cons (f n) (s (inc n)
#'user/s
user= (defn myfn [ args] nil)
#'user/myfn
user= (apply myfn (s 0))
0
1
nil

I can't explain why exactly two of the elements in (s 0) are being realized 
here, but in any case my claim seems to be wrong.

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


Re: range-sum

2014-02-13 Thread Michael Gardner
On Feb 13, 2014, at 15:17 , Mauricio Aldazosa 
mauricio.aldaz...@ciencias.unam.mx wrote:

 My guess is that when using a rest-param a call to next is involved thus 
 realizing two elements of the sequence.

A destructured vararg is nil when there are no more items, which indeed 
requires realizing at least the first item. But that only explains why the 
first item gets realized, not the second (unless I'm missing something).

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


Re: Korma Sql model not accepting url var

2014-02-11 Thread Michael Klishin
2014-02-11 12:22 GMT+04:00 The Dude (Abides) exel...@gmail.com:

 (GET /member/:id [id] (get-the-member id))


id here likely ends up being a string but your Postgres column
is an integer. Try (Integer/valueOf id).

-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: map semantics

2014-02-08 Thread Michael Gardner
On Feb 8, 2014, at 15:14 , Andy C andy.coolw...@gmail.com wrote:

 It all boils down this:
   is it possible to have two clojure.lang.PersistentHashSet with identical 
 values (in mathematical sense) but producing different seqs?

Are you serious? The entire point of the email you responded to was to answer 
that question.

(But why male models?)

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


Re: [ANN] clara-rules 0.4 released

2014-02-07 Thread Michael Fogus
 The theme of this release is rules as data

Yay!

Great job Ryan.  I look forward to checking out your changes.


On Thu, Feb 6, 2014 at 10:15 PM, Ryan Brush rbr...@gmail.com wrote:
 The 0.4.0 release of Clara is up on Clojars. The github page is at [1].

 The theme of this release is rules as data, which I wrote about at [2]. In
 a nutshell, all rules and the Rete network itself are defined by
 well-defined data structures (via Prismatic Schema), which opens a lot of
 doors:

 * Alternate front ends to Clara can now be written, generating rules in the
 schema-compliant format. If the defrule-style DSL isn't your thing, you
 can generate rules via any mechanism you want.
 * Tooling can now be written to inspect the rules and their relationships,
 with some examples in the blog at [2].
 * The Rete network itself is also a schema-defined data structure, opening
 the door for visualizing the working memory itself.

 There are some breaking changes for the ClojureScript support: I moved the
 logic to generate a Rete network in ClojureScript to be driven at compile
 time...meaning we can assemble an optimized network on the server, rather
 than having the client do that computation every time it loads. Details and
 an example are linked at [3]. I haven't yet used the ClojureScript version
 in anger, but am maintaining it because there is interest and it's cool to
 see this running in a browser. ;)

 I expect future releases to be smaller and more frequent. Getting Clara on a
 solid basis of well-defined structures was a significant effort, but I think
 it puts it in a stronger position with a number of advantages over existing
 rule engines.

 [1]
 https://github.com/rbrush/clara-rules
 [2]
 http://www.toomuchcode.org/blog/2014/01/19/rules-as-data/
 [3]
 https://github.com/rbrush/clara-rules/wiki/ClojureScript

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



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

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


Re: map semantics

2014-02-07 Thread Michael Gardner
On Feb 7, 2014, at 22:17 , Andy C andy.coolw...@gmail.com wrote:

 Having map to produce a lazy seq implies that the input must be serializable 
 (or linear).

That's just what map is in Clojure: an operation on sequences. It works on 
various concrete types because those can be viewed as sequences; map knows 
nothing of their structure. What you're looking for is another abstraction 
entirely (see clojure.walk, for example).

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


Re: ANN: Another binary parser combinator - this time for java's streams

2014-01-30 Thread Michael Gardner
On Jan 30, 2014, at 01:36 , Steffen steffen.die...@gmail.com wrote:

 If you would like to use a specific codec other than :byte or :ubyte but also 
 restrict the number of bytes read this would only work if you expected to 
 have some kind of optional padding after your objects, like: 
 
 (padding inner-codec 4096).

Yes, that's exactly what I need. I didn't try 'padding because the docs seemed 
to say that it works only when encoding.

My only problem is that when decoding, I don't know how many objects to expect 
before the padding (this is for parsing ID3v2 tags). Ideally I'd like to say 
something like (padding (repeated frame-codec) byte-count), with the padding 
taking over once the inner codec fails to parse the next available bytes (but 
see the next point).

 (defn enum [type m] 
 (compile-codec type m 
 (clojure.set/map-invert m))) 
 So m would be a map of for example keywords to a native datatype like int 
 that would allow you to represent a fixed number of things with distinct 
 binary representations? Looks good to me. What do you think should be the 
 behaviour in case of an unspecified value (not in m)?

I'd expect an exception to be thrown in case of an unspecified value. But when 
decoding, it would be nice if the exception were (optionally?) swallowed when 
occurring inside a 'padding construct, to allow something like the above 
example. Though I don't know how many other binary formats would require 
something like that; I imagine most aren't as dumb as ID3v2.

 Currently the index in the vector is the index of the bit. Yes, that means 
 LSB-first.

Then the docs seem to be wrong (or at least confusing), since the example code 
for 'bits says the first item corresponds to the highest bit.

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


Re: ANN: Another binary parser combinator - this time for java's streams

2014-01-30 Thread Michael Gardner
On Jan 30, 2014, at 08:10 , Steffen Dienst steffen.die...@gmail.com wrote:

 That's exactly what padding is designed to do: Let's say you know there is a 
 run of bytes with a known length (from a header field maybe) and you want to 
 parse an unbounded number of objects within this area. You could use
 
 (padding (repeated inner-codec) 1024)

Excellent.

 Currently codecs don't know about their context, that means, I can't behave 
 differently depending on whether a codec is used within a padding or not, 
 sorry.

It could work the other way around, with 'padding catching certain types of 
exceptions thrown by its inner codecs.

For example, when parsing something like (padding (repeated (constant 0x99)) 
len pad-byte), padding could catch the exception thrown by the constant codec 
and then use pad-byte to parse the remaining bytes.

But I can live without this, if it's too niche or too hard to implement.

 Then the docs seem to be wrong (or at least confusing), since the example 
 code for 'bits says the first item corresponds to the highest bit.
 Thanks, I fixed the documentation. 

A couple other things about the README:

The docs for 'header say that body-header should produce a codec that will be 
used to encode the header, but in testing I've had to make it return the header 
directly (which does make more sense).

Also, the expression #{:a :b:last} in the 'bits section is missing a space.

Thanks for all the help, by the way!

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


deadlock when using clojure data structures at startup

2014-01-30 Thread Michael Blume
I work on a Java team, so our use of clojure is either

a) calling into clojure from java or
b) directly using the clojure data structures.

Recently we had an app fail because, as it was starting up, one thread was
trying to require a clojure namespace, and another was trying to use a
PersistentHashSet. Somehow these two threads wound up in deadlock. I've
reproduced the problem with minimal code here:

https://github.com/MichaelBlume/deadlock

Jstack output follows

Thread-0 prio=5 tid=0x7fa282077800 nid=0x5203 in Object.wait()
[0x00015dce4000]
   java.lang.Thread.State: RUNNABLE
at clojure.lang.Util.hasheq(Util.java:170)
at clojure.lang.PersistentHashMap.hash(PersistentHashMap.java:120)
 at clojure.lang.PersistentHashMap.assoc(PersistentHashMap.java:142)
at clojure.lang.PersistentHashSet.cons(PersistentHashSet.java:99)
 at clojure.lang.PersistentHashSet.create(PersistentHashSet.java:27)
at clojure.core__init.__init3(Unknown Source)
 at clojure.core__init.clinit(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
 at clojure.lang.RT.loadClassForName(RT.java:2098)
at clojure.lang.RT.load(RT.java:430)
at clojure.lang.RT.load(RT.java:411)
 at clojure.lang.RT.doInit(RT.java:447)
at clojure.lang.RT.clinit(RT.java:329)
at deadlock.DeadLockMain$1.run(DeadLockMain.java:13)
 at java.lang.Thread.run(Thread.java:722)

main prio=5 tid=0x7fa282001000 nid=0x1703 in Object.wait()
[0x000103429000]
   java.lang.Thread.State: RUNNABLE
at clojure.lang.Numbers$BigDecimalOps.clinit(Numbers.java:824)
at clojure.lang.Numbers.clinit(Numbers.java:937)
 at clojure.lang.Util.hasheq(Util.java:170)
at clojure.lang.PersistentHashMap.hash(PersistentHashMap.java:120)
 at clojure.lang.PersistentHashMap.assoc(PersistentHashMap.java:142)
at clojure.lang.PersistentHashSet.cons(PersistentHashSet.java:99)
 at deadlock.DeadLockMain.main(DeadLockMain.java:17)


I've reproduced this behavior with clojure 1.4.0, 1.5.1, and 1.6.0-alpha3
(though the attached project uses 1.5.1, it should be trivial to change its
dependency)

Is this expected behavior? Is the take-away don't use clojure data
structures from java code? Make sure the clojure runtime is warm before
using clojure data structures?

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


Re: ANN: Another binary parser combinator - this time for java's streams

2014-01-29 Thread Michael Gardner
Looks good! A few questions:

1) Is it possible to specify a byte length for a 'repeated codec, rather than a 
number of objects?

2) Would you consider an enum type, for convenience? Something like:

(defn enum [type m]
(compile-codec type m
(clojure.set/map-invert m)))

3) In the mp3.clj demo, the flags seem to be listed in the wrong order. Or does 
the 'bits function actually take its arguments LSB-first?

On Jan 29, 2014, at 06:32 , Steffen steffen.die...@gmail.com wrote:

 Hello Clojure community,
 
 there are already two excellent libraries for reading/writing/manipulating 
 binary data: Zach's Lamina and Clojurewerkz' Buffy for java's ByteBuffers. I 
 would like to offer another library for java's Input/OutputStreams. It is 
 inspired by Lamina but not compatible in syntax, I'm sorry.
 The focus is on 
   * read/write performance, 
   * no external dependencies
   * works with java.util.*Stream
 If you use Leiningen please add the following to your dependencies:
 
 [org.clojars.smee/binary 0.2.4]
 
 The link to the source code and README is https://github.com/smee/binary.
 Democode to parse Bitcoin blocks (including scripts): 
 https://github.com/smee/binary/blob/master/src/org/clojars/smee/binary/demo/bitcoin.clj
 Democode for MP3 ID3v2 tags (work in progress): 
 https://github.com/smee/binary/blob/master/src/org/clojars/smee/binary/demo/mp3.clj
 
 Apart from the README, doc strings there is no further documentation, yet. 
 Please refer to the demos and the unit tests for now.
 
 Thanks,
 
 Steffen Dienst
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.

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


Re: [ANN] Buffy, The Byte Buffer Slayer 1.0.0-beta1

2014-01-28 Thread Michael Gardner
I'm looking to deal with a stream of data that includes a structured, 
variable-length header followed by a (potentially large) binary blob. I'd like 
to parse only the header while leaving the stream (can be a java stream or NIO 
channel, whichever works best) positioned at the start of the binary blob. Can 
Buffy currently do this?

About naming: is the -type prefix to the built-in data types (string-type, etc) 
really necessary, given they're already grouped in the buffy.types namespace? 
I'd prefer to be able to write t/string, t/int32 and so on, personally.

On Dec 17, 2013, at 06:44 , Alex P oleksandr.pet...@gmail.com wrote:

 Buffy [1][2] is a Clojure library to work with Binary Data, write complete 
 binary protocol implementations
 in clojure, store your complex data structures in an off-heap chache, read 
 binary files and do
 everything you would usually do `ByteBuffer`. 
 
 After the initial project announcement, we've got several feature-requests, 
 which been addressed by current 
 release:
 
* Bit fields (masks of on/off bits) 
 https://github.com/clojurewerkz/buffy#bit-type
* Wrapped buffers (work with existing byte arrays or byte buffers): 
 https://github.com/clojurewerkz/buffy#buffer-types
* Dynamic frames (complex protocol generation and parsing, when you can't 
 know the length of payload 
 in advance, and need to introspect buffer for parsing, or add hint-fields 
 into payload): https://github.com/clojurewerkz/buffy#dynamic-frames
 
 Buffy has been serving us well for recent time, and no major issues were 
 revealed. However, until 
 it reaches GA, we can't guarantee 100% backward compatibility, although we're 
 thought it through
 very well and used our best knowledge to make it right.
 
 Buffy is a ClojureWerkz project, same as Monger, Elastisch, Cassaforte, 
 Neocons, Meltdown and
 many others. 
 
 Let us know what you think!
 
 [1] https://github.com/clojurewerkz/buffy
 [2] http://blog.clojurewerkz.org/blog/2013/11/29/introducing-buffy/
 [2] http://clojurewerkz.org
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.

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


Re: simple-check gen/boolean Only Returning false

2014-01-27 Thread Michael Daines
Awesome turnaround, Thanks.

I was kinda worried I was nuts or about to do some urandom debugging.

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


Re: Helping newcomers get involved in Clojure projects

2014-01-27 Thread Michael Klishin
Bridget:

 Are there any other Clojure projects that are doing this?


Some ClojureWerkz [1] projects do, and eventually all key ones will.

1. http://clojurewerkz.org

MK 

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


ANN Mailer 1.0.0 is released

2014-01-26 Thread Michael Klishin
Mailer [1] is a small Clojure library that makes email delivery
easy. It is inspired by Ruby's Action Mailer and combines Postal,
Moustache template rendering and testing utilities.

Release notes:
http://blog.clojurewerkz.org/blog/2014/01/26/mailer-1-dot-0-0-is-released/

1. https://github.com/clojurewerkz/mailer
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


ANN Scrypt 1.1.0 is released

2014-01-26 Thread Michael Klishin
scrypt [1] is a tiny Clojure library for the scrypt key derivation function.

Release notes:
http://blog.clojurewerkz.org/blog/2014/01/26/scrypt-1-dot-1-0-is-released/

1. https://github.com/clojurewerkz/scrypt
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [ANN] com.stuartsierra/frequencies 0.1.0

2014-01-26 Thread Michael Klishin
2014-01-25 Stuart Sierra the.stuart.sie...@gmail.com

 Leiningen dependency:

 [com.stuartsierra/frequencies 0.1.0-SNAPSHOT]


Please do a proper release. Non-snapshot projects cannot
depend on snapshot libraries:
https://github.com/technomancy/leiningen/wiki/Repeatability#snapshot-versions
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [ANN] com.stuartsierra/frequencies 0.1.0

2014-01-26 Thread Michael Klishin
2014-01-27 Mimmo Cosenza mimmo.cose...@gmail.com

 You could clone and deploy it yourself into clojars. The only caveat is to
 give it an org.clojars.youusername as group-id to make it clear it's not
 the official one.


Sorry, that's just won't fly. It's library maintainer's responsibility to
make
sure the project is reasonably easy to use.

If something is not ready for a release yet, that's fine: simply don't
announce
it until it is.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


simple-check gen/boolean Only Returning false

2014-01-25 Thread Michael Daines
I decided to play with simple-check for the first time and was working 
through the examples on github. I noticed that all the values that use 
gen/boolean are returning false. I never get a true.

At the extreme end, the following never returns when run in the repl:

(gen/sample (gen/such-that true? (gen/list gen/boolean)))


I'm using Clojure 1.5.1, simple-check 0.5.5, JVM 1.7.0_51, Ubuntu 13.04.

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


ANN Langohr 2.3.2 is released

2014-01-22 Thread Michael Klishin
Langohr [1] is a minimalistic, feature complete Clojure client for RabbitMQ.

Release notes:
http://blog.clojurewerkz.org/blog/2014/01/22/langohr-2-dot-3-2-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


Re: [Large File Processing] What am I doing wrong?

2014-01-21 Thread Michael Gardner
On Jan 21, 2014, at 07:11 , Chris Perkins chrisperkin...@gmail.com wrote:

 This part: (some #{hashed} already-seen) is doing a linear lookup in 
 `already-seen`. Try (contains? already-seen hashed) instead.

Or just (already-seen hashed), given that OP's not trying to store nil hashes.

To OP: note that if you’re storing the hashes as strings (as it appears), 
you’re using 16 more bytes per hash than necessary. If you’re really going to 
be dealing with so many URLs that you’d use too much memory by storing the 
unique URLs directly, then you should probably be storing the hashes as byte 
arrays.

Alternatively, if you’re going to be dealing with REALLY large files and are 
running on Linux/BSD, consider dumping just the URLs to a file and using “sort 
-u” on it. UNIX Sort can efficiently handle files that are too large to fit in 
memory, via external merge sort.

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


Re: clojure.java.shell/sh and expand wildcard

2014-01-21 Thread Michael Gardner
Try (sh “bash” “-c” “ls *.txt”).

On Jan 21, 2014, at 21:51 , John Gabriele jmg3...@gmail.com wrote:

 I'd like to do something like:
 
 user= (require '[clojure.java.shell :as sh])
 user= (sh/sh ls *.txt)
 
 but get:
 
 {:exit 2, :out , :err ls: cannot access *.txt: No such file or 
 directory\n}
 
 even though there *are* a few .txt files present.
 
 That error message is the same one I'd get if I tried:
 
 $ ls '*.txt'  # or
 $ ls \*.txt
 
 How can I get that sh/sh call to work with the wildcard? (Note: I realize I 
 can use Raynes' fs module for this particular example, but I want to be able 
 to pass wildcards to sh/sh in general.)
 
 Thanks!
 
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.

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


Re: Clojure development laptop battery usage

2014-01-20 Thread Michael Gardner
On Jan 20, 2014, at 11:14 , Mars0i marsh...@logical.net wrote:

 Just to be clear, Leiningen only eats CPU when started in an arbitrary 
 directory.  When started from a Leiningen project directory, it doesn't use 
 CPU unless I tell it to.  I have not investigated what it is in the project 
 directory that Leiningen needs in order to feel at peace. :-) 

I don’t see this behavior on my MBP with latest Leiningen. Have you reported it 
to the lein devs?

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


Re: [ANN] play-clj, a game library

2014-01-20 Thread Michael Gardner
On Jan 20, 2014, at 09:31 , Zach Oakes zsoa...@gmail.com wrote:

 Today I'm releasing play-clj, a Clojure wrapper for LibGDX that allows you to 
 write games for desktop OSes, Android, and iOS from the same Clojure codebase.

Neat!

How is Clojure’s performance on the latest Android devices? Good enough for 
simple real-time games while still remaining more-or-less idiomatic?

Also, does running Java on iOS still require jailbreaking?

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


ANN Langohr 2.2.1

2014-01-13 Thread Michael Klishin
Langohr [1] is a small, feature complete Clojure client for RabbitMQ.

Hot on the heels of 2.2.0, 2.2.1 is out with one bug fix.

Release notes:
http://blog.clojurewerkz.org/blog/2014/01/14/langohr-2-dot-2-1-is-released/

1. http://clojurerabbitmq.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

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


<    1   2   3   4   5   6   7   8   9   10   >