Re: Looking for new maintainer for "fs"

2017-02-09 Thread Andrey Antukh
Hello,

If there are no voluntaries, I'm gladly accept to maintain it under funcool
org :D

Andrey

On Wed, Feb 8, 2017 at 3:33 PM, Miki  wrote:

> Hi There,
>
> We're looking for a new maintainer for "fs".
> See https://github.com/Raynes/fs/issues/106 and https://github.com/clojars
> /clojars-web/issues/618 for context.
>
> If you're able and willing, please ping me.
>
> Thanks,
> --
> Miki
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-07-28 Thread Andrey Antukh
Seems like that jerryscript does not fully implement the ecmascript (3
and/or 5).

I have tried to run a pretty complex test suite (
https://github.com/funcool/cats tests) under it  (that already includes
async code with promises and core.async among other stuff) and the code
never executes without any error.

There are also other js engines that are intended to be used for IoT, such
are: v7 (https://docs.cesanta.com/v7/master/), mujs (http://mujs.com/),
duktape (http://duktape.org/), ...

After trying them all, I found that only duktape can run partially the
funcool/cats test suite (core.async and promise stuff fails because of
lacks support for setTimeout and other related stuff).

If somebody interested on this, I have compiled the code targeting the
browser with  `:whitespace` optimization level (simple and advanced should
also work as expected). Then, manually prepend to the compiled file `var
window = this;` because duktape seems like does not have global object that
is needed in some cases.

v7 seems like it does not have support for labeled statements that are used
in the cljs compiled code so it just fails with syntax error. I suspect
that jerryscript fails in the same way, but without any error message.

Andrey.

On Wed, Jun 1, 2016 at 3:03 AM, Paul deGrandis 
wrote:

> Hi Gregg,
>
> I've previously used ClojureScript to target other JavaScript engines (on
> small devices and on Android), without any issue.  You shouldn't need to do
> anything special, but if something comes up and you hit a snag, just post
> here.
>
> Good luck and have fun!
>
> Cheers,
> Paul
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-06-18 Thread Andrey Antukh
Completely agree! Many thanks for your work!

On Sat, Jun 18, 2016 at 10:49 PM, Howard Lewis Ship 
wrote:

> It unfortunately goes unsaid, so I'll say it: thanks for working hard on
> Clojars, and for doing a great job on communicating important status, such
> as this downtime, to a community that is so reliant on your efforts.
>
> On Sun, Jun 12, 2016 at 6:07 PM, Toby Crawley  wrote:
>
>> Clojars is back up; we ran in to an issue with the update, so had to
>> roll it back. Once we fix the issue, we'll schedule another
>> maintenance window.
>>
>> Please file an issue[1] if you experience any problems.
>>
>> - Toby
>>
>> [1]: https://github.com/clojars/clojars-web/issues
>>
>> On Fri, Jun 10, 2016 at 4:01 PM, Toby Crawley  wrote:
>> > At 2016-06-13 00:00:00 UTC[1], we'll be taking down the Clojars web
>> > interface to do database maintenance and deploy some
>> > features/fixes. The biggest change in this deploy will be the
>> > introduction of sending a copy of deployed artifacts to Rackspace
>> > CloudFiles to allow us to serve the repository from a more robust
>> > location in the near future.
>> >
>> > We've scheduled an hour for the work, but it should take less. During
>> > that time, the web interface, search api, and ability to deploy will
>> > be unavailable, but the repository will still be readable, so projects
>> > will still be able to build.
>> >
>> > To see the status of the work, watch our status page[2] or follow
>> > @clojars on twitter[3].
>> >
>> > [1]: for your local time, see
>> > https://www.timeanddate.com/worldclock/fixedtime.html?iso=20160613T00
>> > [2]: http://status.clojars.org
>> > [3]: https://twitter.com/clojars
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>>
>
>
>
> --
> Howard M. Lewis Ship
>
> Senior Mobile Developer at Walmart Labs
>
> Creator of Apache Tapestry
>
> (971) 678-5210
> http://howardlewisship.com
> @hlship
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-05-23 Thread Andrey Antukh
I'm not pretty sure if this answers your question,  but I have similar
async/await syntax already implemented in promesa library:
http://funcool.github.io/promesa/latest/#async-await-syntax

Regards.
Andrey

On Mon, May 23, 2016 at 4:07 PM, Xiangtao Zhou  wrote:

> hi Everyone,
>
> es7 async/await makes javascript easily understandable,  and avoid the
> callback hell. can clojure have one library like this?
>
> scala version is here https://github.com/scala/async.
>
>
> Thanks.
>
> Joe.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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} funcool/struct - yet another validation library for Clojure and ClojureScript.

2016-05-02 Thread Andrey Antukh
Hi all.

I am happy to announce the first public release of funcool/struct
validation library.

https://github.com/funcool/struct

Why an other?

I have started on my project using well know and very nice library:
bouncer; that has worked pretty well for me, but over time I have needed
some features that are missing: such as value coercion and dependent
validators.

Then, I decided to build a own one. And these are the main highlights of
the resulting library:

- Validators are defined using plain hash-maps instead of opaque macros.
- Optional value coercion (very useful if you want to validate query params
or form-data that by default comes as string).
- Dependent validators (add the ability to the validator access to previos
state, also useful for form-data validation).
- Serves pretty well as simple data structure validation in the same way as
bouncer or schema works and also works well for validate user input such as
query params and forms.

Github: https://github.com/funcool/struct
Documentation: http://funcool.github.io/struct/latest/

Regards.
-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-03-13 Thread Andrey Antukh
lease be patient with
> > your first post.
> > To unsubscribe from 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
> > <mailto: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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-02-11 Thread Andrey Antukh
Hi Michael!

Firstly: nice work!

Do you know about JWE? It does just the same thing but in a
standarized/interoperable way:
https://funcool.github.io/buddy-sign/latest/#introduction

Andrey

On Thu, Feb 11, 2016 at 8:21 AM, Michael Ball  wrote:

> Ticket helps create and read encrypted tickets/cookies with expiration
> dates packaged inside. Feedback and security reviews are welcomed.
>
> https://github.com/mikeball/ticket
>
> Mike
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2016-01-23 Thread Andrey Antukh
The eventbus of vert.x as far as I know is implemented on top of
hazelcast[1] that you already can use from clojure.

Make a eventbus like concept on top of hazelcast is pretty easy and it
already gives you the autodiscovery and all the "clustering" stuff for free.

[1]; http://hazelcast.org/use-cases/messaging/

Andrey

On Sat, Jan 23, 2016 at 1:50 PM, qsys  wrote:

> Depends on what you want... what I really like is the easy modularity:
> deploy new 'verticles' somewhere in your network, and they're just all
> connected through a the eventbus. I make a 'new' module, I put it somewhere
> and it's automatically picked up by the appication and I can communicate
> with it using that event bus. Is there something similar in clojure, or can
> I achieve something similar in clojure? I checked
> - catacumba: web toolkit, not what I'm after
> - sente: is about the web
> - aleph: comes closer: does have tcp-servers, but no autodiscovery, and
> well, no 'event bus' (a kind of wrapper around netty etc).
> - manifold: I don't really see the added value, having core.async - but I
> may fail to see something important here
> - pomegranate: is possibly very interesting in adding new modules... not
> for removing 'old versions' of a module.
> - pedestal: have to have a deeper look into it, but so far, I have a
> feeling it's more about web than 'intra-program' communication
>
> So, so far, I don't see how to implement something like the vert.x event
> bus, with autodiscovery, in clojure (although I would love to see something
> like it), expanding to the browser. I don't mind (and prefer) composing it
> using different libraries, but I feel to see how to have this functionality
> in clojure (now, I wrap the vertx eventbus in my clojure programs), and
> since I already load vertx for the eventbus, I use it as web server as
> well, if I need one... So well, if someone has an idea, it might be a nice
> project I'd love to work on :).
>
> thx, qsys
>
> Op zondag 3 januari 2016 22:25:04 UTC+1 schreef tbc++:
>>
>> I've done some evaluations of Vert.x in the past and was rather
>> underwhelmed. What is it that you are trying to accomplish? Stuff like
>> Pedestal offers async web services, but without the complexity of an
>> traditional evented server. So perhaps if we had a better idea of your
>> requirements we could be a bit more helpful.
>>
>> So I'd say, look into Pedestal and then define what you need that it
>> cannot do. Same for other toolkits like ring and httpkit.
>>
>> Timothy
>>
>> On Sun, Jan 3, 2016 at 12:59 PM, adrians  wrote:
>>
>>>
>>> It used to be that Vert.x 2.x had integration for Clojure, but version
>>> 3.x hasn't added it yet. Has anyone used this version through the Java API
>>> and if so, how painful was it? Is Reactor <http://projectreactor.io/>any
>>> better in that respect? What are people using when they want this kind of
>>> back end?
>>>
>>> --
>>> 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.
>>>
>>
>>
>>
>> --
>> “One of the main causes of the fall of the Roman Empire was that–lacking
>> zero–they had no way to indicate successful termination of their C
>> programs.”
>> (Robert Firth)
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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

Re: What's the best option similar to Vert.x, Reactor, Nodejs for use with Clojure?

2016-01-04 Thread Andrey Antukh
Also, you can take a look to https://github.com/funcool/catacumba

On Mon, Jan 4, 2016 at 12:35 AM, kovas boguta 
wrote:

> I would also look at https://github.com/ztellman/aleph and
> https://github.com/ztellman/manifold, but like Timothy says its hard to
> judge without more details.
>
>
>
>
> On Sun, Jan 3, 2016 at 4:24 PM, Timothy Baldridge 
> wrote:
>
>> I've done some evaluations of Vert.x in the past and was rather
>> underwhelmed. What is it that you are trying to accomplish? Stuff like
>> Pedestal offers async web services, but without the complexity of an
>> traditional evented server. So perhaps if we had a better idea of your
>> requirements we could be a bit more helpful.
>>
>> So I'd say, look into Pedestal and then define what you need that it
>> cannot do. Same for other toolkits like ring and httpkit.
>>
>> Timothy
>>
>> On Sun, Jan 3, 2016 at 12:59 PM, adrians  wrote:
>>
>>>
>>> It used to be that Vert.x 2.x had integration for Clojure, but version
>>> 3.x hasn't added it yet. Has anyone used this version through the Java API
>>> and if so, how painful was it? Is Reactor <http://projectreactor.io/>any
>>> better in that respect? What are people using when they want this kind of
>>> back end?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from 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.
>>>
>>
>>
>>
>> --
>> “One of the main causes of the fall of the Roman Empire was that–lacking
>> zero–they had no way to indicate successful termination of their C
>> programs.”
>> (Robert Firth)
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] dewdrop 0.1.0 -- lenses made simple(r?)

2016-01-02 Thread Andrey Antukh
Hi Bil.

On Sat, Jan 2, 2016 at 2:26 AM, William la Forge 
wrote:

> Hi again Andrey!
>
> Not to drag this out, but you seem to have missed my main point, which
> also means that I failed to make it. :-)
>
> Understanding how comp works and seeing the function, lens, for defining a
> cat's lens, it is not at all obvious how a cat's lens works. On the other
> hand, the dewdrop lens constructor simply creates a record. And a quick
> review of the code for dewdrop's ladd shows clearly how dewdrop lenses are
> composed. Dewdrop then allows a developer to leverage ones own intuition.
> So a developer may quickly pick up on how to use cat, but must trust that
> any bugs lie in that developer's own code. Or perhaps take time to learn
> how a cat lens works at 3 AM when the servers are crashing. Not likely,
> I'll grant you. But I prefer not to have to trust in magic when I have a
> choice. Too often such magic has a domain that is a bit different than what
> I was expecting. Not understanding how something works, I usually lack a
> similar understanding as to when I should or should not use it.
>

Thanks for the explanation.

For use dewdrop you should know how to work records and closures for fully
understand all operations. With cats you should understand how to work only
closures.
In fact, with ladd and record you are just doing the same thing that
clojure.core can do but you are just re-implementing something that
clojure.core offers.

I think that you are declaring that comp and closures are not obvious
because you don't know how they work and your solution is just re-implement
them using familiar components for you, and thinking that understand your
code will be more easy that understand how comp works (and justifying that
you don't want to learn them when the server crashes at 3 AM (that seems a
fallacy instead of argument))

This is not about complicated things with strange and not obvious
abstractions, is about to understand the language and the facilities that
it already provides instead re-implementing everything that one do not know
how it works.

We have done cats with the same argument that you are defending now here:
bring near the complicated and cryptic (non very obvious) abstractions from
haskell in clojure using simple and familiar components making the learning
curve more affordable.

I agree with your "main argument" that things should not to be complicated
and not obvious if them can be simple and obvious...

>
> Keep in mind also that clojure has a lot more than just functions, and
> composition applies to a lot more things than just functions as well.
> Indeed, my favorite technique is compositions of bags of properties serving
> in place of objects. So learning how to call a method to compose two
> records is hardly a stretch and well worth the price for being able to
> understand what is going on internally.
>
> On Friday, January 1, 2016 at 3:35:29 PM UTC-5, Andrey Antukh wrote:
>
>>
>>
>> On Fri, Jan 1, 2016 at 9:53 PM, William la Forge 
>> wrote:
>>
>>> Andrey,
>>>
>>> This is where I have a problem. Ii could have implemented dewdrop lenses
>>> as functions that could be composed. But the code would be harder to
>>> understand and possibly be slower. I just do not see the point.
>>>
>>
>> I agree with your main argument, but I don't know how using records makes
>> thinks more easy understandable in this concrete case and how using
>> functions over records will make code slower. Transducers has a performance
>> improvements over classical transformation compositions, and in this case,
>> the cats lenses leverage the same technique.
>>
>>
>>>
>>> Implementing dewdrop lenses as records makes it dirt simple for anyone
>>> to create more kinds of lenses. And the ladd function to create a new
>>> record with the composed getter and setter functions is pretty clean as
>>> well.
>>>
>>
>> Yes but it implies more api to know, that is not bad but if you limit the
>> set of new api that one should learn/use, will contribute to more familiar
>> and easy api. Adding new api also implies more time to understand it and
>> remember when it should be used.
>>
>>
>>>
>>> Isn't it more important to have code you can analyze easily, and which
>>> even a novice clojurist like myself can embrace and enhance a whole lot
>>> more important than being able to say that we can use comp to compose these
>>> lenses???
>>>
>>
>> Yes, I agree with you, the code readability is very very important. But
>> this concrete case I don't found big differences in code readability:
>

Re: [ANN] dewdrop 0.1.0 -- lenses made simple(r?)

2016-01-01 Thread Andrey Antukh
On Fri, Jan 1, 2016 at 9:53 PM, William la Forge 
wrote:

> Andrey,
>
> This is where I have a problem. Ii could have implemented dewdrop lenses
> as functions that could be composed. But the code would be harder to
> understand and possibly be slower. I just do not see the point.
>

I agree with your main argument, but I don't know how using records makes
thinks more easy understandable in this concrete case and how using
functions over records will make code slower. Transducers has a performance
improvements over classical transformation compositions, and in this case,
the cats lenses leverage the same technique.


>
> Implementing dewdrop lenses as records makes it dirt simple for anyone to
> create more kinds of lenses. And the ladd function to create a new record
> with the composed getter and setter functions is pretty clean as well.
>

Yes but it implies more api to know, that is not bad but if you limit the
set of new api that one should learn/use, will contribute to more familiar
and easy api. Adding new api also implies more time to understand it and
remember when it should be used.


>
> Isn't it more important to have code you can analyze easily, and which
> even a novice clojurist like myself can embrace and enhance a whole lot
> more important than being able to say that we can use comp to compose these
> lenses???
>

Yes, I agree with you, the code readability is very very important. But
this concrete case I don't found big differences in code readability:

;; dewdrop
(defn key-lens [k]
  (lens.
(fn [d] (get d k))
(fn [d v] (assoc d k v

;; cats
(defn key
  [k]
  (lens
   (fn [s] (get s k))
   (fn [s f] (update s k f

The code is mostly the same...


> I see good engineering as leveraging computer science so the programming
> grunts can make effective use of it. Programming is real grunt work, after
> all. No matter how much you dress it up, we all needs must get our hands
> dirty and put our backs into it.
>

My two cents.
Andrey

>
> Bill
>
> On Friday, January 1, 2016 at 9:09:08 AM UTC-5, Andrey Antukh wrote:
>>
>> Hi!
>>
>> I have read the readme and I don't found a big evidence of something
>> wrong so, nice work!
>> Furthermore, do you know about https://github.com/funcool/cats ? It has
>> a lens and traversable implementation for clj/cljs. You can read the
>> related documentation here: http://funcool.github.io/cats/latest/#lens .
>>
>> You can found that lenses, using cats approach, are working just like
>> transducers (function composition), you do not need any special function
>> for combine lenses, just use comp. One of the readme examples (from your
>> repository) that combines two lenses, in cats can be written in this way:
>>
>> (require '[cats.labs.lens :as l])
>> (def xy-lens (comp (l/key :x) (l/key :y))
>> ;; Or just use (l/in [:x :y])
>>
>> (l/focus xy-lens {:x {:y 1}})
>> ;; => 1
>> (l/over xy-lens inc {:x {:y 1}})
>> ;; => {:x {:y 2}}
>>
>> Happy new year!
>> Andrey
>>
>> On Fri, Jan 1, 2016 at 2:54 PM, William la Forge 
>> wrote:
>>
>>> I've been looking at lenses and while it looks pretty simple and very
>>> useful, I had a hard time getting it. So I came up with my own take on
>>> lenses. https://github.com/laforge49/dewdrop#readme
>>>
>>> So perhaps I still do not understand lenses and what I've done is wrong.
>>> Or perhaps having been through the exercise I'm now getting it and what
>>> I've done is no simpler than what everyone else has done. Or perhaps I've
>>> just described things with fewer technical terms.
>>>
>>> So I'd appreciate it if you would review this very short document and
>>> tell me what I don't understand. Or that I've actually done something
>>> worthwhile with lenses???
>>>
>>> Thanks!
>>> Bill
>>>
>>> --
>>> 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 

Re: [ANN] dewdrop 0.1.0 -- lenses made simple(r?)

2016-01-01 Thread Andrey Antukh
Hi!

I have read the readme and I don't found a big evidence of something wrong
so, nice work!
Furthermore, do you know about https://github.com/funcool/cats ? It has a
lens and traversable implementation for clj/cljs. You can read the related
documentation here: http://funcool.github.io/cats/latest/#lens .

You can found that lenses, using cats approach, are working just like
transducers (function composition), you do not need any special function
for combine lenses, just use comp. One of the readme examples (from your
repository) that combines two lenses, in cats can be written in this way:

(require '[cats.labs.lens :as l])
(def xy-lens (comp (l/key :x) (l/key :y))
;; Or just use (l/in [:x :y])

(l/focus xy-lens {:x {:y 1}})
;; => 1
(l/over xy-lens inc {:x {:y 1}})
;; => {:x {:y 2}}

Happy new year!
Andrey

On Fri, Jan 1, 2016 at 2:54 PM, William la Forge 
wrote:

> I've been looking at lenses and while it looks pretty simple and very
> useful, I had a hard time getting it. So I came up with my own take on
> lenses. https://github.com/laforge49/dewdrop#readme
>
> So perhaps I still do not understand lenses and what I've done is wrong.
> Or perhaps having been through the exercise I'm now getting it and what
> I've done is no simpler than what everyone else has done. Or perhaps I've
> just described things with fewer technical terms.
>
> So I'd appreciate it if you would review this very short document and tell
> me what I don't understand. Or that I've actually done something worthwhile
> with lenses???
>
> Thanks!
> Bill
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-12-21 Thread Andrey Antukh
Nice work! Thanks!

On Mon, Dec 21, 2015 at 11:15 AM, Leonardo Borges <
leonardoborges...@gmail.com> wrote:

> bouncer is a validation library for Clojure apps
>
>
> Github: https://github.com/leonardoborges/bouncer
> Clojars: https://clojars.org/bouncer
>
>
> The main change with 1.0.0 is that all validators are now optional by
> default. This fixes pre-existing API inconsistencies. bouncer now works
> with Clojurescript! - thanks Robin(@Skinney)!
>
> Additionally, since this is a breaking change, I bumped the version to
> 1.0.0 and will be using Semantic Versioning (http://semver.org/) from now
> on.
>
> Full CHANGELOG:
> https://github.com/leonardoborges/bouncer/blob/master/CHANGELOG.md
>
>
> Enjoy! :)
>
>
> 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/d/optout.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-11-12 Thread Andrey Antukh
If I understand it properly, this is a expected behavior in most databases.
The common way for solve this, is wrapping the expected to fail code in a
sub-transaction (or savepoint in database words). If that code fails, the
sub-transaction will be aborted, but the main transaction will continue to
be alive. With this approach you not need a complete rollback of the
transaction (and no connection reset).

The main problem here is that as far as I know, clojure.java.jdbc does not
has support for subtransactions. If you nest transactions, the nested
transactions does nothing and everything is joined in one unique main
transaction.

Without aims to do spam, it there alternatives to clojure.java.jdbc that
already supports sub-transactions/savepoints [1] and [2] among other
transaction strategies.

[1]: https://github.com/funcool/suricatta
[2]: https://github.com/funcool/clojure.jdbc

Andrey

On Fri, Nov 13, 2015 at 8:49 AM, Andy Chambers 
wrote:

> On Friday, October 30, 2015 at 5:22:40 PM UTC-7, Sean Corfield wrote:
>>
>> Could you provide a bit more context?
>>
>> We’re using clojure.java.jdbc very heavily in production and we don’t
>> see any problems with exceptions.
>>
>
> Hi Sean,
>
> I threw up an example repo demonstrating the type of test I'd like to be
> able to write somehow. Maybe I'm just
> trying to test something that should be tested in other ways.
>
> https://github.com/cddr/jdbc-demo
>
> Cheers,
> 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-10-21 Thread Andrey Antukh
Really great! I have find in the past some library like yesql that not
dependes on the clojure.java.jdbc.

Nice work!

On Thu, Oct 22, 2015 at 4:10 AM, Robin Heggelund Hansen <
skinney...@gmail.com> wrote:

> This looks great, seems to solve all the problems I have with YeSQL. Great
> work :D
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-10-21 Thread Andrey Antukh
Maybe you can found the answer here http://stackoverflow.com/a/6590437

Regards.
Andrey

On Wed, Oct 21, 2015 at 11:35 PM, ryan medlin 
wrote:

> A customer requires that we scan our clojure projects with this tool:
>
> http://www8.hp.com/us/en/software-solutions/static-code-analysis-sast/
>
>
> They must get some meaningful report from this.
>
> So I thought, well why don't I compile and then decompile the class files
> and then scan those to at least give them something.
>
> However when I do that I get a TON of high security issues in multiple
> dependencies (ring, clojure.core)
>
> Here is the most prevalent:
>
> https://cwe.mitre.org/data/definitions/476.html
>
> /* */ package nio;
> /* */
> /* */ import clojure.lang.AFunction;
> /* */ import clojure.lang.IFn;
> /* */ import clojure.lang.RT;
> /* */ import clojure.lang.Var;
> /* */ import java.nio.Buffer;
> /* */ import java.nio.ByteBuffer;
> /* */
> /* */ public final class core$fn__1869 extends AFunction
> /* */ {
> /* 284 */   public static final Var const__0 = (Var)RT.var("clojure.core",
> "make-array");
> /* */
> /* */   public Object invoke(Object x)
> /* */   {
> /* 297 */ x = null; Object x = ((ByteBuffer)x).duplicate();
> /* 298 */ Object array =
> ((IFn)const__0.getRawRoot()).invoke(Byte.TYPE,
> Integer.valueOf(((Buffer)x).remaining()));
> /* 299 */ x = null; ((ByteBuffer)x).get((byte[])array); array = null;
> return array;
> /* */   }
> /* */ }
>
>
> Decompiler:
>
> http://jd.benow.ca/
>
> Id the decompiler somehow generating code with these security issues and
> the actual bytecode does not have them maybe?
>
>
> I have no idea how to move forward with this.  We have to "check a box"
> for them in corporate speak yet there is no clear path to run a dependable
> security scan against the codebase.
>
>
> Yes I realize this is silly to demand running this tool.
>
> Any other tools out there that might be able to scan Clojure code like
> this?
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-10-07 Thread Andrey Antukh
Great work!

Any change for have yesql decoupled from java.jdbc? I really want to use
it, but with other jdbc libraries...


Regards
Andrey

On Thu, Oct 8, 2015 at 12:55 AM, Kris Jenkins 
wrote:

> Yesql - the Clojure library for using SQL - has just released v0.5.1.
>
> The API is much improved - especially if you're using queries with many
> arguments - so see the migration guide if you're upgrading:
>
> My thanks to everyone who has contributed to this release, and for all the
> users who've been patiently waiting for v0.5 to go official. :-)
>
> Kris
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-10-07 Thread Andrey Antukh
 http-kit made a claim of 600K connections in
> 2013.  But I can't find any other supporting evidence that it can do that
> reliably.  It also seems to have stagnated a bit as a project which is
> unfortunate.
>
> Thanks Again for your input and guidance!
> -- Nick
>
>
>
>
>
>
>
> On Tuesday, October 6, 2015 at 9:57:45 PM UTC-6, Nick Pavlica wrote:
>
>> Dear Clojure/Java Experts,
>>   Earlier today I posted a question to the Immutant google group asking
>> them a question about large numbers of concurrent websocket connections and
>> their server.  A member of the group kindly responded with a link (
>> https://github.com/ptaoussanis/clojure-web-server-benchmarks)  to some
>> fairly recent benchmarks that included a number of Clojure/Java servers.
>> After looking at the numbers in the benchmark, I was a little disappointed
>> to see that they were only serving 60K connections as compared to other
>> solutions like Erlang which seem to be capable of 1-2+ million connections
>> on similar hardware.  The difference on the surface seems dramatic, and I
>> was wondering if someone could help clarify the numbers for me.  It makes
>> me wounder if there is a JVM solution that can even meet these numbers half
>> way, or if I'm missing something?
>>
>> Many Thanks!
>> --Nick
>>
>>
>> ### Discussion from the Immutant Google group ##
>>
>> All,
>>   I'm a new Clojure developer, and I'm looking for a webserver that can
>> handle a large number of concurrent websocket connections.  I understand
>> that this question is a little/very vague, and is dependent on many factors
>> like the OS, it's Kernal, amount of RAM in the system, etc.  However, there
>> are a number of generalized claims out there, and I was wondering if anyone
>> has done any basic testing/benchmarking with Immutant/Undertow?
>>
>> Examples:
>>
>> - http://www.http-kit.org/600k-concurrent-connection-http-kit.html
>>
>> -
>> http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.html
>>
>> - https://en.wikipedia.org/wiki/C10k_problem
>>
>> - https://vimeo.com/44312354
>>
>> - And so on ...
>>
>> Thanks!
>> --Nick
>>
>>
>> --
>>
>> Hi Nick,
>> Here are some fairly recent benchmarks that are relevant:
>> https://github.com/ptaoussanis/clojure-web-server-benchmarks
>>
>> --Sven
>>
>> -
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-10-03 Thread Andrey Antukh
On Sat, Oct 3, 2015 at 5:24 PM, gianluca torta  wrote:

> Hi,
>
> the behavior you describe is not specific to macros, but is due to the use
> of aliases
>
> after:
> (require '[foo.bar :as b])
>
> this will give you false:
> (= 'foo.bar/x (first '(b/x)))
>
> while this will give you true:
> (= 'foo.bar/x (first '(foo.bar/x)))
>
> one way to solve it, is comparing the resolved vars instead of the names:
> (= (resolve 'foo.bar/x) (resolve (first '(b/x
> ;=>true
> (= (resolve 'foo.bar/x) (resolve (first '(foo.bar/x
> ;=>true
>
>
Yes, your solution works, but only on clojure. ClojureScript doesn't have
`resolve`. It there any portable solution?

Thanks!

Andrey


> hth,
> Gianluca
>
>
>
> On Saturday, October 3, 2015 at 3:03:49 PM UTC+2, Andrey Antukh wrote:
>
>> Hi!
>>
>> I have a little trouble writing a macro because I'm getting unexpected
>> (for me) behavior.
>>
>> Let see some code:
>>
>> (ns foo.bar)
>>
>> (defn debug
>>   [x]
>>   (println "debug:" x)
>>   x)
>>
>> (defn debug-expr?
>>   [expr]
>>   (and (seq? expr)
>>(symbol? (first expr))
>>*(= 'foo.bar/debug  (first expr))*))
>>
>> (defmacro without-debug
>>   [& body]
>>   (let [body' (reduce (fn [acc v]
>> (if (debug-expr? v)
>>   (conj acc (second v))
>>   (conj acc v)))
>>   [] body)]
>> `(do
>>~@body')))
>>
>>
>> And then I use it from other namespace:
>>
>> (ns foo.baz)
>>
>> (require '[foo.bar :as b])
>>
>> (macroexpand '(b/without-debug (b/debug 3)))
>> ;; => (do (b/debug 3))
>>
>> (macroexpand '(b/without-debug (foo.bar/debug 3)))
>> ;; =>(do 3)
>>
>> I expect that the both expressions will evaluate to the same result, but
>> is not. Seems that symbols inside macros are not fully qualified. It there
>> any way to get them fully qualified? I'm missing something?
>>
>> Any help is welcome!
>>
>> Thank you very much.
>>
>> Andrey
>> --
>> Andrey Antukh - Андрей Антух - 
>> http://www.niwi.nz
>> https://github.com/niwinz
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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


Help with macro.

2015-10-03 Thread Andrey Antukh
Hi!

I have a little trouble writing a macro because I'm getting unexpected (for
me) behavior.

Let see some code:

(ns foo.bar)

(defn debug
  [x]
  (println "debug:" x)
  x)

(defn debug-expr?
  [expr]
  (and (seq? expr)
   (symbol? (first expr))
   *(= 'foo.bar/debug  (first expr))*))

(defmacro without-debug
  [& body]
  (let [body' (reduce (fn [acc v]
(if (debug-expr? v)
  (conj acc (second v))
  (conj acc v)))
  [] body)]
`(do
   ~@body')))


And then I use it from other namespace:

(ns foo.baz)

(require '[foo.bar :as b])

(macroexpand '(b/without-debug (b/debug 3)))
;; => (do (b/debug 3))

(macroexpand '(b/without-debug (foo.bar/debug 3)))
;; =>(do 3)

I expect that the both expressions will evaluate to the same result, but is
not. Seems that symbols inside macros are not fully qualified. It there any
way to get them fully qualified? I'm missing something?

Any help is welcome!

Thank you very much.

Andrey
-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-09-08 Thread Andrey Antukh
On Tue, Sep 8, 2015 at 9:31 PM, William la Forge 
wrote:

> I'm finally looking at warn on reflection. Everything is going fine except
> in the nodes.clj file where I define a protocol, INode, with a method,
> new-node and then try to call that method from a function, revise.
>
> I'm using Clojure 1.7.0 and the file is
> https://github.com/laforge49/aatree/blob/master/src/aatree/nodes.clj
> The reflection warning occurs on line 51.
>

This is because you are using the "method" access. That is only available
when the protocol is extended as interface. As example you can not use this
way (a method access to the protocol) if you extend the type/class using
`extend` or `extend-protocol`.

For remove reflection, you should add the appropriate type hint with the
`aatree.nodes.INode` interface (generated automatically when you are
defining the protocol).

If you have plans for using it always as interface (by method access),
maybe you should use `definterface` instead.


>
> Depending on what I try, either I get a class not found compiler error for
> file nodes.cli or a runtime error that new-node is NOT a member of the
> record that implements INode. I've spent hours on this and have tried many
> different things to no avail.
>
> My reason for using a method in a protocol is that I have several records
> that implement it and I'm trying to not duplicate functions which take the
> protocol as an argument.
>



>
> Oh yes, because I'm also using genclass, I have no option but to use AOT.
>
> On Sunday, January 12, 2014 at 8:52:14 AM UTC-5, Jim foo.bar wrote:
>>
>> there you go:
>>
>> (defprotocol IBark
>>  (bark [this]))
>>
>> (in-ns 'other)
>> (set! user/*warn-on-reflection* true)
>>
>> (clojure.core/defrecord Dog []
>> user/IBark
>> (bark [_] (clojure.core/println "WOOF!")))
>>
>> (def d (Dog.))
>>
>> (user/bark d) ;;NO reflection
>>
>> (.bark d) ;;reflection
>>
>> it should be obvious now :)
>>
>> Jim
>>
>>
>> On 12/01/14 13:38, Jim - FooBar(); wrote:
>>
>> It is not compiling because it cannot find the function...either fully
>> qualify it like in my previous email or change your ns declaration to
>> something like:
>>
>> [cqrs.storage :as stora]
>>
>> and then simply use stora/ret-value, stora/write, stora/write-batch
>>
>> Jim
>>
>>
>>
>> On 12/01/14 13:26, bob wrote:
>>
>> If I remove the dot, it cannot be compiled. can you give an example?
>>
>> On Sunday, January 12, 2014 9:22:00 PM UTC+8, Jim foo.bar wrote:
>>>
>>> I am suspecting you are calling the protocol implementations via the `.`
>>> form, whereas you should be going via the protocol itself (whatever
>>> namespace that may be in).
>>>
>>> Jim
>>>
>>> --
>> --
>> 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/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/d/optout.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: #{:rant} Questions about contribution policy and clojure compiler source.

2015-07-19 Thread Andrey Antukh
Is there any need to speak with this tone and this arrogance? It's just an
attempt to improve things, and I think there is nothing negative about it.
I think the initial motivation of this email is change things to be better
and with good intentions. It make sense to attack good intentions without
any needs?

We are all adults and we should all be able to talk about issues in a more
calm manner, without arrogance and with understanding. This kind of
responses not only discourages participating in clojure development, it
also damages the community and completely discourages the participation in
this mailing list.

Personally, this kind of things discourages me completely from
participating in this mailing list.

My two cents!
Andrey

On Sun, Jul 19, 2015 at 5:19 PM, Luc Préfontaine <
lprefonta...@softaddicts.ca> wrote:

> Prioritizing the 'good' form over the substance is the first step toward
> political correctness and lobotomy. Civility is more about form than
> substance and has
> various meaning depending on the people involved. You can say horrendous
> things
> using a civil tone. It's as unbearable as a crude statement with a lot of
> bad words.
>
> As far as aspiring to be not as rude as Linus, yeah, he's kind of extreme.
> But becoming a care bear is not on my list of todos. Dying by civilicide
> either.
>
> As far as I know, I did not used obscene words or used bird names toward
> people.
> If my kind of humor is not your taste it's a legit critic and I can take
> it.
>
> If you have specific complaints about my tone we can pursue this off list
> if needed.
> That's channel is opened for anyone that may need to let steam out.
>
> If there's enough interest, I can even start a blog and publish emailed
> comments/complaints as is and anonymously if asked for.
>
> Some are stamp collectors, I could start an original collection of my own.
>
>
> Sent from my iPad
>
> On Jul 19, 2015, at 09:36, Colin Fleming 
> wrote:
>
> On 18 July 2015 at 19:54, Luc Préfontaine 
> wrote:
>
>> My tone does not please you ? It could be worse and I reserve my right to
>> free speech. Have a look at some Linus rants. I am far from that level.
>>
>
> I think everyone in this community should aspire to more than "I'm not as
> rude as Linus".
>
>
>> There's nothing that makes me shiver more than political correctness.
>>
>
> Political correctness has nothing to do with remaining civil in a
> discussion.
>
>
> On Jul 18, 2015, at 13:32, Andrey Antukh  wrote:
>>
>>
>>
>> On Sat, Jul 18, 2015 at 8:18 PM, Luc Prefontaine <
>> lprefonta...@softaddicts.ca> wrote:
>>
>>> Aaah ! The pull request looms again :)
>>>
>>> A bug tracking system is essentialy to coordinate efforts, pull request
>>> are not a mechanism to track fixes/improvements and discuss about
>>> them. That may work for a very small team. The # of clojure contributors
>>> far excess that size.
>>>
>>
>>
>>
>>
>>>
>>> Pull requests/gitbhub issues are used by Clojure library maintainers
>>> outside of the core,
>>>  their respective contributor team size makes this usable.
>>>
>>> Choosing one tracking system is a feat by itself, Jira does everything
>>> albeit it may be a beast to configure.
>>> I think that the choice of Jira predates moving the Clojure code from
>>> google to github but I may be wrong.
>>> The github tracking system was not at par with Jira features at that
>>> time anyway.
>>>
>>> Once that choice is done, moving out to something else requires a
>>> significant effort, you need to pull all this history you built about
>>> your software into your new bug tracking solution. You can't loose this,
>>> it's your software collective memory.
>>>
>>> All this discussion around pull request IMO is more an expression of
>>> human lazyness. Having to document is always seen as a
>>> chore by most developpers. ‎This is not an arcane human trait, it has
>>> been known for decades.
>>>
>>> Anything else requires a discussion forum if you want to maintain a
>>> minimal level of quality and allow some discussions around the issue being
>>> fixed
>>> in a large team effort/critical piece of software. A mailing list is not
>>> at par with a bug tracking system in this regard.
>>>
>>> Curiously, linux has a bug tracking system and people submit patches or
>>> links are made to patches.
>>> Take a walk on launchpad.
>>>

Re: #{:rant} Questions about contribution policy and clojure compiler source.

2015-07-18 Thread Andrey Antukh
On Sat, Jul 18, 2015 at 8:18 PM, Luc Prefontaine <
lprefonta...@softaddicts.ca> wrote:

> Aaah ! The pull request looms again :)
>
> A bug tracking system is essentialy to coordinate efforts, pull request
> are not a mechanism to track fixes/improvements and discuss about
> them. That may work for a very small team. The # of clojure contributors
> far excess that size.
>




>
> Pull requests/gitbhub issues are used by Clojure library maintainers
> outside of the core,
>  their respective contributor team size makes this usable.
>
> Choosing one tracking system is a feat by itself, Jira does everything
> albeit it may be a beast to configure.
> I think that the choice of Jira predates moving the Clojure code from
> google to github but I may be wrong.
> The github tracking system was not at par with Jira features at that time
> anyway.
>
> Once that choice is done, moving out to something else requires a
> significant effort, you need to pull all this history you built about
> your software into your new bug tracking solution. You can't loose this,
> it's your software collective memory.
>
> All this discussion around pull request IMO is more an expression of human
> lazyness. Having to document is always seen as a
> chore by most developpers. ‎This is not an arcane human trait, it has been
> known for decades.
>
> Anything else requires a discussion forum if you want to maintain a
> minimal level of quality and allow some discussions around the issue being
> fixed
> in a large team effort/critical piece of software. A mailing list is not
> at par with a bug tracking system in this regard.
>
> Curiously, linux has a bug tracking system and people submit patches or
> links are made to patches.
> Take a walk on launchpad.
>
> No serious software business would drive their dev without a tracking
> system. Open source projects are no
> different if they want to attain some level of success. If critical open
> source is to be used by businesses, it has to
> play with similar tools. Clojure too me is critical to my business and to
> many others. It cannot fail on us.
> It would be like building pyramids on moving sand.
>
> Again there's no Kumbaya song playing here.
>
> As a last note, Alex Miller must dream about the emails exchanged on the
> mailing list.
> Suggestions are certainly looked upon and discussed upstream. It does not
> mean that they will be considered
> worth to investigate/implement or they may come out differently (that ego
> thing looming again).
>
> +1 for Jira and patches.
>

The django community works with both tools. Pull request are just for code
review and patch attachment mechanism, and bug tracking system for
coordinate the efforts. Both them are not incompatible.
And django core team is not precisely small.

The Pull-Request is not about laziness, is about eliminate friction. And
allow better and more human friendly code review
process.

I'm only try improve the contribution process and IMHO your tone is a
little bit out of place.


> Luc P.
>
>
>
> On Sat, 18 Jul 2015 19:05:16 +0300
> Andrey Antukh  wrote:
>
> > On Sat, Jul 18, 2015 at 6:48 PM, Colin Yates 
> > wrote:
> >
> > > +1 (although I maybe wouldn’t be so mocking in my tone ;-). Since
> > > when did software design by committee work; anyone remember J2EE?
> > > (and yes, that does deserve my mocking tone).
> > >
> > > I have no idea about the details being discussed here/why people’s
> > > noses are out of joint, but I can think of as many success with a
> > > single overlord in place as there are failures caused by political
> > > infighting.
> > >
> >
> > In general, I'm pretty happy with the "benevolent dictator" approach.
> > But some openness would be awesome. As first think that comes in my
> > mind is: have a clear roadmap for Clojure and its core libraries such
> > as core.async.
> >
> > Some channel for requesting features, and the ability to know a
> > opinion of the clojure core team about the possibility of the
> > inclusion of some requested feature.
> >
> > Also would be awesome have more painless contribution process. I'm ok
> > for signing CA, but using patches instead of something like pull
> > requests (with or without additional review tool) is very arcane and
> > uncomfortable process.
> >
> > I don't suggest to change to something similar to "design by
> > committee". I only suggest that make some facilities for contribute
> > may attract more interesting people. And will make more happy
> > excellent contributors like Zach Tellman or Aphyr.
&

Re: #{:rant} Questions about contribution policy and clojure compiler source.

2015-07-18 Thread Andrey Antukh
On Sat, Jul 18, 2015 at 6:48 PM, Colin Yates  wrote:

> +1 (although I maybe wouldn’t be so mocking in my tone ;-). Since when did
> software design by committee work; anyone remember J2EE? (and yes, that
> does deserve my mocking tone).
>
> I have no idea about the details being discussed here/why people’s noses
> are out of joint, but I can think of as many success with a single overlord
> in place as there are failures caused by political infighting.
>

In general, I'm pretty happy with the "benevolent dictator" approach. But
some openness would be awesome. As first think that comes in my mind is:
have a clear roadmap for Clojure and its core libraries such as core.async.

Some channel for requesting features, and the ability to know a opinion of
the clojure core team about the possibility of the inclusion of some
requested feature.

Also would be awesome have more painless contribution process. I'm ok for
signing CA, but using patches instead of something like pull requests (with
or without additional review tool) is very arcane and uncomfortable process.

I don't suggest to change to something similar to "design by committee". I
only suggest that make some facilities for contribute may attract more
interesting people. And will make more happy excellent contributors like
Zach Tellman or Aphyr.

I think that things like this are not very complicated to adopt and has a
lot of benefit.

My two cents!

>
> On 18 Jul 2015, at 16:44, Luc Prefontaine 
> wrote:
>
> Sure, indentation is what gets the code running on metal :))
>
> Not ranting here, just my abs dying from the pain as I laugh :))
>
> As for the contrib process, go have a look at Linux. You'll be happy that
> Rich is cool by every meaning of the word.
>
> There's this misconception about open source that we should all wear
> flower collars and sing Kumbaya. Mostly a 60's view of human collaboration.
>
> That ain't the way to get it done.
> It works for ants and termites, they work as groups but we are human
> beings with our strong individuality.
>
> Some form of central control is needed. Opposed by traction from some
> individuals that would like to move faster or in other directions.
>
> This is ok but not at the expense of the cohesion of the end result.
>
> Hence this tensed balance.
>
> Rich created Clojure, he knows were he wants to go with it. Any ideas we
> bring in the process is evaluated. However not all of them make sense or
> are worth the effort to implement.
>
> Aside from our respective ego being hurt because our ideas are not
> retained or our contribs vetted in the first pass there's little damage
> done.
>
> If it was not the case Clojure would have zero traction and Linux
> likewise. Search for Linus rants about contributors and try to relate this
> with the level of success of Linux.
>
> They are not so many open source projects that have the same stability
> from release to release as Clojure or Linux.
>
> Control and absence of complacency are key factors to achieve this kind of
> success.
>
> Luc P.
>
> Sent from my iPhone
>
> On Jul 18, 2015, at 07:13, Andrey Antukh  wrote:
>
> Hi!
>
> I have some, maybe controversial, questions...
>
> A little bit of context:
> https://twitter.com/aphyr/status/621806683908542464
>
> Why this is like a normal approach for managing third party contributions
> to clojure core? This kind of things the only discourages the
> contributions. Maybe I don't have more context about this concrete case,
> but seems is not a unique.
> And in general, I have the perception that the clojure development process
> is a little bit opaque...
>
> An other question: Why the great amount of clojure compiler code has no
> indentation style and bunch of commented code.
>
> It is indented like a freshman. Sorry, I don't want offend any one, but
> eyes hurt when reading the code compiler clojure (obviously I'm speaking
> about the look and feel, and no the quality of the code).
>
> Some examples:
>
> Indentation (or maybe no indentation):
>
> https://github.com/clojure/clojure/blob/36d665793b43f62cfd22354aced4c6892088abd6/src/jvm/clojure/lang/APersistentVector.java#L86
>
> Bunch of commented code and also no indentation:
>
> https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/AMapEntry.java#L60
>
> If you compare some clojure compiler code with different code snippets
> from other languages, the indentation is clearly more cared:
>
> Kotlin:
> https://github.com/JetBrains/kotlin/blob/master/core/descriptors/src/org/jetbrains/kotlin/types/AbstractClassTypeConstructor.java#L44
> Rust:
> https://github.com/rust-lang/rust/blob/master/src/libstd/i

#{:rant} Questions about contribution policy and clojure compiler source.

2015-07-18 Thread Andrey Antukh
Hi!

I have some, maybe controversial, questions...

A little bit of context: https://twitter.com/aphyr/status/621806683908542464


Why this is like a normal approach for managing third party contributions
to clojure core? This kind of things the only discourages the
contributions. Maybe I don't have more context about this concrete case,
but seems is not a unique.
And in general, I have the perception that the clojure development process
is a little bit opaque...

An other question: Why the great amount of clojure compiler code has no
indentation style and bunch of commented code.

It is indented like a freshman. Sorry, I don't want offend any one, but
eyes hurt when reading the code compiler clojure (obviously I'm speaking
about the look and feel, and no the quality of the code).

Some examples:

Indentation (or maybe no indentation):
https://github.com/clojure/clojure/blob/36d665793b43f62cfd22354aced4c6892088abd6/src/jvm/clojure/lang/APersistentVector.java#L86

Bunch of commented code and also no indentation:
https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/AMapEntry.java#L60

If you compare some clojure compiler code with different code snippets from
other languages, the indentation is clearly more cared:

Kotlin:
https://github.com/JetBrains/kotlin/blob/master/core/descriptors/src/org/jetbrains/kotlin/types/AbstractClassTypeConstructor.java#L44
Rust:
https://github.com/rust-lang/rust/blob/master/src/libstd/io/buffered.rs#L165
Ceylon:
https://github.com/ceylon/ceylon-compiler/blob/master/src/com/redhat/ceylon/compiler/java/codegen/AttributeDefinitionBuilder.java#L233

This is a random list of code snippets from different compilers with
indentation that is more human friendly.

I don't intend judge any one, but when a I learn Clojure compiler I expect
something different. I expect something more carefully done.

No body thinks the same thing that me?

I think that have a sane, more open contribution policy, with clear and
more cared code formatting, is not very complicated thing and is going to
favor the clojure and its community.

Andrey
-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-07-06 Thread Andrey Antukh
Hi Stéphane Tavera!

Thank you very much for notice me about that documentation inconsistency.
It is already fixed in master!

Cheers.
Andrey

On Mon, Jul 6, 2015 at 10:59 AM, Stéphane Tavera 
wrote:

> Hey Andrey,
>
> I have just begun looking at buddy.core, by following the documentation
> here:
> https://funcool.github.io/buddy-core/latest/
>
> It seems there is an error here (or there is something I did not get ??):
>
> (-> (hmac/verify "foo bar" "61849448bdbb67b..." "mysecretkey" :sha256)
> (codecs/bytes->hex));; => true
>
> Correct example in unit tests shows that verify works with a byte array
> and returns a boolean.
>
> I am using https://github.com/funcool/buddy-core (0.6.0).
>
> Let me know if I can help.
> In the meantime, keep up the good work.
>
> Cheers,
> __
> Stéphane Tavera
>
>
> On Sunday, July 5, 2015 at 9:30:23 AM UTC+2, Andrey Antukh wrote:
>
>> Hi!
>>
>> I am happy to announce a new release of buddy, a security library for
>> clojure.
>>
>> Since the buddy is split in different modules, here relevant changes
>> across all modules:
>>
>> buddy-core:
>>
>> - Improved padding's namespace api (has a little breaking change:
>> `unpad!` function is replaced by `unpad`)
>> - Add high level interface for encrypt arbitrary length data using an
>> encryption scheme. With initial support for: `:aes128-cbc-hmac-sha256`,
>> `:aes192-cbc-hmac-sha384`, `:aes256-cbc-hmac-sha512`, `:aes128-gcm`,
>> `:aes192-gcm` and `:aes256-gcm`.
>>
>> buddy-sign:
>>
>> - Code cleaning (removed many builtin crypto primitives that are already
>> implemented and part of the public api of buddy-core).
>> - Fix some hidden bugs related to wrong padding's on the JWE
>> implementation (thanks to new crypto primitives on the buddy-core).
>> - Dependencies updates.
>>
>> buddy-auth:
>>
>> - Dependencies updates.
>>
>> buddy-hashers:
>>
>> - More tests.
>> - Dependencies updates.
>>
>> Github:
>>
>> https://github.com/funcool/buddy-core
>> https://github.com/funcool/buddy-sign
>> https://github.com/funcool/buddy-auth
>> https://github.com/funcool/buddy-hashers
>>
>> Documentation:
>>
>> https://funcool.github.io/buddy-core/latest/
>> https://funcool.github.io/buddy-sign/latest/
>> https://funcool.github.io/buddy-auth/latest/
>> https://funcool.github.io/buddy-hashers/latest/
>>
>> Cheers.
>> Andrey
>>
>> --
>> Andrey Antukh - Андрей Антух - 
>> http://www.niwi.nz
>> https://github.com/niwinz
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-07-05 Thread Andrey Antukh
Hi!

I'm happy to announce the 0.3.2 release of catacumba, the asynchronous and
non-blocking web toolkit for Clojure build on top of ratpack[1] and
netty[2].

Here a small list of relevant changes:

- Many dependency updates (ratpack -> 0.9.17, netty -> 4.1.0-beta5, clojure
-> 1.7.0, futura -> 0.3.0)
- Add csrf protect support.
- Add autoreload support (a la ring reload middleware)
- Add builtin testing facilities.
- Add cps style handlers (not documented at this moment).
- Reimplement the auth api for to be async.

Additionally, the `website` example is updated to use the autoreload chain
handler for demonstration purpose. You can found all information about them
here: https://funcool.github.io/catacumba/latest/#examples

Documentation: https://funcool.github.io/catacumba/latest/
Api reference: https://funcool.github.io/catacumba/latest/api/
Source code: https://github.com/funcool/catacumba

[1]: http://ratpack.io/
[2]: http://netty.io/

-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-07-05 Thread Andrey Antukh
Hi!

I am happy to announce a new release of buddy, a security library for
clojure.

Since the buddy is split in different modules, here relevant changes across
all modules:

buddy-core:

- Improved padding's namespace api (has a little breaking change: `unpad!`
function is replaced by `unpad`)
- Add high level interface for encrypt arbitrary length data using an
encryption scheme. With initial support for: `:aes128-cbc-hmac-sha256`,
`:aes192-cbc-hmac-sha384`, `:aes256-cbc-hmac-sha512`, `:aes128-gcm`,
`:aes192-gcm` and `:aes256-gcm`.

buddy-sign:

- Code cleaning (removed many builtin crypto primitives that are already
implemented and part of the public api of buddy-core).
- Fix some hidden bugs related to wrong padding's on the JWE implementation
(thanks to new crypto primitives on the buddy-core).
- Dependencies updates.

buddy-auth:

- Dependencies updates.

buddy-hashers:

- More tests.
- Dependencies updates.

Github:

https://github.com/funcool/buddy-core
https://github.com/funcool/buddy-sign
https://github.com/funcool/buddy-auth
https://github.com/funcool/buddy-hashers

Documentation:

https://funcool.github.io/buddy-core/latest/
https://funcool.github.io/buddy-sign/latest/
https://funcool.github.io/buddy-auth/latest/
https://funcool.github.io/buddy-hashers/latest/

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-06-21 Thread Andrey Antukh
Do you know about cuerdas? https://github.com/funcool/cuerdas

It is already compatible with clojure and clojurescript ;)

On Sun, Jun 21, 2015 at 5:05 PM, Karsten Schmidt  wrote:

> That's ++great, Lars! Would you be open to convert this into CLJC so
> it can all be used from CLJS as well? I guess the main stumbling block
> is the use of java.text.Normalizer in strip-accents, but that could be
> replaced with a hardcoded regexp solution for CLJS...
>
> Thanks!
>
> On 21 June 2015 at 13:45, Lars Andersen  wrote:
> > I'm happy to announce the first release of superstring, a string
> > manipulation library for clojure.
> >
> > Read more about why I wrote superstring here:
> > https://github.com/expez/superstring
> >
> > Or check out the api docs for a quick overview of what's provided:
> > http://expez.github.io/superstring/doc/superstring.core.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/d/optout.
>
>
>
> --
> Karsten Schmidt
> http://postspectacular.com | http://thi.ng | http://toxiclibs.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/d/optout.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] clafka 0.1.0 - a clojure kafka client focusing on the SimpleConsumer and KafkaProducer.

2015-06-09 Thread Andrey Antukh
Great work! Thanks for sharing!

On Tue, Jun 9, 2015 at 10:19 AM,  wrote:

> I am pleased to announce the release of the initial version of our new
> kafka library!
>
> I see this library as useful for people that want to...
>
> a. Read some data from their kafka logs worry free (no consumer groups, no
> state etc)
> b. Implement a new kind of consumer, as their needs are not met by the
> default zookeeper consumer in kafka (like us!)
> c. Use a clojure wrapper for the new KafkaProducer api (including broker
> acknowledgement)
>
> Source and docs here: https://github.com/mixradio/clafka
>
> Questions, comments and contributions very welcome!
>
> Regards,
>
> Dan
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-06-02 Thread Andrey Antukh
On Mon, Jun 1, 2015 at 11:12 PM, Gary Trakhman 
wrote:

> I think this is one of those cases where the rules are different for
> libraries than applications.
>
> Does your lib need to pull in core.async, and does it need to be coupled
> to a specific version?  If it's a building block sort of lib that clojure
> and the community prefers, I think the answer is no.  Is this more of an
> opinionated 'framework' or set of batteries (luminus might fall in this
> category)?  In that case, yes.
>
> As an application-writer having to write some glue code feels less frustrating
> than when libs make assumptions that I don't like.
>

Completely agree with that!


>
> On Mon, Jun 1, 2015 at 5:05 PM Eldar Gabdullin  wrote:
>
>> I would implement everything sticking to just callbacks, then create
>> separately requirable core.async version of API if that matters.
>> Ideally this should be a separate lib, but practically, it seems better
>> to just have a separate file.
>>
>> понедельник, 1 июня 2015 г., 22:18:19 UTC+3 пользователь Christopher
>> Small написал:
>>
>>> Greetings
>>>
>>> I imagine most of us here would rather use core.async channels over
>>> callbacks in their application code, particularly with more complicated
>>> applications. But is it okay/preferable for Clojure libraries to force
>>> their users to use core.async channels as part of an API (an event channel,
>>> for example)?
>>>
>>> As much as I love core.async, I can't help but wonder whether sticking
>>> with callbacks for an API isn't a simpler/better design strategy. It's easy
>>> enough to drop messages on a channel in a callback, and this let's users
>>> opt-in. But if one expects core.async channels are what most would prefer
>>> anyway, is it okay to foist them upon everyone?
>>>
>>> As a follow up, does your opinion on the matter change if
>>> implementations of an API become simpler using core.async channels?
>>>
>>>
>>> Looking forward to your thoughts :-)
>>>
>>> Chris Small
>>>
>>>
>>>
>>> PS I'm asking because I'm working on a physical computing API (
>>> https://github.com/clj-bots/pin-ctrl) and debating between using
>>> channels vs callbacks for the edge detection functionality (if you're not
>>> familiar, edge detection let's you asynchronously handle changes in pin
>>> state, such as button pushes). If you're interested in this question as it
>>> applies specifically to this application, feel free to join the discussion
>>> on our gitter channel: https://gitter.im/clj-bots/chat
>>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-06-02 Thread Andrey Antukh
 you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-06-01 Thread Andrey Antukh
Hi!

Personally I think that manifold has the same problem that core.async. So
if you are exposing your api using manifold you are forcing to someone to
use manifold. It is not bad, but is the same problem as with core.async.

And the same problem with callbacks. If you are using callbacks you are
force to people to use callbacks or adapt it to whatever other abstraction.

So, independently of the chosen abstraction, you are always forcing the
user to use the chosen abstraction or adapt their code to another
abstraction.

About the original question, I think it depends that you really wants. In
some projects I expose api using inter operable with jvm abstractions like
(reactive-streams) or promises (completable future in jdk8), in other I
just use core.async.

There is no single solution I think!

My two cents!

Andrey

On Mon, Jun 1, 2015 at 9:57 PM, Alejandro Ciniglio 
wrote:

> Zach Tellman talks about exactly this in his conj talk from last year
> https://www.youtube.com/watch?v=3oQTSP4FngY
>
> He built a library around this that essentially gives the library user a
> choice of either option: https://github.com/ztellman/manifold
>
>
> On Monday, June 1, 2015 at 3:18:19 PM UTC-4, Christopher Small wrote:
>>
>> Greetings
>>
>> I imagine most of us here would rather use core.async channels over
>> callbacks in their application code, particularly with more complicated
>> applications. But is it okay/preferable for Clojure libraries to force
>> their users to use core.async channels as part of an API (an event channel,
>> for example)?
>>
>> As much as I love core.async, I can't help but wonder whether sticking
>> with callbacks for an API isn't a simpler/better design strategy. It's easy
>> enough to drop messages on a channel in a callback, and this let's users
>> opt-in. But if one expects core.async channels are what most would prefer
>> anyway, is it okay to foist them upon everyone?
>>
>> As a follow up, does your opinion on the matter change if implementations
>> of an API become simpler using core.async channels?
>>
>>
>> Looking forward to your thoughts :-)
>>
>> Chris Small
>>
>>
>>
>> PS I'm asking because I'm working on a physical computing API (
>> https://github.com/clj-bots/pin-ctrl) and debating between using
>> channels vs callbacks for the edge detection functionality (if you're not
>> familiar, edge detection let's you asynchronously handle changes in pin
>> state, such as button pushes). If you're interested in this question as it
>> applies specifically to this application, feel free to join the discussion
>> on our gitter channel: https://gitter.im/clj-bots/chat
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-05-30 Thread Andrey Antukh
Hi!

I'm happy to announce the 0.2.0 release of catacumba, the asynchronous and
non-blocking web toolkit for Clojure build on top of ratpack[1] and
netty[2].

This release is focused in polish the code base.

Here a small list of relevant changes:

- Improve session storage api and make it asynchronous by default.
- Add support for extensible body parsing.
- Add support for interceptors (instrumentation)
- Add support for auth facilities.
- Update futura library to the last version that adds fully asynchronous
publishers.

You can see the complete release notes here:
https://github.com/funcool/catacumba/releases/tag/0.2.0

Additionally it comes with 3 new example projects: website,
interceptor(instrumentation) and single-file app. You can found all
information about them here:
https://funcool.github.io/catacumba/latest/#examples

The upcoming planned relevant changes for the next release:

- Make auth asynchronous like now are sessions.
- Leiningen template for easy and quick start a basic project.
- Message based communication between client and server with STOMP over
websocket.

Documentation: https://funcool.github.io/catacumba/latest/
Api reference: https://funcool.github.io/catacumba/latest/api/
Source code: https://github.com/funcool/catacumba

[1]: http://ratpack.io/
[2]: http://netty.io/

-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Advice when running java -jar rather than a managed server like tomcat?

2015-05-26 Thread Andrey Antukh
http://circus.readthedocs.org/en/0.11.1/

We are using it not only for deploy java, also: python and nodejs
applications. Is a generc process monitor in a userspace with good comand
line interface, with web interface, ... and works pretty well!

Andrey

On Tue, May 26, 2015 at 3:24 PM, Jozef Wagner 
wrote:

> We were using http://wrapper.tanukisoftware.com/doc/english/download.jsp
> for deploying uberjars as a service under linux (AWS), and were quite
> satisfied with it.
>
> On Tue, May 26, 2015 at 3:15 PM, Shantanu Kumar 
> wrote:
>
>> I'm doing some of those things at work (http-kit,
>> logback+slf4j+MDC+clojure.tools.logging, config via property files). My
>> entry point (main) is a Java class that reads properties file, sets system
>> properties to hoist logging config variables, then uses reflection to load
>> other Java/Clojure initializers that may be referring to SLF4j in some
>> fashion.
>>
>> We're yet to settle on a way to run Java JAR as a system service, but we
>> are looking at http://supervisord.org/ and
>> https://mmonit.com/wiki/Monit/FAQ
>>
>> Shantanu
>>
>> On Tuesday, 26 May 2015 17:08:30 UTC+5:30, Colin Yates wrote:
>>>
>>> Hi,
>>>
>>> I am venturing into new territory using http-kit, as I usually use a
>>> 'managed' web server container like tomcat and have a few questions about
>>> packing and running a JAR file:
>>>
>>>  - are there are convenient service wrappers for windows and/or Linux
>>>  - any best practice around managing class path for things like
>>> logback.xml
>>>
>>> I have a jar created from lein uberjar and java -jar the.jar works, but
>>> this seems a long way away from automated deployment :).
>>>
>>> Any advice welcome - 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/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.
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.nz
https://github.com/niwinz

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

2015-05-09 Thread Andrey Antukh
Hi!

Personally, I do not have the opportunity to use refs, but atoms and agens
I have used it in different ways

I have used agents for logging system, thanks to its guarantees of
execution functions in a serial way. This allows heavy multithreading
applications put logs to stdout (or any other destination) and have as
result a consistent log.

An other thing when I have used with agents is implement an async interface
for jdbc like applications. I have a little explication on how it is done
here: http://funcool.github.io/suricatta/latest/#_async_interface

I hope you find it useful.

Cheers.
Andrey

2015-05-09 3:56 GMT+02:00 :

> This seems to be true:
>
> "I would have to say that the biggest surprise is how little they're
> needed in Clojure."
>
> Run this search on Google:
>
> agent send clojure site:github.com
>
> The first 5 pages point me to examples from several years ago, or error
> reports, or unit tests. Nothing substantial or recent. I think it is
> interesting how many of the results are blog posts or gists -- people talk
> about agents much more then they actually use them.
>
> Still, there are some examples:
>
>
> https://github.com/aphyr/riemann/blob/302cff942f308771b1d8d837cdf9ce2c9090daed/src/riemann/pool.clj
>
> (defmacro with-pool "Evaluates body in a try expression with a symbol
> 'thingy claimed from the given pool, with specified claim timeout.
> Releases thingy at the end of the body, or if an exception is thrown,
> invalidates them and rethrows. Example: ; With client, taken from
> connection-pool, waiting 5 seconds to claim, send ; client a message.
> (with-pool [client connection-pool 5] (send client a-message))" [[thingy
> pool timeout] & body] ; Destructuring bind could change nil to a, say,
> vector, and cause ; unbalanced claim/release. `(let [thingy# (claim ~pool
> ~timeout) ~thingy thingy#] (try (let [res# (do ~@body)] (release ~pool
> thingy#) res#) (catch Throwable t# (invalidate ~pool thingy#) (throw
> t#)
>
>
>
> And:
>
>
> https://github.com/clojure/java.jmx/blob/master/src/main/clojure/clojure/java/jmx.clj
>
>
> (deftype Bean [state-ref] DynamicMBean (getMBeanInfo [_] (MBeanInfo. (..
> _ getClass getName) ; class name "Clojure Dynamic MBean" ; description (
> map->attribute-infos @state-ref) ; attributes nil ; constructors nil ;
> operations nil)) (getAttribute [_ attr] (@state-ref (keyword attr))) (
> getAttributes [_ attrs] (let [result (AttributeList.)] (doseq [attr attrs]
> (.add result (Attribute. attr (.getAttribute _ attr result)) (
> setAttribute [_ attr] (let [attr-name (.getName attr) attr-value (
> .getValue attr) state-update {(keyword attr-name) attr-value}] (condp = (
> type state-ref) clojure.lang.Agent (await (send state-ref (fn [state
> state-update] (merge state state-update)) state-update)) clojure.lang.Atom
> (swap! state-ref merge state-update) clojure.lang.Ref (dosync (ref-set
> state-ref (merge @state-ref state-update)) (setAttributes [_ attrs] (
> let [attr-names (map (fn [attr] (.setAttribute _ attr) (.getName attr))
> attrs)] (.getAttributes _ (into-array attr-names)
>
>
>
> I would love to see some other examples.
>
>
>
>
>
>
> On Wednesday, May 6, 2015 at 9:49:47 PM UTC-4, Surgo wrote:
>>
>> I'm not saying this is everyone's experience or anything, but at times I
>> have at times considered some deeper STM-work with agents but I could not
>> seem to penetrate the documentation at the time. I do not know if it's
>> different now
>>
>> -- Morgon
>>
>> On Wednesday, May 6, 2015 at 5:38:08 PM UTC-4, James Reeves wrote:
>>>
>>> On 6 May 2015 at 21:58, Alex Miller  wrote:
>>>
>>>> I would have to say that the biggest surprise is how little they're
>>>> needed in Clojure. The combination of immutable data, functions to update
>>>> complex data structures, and fast pure function updates with atoms actually
>>>> satisfies a large percentage of real use cases.
>>>>
>>>
>>> I'll echo this. I've been using Clojure for years, and I can't recall
>>> ever needing refs (or agents for that matter).
>>>
>>> - James
>>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojur

Re: Metadata loss. What am I doing wrong?

2015-05-05 Thread Andrey Antukh
Thank you very much to all!

Now I completely understand the metadata behavior with the reader. I'll try
to adopt eastwood, thanks for the suggestion.

Is clearly that the documentation confuses a little bit.

Cheers!
Andrey

2015-05-05 23:25 GMT+02:00 James Reeves :

> The documentation is rather misleading, as it implies that "obj" can be a
> symbol. However, because ^ is a reader macro, it is applied to "obj" before
> it is evaluated.
>
> Clojure maps, vectors and sets all evaluate to themselves, so attaching
> metadata to the unevaluated expression via the ^ reader macro, is the same
> as attaching it to the evaluated expression via with-meta.
>
> So:
>
> ^:abc foo
> ^:abc [1 2 3]
>
> Will both attach the metadata directly to the literal value following it,
> but because 'foo' evaluates to something else, the reader metadata is lost
> after the symbol is evaluated.
>
> - James
>
> On 5 May 2015 at 22:01, Andrey Antukh  wrote:
>
>> Thanks to both for the responses, but I stil not clearly understand.
>>
>> The documentation says very clearly that:
>>
>> In addition to with-meta, there are a number of reader macros (The
>> Reader: Macro Characters) for applying metadata to the expression following
>> it:
>> ^{:doc "How obj works!"} obj - Sets the metadata of obj to the provided
>> map.
>> Equivalent to (with-meta obj {:doc "How obj works!"})
>>
>>
>> (def foo ^:abc [1 2 3]) -> (meta foo) -> {:abc true}
>> (def foo ^:abc some-func) -> (meta foo) -> nil
>> (def foo ^:abc 'some-symbol) -> (meta foo) -> nil (In clojure
>> programming book uses example attaching metadata using the reader to the
>> symbol, but seems it not works as expected)
>>
>> Is a little bit confusing. The metadata documentation says clearly that
>> are equivalent, but are not equivalent.
>>
>>
>> Thank you very much again.
>>
>> Regards.
>> Andrey
>>
>> 2015-05-05 21:49 GMT+02:00 Andy- :
>>
>>> In addition to James comment: IMO clojure.org/metadata should be
>>> clearer about this. It's mentioned more clearly on the reader page:
>>> http://clojure.org/reader#The%20Reader--Macro%20characters
>>> "The metadata reader macro first reads the metadata and attaches it to
>>> the next form read (see with-meta
>>> <http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-meta>
>>>  to
>>> attach meta to an object):"
>>>
>>> Stress on *next form read*.
>>>
>>> On Tuesday, May 5, 2015 at 2:31:40 PM UTC-4, Andrey Antukh wrote:
>>>>
>>>> Hi!
>>>>
>>>> I have some trouble with clojure metadata / reader and I do not know if
>>>> I'm doing something wrong.
>>>>
>>>> I have this code:
>>>>
>>>> (defn some-func [])
>>>>
>>>> (def func ^:abc some-func)
>>>>
>>>> (assert (= (meta func) {:abc true}))
>>>>
>>>> (def data [[:bar (with-meta some-func {:abc true})]
>>>>[:baz ^:abc some-func]])
>>>>
>>>> (assert (= (meta (get-in data [0 1])) {:abc true}))
>>>> (assert (= (meta (get-in data [1 1])) {:abc true}))
>>>>
>>>> It fails in the first assert and in the last (if I comment the first
>>>> one obviously). I do not understand why that form of metadata does not 
>>>> works
>>>> as I expect (http://clojure.org/metadata)
>>>>
>>>> Thank you very much.
>>>>
>>>> Regards.
>>>> Andrey
>>>>
>>>> --
>>>> Andrey Antukh - Андрей Антух -  / <
>>>> ni...@niwi.be>
>>>> http://www.niwi.be <http://www.niwi.be/page/about/>
>>>> https://github.com/niwibe
>>>>
>>>
>>
>>
>> --
>> Andrey Antukh - Андрей Антух -  / <
>> n...@niwi.be>
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.co

Re: Metadata loss. What am I doing wrong?

2015-05-05 Thread Andrey Antukh
Thanks to both for the responses, but I stil not clearly understand.

The documentation says very clearly that:

In addition to with-meta, there are a number of reader macros (The Reader:
Macro Characters) for applying metadata to the expression following it:
^{:doc "How obj works!"} obj - Sets the metadata of obj to the provided map.
Equivalent to (with-meta obj {:doc "How obj works!"})


(def foo ^:abc [1 2 3]) -> (meta foo) -> {:abc true}
(def foo ^:abc some-func) -> (meta foo) -> nil
(def foo ^:abc 'some-symbol) -> (meta foo) -> nil (In clojure programming
book uses example attaching metadata using the reader to the symbol, but
seems it not works as expected)

Is a little bit confusing. The metadata documentation says clearly that are
equivalent, but are not equivalent.


Thank you very much again.

Regards.
Andrey

2015-05-05 21:49 GMT+02:00 Andy- :

> In addition to James comment: IMO clojure.org/metadata should be clearer
> about this. It's mentioned more clearly on the reader page:
> http://clojure.org/reader#The%20Reader--Macro%20characters
> "The metadata reader macro first reads the metadata and attaches it to
> the next form read (see with-meta
> <http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-meta>
>  to
> attach meta to an object):"
>
> Stress on *next form read*.
>
> On Tuesday, May 5, 2015 at 2:31:40 PM UTC-4, Andrey Antukh wrote:
>>
>> Hi!
>>
>> I have some trouble with clojure metadata / reader and I do not know if
>> I'm doing something wrong.
>>
>> I have this code:
>>
>> (defn some-func [])
>>
>> (def func ^:abc some-func)
>>
>> (assert (= (meta func) {:abc true}))
>>
>> (def data [[:bar (with-meta some-func {:abc true})]
>>[:baz ^:abc some-func]])
>>
>> (assert (= (meta (get-in data [0 1])) {:abc true}))
>> (assert (= (meta (get-in data [1 1])) {:abc true}))
>>
>> It fails in the first assert and in the last (if I comment the first one
>> obviously). I do not understand why that form of metadata does not works
>> as I expect (http://clojure.org/metadata)
>>
>> Thank you very much.
>>
>> Regards.
>> Andrey
>>
>> --
>> Andrey Antukh - Андрей Антух -  / > >
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>


-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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


Metadata loss. What am I doing wrong?

2015-05-05 Thread Andrey Antukh
Hi!

I have some trouble with clojure metadata / reader and I do not know if I'm
doing something wrong.

I have this code:

(defn some-func [])

(def func ^:abc some-func)

(assert (= (meta func) {:abc true}))

(def data [[:bar (with-meta some-func {:abc true})]
   [:baz ^:abc some-func]])

(assert (= (meta (get-in data [0 1])) {:abc true}))
(assert (= (meta (get-in data [1 1])) {:abc true}))

It fails in the first assert and in the last (if I comment the first one
obviously). I do not understand why that form of metadata does not works
as I expect (http://clojure.org/metadata)

Thank you very much.

Regards.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-05-04 Thread Andrey Antukh
Yes, without a database, serializing data using JWS or JWE...  I have done
similar thing with buddy-auth stateless backend. It not uses sessions but
the concept is the same.

Cheers.
Andrey

2015-05-04 20:17 GMT+02:00 Sean Corfield :

> On May 4, 2015, at 11:08 AM, Josh Kamau  wrote:
> > @Sean, i wanted totally stateless backend.
>
> Without a database? :)
>
> Sean Corfield -- (904) 302-SEAN
> An Architect's View -- http://corfield.org/
>
> "Perfection is the enemy of the good."
> -- Gustave Flaubert, French realist novelist (1821-1880)
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-05-04 Thread Andrey Antukh
Hi!

We (my friend Alejandro and I) are happy to announce the first public
version of a ClojureScript book that we are writing.

The book is still a work in progress and many chapters are not available
yet. We are sure that the book has many spelling errors (we are not native
English speakers), so the wording improvements are very very welcome!

This books aims to serve as:

- a comprehensive introduction to the ClojureScript language and its
idiomatic usage, assuming no previous experience with Clojure or functional
programming;
- a detailed guide of the ClojureScript compiler and the tooling around it;
and
- a mixed bag of topics that are useful in day-to-day ClojureScript
programming.

Github: https://github.com/funcool/clojurescript-unraveled
Online version: http://funcool.github.io/clojurescript-unraveled/

Feel free to write any comments or feedback.

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-05-04 Thread Andrey Antukh
This is something that I'm currently working on:
https://github.com/funcool/catacumba
It is still in alpha, but it has the same philosophy that you have mention.

Cheers.
Andrey

2015-05-04 12:06 GMT+02:00 John Louis Del Rosario :

> Very interesting discussion going on here. As a beginner, what I'd like to
> see is not something like Django or Rails, but something like Flask.
> Where someone can just (require 'someframework) and it works. Maybe it
> could have thin wrappers over compojure, etc., since it will need to be
> opinionated anyway. It's still very simple, but takes away a lot of the
> guesswork and the distributed docs across multiple projects problem.
>
> Additional features can be done as libraries then, but specific for
> `someframework`, like what Flask has. e.g. `someframework-sessions`, etc.
>
> Just my 2c.
>
>
> On Sunday, May 3, 2015 at 4:43:53 AM UTC+8, g vim wrote:
>>
>> I recently did some research into web frameworks on Github. Here's what
>> I found:
>>
>>
>> FRAMEWORK   LANG  CONTRIBUTORS COMMITS
>>
>> LuminusClojure28678
>> CaribouClojure 2275
>>
>> BeegoGolang991522
>>
>> PhoenixElixir  1241949
>>
>> YesodHaskell   1303722
>>
>> LaravelPHP2684421
>>
>> PlayScala   4176085
>>
>> SymfonyPHP113020914
>>
>> RailsRuby   269151000
>>
>>
>> One could conclude from this that the Clojure community isn't that
>> interested in web development but the last Clojure survey suggests
>> otherwise. Clojure's library composition approach to everything only
>> goes so far with large web applications, as Aaron Bedra reminded us in
>> March last year: www.youtube.com/watch?v=CBL59w7fXw4 . Less manpower
>> means less momentum and more bugs. Furthermore, I have a hunch that
>> Clojure's poor adoption as indicated by Indeed.com maybe due to this
>> immaturity in the web framework sphere. Why is it that Elixir, with a
>> much smaller community and lifespan than Clojure's, has managed to put 4
>> times as much mindshare into its main web framework when its module
>> output, as measured by modulecounts.com, is a tiny fraction of
>> Clojure's?
>>
>> gvim
>>
>>
>>
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] Catacumba 0.1.0-alpha2: Asynchronous and non-blocking web toolkit for Clojure

2015-05-03 Thread Andrey Antukh
Hi!

I'm happy to announce the second alpha of catacumba, the asynchronous and
non-blocking web toolkit for Clojure build on top of ratpack[1] and
netty[2].

This release is focused in add a great a mount of features missing from the
first release and improve some internals for make it more flexible.

Here a incomplete list of added features:

- Add Server-Sent Events support.
- Add CORS support.
- Add security related chain helpers (x-frame-options,
strict-transport-security, the content-security-policy and
x-content-type-options).
- Add support for manifold deferreds and streams.
- Add support for get/set cookies.
- Add basic support for sessions (very experimental and internal api will
change in the next version).
- Add special functions for add callback function that will be executed
when connection is closed and just before send the response to client.
- Add dispatch by method to the routing system.
- Support for stuartsierra/component

You can see the complete release notes here:
https://github.com/funcool/catacumba/releases/tag/0.1.0-alpha2

Additionally, it comes with two examples (in the next release I have plans
add other two), one for see how we can use prone for better error reporting
and other is a multiuser chat using Server-Sent Events and stuartsierra
component.
More information about examples here:
https://funcool.github.io/catacumba/latest/#_examples

Documentation: https://funcool.github.io/catacumba/latest/
Github: https://github.com/funcool/catacumba

[1]: http://ratpack.io/
[2]: http://netty.io/

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-04-21 Thread Andrey Antukh
I have done a little search I do not found its source...

Seems that crossclj does not have published the source code of the service
:(

2015-04-21 11:21 GMT+02:00 Henrik Heine :

> Thanks for your reply.
>
> Yes, I'm aware of crossclj, but I did not find any example on how to use
> it for my own project (i.e. run it on my code and deploy it to customers).
>
> Any hint on that?
>
> - Henrik
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-04-21 Thread Andrey Antukh
Maybe you are searching this: http://crossclj.info/

Cheers.
Andrey

2015-04-21 9:50 GMT+02:00 Henrik Heine :

> Hi,
>
> I know of highlight.js which I could use for highlighting my Clojure code.
> But what about cross referencing?
> In the end I would like start a ring/jetty server and let the user
> browse/navigate the highlighted source code.
>
> GrepCode does it somewhow - but how?
>
> Any ideas?
>
> - Henrik
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] Catacumba 0.1.0-alpha1: Asynchronous and non-blocking web toolkit for Clojure

2015-04-19 Thread Andrey Antukh
Hi

I'm happy to announce the first alpha of catacumba, the asynchronous and
non-blocking web toolkit for Clojure build on top of ratpack[1] and
netty[2].

Here a incomplete list of things that Catacumba intends to have:

- a flexible and extensible way to setup different kind of handlers.
- build almost everything up on abstractions for easy extensibility.
- support for async handlers (with promise, future, core.async, manifold,
reactive-streams, …​)
- builtin routing with flexible way to chain handlers.
- builtin websocket support.
- backpressure support out of the box.

You can read the detailed rationale and features here:
https://funcool.github.io/catacumba/latest/#_rationale

Documentation: https://funcool.github.io/catacumba/latest/
Github: https://github.com/funcool/catacumba

This is a first alpha; the code and the documentation has great room of
improvements but i'm pretty happy with this first preview release.

[1]: http://ratpack.io/
[2]: http//netty.io/

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-04-03 Thread Andrey Antukh
Hi!

I am happy to announce a new release of buddy, a security library for
clojure.

Since the buddy is split in different modules, here relevant changes across
all modules:

buddy-core:

- Add support for AEAD mode of operations (gcm)
- Add support for AES Key Wrapping algorithms.
- Add support for deflate compression algorithm.
- Several fixes for padding, codecs and keys namespaces.

buddy-sign:

- Add support for JWE (Json Web Encryption) specification. With support for
all specified (in RFC) content encryption algorithms and good subset of key
encryption algorithms, including asymmetric key encryption schemes.
- Add support also for JWE and JWS registered claims validation: aud, iss
(exp, nbf are already supported previously).
- The default JWE and JWS api not raises descriptive exceptions instead of
returning a useless nil in case of something goes wrong on unsing/decrypt
process (breaking change).
- Implement security considerations from
https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
(breaking change because now is more strict with parameters)

buddy-auth:

- Improved exception based authorization system, removing all java source
(now is 100% clojure source).
- Add JWE authentication/authorization backend.
- Add the ability to match by http method on access rules.
- Add the ability to set multiple authentication backends in
`wrap-authentication` middleware.
- Several bugfixes on all parts of the library.

Github:
https://github.com/funcool/buddy-core
https://github.com/funcool/buddy-auth
https://github.com/funcool/buddy-hashers
https://github.com/funcool/buddy-sign

Documentation:
https://funcool.github.io/buddy-core/latest/
https://funcool.github.io/buddy-auth/latest/
https://funcool.github.io/buddy-hashers/latest/
https://funcool.github.io/buddy-sign/latest/

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Edn, Fressian, Transit: which of these formats have a future?

2015-03-17 Thread Andrey Antukh
org/jira/browse/DFRS-1> in the
>underlying Fressian implementation.
>- There are no documented best practices for the use of Fressian or
>some of its more advanced features like chunking. It is not clear how to
>read and write Fressian in a way that facilitates (for instance) ranged
>reads from the middle of a resource. It is not clear when checksums should
>be used and how they should be validated. It is not clear whether tags
>should be namespaced, or how. The only namespaced tag in data.fressian is
>for IRecord; none of the other type tags are namespaced. It's not clear
>whether this is due to bugwards compatibility.
>- Transit is advertised
><https://github.com/cognitect/transit-format#implementations> as a
>work-in-progress. This is the main reason I haven't seriously considered
>adding Transit support to dynamic-object.
>- However, what happens when Transit is stabilized (if that ever
>happens)? Since Transit offers a msgpack encoding, will Fressian then be
>irrelevant (except for legacy use cases)? There's a FUD aspect here--I like
>Fressian and I want dynamic-object to support it, but I don't want to back
>the wrong pony and end up having to support HD-DVD and Betamax for all time
>(so to speak).
>- Can these formats be unified? Can Edn and Fressian encodings for
>Transit be offered? Would that even accomplish anything?
>
> I realize that none of these data languages will have the same extent of
> support and tooling as JSON or XML, but I want to ensure that
> dynamic-object's supported data languages all have attentive stewardship
> and bright futures. It's distressing that a lot of the issues with Edn and
> Fressian have not gotten much traction. Are these languages still actively
> being supported and fostered? If so, how much development activity is
> taking place on internal forks? Are any public updates planned for these
> languages any time soon?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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]: Octet 0.1.0: A Clojure(Script) library for working with binary data.

2015-03-02 Thread Andrey Antukh
Hi Mikera!

Byte-streams is a conversion library (between different representation of
byte streams)

Octet is a library for work with them.

Cheers.
Andrey

2015-03-02 3:09 GMT+01:00 Mikera :

> Thanks for sharing Andrey!
>
> Could you comment on how this compares with:
> https://github.com/ztellman/byte-streams
>
> Are the two complementary? Replacements?
>
> On Monday, 2 March 2015 03:58:57 UTC+8, Andrey Antukh wrote:
>>
>> Hi!
>>
>> I'm happy to announce the first version of Octet library.
>>
>> _octet_ library offers, not intrusive (without additional wrapping),
>> composable and host independent abstraction for working with binary data.
>>
>> It works out of the box with NIO ByteBuffer, Netty ByteBuf, and ES6
>> TypedArrays (clojurescript).
>>
>> Github: https://github.com/funcool/octet
>> Documentation: http://funcool.github.io/octet/latest/
>>
>> Cheers.
>> Andrey
>> --
>> Andrey Antukh - Андрей Антух -  / > >
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>


-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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]: Octet 0.1.0: A Clojure(Script) library for working with binary data.

2015-03-01 Thread Andrey Antukh
Hi!

I'm happy to announce the first version of Octet library.

_octet_ library offers, not intrusive (without additional wrapping),
composable and host independent abstraction for working with binary data.

It works out of the box with NIO ByteBuffer, Netty ByteBuf, and ES6
TypedArrays (clojurescript).

Github: https://github.com/funcool/octet
Documentation: http://funcool.github.io/octet/latest/

Cheers.
Andrey
-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-02-24 Thread Andrey Antukh
I'm currently using and maintaining this two:

https://github.com/niwibe/clojure.jdbc - A clojure.java.jdbc alternative.
https://github.com/niwibe/suricatta - High level Sql toolkit (slightly
higher level abstraction over plain jdbc and includes sql dsl)

Cheers.
Andrey

2015-02-24 15:11 GMT+01:00 Colin Yates :

> Actually, https://github.com/krisajenkins/yesql, now that it supports
> named parameters is probably just the ticket...
>
>
> On Tuesday, 24 February 2015 14:04:36 UTC, Colin Yates wrote:
>>
>> Hi all,
>>
>> What are you all using for interacting with an RDBMS? In the past I
>> looked at clojure.java.jdbc, honeysql and korma (and for querying, honeysql
>> just rocks). I have lost touch a bit - any recommendations?
>>
>> 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/d/optout.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-02-24 Thread Andrey Antukh
2015-02-24 10:15 GMT+01:00 Colin Yates :

> Hi Andrey - thanks for responding. Asciidoctor looks great!
>
> I think I understand the sucriata approach which serialises access to
> the connection (via the agent). But this doesn't ensure that all
> operations using the connection are done in the same thread does it (I
> didn't think agents were thread-locked)?. In not then it looks like a
> no go.
>

Yes, the agent does not ensures that all operations using a connection are
done in the same thread. Using agent only ensures that all actions
are done in serialized way and only one thread uses the connection at time.

>
> To be clear, my understanding (which is from a while ago admittedly)
> is that JDBC transaction implementations tend to use thread locals to
> store a bunch of stuff so it isn't so much the concurrent access which
> is a problem (nicely solved by the agent approach) it is ensuring it
> is ensuring the same thread is used.
>

I'm not expert in jdbc, but I have see the source of postgresql jdbc, and
the transaction state is bind to the connection, nothing related
to thread locals.

Thread locals are often used for "transaction mangers" like spring tx,
maybe hibernate (I'm not sure because I have never used it), and other
lightweight implementations like that https://github.com/witoldsz/ultm ...

But in case of plain jdbc transactions, as far as I know, no thread local
state is involved.

Cheers.
Andrey


>
> On 23 February 2015 at 23:41, Andrey Antukh  wrote:
> > Hi Colin.
> >
> > You are talking about suricatta documentation? Is build with asciidoctor.
> >
> > And, about core.async and transactions, suricatta comes with an async
> > abstraction that internally uses a clojure agent for serialize all
> access to
> > one connection from different threads (managed by core.async internal
> thread
> > pool). Nothing special is used from jooq for handle it.
> >
> > A suricatta context encapsulates the standard jdbc connection and
> additional
> > state. As far as I know, JDBC connection is not fully thread safe
> > (
> http://stackoverflow.com/questions/1531073/is-java-sql-connection-thread-safe
> ),
> > and the general opinion is avoid use the same connection instance from
> > different threads concurrently. But the suricata approach is share a
> > connection instance between threads but ensuring that only one thread can
> > use it at same time (as I said previously) using serialization semantics
> of
> > clojure agents.
> >
> > I hope it has been helpful.
> >
> > Cheers
> > Andrey
> >
> >
> > 2015-02-23 22:26 GMT+01:00 Colin Yates :
> >>
> >> Thanks Christian, that looks interesting.
> >>
> >> By the way, any idea what tool was used to generate the documentation?
> >>
> >> On 23 February 2015 at 21:22, Christian Weilbach
> >>  wrote:
> >> > -BEGIN PGP SIGNED MESSAGE-
> >> > Hash: SHA1
> >> >
> >> > On 23.02.2015 18:20, Colin Yates wrote:
> >> >> Currently each request gets serviced in its own thread (web
> >> >> container) and I am thinking of integrating core.async and I wonder
> >> >> how core.async and a JDBC transactional "unit of work" get on.
> >> >>
> >> >> Conceptually, this model (thread-per-request) is trivial however
> >> >> the problems are well known. Replacing this with core.async right
> >> >> at the front is trivial but I can see the benefit of sprinkling
> >> >> asynchronous behaviour throughout the (still very trivial)
> >> >> pipeline. Or rather I can see the beauty of decomposed components
> >> >> communicating via channels.
> >> >>
> >> >> My question is about transactionality. I am used to JDBC
> >> >> transactions being thread local and I understand core.async
> >> >> utilises a thread-pool, so how does one implement a "unit of work"
> >> >> that spans multiple channels?
> >> >>
> >> >> I want to do something like:
> >> >>
> >> >> - request comes in - the appropriate handler/service consumes it
> >> >> (either through request mapping, defmethod whatever) - TX starts -
> >> >> in parallel some logging happens (and DB is updated) - the message
> >> >> is handled (and DB is updated) - performance metrics are stored
> >> >> (and DB is updated) - all work on all channels gets finished - TX
> >> >> commits
> >> >>
> >&g

Re: Advice on core.async and (JDBC) transactions

2015-02-23 Thread Andrey Antukh
rom 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-02-23 Thread Andrey Antukh
Hi Dave

Buddy authorization/authentication facilities are more low level and less
opinionated that friend and allow build over them easy other high level
abstractions.
Technically, friend abstraction can be build on top of buddy.

Cheers.
Andrey

2015-02-23 2:25 GMT+01:00 Dave Sann :

> buddy-auth vs friend?
>
> What is the difference/motivation?
>
>
>
>
> On Monday, 23 February 2015 06:32:22 UTC+11, g vim wrote:
>>
>> On 22/02/2015 11:36, Andrey Antukh wrote:
>> > Documentation:
>> > https://funcool.github.io/buddy-core/latest/
>> > https://funcool.github.io/buddy-auth/latest/
>> > https://funcool.github.io/buddy-hashers/latest/
>> > https://funcool.github.io/buddy-sign/latest/
>> >
>>
>> Great addition to Clojure web development security. For new users might
>> I suggest adding a namespace table to -core, -hashers and -sign as with
>> -auth?
>>
>> gvim
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-02-22 Thread Andrey Antukh
Hi!

I am happy to announce a new release of buddy (security library for
Clojure).

Since 0.3.0, buddy is split from monolithic library in four modules:

- buddy-core: Cryptographyc api.
- buddy-sign: High level message signing
- buddy-auth: Authentication and Authorization facilities for ring based
web apps.
- buddy-hashers: Collection of password hashers.

Relevant changes since 0.3.0:

buddy-core:

- Add buddy.core.nonce namespace with functions for generate
cryptographically secure ivs and nonces.
- Add buddy.core.padding with interface to the common padding algorithms.
- Function name consistency improvements in almost all api (with proper
backward compatibility for almost all changes, see changelog for breaking
changes).
- Improved low level interface to Hash and Mac algorithms, allowing to the
user build own high level abstractions over it.

buddy-sign:

- Removed generic signing implementation
- Add compact signing as replacement for generic (the difference and the
purpose is explained in the documentation).
- Improved time based validation and fix some related bugs.
- Improved error reporting on message validation using Either monadic type.

buddy-auth:

- Remove generic signed token backend.
- Add JWS/JWT backend as replacement to generic signed token backend).
- Improved generic authorization system, now it extensible with clojure
protocols.

buddy-hashers:

- Update versions and adapt the code to buddy-core internal api changes.

Github:
https://github.com/funcool/buddy-core
https://github.com/funcool/buddy-auth
https://github.com/funcool/buddy-hashers
https://github.com/funcool/buddy-sign

Documentation:
https://funcool.github.io/buddy-core/latest/
https://funcool.github.io/buddy-auth/latest/
https://funcool.github.io/buddy-hashers/latest/
https://funcool.github.io/buddy-sign/latest/

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-24 Thread Andrey Antukh
Hi!

I am happy to announce a new release of buddy (security library for
Clojure).

Since 0.3.0, buddy is split from monolithic library in four modules:

- buddy-core: Cryptographyc api.
- buddy-sign: High level message signing
- buddy-auth: Authentication and Authorization facilities for ring based
web apps.
- buddy-hashers: Collection of password hashers.

Relevant changes on some modules:

buddy-hashers:

- Code refactored in more extensible way (based on multimethods)
- Unify in one namespace. Now, independently of hasher you should import
only one namespace.
- Hasher verification autodetects the hasher that should be used for verify
the password.
- Add pbkdf2+sha256 and pbkdf-sha3_256

buddy-auth:
- Add support for more extensible way to raise unauthorized exception based
on slingshot and clojure protocols.
- Add clout syntax and some other little improvements from
https://github.com/yogthos/ring-access-rules
- Bugfixes on some backends related to headers parsing.
- Add better examples.

Other two modules does not includes new changes or has small and not
relevant ones after library splitting.

Github:
https://github.com/funcool/buddy-core
https://github.com/funcool/buddy-auth
https://github.com/funcool/buddy-hashers
https://github.com/funcool/buddy-sign

Documentation:
https://funcool.github.io/buddy-core/latest/
https://funcool.github.io/buddy-auth/latest/
https://funcool.github.io/buddy-hashers/latest/
https://funcool.github.io/buddy-sign/latest/

Since this release, each module will evolve independently. I thing, that
this approach will help users to include only the necessary parts from
buddy instead of including one monolithic library.

Cheers.
Andrey
-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-23 Thread Andrey Antukh
Great library! I don't know about it! Thanks!

2015-01-23 15:54 GMT+01:00 Plínio Balduino :

> This is awesome, Leonardo
>
> On Fri, Jan 23, 2015 at 9:39 AM, Leonardo Borges <
> leonardoborges...@gmail.com> wrote:
>
>> bouncer is a validation library for Clojure apps
>>
>> Github: https://github.com/leonardoborges/bouncer
>> Clojars: https://clojars.org/bouncer
>>
>> The main change with 0.3.2 is that bouncer now works with Clojurescript!
>> - thanks Robin(@Skinney)!
>>
>> New validators have also been added. You can read more about the changes
>> in the CHANGELOG:
>> https://github.com/leonardoborges/bouncer/blob/master/CHANGELOG.md
>>
>> Enjoy! :)
>>
>> 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/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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] Suricatta 0.2.0: high level sql toolkit for clojure (backed by jooq)

2015-01-17 Thread Andrey Antukh
Hello everybody.

I wanted to announce the second release of suricatta, a high level sql
toolkit for clojure (backed by fantastic jooq library).

Main changes/improvements:

- Improved connection creation.
- Added support for custom type extensions (like postgresql json types)
- Add ddl functions to dsl (for basic table, index and sequences crud).
- Add join expressions to dsl
- Support for export/import queries to/from csv and json.
- Api consistency fixes (includes few backward incompatibilities).

You can find the complete changelog here:
https://github.com/niwibe/suricatta/blob/master/CHANGES.adoc#020

I also have added a quick start section to the readme thanks to the
suggestions on the first release announcement.

Repository: https://github.com/niwibe/suricatta
Docs: http://niwibe.github.io/suricatta/latest/

Cheers.
Andrey
-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-11 Thread Andrey Antukh
Hi Michael.

Means that it is the most recent major release. In this case 0.4.x.

Cheers.
Andrey

2015-01-11 19:25 GMT+01:00 Michael Blume :

> I'm a little confused, by "last major release" do you mean the most recent
> major release or do you mean clojure.jdbc is about to move into maintenance
> mode?
>
> On Sun Jan 11 2015 at 3:02:51 AM Andrey Antukh  wrote:
>
>> Hello!
>>
>> I wanted to announce the last major release of clojure.jdbc, a jdbc
>> library for clojure.
>>
>> This release is focused mainly to simplify the code and use more clojure
>> constructions
>> like `with-open` macros instead of ad-hoc self defined macros.
>>
>> This release also, has some breaking changes related mainly to lazy
>> queries. Now are much simple, and implemented without macros.
>>
>> You can find the complete changelog here:
>> https://github.com/niwibe/clojure.jdbc/blob/master/CHANGES.adoc#version-040-beta1
>>
>> Github project: https://github.com/niwibe/clojure.jdbc
>> Documentation: http://niwibe.github.io/clojure.jdbc/latest/
>>
>> Cheers.
>> Andrey
>> --
>> Andrey Antukh - Андрей Антух -  / <
>> n...@niwi.be>
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-11 Thread Andrey Antukh
Hello!

I wanted to announce the last major release of clojure.jdbc, a jdbc library
for clojure.

This release is focused mainly to simplify the code and use more clojure
constructions
like `with-open` macros instead of ad-hoc self defined macros.

This release also, has some breaking changes related mainly to lazy
queries. Now are much simple, and implemented without macros.

You can find the complete changelog here:
https://github.com/niwibe/clojure.jdbc/blob/master/CHANGES.adoc#version-040-beta1

Github project: https://github.com/niwibe/clojure.jdbc
Documentation: http://niwibe.github.io/clojure.jdbc/latest/

Cheers.
Andrey
-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-07 Thread Andrey Antukh
Hello

2015-01-07 10:11 GMT+01:00 Noam Ben-Ari :

> @Thomas
>
> Unfortunately, clojure.walk is not StackOverflowError-safe. Same goes for
> tree-seq (uses walk). The only safe solution I found so far are zippers.
>
> Regarding memoization, yes I agree it will help if converting the same
> maps frequently, however at scale, with many users hitting the same API,
> and each has a different user-id, it will not help (unless I'm missing
> something).
>

As far as I understand, you are trying transform keys and not values. If
that supposition is correct, you have only a little subset of posible keys
memoized (the set of keys of your api). In case of user-id, you will
memoize the transformation of userId to user-id and for it you only need
one cache entry.

Obviously, if you transform arbitrary user input, memoize is not a good
solution.

My two cents!

Cheers.
Andrey

>
> Thanks.
>
> On Wednesday, January 7, 2015 1:36:53 AM UTC+2, Thomas Heller wrote:
>>
>> If you want to boost performance a bit just memoize the conversion
>> functions. Memoize makes you vurnable to exploits though, better use
>> something with WeakRefs if you convert anything from untrusted sources (eg.
>> guava CacheBuilder). But given your usecase this will probably be the
>> biggest gain, no matter what else you use to convert maps.
>>
>> https://gist.github.com/thheller/7ddc0371561deaf13e11
>> "Elapsed time: 35.488 msecs"
>>
>> clojure.walk has keywordize-keys and stringify-keys, maybe a suitable
>> starting point for your implementation.
>>
>> HTH,
>> /thomas
>>
>>
>> On Tuesday, January 6, 2015 8:25:57 PM UTC+1, Noam Ben-Ari wrote:
>>>
>>> Hi,
>>>
>>> I've written a small library (1 ns, 100 lines) to transform nested maps
>>> from "dash-case" keys to "camelCase" keys and back.
>>>
>>> The original use case was taking MySQL records that use camelCase field
>>> names and convert them to dash-case so they don't stick out like a sore
>>> thumb in my code. Similarly, when writing new records into the DB, I wanted
>>> to camelize them back before passing to JDBC.
>>>
>>> It should work on an arbitrarily deep nested map without blowing the
>>> stack (using zipper).
>>>
>>> It is symmetric:
>>>
>>> (dasherize "clientOSVersion")
>>> => "client-OS-version"
>>> (camelize "client-OS-version")
>>> => "clientOSVersion"
>>>
>>>
>>> The library starts with defining functions that work on strings, then
>>> ones that work on keywords (internally calling the string ones) and later
>>> ones working on maps (that assume all keys are keywords and use the keyword
>>> functions). Lastly, the library defines protocols that will ease working
>>> with different types.
>>>
>>> I would love any feedback, but especially:
>>> - is there any off-the-shelf library for this already?
>>> - I found zipper and regex to be really hurting performance here,
>>> anything you would do differently to improve this?
>>> - anything about style... I'm writing Clojure for a year and didn't get
>>> much code reviews.
>>>
>>> the gist is here:
>>>
>>> https://gist.github.com/NoamB/6e940775dfa63c73ee9c
>>>
>>> Thanks.
>>>
>>> PS - I took the string versions of the functions from cuerdas (
>>> https://github.com/funcool/cuerdas) and modified a bit, mainly to get
>>> the symmetry working.
>>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-06 Thread Andrey Antukh
Hi!

2015-01-06 20:25 GMT+01:00 Noam Ben-Ari :

> Hi,
>
> I've written a small library (1 ns, 100 lines) to transform nested maps
> from "dash-case" keys to "camelCase" keys and back.
>
> The original use case was taking MySQL records that use camelCase field
> names and convert them to dash-case so they don't stick out like a sore
> thumb in my code. Similarly, when writing new records into the DB, I wanted
> to camelize them back before passing to JDBC.
>
> It should work on an arbitrarily deep nested map without blowing the stack
> (using zipper).
>
> It is symmetric:
>
> (dasherize "clientOSVersion")
> => "client-OS-version"
> (camelize "client-OS-version")
> => "clientOSVersion"
>
>
> The library starts with defining functions that work on strings, then ones
> that work on keywords (internally calling the string ones) and later ones
> working on maps (that assume all keys are keywords and use the keyword
> functions). Lastly, the library defines protocols that will ease working
> with different types.
>
> I would love any feedback, but especially:
> - is there any off-the-shelf library for this already?
> - I found zipper and regex to be really hurting performance here, anything
> you would do differently to improve this?
> - anything about style... I'm writing Clojure for a year and didn't get
> much code reviews.
>
> the gist is here:
>
> https://gist.github.com/NoamB/6e940775dfa63c73ee9c
>
> Thanks.
>
> PS - I took the string versions of the functions from cuerdas (
> https://github.com/funcool/cuerdas) and modified a bit, mainly to get the
> symmetry working.
>

I have ported some changes from your dasherize version to cuerdas. Thank
you very much for improved version.

Cheers.
Andrey


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



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: A (foolish) plan to re-invent IO on top of core.async

2015-01-06 Thread Andrey Antukh
Some jetty adapters also supports the async interface using core.async:
https://github.com/mpenet/jet.

Also, for async database access, I'm currently working on suricatta library
(sql toolkit on top of JOOQ) and it exposes a simple async interface for
execute queries asynchronously in a shared thread pool:
http://niwibe.github.io/suricatta/devel/#_async_interface (it needs more
polish and improvements but works pretty well for first version).

Cheers
Andrey

2015-01-06 3:11 GMT+01:00 Timothy Baldridge :

> And if you want async web frameworks, Pedestal supports core.async. You
> just return a channel as a response body and it assumes that you will
> eventually pipe your data down that channel.
>
> Timothy
>
> On Mon, Jan 5, 2015 at 6:09 PM, David James  wrote:
>
>> In case you are interested in a recent example, I wrote an NIO.2 based
>> Riak client in Clojure without Netty.
>> https://github.com/bluemont/kria
>>
>> It uses callback functions, so the consumer can do whatever they want;
>> such as core.async.
>>
>> I agree with Timothy, above. My take-away from the experience is that
>> core.async does not need to be *baked into* a library. It is better if it
>> is not; for testing the library, I use atoms:
>> https://github.com/bluemont/kria/blob/master/test/kria/test_helpers.clj#L45
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.
>>
>
>
>
> --
> “One of the main causes of the fall of the Roman Empire was that–lacking
> zero–they had no way to indicate successful termination of their C
> programs.”
> (Robert Firth)
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2015-01-05 Thread Andrey Antukh
Hello everybody.

I wanted to announce the second release of cuerdas. A string manipulation
library for clojure and clojurescript.

That release includes a bunch of fixes and improvements suggested in
previous release announcement and reddit. Thanks for the feedback!

Relevant changes:

- Remove Apache Commons Lang dependency (clj).
- Add proper nil handling for almost all functions.
- Add strip, rstrip and lstrip aliases for trim, rtrim and ltrim
respectively.
- Rename endswith? and startswith? with ends-with? and starts-with?
respectively,
  but conserve the previously funcnames as aliases.
- Add the ability of arbitrary replacements to strip-tags function.

Documentation: http://funcool.github.io/cuerdas/latest/
Github: https://github.com/funcool/cuerdas

Cheers.
Andrey.

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: [ClojureScript] Re: [ANN] cuerdas 0.1.0: A string manipulation library for clojure and clojurescript.

2014-12-24 Thread Andrey Antukh
Hi!

Thank you very much!

You are right about nil handling, it should be documented and proper
handled.

But I'm not completely convinced with ruby behavior for that, in many other
implementations in other languages it is slightly different.

In my opinion that is more proper behavior:

blank? (nil, whitespace chars resolves to true, something else, false)
empty? (nil and "" (empty string) resolves to true, something else is false)
the purposed whitespace? is synonym of blank?

I'll document and add tests for it in next days.

Again, thanks for the feedback.

Cheers.
Andrey

2014-12-24 13:03 GMT+01:00 Sean Johnson :

> Very nice work. I'll be using this!
>
> Also, I agree with Noam that there's a fairly common expectation of blank?
> that started in the Ruby world.
>
> Here's my suggestion for what it's worth:
>
> blank? - true iff "" or nil
> empty? - true iff "", false if nil
> whitespace? true iff "" or only white space, false if nil
>
> Cheers,
> Sean
>
> On Tuesday, December 23, 2014 12:48:35 PM UTC-5, Andrey Antukh wrote:
>>
>> Hello everybody.
>>
>> I wanted to announce the first release of cuerdas. A string manipulation
>> library for clojure and clojurescript.
>>
>> It is mainly based on underscore.string and string.js, but also
>> influenced by lodash.
>>
>> Documentation: http://funcool.github.io/cuerdas/latest/
>> Github: https://github.com/funcool/cuerdas
>>
>> Cheers.
>> Andrey
>>
>> --
>> Andrey Antukh - Андрей Антух -  / > >
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>  --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescr...@googlegroups.com.
> Visit this group at http://groups.google.com/group/clojurescript.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-12-23 Thread Andrey Antukh
Hello everybody.

I wanted to announce the first release of cuerdas. A string manipulation
library for clojure and clojurescript.

It is mainly based on underscore.string and string.js, but also influenced
by lodash.

Documentation: http://funcool.github.io/cuerdas/latest/
Github: https://github.com/funcool/cuerdas

Cheers.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-12-09 Thread Andrey Antukh
2014-12-09 22:35 GMT+01:00 Dmitri :

> I'm definitely up for that, if I knew about buddy I wouldn't have started
> the lib in the first place. :) I found friend to be a bit too complex for
> what I needed in the apps I was writing as well. I originally added the
> access restriction logic to lib-noir, but recently I started considering
> deprecating it in favor of standalone libraries for all the functionality
> that it bundles. Buddy looks like a perfect solution for web app security.
>

> I only see a couple of small differences in functionality. Buddy requires
> a handler function, while I opted for allowing a static redirect URI as an
> alternative. I allow specifying a vector of uri patterns for each set of
> rules. I'm also using Clout (https://github.com/weavejester/clout) for
> request matching instead of plain regex. All of these are very minor
> differences however.
>

Are minor differences but if them are useful, maybe them should be
implemented in buddy.
I'll review in detail the implementation of your library and extract from
them that parts for buddy. I'll try to do it this weekend. Until weekend I
will stay very busy :(


> I think I'll be moving Luminus over to use Buddy instead lib-noir for
> security. :)
>

Oh, great notice! I'm repeating, if you find something missing, let me know!

Regards.
Andrey.

>
> On Tuesday, December 9, 2014 4:13:44 PM UTC-5, Andrey Antukh wrote:
>>
>> Would be awesome join forces, and If you miss something that you library
>> is already support, let me know, and we can integrate it in buddy.
>>
>> I have made buddy because I'm little frustrate with friend approach (is
>> good but not convinced me).
>>
>> Regards.
>> Andrey
>>
>> 2014-12-09 21:30 GMT+01:00 Dmitri :
>>
>> That does look rather similar actually, and it looks like buddy does a
>>> lot more as well. I guess that validates the approach, I'll have to see if
>>> it fits all my use cases. :)
>>>
>>> On Tuesday, December 9, 2014 2:43:42 PM UTC-5, Andrey Antukh wrote:
>>>>
>>>> Hi Dmitri!
>>>>
>>>> If I understand it well, is a very similar system already implemented
>>>> in buddy: http://niwibe.github.io/buddy/#_access_rules_system
>>>> <http://www.google.com/url?q=http%3A%2F%2Fniwibe.github.io%2Fbuddy%2F%23_access_rules_system&sa=D&sntz=1&usg=AFQjCNFhCj_anD1ohvV4MbWGgBmSj3OGng>
>>>>
>>>>
>>>> Regards.
>>>> Andrey.
>>>>
>>>> 2014-12-09 19:11 GMT+01:00 Dmitri :
>>>>
>>>>> https://github.com/yogthos/ring-access-rules
>>>>>
>>>>> Friend is a great library, but it's definitely not easy to get into
>>>>> and I found it can actually make the workflow logic difficult to follow in
>>>>> some cases.
>>>>>
>>>>> My experience has been that for apps I work on all I want is to apply
>>>>> a decision function to a route to see if it should be accessible. The
>>>>> decision logic really tends to be application specific. It's easy to write
>>>>> a custom access control function for a specific scenario, but it's
>>>>> difficult to make a generic one that works well for any scenario. This
>>>>> library provides a simple way to associate access control functions with
>>>>> routes and leaves the workflow up to the user.
>>>>>
>>>>> --
>>>>> 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.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Andrey Antukh - Андрей Антух -  / <
>>>> ni...@niwi.be>
>&

Re: [ANN] ring-access-rules library

2014-12-09 Thread Andrey Antukh
Would be awesome join forces, and If you miss something that you library is
already support, let me know, and we can integrate it in buddy.

I have made buddy because I'm little frustrate with friend approach (is
good but not convinced me).

Regards.
Andrey

2014-12-09 21:30 GMT+01:00 Dmitri :

> That does look rather similar actually, and it looks like buddy does a lot
> more as well. I guess that validates the approach, I'll have to see if it
> fits all my use cases. :)
>
> On Tuesday, December 9, 2014 2:43:42 PM UTC-5, Andrey Antukh wrote:
>>
>> Hi Dmitri!
>>
>> If I understand it well, is a very similar system already implemented in
>> buddy: http://niwibe.github.io/buddy/#_access_rules_system
>> <http://www.google.com/url?q=http%3A%2F%2Fniwibe.github.io%2Fbuddy%2F%23_access_rules_system&sa=D&sntz=1&usg=AFQjCNFhCj_anD1ohvV4MbWGgBmSj3OGng>
>>
>>
>> Regards.
>> Andrey.
>>
>> 2014-12-09 19:11 GMT+01:00 Dmitri :
>>
>>> https://github.com/yogthos/ring-access-rules
>>>
>>> Friend is a great library, but it's definitely not easy to get into and
>>> I found it can actually make the workflow logic difficult to follow in some
>>> cases.
>>>
>>> My experience has been that for apps I work on all I want is to apply a
>>> decision function to a route to see if it should be accessible. The
>>> decision logic really tends to be application specific. It's easy to write
>>> a custom access control function for a specific scenario, but it's
>>> difficult to make a generic one that works well for any scenario. This
>>> library provides a simple way to associate access control functions with
>>> routes and leaves the workflow up to the user.
>>>
>>> --
>>> 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.
>>>
>>
>>
>>
>> --
>> Andrey Antukh - Андрей Антух -  / > >
>> http://www.niwi.be <http://www.niwi.be/page/about/>
>> https://github.com/niwibe
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-12-09 Thread Andrey Antukh
Hi Dmitri!

If I understand it well, is a very similar system already implemented in
buddy: http://niwibe.github.io/buddy/#_access_rules_system

Regards.
Andrey.

2014-12-09 19:11 GMT+01:00 Dmitri :

> https://github.com/yogthos/ring-access-rules
>
> Friend is a great library, but it's definitely not easy to get into and I
> found it can actually make the workflow logic difficult to follow in some
> cases.
>
> My experience has been that for apps I work on all I want is to apply a
> decision function to a route to see if it should be accessible. The
> decision logic really tends to be application specific. It's easy to write
> a custom access control function for a specific scenario, but it's
> difficult to make a generic one that works well for any scenario. This
> library provides a simple way to associate access control functions with
> routes and leaves the workflow up to the user.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-12-09 Thread Andrey Antukh
Hi!

2014-12-09 18:08 GMT+01:00 Andy Dwelly :

> Looking through my recent work I see that a number of atoms, swap! and
> reset! calls have snuck into my work, usually when there's an expensive
> operation like reading and parsing a large file or connecting to a
> database. I find I'm doing things like
>
> (def conf (atom nil))
>
> (defn config []
>   (if (nil? @conf) (reset! conf (read-and-expensively-parse
> "somefile.xml")) @conf))
>
> So that the first time (config) is called it will do the operation, but
> future attempts will simply deref the atom.
>
> Recent discussions here alerted me to memoize which will do this without
> the atom, but the documentation mentions that the functions that are
> memoized should be referentially transparent. Although I'm pretty sure that
> while my server is running, the config will not change - it can't be
> guaranteed in a formal sense. Reading a file or connecting to an external
> process is doing io of course, in theory someone could change the file
> while my back was turned.
>
> Questions: if I was prepared to live with the consequences of having to
> restart the server if the conf file had been changed, would it be more
> idiomatic to use use memoize to avoid mutating state?
> If I really had to change a conf file while the server was running, is
> there any way a memoized function could have it's cache cleared? I suspect
> the answer to that one is no - but you never know
>
>
In my opinion, if you assumes the consequences of having to restart the
server, delay is the best solution for it. As far as I know, it guarantees
one unique execution regardless how many threads are dereferencing it, and
subsequently it always returns the computed result.

My two cents.


Andrey

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



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] Suricatta: 0.1.0-alpha - high level sql toolkit for clojure (backed by jooq)

2014-11-06 Thread Andrey Antukh
Hello everybody.

I wanted to announce the first alpha release of suricatta, a high level sql
toolkit for clojure (backed by fantastic jooq library)

Main features:
- Clear and simple sql executing api.
- Asynchronous query execution api.
- Lightweight sql dsl.

You might be wondering:

Yet an other sql dsl?
In first instance suricatta is not a dsl library, is a sql toolkit, and one
part of the toolkit is a dsl.
Secondly, suricatta's dsl don’t intends to be a sql abstraction. The real
purpose of suricatta's dsl is make SQL composable, allowing use all or
almost all vendor specific sql constructions.

Why I should use suricatta instead of clojure.jdbc or java.jdbc?
Unlike any jdbc library, suricatta works in slightly higher level. It hides
a lot of idiosyncrasies of jdbc under much simpler, cleaner and less error
prone api, with better resource management.

You can find a complete FAQ here: http://niwibe.github.io/suricatta/#_faq

Repository: https://github.com/niwibe/suricatta
Docs: http://niwibe.github.io/suricatta/

My apologies for the spelling mistakes in the documentation. My English
isn't very good, and all improvements are welcome!

Yours,

Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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] thi.ng/crypto - GPG/OpenPGP keypair generation, file/stream encryption helpers

2014-10-23 Thread Andrey Antukh
Hi Karsten

There it already exist that: https://github.com/greglook/clj-pgp
And not directly related to pgp but reladed with bouncycastle and
encryption api: https://github.com/niwibe/buddy

Would be awesome to colaborate!

Greetings.
Andrey

2014-10-23 18:26 GMT+02:00 Karsten Schmidt :

> Hi all, just a quick heads up for those who might want to integrate
> some encryption features into their projects and not struggle with a
> complex Java API to do so. This small library provides some utility
> functions atop of Bouncycastle's OpenPGP provider:
>
> http://thi.ng/crypto
>
> Example:
>
> (require '[thi.ng.crypto.core :refer :all])
>
> ;; generate a new RSA keypair, private w/ identity & passphrase, save
> as armored files
> (-> (rsa-keypair 2048)
> (generate-secret-key "al...@example.org" "hello")
> (export-keypair "alice.pub.asc" "alice.sec.asc" true))
> ; => nil
>
> ;; create dummy file
> (spit "foo.txt" "hello world!")
> ; => nil
>
> ;; note: for files `encrypt-file` can be used alternatively,
> ;; but `encrypt-stream` is more general purpose
> (encrypt-stream "foo.txt" "foo.gpg" (public-key "alice.pub.asc"))
> ; => nil
>
> ;; decrypt with secret key & passphrase
> (decrypt-stream "foo.gpg" "foo-decrypted.txt" (secret-key
> "alice.sec.asc") "hello")
> ; => #
>
> (slurp "foo-decrypted.txt")
> ; => "hello world!"
>
> Best, K.
> --
> Karsten Schmidt
> http://postspectacular.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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-10-11 Thread Andrey Antukh
Thank you very much to both for the feedback.

I was considered different names in the past (I don't like much clj.jdbc
name :( ) and the current name was the election.
Changing the name again also can get confuse people, because of it, I
thinking maybe better keep the current name as is.

Thanks again.

Greetings.
Andrey

2014-10-11 23:57 GMT+02:00 Michael Klishin :

>  On 12 October 2014 at 00:39:40, James Reeves (ja...@booleanknot.com)
> wrote:
> > The name of this library is really close to the "clojure.java.jdbc"
> > contrib library. You may want to consider changing the name so
> > people don't get confused.
>
> …and IMO clj.jdbc was significantly easier to tell from clojure.java.jdbc.
> --
> @michaelklishin, github.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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-10-11 Thread Andrey Antukh
A JDBC library for clojure.

Previously: clj.jdbc

Summary of changes from 0.2.2 to 0.3.0:

- Minor code reorganization (split protocols from implementation)
- Normalize connection pool parameters make them more plugable.
- Type hints for almost all code.
- Documentation improvements.

Summary of changes from clj.jdbc 0.1.1 to clojure.jdbc 0.2.2:

- Human readable dbspec format.
- Read only connections.
- Allow specify schema to connection.
- Add `query-first` helper.
- Bug fixes.

Changelog:
https://raw.githubusercontent.com/niwibe/clojure.jdbc/master/CHANGES.txt
Github project: https://github.com/niwibe/clojure.jdbc
Documentation: http://niwibe.github.io/clojure.jdbc/

Greetings
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-07-28 Thread Andrey Antukh
Awesome!

Thanks!


2014-07-27 20:24 GMT+02:00 Michael Klishin :

> clj-time [1] is a popular Clojure date/time library built on top of Joda
> Time.
>
> Unfortunately, the project currently doesn't have a human-friendly change
> log,
> so here's a git one (sorry):
>
> https://github.com/clj-time/clj-time/compare/v0.7.0...v0.8.0
>
> 1. https://github.com/clj-time/clj-time/
> --
> @michaelklishin, github.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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: [ClojureScript] [ANN] Cats: category theory abstractions library for clojure(script).

2014-07-11 Thread Andrey Antukh
Hi Herwig!

2014-07-11 17:49 GMT+02:00 Herwig Hochleitner :

> Hello Andrey,
>
> after having spent some time with Haskell lately, trying to wrap my head
> around those categorical abstractions, I enjoy your take on them a lot. At
> first glance, I feel your design blends in with clojure's style very well.
>
> Also, congratulations on the documentation, it's a great read for readers
> familiar with dynamically typed languages.
>

Thank you very much!


>
> A question:
>
> Your take on `return` took me a bit off guard. It's a cool use case for a
> dynamic variable, but can you cover all cases with it? What about if you
> start by binding a couple of returns into each other and only then bind it
> into a specific monad?
>

Yes, the current approach of return/pure and mlet macro is slightly
limited.
It works in almost all simple cases but with some complex cases it clearly
has limitations.

As example, we are found this limitations implementing monad transformers...
At this moment we are researching the best way to solve that, and the first
approach in the mind is make an other mlet like macro (mdo is a candidate)
with type parameter. But at this moment nothing is done.


> Full Disclosure: I also spent some thought on how the type of a `return`
> could be determined in a dynamic language; I was thinking along the lines
> of making return a macro and passing it as an unevaluated thunk until the
> type can be determined. This should be possible due to associativity in
> monads. What do you think?
>

I don't know if is good idea make return a macro, in any case, we will
consider your approach, thanks!


>
> cheers
>

Greetings.
Andrey


>  --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescr...@googlegroups.com.
> Visit this group at http://groups.google.com/group/clojurescript.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-07-09 Thread Andrey Antukh
Hello everyone!

I just wanted to announce cats: category theory abstractions library for
clojure(script).

Why another library?
You can see a list of differences with existing libraries here:
http://niwibe.github.io/cats/#_why_another_library

Github: https://github.com/niwibe/cats
Documentation: http://niwibe.github.io/cats/

Best regards.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-07-08 Thread Andrey Antukh
2014-07-08 18:20 GMT+02:00 Marko Kocić :

> Clojure doesn't have lazy evaluation because it is a "few" years younger
> and didn't want to repeat Haskell's mistake. Even Simon Payton Jones, the
> creator of Haskel, confessed that, if he would make Haskel again, he would
> make it strict, and not lazy, but that it's too late to change it.
>
> --
>

Sorry for offtopic, but, you have source of it?

Andrey


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



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-07-01 Thread Andrey Antukh
In my opinion, saying "I have problems with it, then, it is bad" is very
bad argument. I'm not defending git, I'm only criticizing your arguments.
The only way to save money and pain, is knowing well the tools that you are
using. And git doesn't make any magic.

;)
Andrey



2014-07-01 15:23 GMT+02:00 Charles Harvey III :

> That is truly sad if Bzr dies out. I have had such horrible experiences
> with Git that I still can't understand what people like about it. Well,
> aside from the fact that it is not SVN and that there is github.
>
>
>
>
>
> On Tuesday, July 1, 2014 6:58:32 AM UTC-4, Thorsten Jolitz wrote:
>>
>> Charles Harvey III  writes:
>>
>> > You could abandon Git and save yourself a lot of money and pain.
>> >
>> > Start using Bazaar! http://bzrinit.com/
>> > (http://bazaar.canonical.com/en/)
>> >
>> > "Hosting" is seriously you setting up an ftp server (sftp, ssh, scp) -
>> > whatever. There is web viewer plugin:
>> > https://launchpad.net/loggerhead. it is basically an apache module.
>> >
>> > Seriously, take a look at Bzr. All the features of Git with much nicer
>> > commands and it won't ever lose your history. And hosting it yourself
>> > is just so easy.
>>
>> Too bad that even GNU Emacs development is moving (has already moved?)
>> from bzr to git. See
>>
>> ,
>> | From: e...@thyrsus.com (Eric S. Raymond)
>> | Subject: bzr is dying; Emacs needs to move
>> | Newsgroups: gmane.emacs.devel
>> | To: emacs...@gnu.org
>> | Date: Thu,  2 Jan 2014 04:53:47 -0500 (EST) (25 weeks, 5 days, 1 hour
>> ago)
>> |
>> | I am posting this because I think it is my duty as a topic expert in
>> | version-control systems and the surrounding tools to do so, not because
>> | I have any desire to be in the argument that is certain to ensue.
>> |
>> | The bzr version control system is dying; by most measures it is
>> | already moribund.  [...]
>> `
>>
>> and the following long thread on gmane.emacs.devel.
>>
>> --
>> cheers,
>> Thorsten
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-06-30 Thread Andrey Antukh
2014-06-30 19:17 GMT+02:00 Phang Mulianto :

> Hi,
>
> Can try Tracscm   [ *trac*.edgewall.org/ ]
>
> or gitlab is good, the interface is clean, but it runs on java
>

As far as I know gitlab is written in ruby and not in java.

And it has good install scripts that makes all had work of configure it,
very easy.


>
>
>
> On Mon, Jun 30, 2014 at 11:10 PM, Torsten Uhlmann 
> wrote:
>
>> Assembla also offers a private package which you can download and run on
>> your own machines:
>>
>>
>> http://blog.assembla.com/assemblablog/tabid/12618/bid/10151/Introducing-Private-Assembla-your-own-Assembla-server-in-Download-Cloud-and-Managed-packages.aspx
>>
>>
>> 2014-06-30 17:07 GMT+02:00 Mikhail Kryshen :
>>
>> I would recommend Fossil (http://fossil-scm.org/) — a distributed
>>> version control system with integrated distributed bug tracker, wiki and
>>> blog, all of which are accessed through a built-in web server.
>>>
>>> <#secure method=pgpmime mode=sign>
>>> Adrian Mowat  writes:
>>>
>>> > Hi All,
>>> >
>>> > Sorry for the off topic thread but my company is looking at
>>> alternatives to
>>> > gihub that are a) hosted internally and b) cheaper (!)
>>> >
>>> > I was wondering what everyone else is using out there?  The features
>>> we use
>>> > most on github are easy creation and navigation of repos, commit/diff
>>> > browsing and user/team management facilities
>>> >
>>> > Many Thanks
>>> >
>>> > Adrian
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups "Clojure" group.
>>> > To post to this group, send email to clojure@googlegroups.com
>>> > Note that posts from new members are moderated - please be patient
>>> with your first post.
>>> > To unsubscribe from 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.
>>>
>>> --
>>> Mikhail
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from 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.
>>>
>>
>>
>>
>> --
>> AGYNAMIX(R). Passionate Software.
>> Inh. Torsten Uhlmann | Buchenweg 5 | 09380 Thalheim
>> Phone: +49 3721 273445
>> Fax: +49 3721 273446
>> Mobile: +49 151 12412427
>> Web:http://www.agynamix.de
>> Author of "Lift Web Applications How-To
>> <http://www.packtpub.com/lift-web-applications/book>"
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from 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.goo

Re: OT: Github Alternatives

2014-06-30 Thread Andrey Antukh
We are using gitlab and it's works very well! ;)

Andrey


2014-06-30 15:01 GMT+02:00 François Rey :

>  Tuleap <http://www.tuleap.org/> is fully open source and integrates
> gitolite, gerrit, hudson/jenkins, etc. along with an agile dashboard,
> trackers, and more.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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


2014-06-09 20:57 GMT+02:00 Plínio Balduino :

> \o/
>
> On Mon, Jun 9, 2014 at 3:34 PM, Michael Klishin
>  wrote:
> > 2014-06-09 21:23 GMT+04:00 Alex Miller :
> >
> >> 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.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-06-06 Thread Andrey Antukh
+1


2014-06-06 19:19 GMT+02:00 Karsten Schmidt :

> +1
> On 6 Jun 2014 16:59, "David Nolen"  wrote:
>
>> Clojure 1.6.0 introduced Murmur3 for much improved collection hashing and
>> several new functions & macros. There's very little incentive to continue
>> to support 1.5.X given these enhancements.
>>
>> David
>>
>>
>> On Fri, Jun 6, 2014 at 11:48 AM, Joshua Ballanco 
>> wrote:
>>
>>> No objection, but I’m curious what are the motivating factors? Are there
>>> any new features/bug-fixes planned for ClojureScript that will depend on
>>> Clojure 1.6.0 features? or is this just a case of keeping things as
>>> up-to-date as possible?
>>>
>>>
>>> On Friday, June 6, 2014 at 17:43, David Nolen wrote:
>>>
>>> > Future releases of ClojureScript will have a hard dependency on
>>> Clojure 1.6.0. If you have any objections, speak up now :)
>>> >
>>> > David
>>> >
>>> > --
>>> > 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+unsubscr...@googlegroups.com (mailto:
>>> clojure-dev+unsubscr...@googlegroups.com).
>>> > To post to this group, send email to clojure-...@googlegroups.com
>>> (mailto:clojure-...@googlegroups.com).
>>> > 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 Dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure-dev+unsubscr...@googlegroups.com.
>>> To post to this group, send email to clojure-...@googlegroups.com.
>>> 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 Dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure-dev+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojure-...@googlegroups.com.
>> 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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-27 Thread Andrey Antukh
Nomad is an other tool like confijulate:
https://github.com/james-henderson/nomad

I use it in some projects and seems better documented that confijulate and
uses edn as file format.

Andrey


2014-05-27 10:43 GMT+02:00 Ray Miller :

> On 27 May 2014 09:35, Manuel Paccagnella 
> wrote:
> >
> >> I've found confijulate, here. It might be useful.
> >
> >
> > Well, ok. Another configuration library that I wasn't aware of when I
> wrote
> > confunion. Another one that I found after writing mine is carica, which
> > seems quite good. There are a bunch of them out there, you can look into
> > Clojure Toolbox, probably there is already one that satisfies your use
> > cases.
>
> Thank you for drawing all these configuration libraries to my
> attention, this is something I've done in an ad hoc way for the
> different applications I've written. I'll take a look at these before
> rolling my own next time.
>
> Ray.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-05-06 Thread Andrey Antukh
Hi!

https://github.com/hugoduncan/criterium  this is a good candidate.

Greetings
Andrey


2014-05-06 15:06 GMT+02:00 Zhi Yang :

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



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 for web project? Talk me into it!

2014-04-29 Thread Andrey Antukh
Hi

2014-04-29 10:22 GMT+02:00 Bernhard Mäder :

> Hey guys,
>
> I need your help in choosing a web stack for a medium sized website
> project, which is going to take the better half of my time for the next
> year. I really want to use clojure, because of various reasons, but have
> never done web development with it before. Frankly, it’s quite hard to feel
> confident about such a decision, as there are so many libraries to choose
> from, many of which seem to be abandoned or with very little (public)
> momentum.
>
> These are the notable features I need on the server side:
>
>- Internationalization of content, with multilingual URLs
>- Authentication through username / password and through xing (oauth)
>and linkedin (oath2).
>- Image and PDF upload
>- A small (and pretty basic) CMS
>- Beautiful reports renderings
>- A basic admin backend
>
> First, I was thinking along the compojure/hiccup/friend stack. I like it
> for the simplicity, the flexibility and the abundance of documentation on
> the web. Unfortunately, I see myself reinventing the wheel a few times with
> this approach…
>

> Then there is caribou. I like that it’s very well documented and that it’s
> already being used in production. It appears to be the most feature
> complete solution for the time being. It handles images, has backend
> scaffolding and i18n. OTOH, authentication isn’t really built-in (other
> than basic auth, if I got that right) and, it’s very new, so adoption seems
> to be still low. Also, it is developed in-house, so there’s the risk of
> abandonment, too.
>

> Finally, I took a look at pedestal (services). I like its overall design
> and I especially welcome the URL generator, which is going to be a boon in
> larger projects. But all in all, it seems to be little more than a
> (powerful) routing engine (again, maybe I’m missing something) and lacks
> internationalization as well as authentication (although I read that the
> snapshot version of friend will work with it). Also, it is developed
> in-house and not declared production-ready yet.
>
> I don’t feel very comfortable with either choice and would appreciate the
> thoughts of seasoned clojure web devs on that topic. Please talk me into
> it! I don’t want to end up with scala and play… :-)
>

For authentication and authorization I'm using buddy (
http://niwibe.github.io/buddy/) what has slightly different approach that
friend,
Liberator for backend code and angularjs for frontend. It works very well
for my purposes.

For your purposes the best choice is my opinion is caribou with some
external lib for authentication like buddy or friend.
Sorry for not being much help.


> Thanks for your thought!
> Bernhard
>


Greetings.
Andrey

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-25 Thread Andrey Antukh
Hi!

I have the same doubt!

However, At this time, I prefer use a explicit map instead keywords,
because for me is much clear that using keywords.

Andrey.


2014-04-26 0:41 GMT+02:00 Colin Fleming :

> Hi all,
>
> I'm working on an API at the moment, and I'm balancing whether to use
> inline keyword args which I would destructure in the functions, or whether
> to just pass an explicit params map as the last parameter. Comparison of
> the two options in case I'm not explaining myself well:
>
> Kwargs:
> (class/create-class :instancelist
> :description "My description"
> :implements  (keys class-methods)
> :methods (calculate-my-methods))
>
> Map:
> (class/create-class {:instancelist
>  :description "My description"
>  :implements  (keys class-methods)
>  :methods (calculate-my-methods)})
>
> A lot of APIs I've seen have favoured kwargs, and it undeniably makes for
> some pretty code - Seesaw is the best example I've seen here, the API is a
> thing of beauty. However it seems to me to have some issues:
>
>1. If I want to delegate to another call from within an API function
>and use the same arguments, it's really awkward: (apply delegate
>(mapcat identity args)) or some similarly awful black juxt magic. Or
>of course writing out all the parameters again, but that's even worse.
>2. It's more difficult to make parameters optional based on some
>runtime criteria since the params are baked into the function call. I guess
>this is usually dealt with by making the calls handle nil for a particular
>parameter.
>
> Both of these are much easier when passing an explicit map. Any
> preferences here, from either writing or using APIs like this?
>
> Cheers,
>
> Colin
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-23 Thread Andrey Antukh
Hi Rick

As far as I know, m-lift and similar functions should be used in monad
context (using with-monad macro).

Greetings.
Andrey


2014-04-23 14:41 GMT+02:00 Rick Moynihan :

> Hi all,
>
> I think I've found a minor bug in clojure.algo.monads.
>
> If you do the following:
>
> (ns foo.bar
>   (:require [clojure.algo.monads :as mon]))
>
> You cannot use mon/m-lift (and possibly others) as m-lift expands like so:
>
> user> (macroexpand '(mon/m-lift 1 prn))
> (fn* ([mv_4553] (m-bind mv_4553 (fn [x_4554] (m-result (prn x_4554))
>
> Note that m-bind is not fully qualified which results in errors like this:
>
> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
> m-bind in this context,
> compiling:(/private/var/folders/6j/vpfh3hk97mq82r9nmq7d2h0hgn/T/form-init2703504198066353121.clj:1:1)
>
>
> The github page for clojure.algo.monads does not mention how to post bug
> requests.  I'm assuming as it's a contrib project it's done through
> Clojure's JIRA.
>
> Can anyone offer some guidance?
>
> Thanks.
>
> R.
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-22 Thread Andrey Antukh
Hi Cecil

I had read almost all books of you list and without a doubt clojure
programming (o'reilly) is the best book for me ;)

Andrey


2014-04-22 20:18 GMT+02:00 Cecil Westerhof :

> I have a ‘little’ to learn. ;-) I have worked with a lot of languages,
> including Lisp. I was thinking about the following books (in that order):
> - Practical Clojure
> - Clojure in Action
> - The Joy of Clojure
> - Clojure Programming
> - Programming Clojure
>
> Someone told me it was better to start with Programming Clojure and after
> that The Joy of Clojure. Any idea's about this?
>
> --
> Cecil Westerhof
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 Andrey Antukh
 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.
>>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clojure@googlegroups.com
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> To unsubscribe from 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.
>>>>
>>>
>>>
>>>
>>> --
>>> “One of the main causes of the fall of the Roman Empire was that–lacking
>>> zero–they had no way to indicate successful termination of their C
>>> programs.”
>>> (Robert Firth)
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from 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.
>>
>
>
>
> --
> “One of the main causes of the fall of the Roman Empire was that–lacking
> zero–they had no way to indicate successful termination of their C
> programs.”
> (Robert Firth)
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-19 23:00 GMT+02:00 Paulo Suzart :

> Unfortunately I'm not a Stuart or a Emerick, or a Miller. So I can't
> really contribute to clojure that deep. I'm in the user /tech consumer
> side.
>
> That said, it is not my concern only. I have dozen colleagues that can't
> foster clojure because they want a language with tools that fits every day.
> Not tools for very specific cases that may come out if they work in a very
> specific company in a very specific country.
>

This contradicts with "single killer app" in my opinion..., because single
killer app is usually for specific use cases.

:S

Andrey

 I don't know, I still have all my coins on that. Really hope we can have
> almost pure clojure clojure solutions as we have pure java solutions.
>
> Thank you all for your opinions.
> On 19 Apr 2014 17:40, "Michael Klishin" 
> wrote:
>
>>
>> 2014-04-19 20:15 GMT+04:00 Paulo Suzart :
>>
>>> 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.
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-19 18:15 GMT+02:00 Paulo Suzart :

> Hi all, (warning, this is kinda confusing email)
>
> Been following the list for some time and specially paying attention to
> what could be the killer clojure app as Akka is for Scala.
>
 I keep seeing small libs (I like libs) popping up like ants, but I don't
> believe none of them (alone at least)  can make clojure explode and become
> main technology in a old school /ordinary company.
>
> 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...
>
> Pulsar is quite dead, core async isn't clear regarding remoting, and
> avout? And lamina? And aleph? Where are the tools that can make clojure to
> cover from Web to big data and batch?
>
Pulsar is dead? Really?
https://github.com/puniverse/pulsar/commit/1bb398cff65017c79d04bedd26915bca03a7752124
days ago the last commit preparing new release. I follow the
development
of pulsar and quasar and it not seems dead.

distributed/remote communication is not target of CSP and core.async but
can be implemented without much problems over any existing transport
protocols: http://niwibe.github.io/jnanomsg/#_async_support (example
implementing clojure channels over nanomsg)

>  Luminous,  caribou, etc, are they going to become the next grails?
> Huumm.. Will take lot of time. Clojure Script alone will not go any further
> than the current server side.
>
> What made me give up scala was Scalaz, and I hope the "create thousand
> disconnected libs and publish a post with ANN sufix" approach doesn't make
> me give up clojure.
>
Creating one unique library that includes and integrates everything is
really a solution? I believe not.

>  Sorry guys, I've been posting about Clojure since 2009, and still can't
> see it becoming the main technology even being the CTO of the company.
>
> What is the killer app for you? Or how do you think we can make clojure
> supporting apps like Facebook or something big like that?
>
In summary: erlang/elixir has actors, scala has actors (and very slow
compiller...), prolog has logic programming, go has csp and clojure has all
them. Really you need a killer app?

Sorry I don't understand the motivation of this email :(

Andrey

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



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-17 Thread Andrey Antukh
Hi.

Personally I don't know any standard way to document clojure libraries, but
if you want generic documentation tool, asciidoc works very well.

Examples:

http://niwibe.github.io/buddy/
http://niwibe.github.io/django-pgjson/

Greetings.
Andrey



2014-04-17 20:18 GMT+02:00 Brian Craft :

> Is there a standard workflow, lein plugin, or such, for building/serving a
> project's README.md, doc/*.md, etc.? During development, I mean, to preview
> the docs while working on them.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-04-11 Thread Andrey Antukh
A JDBC library for clojure.

Released: 2014-04-06

Changes:

- Multiple connection pooling pluggable solutions: dbcp and c3p0 (every one
resides on its own package without hard dependencies on them).
- Set clojure 1.6 as default clojure version.
- Allow set isolation level for transaction.
- Allow set read-only transaction.
- Multiple bugfixes.
- Performance improvements.

Complete changelog:
https://raw.githubusercontent.com/niwibe/clj.jdbc/master/CHANGES.txt
Github: https://github.com/niwibe/clj.jdbc
Documentation: http://niwibe.github.io/clj.jdbc/

-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-03-25 Thread Andrey Antukh
Very great job!

Thanks!


2014-03-25 15:16 GMT+01:00 Aaron Cohen :

> Great job!
>
> Sorry I didn't catch this in the RC, but the release notes state that:
>
>- CLJ-1099 <http://dev.clojure.org/jira/browse/CLJ-1099> If non-seq
>passed where seq is needed, error message now is an ExceptionInfo with the
>instance value, retrievable via ex-data.
>
> I think that change was just reverted because of the performance impact.
>
> --Aaron
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-03-22 Thread Andrey Antukh
Very nice! Thanks!


2014-03-22 10:35 GMT+01:00 dm3 :

> Hey, this looks really simple and nice.
>
> So, to map Joda concepts to simple-time -  a *timespan* is a standard
> Period (1 day is always 24 hours) and a *datetime* doesn't have a
> timezone, so more akin to LocalDateTime, right?
>
> There's also https://github.com/dm3/clojure.joda-time, in case you
> haven't seen it - more of a complete Joda API wrapper.
>
>
> On Thursday, 20 March 2014 20:15:55 UTC+2, Matt Bossenbroek wrote:
>>
>> It is my pleasure to announce simple-time to the world:
>> https://github.com/mbossenbroek/simple-time
>>
>> simple-time is a dead simple datetime & timespan library for Clojure.
>> It's an opinionated alternative for clj-time that takes a more functional
>> twist on the object-heavy Joda time library.
>>
>> Full API is here: http://mbossenbroek.github.io/simple-time/simple-
>> time.core.html
>>
>> Read more about the motivation for simple-time here: https://github.com/
>> mbossenbroek/simple-time#motivations
>>
>> Enjoy!
>>
>> -Matt
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 Andrey Antukh
All test passes on my projects! It works fine for me!

Thanks!


2014-03-18 15:21 GMT+01:00 Alex Miller :

> Hello all,
>
> We would love to release Clojure 1.6.0 final soon.
>
> 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.
>
> Try it via
> - Download: http://central.maven.org/maven2/org/clojure/clojure/1.6.0-RC1
> - Leiningen: [org.clojure/clojure "1.6.0-RC1"]
>
> See the full change log here:
> https://github.com/clojure/clojure/blob/master/changes.md
>
> If you have questions, feel free to drop them here. For issues, please log
> them in JIRA <http://dev.clojure.org/jira/secure/Dashboard.jspa>.
>
> Alex
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-03-04 Thread Andrey Antukh
Hi!

An other possible solution is using state monad from
https://github.com/clojure/algo.monads

Greetings.
Andrey



2014-03-05 0:48 GMT+01:00 Jean Niklas L'orange :

> Hello,
>
>
> On Tuesday, March 4, 2014 10:47:12 PM UTC+1, Jason Felice wrote:
>>
>> Something like
>>
>> (with-open [rdr (clojure.java.io/reader "/dev/errors-sunday.csv")]
>>   (->> (line-seq rdr)
>>  (filter #(re-matches #"..."))
>>  (map #(nth (string/split % #",") 1
>>
>> Will do what you want.  It's laziness to the rescue.
>>
>
> Just a heads up: laziness is dangerous when using I/O. In this case,
> with-open will close the reader before all lines have been read, and throw
> an IOException for trying to read from a closed reader.
>
> Add a `doall` to the end of the threading, and it should be safe. Or use
> `slurp` to read the whole file, avoiding the problem to begin with.
>
> As another suggestion: You can use a for comprehension, if you consider it
> more readable. It's relatively similar to your imperative version.
>
> (with-open [rdr (clojure.java.io/reader "/dev/errors-sunday.csv")]
>   (doall
>(for [line (line-seq rdr)
>  :when (re-matches #"^[^,]+,[^,]+,FAIL,.*$" line)]
>  (second (string/split line #",")
>
> -- Jean Niklas
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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

2014-02-26 Thread Andrey Antukh
Hi!

I am happy to announce a new release of buddy 0.1.0-beta4: authentication,
authorization and signing library for clojure.

Comparing it with previous release/announcement this comes with big api
restructuring and simplification.

Changes:

- As previously mentioned: api restructuring (after this release, api
should not change drastically).
- Improved documentation example code.
- New granular and url independent access rules decorator.
- New simple token auth backend.
- Few additional methods for signing (initial work for add support for json
web token)

Github: https://github.com/niwibe/buddy
Doc: http://niwibe.github.io/buddy/

Any improvements, examples or more documentation are welcome!
Thanks!

Greetings!
Andrey




-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 Andrey Antukh
 used with
>> apply.
>> * [CLJ-1202](http://dev.clojure.org/jira/browse/CLJ-1202)
>>   Protocol fns with dashes may get incorrectly compiled into field
>> accesses.
>> * [CLJ-850](http://dev.clojure.org/jira/browse/CLJ-850)
>>   Add check to emit invokePrim with return type of double or long if
>> type-hinted.
>> * [CLJ-1177](http://dev.clojure.org/jira/browse/CLJ-1177)
>>   clojure.java.io URL to File coercion corrupts path containing UTF-8
>> characters.
>> * [CLJ-1234](http://dev.clojure.org/jira/browse/CLJ-1234)
>>   Accept whitespace in Record and Type reader forms (similar to data
>> literals).
>> * [CLJ-1233](http://dev.clojure.org/jira/browse/CLJ-1233)
>>   Allow ** as a valid symbol name without triggering dynamic warnings.
>> * [CLJ-1246](http://dev.clojure.org/jira/browse/CLJ-1246)
>>   Add support to clojure.reflect for classes with annotations.
>>   * [CLJ-1184](http://dev.clojure.org/jira/browse/CLJ-1184)
>>   Evaling #{do ...} or [do ...] is treated as do special form.
>> * [CLJ-1090](http://dev.clojure.org/jira/browse/CLJ-1090)
>>   Indirect function calls through Var instances fail to clear locals.
>> * [CLJ-1076](http://dev.clojure.org/jira/browse/CLJ-1076)
>>   pprint tests fail on Windows, expecting \n.
>> * [CLJ-766](http://dev.clojure.org/jira/browse/CLJ-766)
>>   Make into-array work consistently with short-array and byte-array on
>>   bigger types.
>> * [CLJ-1285](http://dev.clojure.org/jira/browse/CLJ-1285)
>>   Data structure invariants are violated after persistent operations when
>>   collision node created by transients.
>> * [CLJ-1222](http://dev.clojure.org/jira/browse/CLJ-1222)
>>   Multiplication overflow issues around Long/MIN_VALUE
>> * [CLJ-1118](http://dev.clojure.org/jira/browse/CLJ-1118)
>>   Inconsistent numeric comparison semantics between BigDecimals and other
>> numerics
>> * [CLJ-1125](http://dev.clojure.org/jira/browse/CLJ-1125)
>>   Clojure can leak memory in a servlet container when using dynamic
>>   bindings or STM transactions.
>> * [CLJ-1082](http://dev.clojure.org/jira/browse/CLJ-1082)
>>   Subvecs of primitve vectors cannot be reduced
>> * [CLJ-1301](http://dev.clojure.org/jira/browse/CLJ-1301)
>>   Case expressions use a mixture of hashCode and hasheq, potentially
>>   leading to missed case matches when these differ.
>> * [CLJ-983](http://dev.clojure.org/jira/browse/CLJ-983)
>>   proxy-super does not restore original binding if call throws exception
>> * [CLJ-1176](http://dev.clojure.org/jira/browse/CLJ-1176)
>>   clojure.repl/source errors when *read-eval* bound to :unknown
>> * [CLJ-935](http://dev.clojure.org/jira/browse/CLJ-935)
>>   clojure.string/trim uses different definition of whitespace than
>>   triml and trimr
>> * [CLJ-935](http://dev.clojure.org/jira/browse/CLJ-935)
>>   StackOverflowError on exception in reducef for PersistentHashMap
>>   fold
>> * [CLJ-1328](http://dev.clojure.org/jira/browse/CLJ-1328)
>>Fix some tests in the Clojure test suite to make their names unique
>>   and independent of hashing order
>> * [CLJ-1328](http://dev.clojure.org/jira/browse/CLJ-1328)
>>   Empty primitive vectors throw NPE on .equals with non-vector
>>   sequential types
>>
>> Happy Valentine's Day!
>>
>> Alex Miller
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from 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.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be <http://www.niwi.be/page/about/>
https://github.com/niwibe

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