Re: Reviewers needed for new Clojure book!

2015-08-24 Thread Colin Yates
Sure - sign me up - I use Clojure daily so this is very relevant.

Akhil Wali writes:

> If anyone is interested in being a reviewer for a new book "*Mastering
> Clojure*" by Packt Publishing, please let me know.
> Reviewers will be entitled to a 6 montn subscription of PacktLib
> .
>
> Here's the list of topics covered in this title.
>
>-
>- Working with Sequences and Types
>- Orchestrating Concurrency and Parallelism
>- Parallelization using Reducers
>- Writing Macros
>- Composing Transducers
>- Using Functors and Monads
>- Programming with Logic
>- Asynchronous Programming
>- Reactive Programming
>- Working with Tests
>- Troubleshooting and Best Practices

--
Sent with my mu4e

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

2015-08-24 Thread Hussein B.
Hi Moe,

I have this structure:

[{"a" {"b" 1 "c" 2} 
   "children" [{"a" {"b" 3 "c" 4} "children" []}]}
  {"a" {"b" 5 "c" 6} "children" []}
  {"a" {"b" 7 "c" 8}
"children" [{"a" {"b" 9 "c" 10} "children" []} {"a" {"b" 10 "c" 10} 
"children" []}]}]

That is only a sample, the actual data is bigger is properly more one or 
two nesting in the children attribute.

I need to find a map by a criteria, say where b = 10 ({"a" {"b" 10 "c" 10} 
"children" []})

Once it is found, I need to change its position within its parent. The 
parent is {"a" {"b" 7 "c" 8} 

I know that zippers are for editing data structures but I'm not sure how to 
do it.

Thanks for help and time.

On Friday, August 21, 2015 at 7:14:13 PM UTC+2, Moe Aboulkheir wrote:
>
> Hussein, 
>
> I don't get an NPE passing that to traverse, but nothing much 
> interesting happens either.  The top-level data structure (and the 
> vectors within "children") aren't associative, and so don't pass the 
> branch? test (contains? % "children"). 
>
> You could certainly extend the zipper to cover both cases, but there 
> may well be a more compact way to accomplish your goal.  What do you 
> want to do with the piece of data? 
>
> Take care, 
> Moe 
>
> On Fri, Aug 21, 2015 at 5:57 PM, Hussein B.  > wrote: 
> > Here is my zipper: 
> > 
> >  (z/zipper #(contains? % "children") #(get % "children")  (fn [_ c] c) 
> s) 
> > 
> > On Friday, August 21, 2015 at 6:49:25 PM UTC+2, Moe Aboulkheir wrote: 
> >> 
> >> Hussein, 
> >> 
> >> How are you constructing your zipper, before passing it to traverse? 
> >> Note that clojure.zip doesn't work on arbitrary data structures 
> >> without being given some information about how to descend 
> >> into/construct nodes, etc. - i.e. z/next expects a zipper, and your 
> >> data structure isn't a zipper, but an input to a zipper.  Unless 
> >> you've written a zipper you omitted from your post, zipping over maps, 
> >> in particular, may not be as convenient as you're imagining. 
> >> https://clojuredocs.org/clojure.zip/zipper has helpful examples in it. 
> >> 
> >> Take care, 
> >> Moe 
> >> 
> >> On Fri, Aug 21, 2015 at 5:06 PM, Hussein B.  
> wrote: 
> >> > Hi, 
> >> > 
> >> > I changed println to z/node , this time I'm getting: 
> >> > 
> >> > NullPointerException   clojure.zip/branch? (zip.clj:73) 
> >> > 
> >> > On Friday, August 21, 2015 at 5:56:10 PM UTC+2, Moe Aboulkheir wrote: 
> >> >> 
> >> >> Hussein, 
> >> >> 
> >> >> The println inside (recur) will return nil. 
> >> >> 
> >> >> Take care, 
> >> >> Moe 
> >> >> 
> >> >> On Fri, Aug 21, 2015 at 4:35 PM, Hussein B.  
> wrote: 
> >> >> > Hi, 
> >> >> > 
> >> >> > I have this structure: 
> >> >> > 
> >> >> > (def s [{"n" {"id" "a"} "d" 2 "children" [{"n" {"id" "c"} "d" 4 
> >> >> > "children" 
> >> >> > []}]} {"n" {"id" "b"} "d" 3 "children" []}]) 
> >> >> > 
> >> >> > 
> >> >> > 
> >> >> > And I wrote a function with zippers to traverse it: 
> >> >> > 
> >> >> >  (defn traverse [col] 
> >> >> >   (loop [z col] 
> >> >> > (if (= (z/next z) z) 
> >> >> > z 
> >> >> > (if (z/branch? z) 
> >> >> >   (recur (z/next z)) 
> >> >> >   (recur (-> z println z/next)) 
> >> >> > 
> >> >> > 
> >> >> > But I'm getting: NullPointerException   clojure.zip/next 
> >> >> > (zip.clj:236) 
> >> >> > 
> >> >> > Any ideas? 
> >> >> > 
> >> >> > Thanks for help. 
> >> >> > 
> >> >> > -- 
> >> >> > You received this message because you are subscribed to the Google 
> >> >> > Groups "Clojure" group. 
> >> >> > To post to this group, send email to clo...@googlegroups.com 
> >> >> > Note that posts from new members are moderated - please be patient 
> >> >> > with 
> >> >> > your 
> >> >> > first post. 
> >> >> > To unsubscribe from this group, send email to 
> >> >> > clojure+u...@googlegroups.com 
> >> >> > For more options, visit this group at 
> >> >> > http://groups.google.com/group/clojure?hl=en 
> >> >> > --- 
> >> >> > You received this message because you are subscribed to the Google 
> >> >> > Groups 
> >> >> > "Clojure" group. 
> >> >> > To unsubscribe from this group and stop receiving emails from it, 
> >> >> > send 
> >> >> > an 
> >> >> > email to clojure+u...@googlegroups.com. 
> >> >> > For more options, visit https://groups.google.com/d/optout. 
> >> > 
> >> > -- 
> >> > You received this message because you are subscribed to the Google 
> >> > Groups "Clojure" group. 
> >> > To post to this group, send email to clo...@googlegroups.com 
> >> > Note that posts from new members are moderated - please be patient 
> with 
> >> > your 
> >> > first post. 
> >> > To unsubscribe from this group, send email to 
> >> > clojure+u...@googlegroups.com 
> >> > For more options, visit this group at 
> >> > http://groups.google.com/group/clojure?hl=en 
> >> > --- 
> >> > You received this message because you are subscribed to the Google 
> >> > Groups 
> >> > "Clojure" group. 
> >> > To unsubscribe from this group and stop receiving emails from it, 
> send 
> >> > an 

Is any place to share articles about Clojure?

2015-08-24 Thread Krzysztof Władyka
Hello,

>From time to time i am writing article on http://clojure.wladyka.eu/, but 
the problem is nobody know about this site, because i didn't share it :) 
Subjectively i am writing there things what some Clojure coders will want 
to read.

Is any place where can i share Clojure articles? Anyway maybe i will find 
there something for me also :)

Best,
Krzysztof Władyka

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

2015-08-24 Thread Mayank Jain
Check http://planet.clojure.in/

On Mon, Aug 24, 2015 at 5:49 PM, Krzysztof Władyka 
wrote:

> Hello,
>
> From time to time i am writing article on http://clojure.wladyka.eu/, but
> the problem is nobody know about this site, because i didn't share it :)
> Subjectively i am writing there things what some Clojure coders will want
> to read.
>
> Is any place where can i share Clojure articles? Anyway maybe i will find
> there something for me also :)
>
> Best,
> Krzysztof Władyka
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: some guidance sought

2015-08-24 Thread icamts
Not a pointer but this may help in testing your implementation: 
https://github.com/ztellman/collection-check

Il giorno lunedì 10 agosto 2015 00:31:25 UTC+2, William la Forge ha scritto:
>
> I've done a lot with AA trees in the past, creating variations that are 
> immutable, durable (replacing b-trees) and versioned of vectors, maps and 
> sets.
>
> I would like to migrate these ideas from Java to Clojure, while 
> implementing the interfaces appropriate for Clojure.
>
> Still being very much a newbie, I'd appreciate some pointers, relevant 
> docs and/or examples.
>
> 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.


Re: Is any place to share articles about Clojure?

2015-08-24 Thread Krzysztof Władyka
Thank you.

W dniu poniedziałek, 24 sierpnia 2015 14:25:33 UTC+2 użytkownik Mayank Jain 
napisał:
>
> Check http://planet.clojure.in/
>
> On Mon, Aug 24, 2015 at 5:49 PM, Krzysztof Władyka  > wrote:
>
>> Hello,
>>
>> From time to time i am writing article on http://clojure.wladyka.eu/, 
>> but the problem is nobody know about this site, because i didn't share it 
>> :) Subjectively i am writing there things what some Clojure coders will 
>> want to read.
>>
>> Is any place where can i share Clojure articles? Anyway maybe i will find 
>> there something for me also :)
>>
>> Best,
>> Krzysztof Władyka
>>
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> 
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com 
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

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


Re: some guidance sought

2015-08-24 Thread William la Forge
Looking wildly useful. Many thanks!

On Monday, August 24, 2015 at 8:46:12 AM UTC-4, icamts wrote:
>
> Not a pointer but this may help in testing your implementation: 
> https://github.com/ztellman/collection-check
>
> Il giorno lunedì 10 agosto 2015 00:31:25 UTC+2, William la Forge ha 
> scritto:
>>
>> I've done a lot with AA trees in the past, creating variations that are 
>> immutable, durable (replacing b-trees) and versioned of vectors, maps and 
>> sets.
>>
>> I would like to migrate these ideas from Java to Clojure, while 
>> implementing the interfaces appropriate for Clojure.
>>
>> Still being very much a newbie, I'd appreciate some pointers, relevant 
>> docs and/or examples.
>>
>> 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.


Re: How can find something inside heavily nested data structure ?

2015-08-24 Thread Dave Tenny
Specter looks nice.  I didn't see any examples in the readme or tests for 
working with more deeply nested data structures such as those discussed in 
this thread, any pointers?

On Sunday, August 23, 2015 at 10:22:25 PM UTC-4, Brian Marick wrote:
>
>
>
> Andy- wrote: 
> > I have yet to evaluate it myself but this might do help you: 
> > 
> > https://github.com/nathanmarz/specter 
> > 
>
> Specter is great. 
>

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

2015-08-24 Thread Ernestas Lisauskas
http://planet.clojure.in/

On Mon, Aug 24, 2015 at 1:19 PM, Krzysztof Władyka 
wrote:

> Hello,
>
> From time to time i am writing article on http://clojure.wladyka.eu/, but
> the problem is nobody know about this site, because i didn't share it :)
> Subjectively i am writing there things what some Clojure coders will want
> to read.
>
> Is any place where can i share Clojure articles? Anyway maybe i will find
> there something for me also :)
>
> Best,
> Krzysztof Władyka
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: Why I'm getting NPE with zipper/next?

2015-08-24 Thread Moe Aboulkheir
Hussein,

I'm not super comfortable with zippers, and probably wouldn't use them for
something like this - but I had a go.

If you define a zipper like this:

(z/zipper #(get % "children") #(get % "children") (fn [_ x ] x) {"children"
data})

Note the top-level vector is being wrapped in a map, so it resembles its
descendants.  And then define this utility function:

(defn edit-parents [editable? edit loc]
  (loop [loc loc]
(if (z/end? loc)
  (z/root loc)
  (if (editable? (z/node loc))
(recur (-> loc z/up (z/edit edit) z/up z/next))
(recur (z/next loc))

On Mon, Aug 24, 2015 at 10:40 AM, Hussein B.  wrote:

> Hi Moe,
>
> I have this structure:
>
> [{"a" {"b" 1 "c" 2}
>"children" [{"a" {"b" 3 "c" 4} "children" []}]}
>   {"a" {"b" 5 "c" 6} "children" []}
>   {"a" {"b" 7 "c" 8}
> "children" [{"a" {"b" 9 "c" 10} "children" []} {"a" {"b" 10 "c" 10} 
> "children" []}]}]
>
> That is only a sample, the actual data is bigger is properly more one or
> two nesting in the children attribute.
>
> I need to find a map by a criteria, say where b = 10 ({"a" {"b" 10 "c" 10}
> "children" []})
>
> Once it is found, I need to change its position within its parent. The
> parent is {"a" {"b" 7 "c" 8}
>
> I know that zippers are for editing data structures but I'm not sure how
> to do it.
>
> Thanks for help and time.
>
> On Friday, August 21, 2015 at 7:14:13 PM UTC+2, Moe Aboulkheir wrote:
>>
>> Hussein,
>>
>> I don't get an NPE passing that to traverse, but nothing much
>> interesting happens either.  The top-level data structure (and the
>> vectors within "children") aren't associative, and so don't pass the
>> branch? test (contains? % "children").
>>
>> You could certainly extend the zipper to cover both cases, but there
>> may well be a more compact way to accomplish your goal.  What do you
>> want to do with the piece of data?
>>
>> Take care,
>> Moe
>>
>> On Fri, Aug 21, 2015 at 5:57 PM, Hussein B.  wrote:
>> > Here is my zipper:
>> >
>> >  (z/zipper #(contains? % "children") #(get % "children")  (fn [_ c] c)
>> s)
>> >
>> > On Friday, August 21, 2015 at 6:49:25 PM UTC+2, Moe Aboulkheir wrote:
>> >>
>> >> Hussein,
>> >>
>> >> How are you constructing your zipper, before passing it to traverse?
>> >> Note that clojure.zip doesn't work on arbitrary data structures
>> >> without being given some information about how to descend
>> >> into/construct nodes, etc. - i.e. z/next expects a zipper, and your
>> >> data structure isn't a zipper, but an input to a zipper.  Unless
>> >> you've written a zipper you omitted from your post, zipping over maps,
>> >> in particular, may not be as convenient as you're imagining.
>> >> https://clojuredocs.org/clojure.zip/zipper has helpful examples in
>> it.
>> >>
>> >> Take care,
>> >> Moe
>> >>
>> >> On Fri, Aug 21, 2015 at 5:06 PM, Hussein B. 
>> wrote:
>> >> > Hi,
>> >> >
>> >> > I changed println to z/node , this time I'm getting:
>> >> >
>> >> > NullPointerException   clojure.zip/branch? (zip.clj:73)
>> >> >
>> >> > On Friday, August 21, 2015 at 5:56:10 PM UTC+2, Moe Aboulkheir
>> wrote:
>> >> >>
>> >> >> Hussein,
>> >> >>
>> >> >> The println inside (recur) will return nil.
>> >> >>
>> >> >> Take care,
>> >> >> Moe
>> >> >>
>> >> >> On Fri, Aug 21, 2015 at 4:35 PM, Hussein B. 
>> wrote:
>> >> >> > Hi,
>> >> >> >
>> >> >> > I have this structure:
>> >> >> >
>> >> >> > (def s [{"n" {"id" "a"} "d" 2 "children" [{"n" {"id" "c"} "d" 4
>> >> >> > "children"
>> >> >> > []}]} {"n" {"id" "b"} "d" 3 "children" []}])
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > And I wrote a function with zippers to traverse it:
>> >> >> >
>> >> >> >  (defn traverse [col]
>> >> >> >   (loop [z col]
>> >> >> > (if (= (z/next z) z)
>> >> >> > z
>> >> >> > (if (z/branch? z)
>> >> >> >   (recur (z/next z))
>> >> >> >   (recur (-> z println z/next))
>> >> >> >
>> >> >> >
>> >> >> > But I'm getting: NullPointerException   clojure.zip/next
>> >> >> > (zip.clj:236)
>> >> >> >
>> >> >> > Any ideas?
>> >> >> >
>> >> >> > Thanks for help.
>> >> >> >
>> >> >> > --
>> >> >> > 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.
>> >> >
>> >> > --

Re: Why I'm getting NPE with zipper/next?

2015-08-24 Thread Moe Aboulkheir
Went off half-cocked there.  The remainder:

(edit-parents
  #(= 10 (get-in % ["a" "b"]))
  #(update % "children" reverse),
  data-zipper)

Would have the effect of reversing the order of the children in each node
which possesses a child having a "b" attribute set to 10.  You could
probably express this much better with a library which allows locations in
data structures to be described in an XPath-like way (and your data
actually looks a lot like it is the result of parsing markup - see
clojure.data.xml and xml-zip if so) -- or there's probably some better
zipper approach that somebody who's really into zippers could come up with.

If you don't want to depend on an external library, and you lose your
enthusiasm for zippers, you could write a function which goes over the
structure and returns pairs of [[path] attributes], where path is a
sequence of keys/indices suitable for passing to update-in/assoc-in etc.,
and attributes is the value of the "a" key at each level.

In general, if there aren't multiple keys similar to "a" in each map (i.e.
it's always some value pointing to some map, and the value is not always
"a"), this kind of layout may be easier (e.g. to destructure)

{:tag "a" :attrs {:b 10} :children [...]}}

Take care,
Moe

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


Clojure bootstrap, what am I missing here?

2015-08-24 Thread William la Forge
Step 2 in the classical bootstrap process for a language is to rewrite it 
in itself. Clojure is more than capable of this. But Clojure continues to 
rely on Java code for its implementation.

Is there a reason why this was not done? Efficiency issues? A rush to 
create something usable? I would think that having Clojure implemented 
entirely in Clojure would have a number of advantages.

I am sure there was a deliberate decision, not to complete the bootstrap 
process. Is this documented anywhere?

Just being a nosy newbie.

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

2015-08-24 Thread Alan Moore
FWIW - My experience with Eclipse vs IntelliJ is exactly the opposite - we have 
been using Eclipse at my day job but I have recently abandoned it due to hangs, 
crashes, slow downs, etc. and have moved over to IntelliJ. YMMV.

Alan

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

2015-08-24 Thread Timothy Baldridge
" I would think that having Clojure implemented entirely in Clojure would
have a number of advantages."

I think that's the place you should start. List those advantages.
Clojure-in-Clojure would be a "nice" thing to have...but I can't really
think of any major features it would enable that aren't possible in Clojure
already.

One thing that would be nice to have would be to switch Clojure's Java
interfaces over to protocols, e.g. `Counted` could be a protocol instead of
a interface. But that could be done on the existing codebase, without the
need for a full rewrite.

Timothy

On Mon, Aug 24, 2015 at 9:03 AM, William la Forge 
wrote:

> Step 2 in the classical bootstrap process for a language is to rewrite it
> in itself. Clojure is more than capable of this. But Clojure continues to
> rely on Java code for its implementation.
>
> Is there a reason why this was not done? Efficiency issues? A rush to
> create something usable? I would think that having Clojure implemented
> entirely in Clojure would have a number of advantages.
>
> I am sure there was a deliberate decision, not to complete the bootstrap
> process. Is this documented anywhere?
>
> Just being a nosy newbie.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from 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.


Re: Clojure bootstrap, what am I missing here?

2015-08-24 Thread William la Forge
Well gosh, Timothy, isn't Clojure code easier to maintain/extend than Java 
code? There's a lot less boiler plate at least. Or is it just that Clojure 
is superior mostly when multi-threading because of its use of immutables?

Are you really saying that Clojure is not an advantageous choice for 
implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or 
are you just taking a short-term view and saying that a rewrite would carry 
no IMMEDIATE advantages. Of course, the counter for that is that a rewrite 
ALWAYS carries immediate advantages. :D

On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>
> " I would think that having Clojure implemented entirely in Clojure would 
> have a number of advantages."
>
> I think that's the place you should start. List those advantages. 
> Clojure-in-Clojure would be a "nice" thing to have...but I can't really 
> think of any major features it would enable that aren't possible in Clojure 
> already.
>
> One thing that would be nice to have would be to switch Clojure's Java 
> interfaces over to protocols, e.g. `Counted` could be a protocol instead of 
> a interface. But that could be done on the existing codebase, without the 
> need for a full rewrite. 
>
> Timothy
>
> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge  > wrote:
>
>> Step 2 in the classical bootstrap process for a language is to rewrite it 
>> in itself. Clojure is more than capable of this. But Clojure continues to 
>> rely on Java code for its implementation.
>>
>> Is there a reason why this was not done? Efficiency issues? A rush to 
>> create something usable? I would think that having Clojure implemented 
>> entirely in Clojure would have a number of advantages.
>>
>> I am sure there was a deliberate decision, not to complete the bootstrap 
>> process. Is this documented anywhere?
>>
>> Just being a nosy newbie.
>>
>> -- 
>> 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" group.
To unsubscribe from 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] io.aviso/twixt 0.1.21

2015-08-24 Thread Howard Lewis Ship
Twixt is an extensible asset pipeline for use in Clojure web applications.
It is designed to complement an application built using Ring and related
libraries, such as Compojure. Twixt provides content transformation (such
as Less to CSS), support for efficient immutable resources, and
best-of-breed exception reporting.

Recent changes:
* Added a uris() method to the twixt helper object, inside Jade templates
* Java shim code is compiled for JDK 1.6
* Improvements to caching support; caching enabled in production
* CSS Compression via YUICompressor
* Support for exposing assets from inside WebJars

-- 
Howard M. Lewis Ship

Looking for Clojure engagements: coding, architecture, mentoring & more!

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.


Re: [ANN] io.aviso/twixt 0.1.21

2015-08-24 Thread Howard Lewis Ship
Oh, and here's the URL: https://github.com/AvisoNovate/twixt

On Mon, Aug 24, 2015 at 8:25 AM, Howard Lewis Ship  wrote:

> Twixt is an extensible asset pipeline for use in Clojure web applications.
> It is designed to complement an application built using Ring and related
> libraries, such as Compojure. Twixt provides content transformation (such
> as Less to CSS), support for efficient immutable resources, and
> best-of-breed exception reporting.
>
> Recent changes:
> * Added a uris() method to the twixt helper object, inside Jade templates
> * Java shim code is compiled for JDK 1.6
> * Improvements to caching support; caching enabled in production
> * CSS Compression via YUICompressor
> * Support for exposing assets from inside WebJars
>
> --
> Howard M. Lewis Ship
>
> Looking for Clojure engagements: coding, architecture, mentoring & more!
>
> Creator of Apache Tapestry
>
> (971) 678-5210
> http://howardlewisship.com
> @hlship
>



-- 
Howard M. Lewis Ship

Looking for Clojure engagements: coding, architecture, mentoring & more!

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.


[ANN] io.aviso/rook 0.1.36

2015-08-24 Thread Howard Lewis Ship
Rook is a set of middleware and handlers to enable metadata-based routing
for Ring web applications.

The intention is to expose a Clojure namespace as a web service resource;
there’s a default mapping of HTTP verbs and paths to function names; these
can be extended or overridden by metadata on the functions in the namespace.

The end result is that a compliant web service resource can be created in
very little code.

Rook also supports Swagger 2.0: a detailed JSON description of your web
service is generated directly from the functions and metadata.

Recent changes:

* Described more of the APIs using Prismatic Schema
* Added ability to reuse the argument resolution logic outside of endpoint
functions
* Many improvements to the Swagger 2.0 description support

https://github.com/AvisoNovate/rook

-- 
Howard M. Lewis Ship

Looking for Clojure engagements: coding, architecture, mentoring & more!

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.


Re: Clojure bootstrap, what am I missing here?

2015-08-24 Thread Timothy Baldridge
" isn't Clojure code easier to maintain/extend than Java code?"

Sure, but is that were the problems lie in Clojure maintenance? Take a look
at the JIRA tickets. The majority deal with how to map some concept to the
JVM (same problem in Java or Clojure), or the correct way to implement
something to either maintain efficiency or compliance with legacy code.
None of this is predicated on a Clojure based on Java.

I hate saying that because having the bragging rights of a self-hosting
language is pretty awesome, and the language developer in me would love to
see it. But Clojure is a very pragmatic language, and there just aren't
that many reasons why we *need* CinC.

Timothy

On Mon, Aug 24, 2015 at 9:23 AM, William la Forge 
wrote:

> Well gosh, Timothy, isn't Clojure code easier to maintain/extend than Java
> code? There's a lot less boiler plate at least. Or is it just that Clojure
> is superior mostly when multi-threading because of its use of immutables?
>
> Are you really saying that Clojure is not an advantageous choice for
> implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or
> are you just taking a short-term view and saying that a rewrite would carry
> no IMMEDIATE advantages. Of course, the counter for that is that a rewrite
> ALWAYS carries immediate advantages. :D
>
> On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>>
>> " I would think that having Clojure implemented entirely in Clojure
>> would have a number of advantages."
>>
>> I think that's the place you should start. List those advantages.
>> Clojure-in-Clojure would be a "nice" thing to have...but I can't really
>> think of any major features it would enable that aren't possible in Clojure
>> already.
>>
>> One thing that would be nice to have would be to switch Clojure's Java
>> interfaces over to protocols, e.g. `Counted` could be a protocol instead of
>> a interface. But that could be done on the existing codebase, without the
>> need for a full rewrite.
>>
>> Timothy
>>
>> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge 
>> wrote:
>>
>>> Step 2 in the classical bootstrap process for a language is to rewrite
>>> it in itself. Clojure is more than capable of this. But Clojure continues
>>> to rely on Java code for its implementation.
>>>
>>> Is there a reason why this was not done? Efficiency issues? A rush to
>>> create something usable? I would think that having Clojure implemented
>>> entirely in Clojure would have a number of advantages.
>>>
>>> I am sure there was a deliberate decision, not to complete the bootstrap
>>> process. Is this documented anywhere?
>>>
>>> Just being a nosy newbie.
>>>
>>> --
>>> 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" group.
> To unsubscribe from 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 

Re: Clojure bootstrap, what am I missing here?

2015-08-24 Thread William la Forge
I should add that I am not seriously proposing a rewrite of Clojure into 
Clojure. There is likely too much legacy code at this point that depends on 
the specifics of the Java implementation.

I'm only wondering why it was not done, being such a traditional pattern 
and all.

On Monday, August 24, 2015 at 11:23:07 AM UTC-4, William la Forge wrote:
>
> Well gosh, Timothy, isn't Clojure code easier to maintain/extend than Java 
> code? There's a lot less boiler plate at least. Or is it just that Clojure 
> is superior mostly when multi-threading because of its use of immutables?
>
> Are you really saying that Clojure is not an advantageous choice for 
> implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or 
> are you just taking a short-term view and saying that a rewrite would carry 
> no IMMEDIATE advantages. Of course, the counter for that is that a rewrite 
> ALWAYS carries immediate advantages. :D
>
> On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>>
>> " I would think that having Clojure implemented entirely in Clojure 
>> would have a number of advantages."
>>
>> I think that's the place you should start. List those advantages. 
>> Clojure-in-Clojure would be a "nice" thing to have...but I can't really 
>> think of any major features it would enable that aren't possible in Clojure 
>> already.
>>
>> One thing that would be nice to have would be to switch Clojure's Java 
>> interfaces over to protocols, e.g. `Counted` could be a protocol instead of 
>> a interface. But that could be done on the existing codebase, without the 
>> need for a full rewrite. 
>>
>> Timothy
>>
>> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge  
>> wrote:
>>
>>> Step 2 in the classical bootstrap process for a language is to rewrite 
>>> it in itself. Clojure is more than capable of this. But Clojure continues 
>>> to rely on Java code for its implementation.
>>>
>>> Is there a reason why this was not done? Efficiency issues? A rush to 
>>> create something usable? I would think that having Clojure implemented 
>>> entirely in Clojure would have a number of advantages.
>>>
>>> I am sure there was a deliberate decision, not to complete the bootstrap 
>>> process. Is this documented anywhere?
>>>
>>> Just being a nosy newbie.
>>>
>>> -- 
>>> 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" group.
To unsubscribe from 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 bootstrap, what am I missing here?

2015-08-24 Thread William la Forge
The usual argument for completing the bootstrap is to simplify porting, 
though Clojure does not seem to need any help there.

On Monday, August 24, 2015 at 11:33:39 AM UTC-4, tbc++ wrote:
>
> " isn't Clojure code easier to maintain/extend than Java code?"
>
> Sure, but is that were the problems lie in Clojure maintenance? Take a 
> look at the JIRA tickets. The majority deal with how to map some concept to 
> the JVM (same problem in Java or Clojure), or the correct way to implement 
> something to either maintain efficiency or compliance with legacy code. 
> None of this is predicated on a Clojure based on Java. 
>
> I hate saying that because having the bragging rights of a self-hosting 
> language is pretty awesome, and the language developer in me would love to 
> see it. But Clojure is a very pragmatic language, and there just aren't 
> that many reasons why we *need* CinC. 
>
> Timothy
>
> On Mon, Aug 24, 2015 at 9:23 AM, William la Forge  > wrote:
>
>> Well gosh, Timothy, isn't Clojure code easier to maintain/extend than 
>> Java code? There's a lot less boiler plate at least. Or is it just that 
>> Clojure is superior mostly when multi-threading because of its use of 
>> immutables?
>>
>> Are you really saying that Clojure is not an advantageous choice for 
>> implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or 
>> are you just taking a short-term view and saying that a rewrite would carry 
>> no IMMEDIATE advantages. Of course, the counter for that is that a rewrite 
>> ALWAYS carries immediate advantages. :D
>>
>> On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>>>
>>> " I would think that having Clojure implemented entirely in Clojure 
>>> would have a number of advantages."
>>>
>>> I think that's the place you should start. List those advantages. 
>>> Clojure-in-Clojure would be a "nice" thing to have...but I can't really 
>>> think of any major features it would enable that aren't possible in Clojure 
>>> already.
>>>
>>> One thing that would be nice to have would be to switch Clojure's Java 
>>> interfaces over to protocols, e.g. `Counted` could be a protocol instead of 
>>> a interface. But that could be done on the existing codebase, without the 
>>> need for a full rewrite. 
>>>
>>> Timothy
>>>
>>> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge  
>>> wrote:
>>>
 Step 2 in the classical bootstrap process for a language is to rewrite 
 it in itself. Clojure is more than capable of this. But Clojure continues 
 to rely on Java code for its implementation.

 Is there a reason why this was not done? Efficiency issues? A rush to 
 create something usable? I would think that having Clojure implemented 
 entirely in Clojure would have a number of advantages.

 I am sure there was a deliberate decision, not to complete the 
 bootstrap process. Is this documented anywhere?

 Just being a nosy newbie.

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

New Functional Programming Job Opportunities

2015-08-24 Thread Functional Jobs
Here are some functional programming job opportunities that were posted

recently:



Senior Clojure Backend Developer at Nuday Games

http://functionaljobs.com/jobs/8858-senior-clojure-backend-developer-at-nuday-games



Haskell Engineer at Wagon

http://functionaljobs.com/jobs/8857-haskell-engineer-at-wagon



Cheers,

Sean Murphy

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


Re: Is any place to share articles about Clojure?

2015-08-24 Thread Jony Hudson
The Clojure reddit often has interesting articles linked, so you could post 
it there as well, perhaps:

https://www.reddit.com/r/Clojure/


Jony


On Monday, 24 August 2015 13:19:28 UTC+1, Krzysztof Władyka wrote:
>
> Hello,
>
> From time to time i am writing article on http://clojure.wladyka.eu/, but 
> the problem is nobody know about this site, because i didn't share it :) 
> Subjectively i am writing there things what some Clojure coders will want 
> to read.
>
> Is any place where can i share Clojure articles? Anyway maybe i will find 
> there something for me also :)
>
> Best,
> Krzysztof Władyka
>

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

2015-08-24 Thread Sean Corfield
Clojure.tools.cli - tools for working with command line arguments

https://github.com/clojure/tools.cli

* Release 0.3.3 on 2015-08-21
  * Add `:missing` to option specification to produce the given error message
if the option is not provided (and has no default value). TCLI-12
  * Add `:strict` to `parse-opts`:
If true, treats required option arguments that match other options as a
parse error (missing required argument). TCLI-10

Examples of each can be found in the unit tests:

https://github.com/clojure/tools.cli/blob/master/src/test/clojure/clojure/tools/cli_test.clj#L102-L136

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.


[Meta] Anyone else having trouble with this site recently?

2015-08-24 Thread Fluid Dynamics
I'm frequently seeing my browser get stuck at "Transferring data from 
groups.google.com" and then failing to progress further, when refreshing 
the topic list. This has been going on intermittently, but frequently, for 
several days now.

Is anyone else seeing this? What is the fix?

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

2015-08-24 Thread Hussein B.
Hi Moi,

Thanks a lot for your patience and help.

I tried this so far:

 (defn edit-parents [editable? edit loc]
  (loop [loc loc]
(if (z/end? loc)
  (z/root loc)
  (if (editable? (z/node loc))
(recur (-> loc z/up (z/edit edit) z/up z/next))
(recur (z/next loc))


(defn predicate [x]
  (and
  (vector? x)
  (some #(= 10 (get-in % ["a" "b"])) x)))


(defn operation [x] (update x "children" reverse))



(edit-parents predicate operation (z/seq-zip {"children" z}))



But I'm still getting the same data. What I'm doing wrong?

Thanks a lot.


On Monday, August 24, 2015 at 4:08:17 PM UTC+2, Moe Aboulkheir wrote:
>
> Went off half-cocked there.  The remainder:
>
> (edit-parents
>   #(= 10 (get-in % ["a" "b"]))
>   #(update % "children" reverse),
>   data-zipper)
>
> Would have the effect of reversing the order of the children in each node 
> which possesses a child having a "b" attribute set to 10.  You could 
> probably express this much better with a library which allows locations in 
> data structures to be described in an XPath-like way (and your data 
> actually looks a lot like it is the result of parsing markup - see 
> clojure.data.xml and xml-zip if so) -- or there's probably some better 
> zipper approach that somebody who's really into zippers could come up with.
>
> If you don't want to depend on an external library, and you lose your 
> enthusiasm for zippers, you could write a function which goes over the 
> structure and returns pairs of [[path] attributes], where path is a 
> sequence of keys/indices suitable for passing to update-in/assoc-in etc., 
> and attributes is the value of the "a" key at each level.  
>
> In general, if there aren't multiple keys similar to "a" in each map (i.e. 
> it's always some value pointing to some map, and the value is not always 
> "a"), this kind of layout may be easier (e.g. to destructure)
>
> {:tag "a" :attrs {:b 10} :children [...]}}
>
> Take care,
> Moe
>

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

2015-08-24 Thread Hussein B.
Oh,

I defined my zipper as:

 (def loz (z/zipper #(contains? % "children") #(get % "children") (fn [_ x 
] x) {"children" z}))

But is throwing an exception.

This one works:

 (def loz (z/zipper #(get % "children") #(get % "children") (fn [_ x ] x) 
{"children" z}))



On Monday, August 24, 2015 at 4:08:17 PM UTC+2, Moe Aboulkheir wrote:
>
> Went off half-cocked there.  The remainder:
>
> (edit-parents
>   #(= 10 (get-in % ["a" "b"]))
>   #(update % "children" reverse),
>   data-zipper)
>
> Would have the effect of reversing the order of the children in each node 
> which possesses a child having a "b" attribute set to 10.  You could 
> probably express this much better with a library which allows locations in 
> data structures to be described in an XPath-like way (and your data 
> actually looks a lot like it is the result of parsing markup - see 
> clojure.data.xml and xml-zip if so) -- or there's probably some better 
> zipper approach that somebody who's really into zippers could come up with.
>
> If you don't want to depend on an external library, and you lose your 
> enthusiasm for zippers, you could write a function which goes over the 
> structure and returns pairs of [[path] attributes], where path is a 
> sequence of keys/indices suitable for passing to update-in/assoc-in etc., 
> and attributes is the value of the "a" key at each level.  
>
> In general, if there aren't multiple keys similar to "a" in each map (i.e. 
> it's always some value pointing to some map, and the value is not always 
> "a"), this kind of layout may be easier (e.g. to destructure)
>
> {:tag "a" :attrs {:b 10} :children [...]}}
>
> Take care,
> Moe
>

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

2015-08-24 Thread Hussein B.
The result now is as desired:

({"a" {"b" 1, "c" 2}, "children" [{"a" {"b" 3, "c" 4}, "children" []}]} 
{"a" {"b" 5, "c" 6}, "children" []} {"a" {"b" 7, "c" 8}, "children" ({"a" 
{"b" 10, "c" 10}, "children" []} {"a" {"b" 9, "c" 10}, "children" []})})

But now the updated children is using list notation, not vector. Is it ok 
or it is for displaying purposes?

Thanks a lot for your help. I was burning to know how to do that with 
Zippers. I want to understand zippers.

On Monday, August 24, 2015 at 4:08:17 PM UTC+2, Moe Aboulkheir wrote:
>
> Went off half-cocked there.  The remainder:
>
> (edit-parents
>   #(= 10 (get-in % ["a" "b"]))
>   #(update % "children" reverse),
>   data-zipper)
>
> Would have the effect of reversing the order of the children in each node 
> which possesses a child having a "b" attribute set to 10.  You could 
> probably express this much better with a library which allows locations in 
> data structures to be described in an XPath-like way (and your data 
> actually looks a lot like it is the result of parsing markup - see 
> clojure.data.xml and xml-zip if so) -- or there's probably some better 
> zipper approach that somebody who's really into zippers could come up with.
>
> If you don't want to depend on an external library, and you lose your 
> enthusiasm for zippers, you could write a function which goes over the 
> structure and returns pairs of [[path] attributes], where path is a 
> sequence of keys/indices suitable for passing to update-in/assoc-in etc., 
> and attributes is the value of the "a" key at each level.  
>
> In general, if there aren't multiple keys similar to "a" in each map (i.e. 
> it's always some value pointing to some map, and the value is not always 
> "a"), this kind of layout may be easier (e.g. to destructure)
>
> {:tag "a" :attrs {:b 10} :children [...]}}
>
> Take care,
> Moe
>

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

2015-08-24 Thread Andy Fingerhut
William:

Nicola Mometto has done a lot of work implementing Clojure in Clojure, but
there is no time frame proposed anywhere that I am aware of for this
implementation to become the one that is most widely used, if that ever
happens.  The reader and analyzer are pretty much complete, as far as I am
aware, at least for Clojure on Java.  I believe tools.analyzer.js is a bit
behind some of the latest changes in ClojureScript, and the emitters still
have some way to go before they can be called done. (I haven't used the
emitter, so Nicola or the others working on it could give a more accurate
view of its current status than I could.)

See these projects:

tools.reader - https://github.com/clojure/tools.reader
tools.analyzer - https://github.com/clojure/tools.analyzer
tools.analyzer.jvm  - https://github.com/clojure/tools.analyzer.jvm
tools.emitter.jvm - https://github.com/clojure/tools.emitter.jvm

and for ClojureScript, tools.analyzer.js -
https://github.com/clojure/tools.analyzer.js

Currently tools.analyzer and tools.analyzer.jvm are used by several
projects for analysis of Clojure code, e.g. core.async, Eastwood, and a few
others.  Some are shown on this page:
https://crossclj.info/fun/clojure.tools.analyzer.jvm/analyze.html

Andy


On Mon, Aug 24, 2015 at 8:36 AM, William la Forge 
wrote:

> I should add that I am not seriously proposing a rewrite of Clojure into
> Clojure. There is likely too much legacy code at this point that depends on
> the specifics of the Java implementation.
>
> I'm only wondering why it was not done, being such a traditional pattern
> and all.
>
>
> On Monday, August 24, 2015 at 11:23:07 AM UTC-4, William la Forge wrote:
>>
>> Well gosh, Timothy, isn't Clojure code easier to maintain/extend than
>> Java code? There's a lot less boiler plate at least. Or is it just that
>> Clojure is superior mostly when multi-threading because of its use of
>> immutables?
>>
>> Are you really saying that Clojure is not an advantageous choice for
>> implementing Clojure? Perhaps as a newbie I'm just oversold on Clojure? Or
>> are you just taking a short-term view and saying that a rewrite would carry
>> no IMMEDIATE advantages. Of course, the counter for that is that a rewrite
>> ALWAYS carries immediate advantages. :D
>>
>> On Monday, August 24, 2015 at 11:10:05 AM UTC-4, tbc++ wrote:
>>>
>>> " I would think that having Clojure implemented entirely in Clojure
>>> would have a number of advantages."
>>>
>>> I think that's the place you should start. List those advantages.
>>> Clojure-in-Clojure would be a "nice" thing to have...but I can't really
>>> think of any major features it would enable that aren't possible in Clojure
>>> already.
>>>
>>> One thing that would be nice to have would be to switch Clojure's Java
>>> interfaces over to protocols, e.g. `Counted` could be a protocol instead of
>>> a interface. But that could be done on the existing codebase, without the
>>> need for a full rewrite.
>>>
>>> Timothy
>>>
>>> On Mon, Aug 24, 2015 at 9:03 AM, William la Forge 
>>> wrote:
>>>
 Step 2 in the classical bootstrap process for a language is to rewrite
 it in itself. Clojure is more than capable of this. But Clojure continues
 to rely on Java code for its implementation.

 Is there a reason why this was not done? Efficiency issues? A rush to
 create something usable? I would think that having Clojure implemented
 entirely in Clojure would have a number of advantages.

 I am sure there was a deliberate decision, not to complete the
 bootstrap process. Is this documented anywhere?

 Just being a nosy newbie.

 --
 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://gro

Re: Why I'm getting NPE with zipper/next?

2015-08-24 Thread Moe Aboulkheir
Hussein,


On Mon, Aug 24, 2015 at 5:40 PM, Hussein B.  wrote:

> But now the updated children is using list notation, not vector. Is it ok or
> it is for displaying purposes?

The collection type is now different, as the example I gave uses
"reverse" as the transform, which is a generic sequence function - it
doesn't care that it was passed a vector.  It may not matter - it
depends on how you're using the sequences.  In this specific case,
modifying the transform in the example to #(update % "children" (comp
vec reverse)) will result in a vector, though there are more general
ways of doing this without baking the collection type in everywhere
(into (empty x) (reverse x)).

Take care,
Moe

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


I am looking for xml parsing lib

2015-08-24 Thread Josh Kamau
Hello;

Which is the recommended xml parsing lib for clojure?

clojure.data.xml was last updated 10months ago and is still on version 0.0.8

Thanks
Josh

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

2015-08-24 Thread Rick Moynihan
I'd be happy to read it and potentially offer feedback. What is expected of
reviewers?

R.

On Mon, 24 Aug 2015 07:46 Akhil Wali  wrote:

> If anyone is interested in being a reviewer for a new book "*Mastering
> Clojure*" by Packt Publishing, please let me know.
> Reviewers will be entitled to a 6 montn subscription of PacktLib
> .
>
> Here's the list of topics covered in this title.
>
>-
>- Working with Sequences and Types
>- Orchestrating Concurrency and Parallelism
>- Parallelization using Reducers
>- Writing Macros
>- Composing Transducers
>- Using Functors and Monads
>- Programming with Logic
>- Asynchronous Programming
>- Reactive Programming
>- Working with Tests
>- Troubleshooting and Best Practices
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from 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.
>
-- 
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.


Re: Why I'm getting NPE with zipper/next?

2015-08-24 Thread Hussein B.
I see.

I tried to add more nested elements into my original structure but now the 
output isn't correct.

My question is:

Is it possible to implement a generic algorithm with Zippers that could 
traverse as long as needed and update an item? Maybe I'm doing zippers 
wrong in this case.

Thanks a lot for your time and your helpful answers. Now I started to 
understand zippers, thanks to you.


On Monday, August 24, 2015 at 7:36:17 PM UTC+2, Moe Aboulkheir wrote:
>
> Hussein, 
>
>
> On Mon, Aug 24, 2015 at 5:40 PM, Hussein B.  > wrote: 
>
> > But now the updated children is using list notation, not vector. Is it 
> ok or 
> > it is for displaying purposes? 
>
> The collection type is now different, as the example I gave uses 
> "reverse" as the transform, which is a generic sequence function - it 
> doesn't care that it was passed a vector.  It may not matter - it 
> depends on how you're using the sequences.  In this specific case, 
> modifying the transform in the example to #(update % "children" (comp 
> vec reverse)) will result in a vector, though there are more general 
> ways of doing this without baking the collection type in everywhere 
> (into (empty x) (reverse x)). 
>
> Take care, 
> Moe 
>

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

2015-08-24 Thread blake watson
I'm in.

On Mon, Aug 24, 2015 at 11:02 AM, Rick Moynihan 
wrote:

> I'd be happy to read it and potentially offer feedback. What is expected
> of reviewers?
>
> R.
>
> On Mon, 24 Aug 2015 07:46 Akhil Wali  wrote:
>
>> If anyone is interested in being a reviewer for a new book "*Mastering
>> Clojure*" by Packt Publishing, please let me know.
>> Reviewers will be entitled to a 6 montn subscription of PacktLib
>> .
>>
>> Here's the list of topics covered in this title.
>>
>>-
>>- Working with Sequences and Types
>>- Orchestrating Concurrency and Parallelism
>>- Parallelization using Reducers
>>- Writing Macros
>>- Composing Transducers
>>- Using Functors and Monads
>>- Programming with Logic
>>- Asynchronous Programming
>>- Reactive Programming
>>- Working with Tests
>>- Troubleshooting and Best Practices
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from 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.
>>
> --
> 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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from 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] stratege 0.1.0 - a strategic term rewriting library for clojure

2015-08-24 Thread Maik Schünemann
I am happy to announce the first release of stratege 
.

stratege is a strategic term rewriting library inspired by StrategoXT that 
provides composeable strategy combinators, is based on zippers and 
internally uses continuation passing style, so that it doesn't throw stack 
overflows on deeply nested terms.

The README.md on github gives the rationale and gets you started.

Below is an example for transforming boolean expressions into disjunctive 
and conjunctive normal forms.

(require '[stratege.core :as s :refer [defrule rules]])

(defrule defi [:impl x y] -> [:or [:not x] y])
(defrule defe [:eq x y] -> [:and [:impl x y] [:impl y x]])

(defrule dn[:not [:not x]] -> x)

(defrule dma   [:not [:and x y]] -> [:or [:not x] [:not y]])
(defrule dmo   [:not [:or x y]] -> [:and [:not x] [:not y]])

(defrule daol  [:and [:or x y] z] -> [:or [:and x z] [:and y z]])
(defrule daor  [:and z [:or x y]] -> [:or [:and z x] [:and z y]])

(defrule doal  [:or [:and x y] z] -> [:and [:or x z] [:or y z]])
(defrule doar  [:or z [:and x y]] -> [:and [:or z x] [:or z y]])

(def dnf (s/innermost (rules dn defi defe dma dmo daol daor)))
(def cnf (s/innermost (rules dn defi defe dma dmo doal doar)))

(is (= (dnf [:or [:not [:or [:not :x] :y]] :z])
   [:or [:and :x [:not :y]] :z]))

(is (= (cnf [:or [:not [:or [:not :x] :y]] :z])
   [:and [:or :x :z] [:or [:not :y] :z]]))

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

2015-08-24 Thread blake watson
I believe that's it, though.

On Mon, Aug 24, 2015 at 10:48 AM, Josh Kamau  wrote:

> Hello;
>
> Which is the recommended xml parsing lib for clojure?
>
> clojure.data.xml was last updated 10months ago and is still on version
> 0.0.8
>
> Thanks
> Josh
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: Reviewers needed for new Clojure book!

2015-08-24 Thread Alan Thompson
HI Akhil - I would be interested.
Alan

On Mon, Aug 24, 2015 at 11:47 AM, blake watson 
wrote:

> I'm in.
>
> On Mon, Aug 24, 2015 at 11:02 AM, Rick Moynihan 
> wrote:
>
>> I'd be happy to read it and potentially offer feedback. What is expected
>> of reviewers?
>>
>> R.
>>
>> On Mon, 24 Aug 2015 07:46 Akhil Wali  wrote:
>>
>>> If anyone is interested in being a reviewer for a new book "*Mastering
>>> Clojure*" by Packt Publishing, please let me know.
>>> Reviewers will be entitled to a 6 montn subscription of PacktLib
>>> .
>>>
>>> Here's the list of topics covered in this title.
>>>
>>>-
>>>- Working with Sequences and Types
>>>- Orchestrating Concurrency and Parallelism
>>>- Parallelization using Reducers
>>>- Writing Macros
>>>- Composing Transducers
>>>- Using Functors and Monads
>>>- Programming with Logic
>>>- Asynchronous Programming
>>>- Reactive Programming
>>>- Working with Tests
>>>- Troubleshooting and Best Practices
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from 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.
>>>
>> --
>> 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.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from 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.


why there is java.lang.NoClassDefFoundError: clojure_mail/message$loading__4958__auto__, error

2015-08-24 Thread Chih Yang
I  aot compile my project: 

:aot [my namespace]

But I always get following error, this is crazy, can some one help me to 
troubleshooting what is going on?

vagrant@precise32:/work/everbridge.qa$ lein compile
Compiling everbridge.qa
java.lang.NoClassDefFoundError: clojure_mail/message$loading__4958__auto__, 
compiling:(core.clj:1:1)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3558)
at clojure.lang.Compiler.compile1(Compiler.java:7226)
at clojure.lang.Compiler.compile1(Compiler.java:7216)
at clojure.lang.Compiler.compile(Compiler.java:7292)
at clojure.lang.RT.compile(RT.java:398)
at clojure.lang.RT.load(RT.java:438)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5066.invoke(core.clj:5641)
at clojure.core$load.doInvoke(core.clj:5640)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5446)
at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
at clojure.core$load_lib.doInvoke(core.clj:5485)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:626)
at clojure.core$load_libs.doInvoke(core.clj:5524)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:626)
at clojure.core$require.doInvoke(core.clj:5607)
at clojure.lang.RestFn.invoke(RestFn.java:436)
at 
everbridge.mail_service$loading__4958__auto__.invoke(mail_service.clj:1)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3553)
at clojure.lang.Compiler.compile1(Compiler.java:7226)
at clojure.lang.Compiler.compile1(Compiler.java:7216)
at clojure.lang.Compiler.compile(Compiler.java:7292)
at clojure.lang.RT.compile(RT.java:398)
at clojure.lang.RT.load(RT.java:438)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5066.invoke(core.clj:5641)
at clojure.core$load.doInvoke(core.clj:5640)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5446)
at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
at clojure.core$load_lib.doInvoke(core.clj:5485)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:626)
at clojure.core$load_libs.doInvoke(core.clj:5524)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:626)
at clojure.core$require.doInvoke(core.clj:5607)
at clojure.lang.RestFn.invoke(RestFn.java:551)
at everbridge.qa$loading__4958__auto__.invoke(qa.clj:1)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3553)
at clojure.lang.Compiler.compile1(Compiler.java:7226)
at clojure.lang.Compiler.compile1(Compiler.java:7216)
at clojure.lang.Compiler.compile(Compiler.java:7292)
at clojure.lang.RT.compile(RT.java:398)
at clojure.lang.RT.load(RT.java:438)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5066.invoke(core.clj:5641)
at clojure.core$load.doInvoke(core.clj:5640)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5446)
at clojure.core$compile$fn__5071.invoke(core.clj:5652)
at clojure.core$compile.invoke(core.clj:5651)
at user$eval9$fn__16.invoke(form-init2679087226527270250.clj:1)
at user$eval9.invoke(form-init2679087226527270250.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6703)
at clojure.lang.Compiler.eval(Compiler.java:6693)
at clojure.lang.Compiler.load(Compiler.java:7130)
at clojure.lang.Compiler.loadFile(Compiler.java:7086)
at clojure.main$load_script.invoke(main.clj:274)
at clojure.main$init_opt.invoke(main.clj:279)
at clojure.main$initialize.invoke(main.clj:307)
at clojure.main$null_opt.invoke(main.clj:342)
at clojure.main$main.doInvoke(main.clj:420)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:383)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.Var.applyTo(Var.java:700)
at clojure.main.main(main.java:37)
Caused by: java.lang.NoClassDefFoundError: 
clojure_mail/message$loading__4958__auto__
at clojure_mail.message__init.load(Unknown Source)
at clojure_mail.message__init.(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at clojure.lang.RT.loadClassForName(RT.java:2093)
at clojure.lang.RT.load(RT.java:430)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5066.invoke(core.clj:5641)
at clojure.core$load.doInvoke(core.clj:5640)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5446)
at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
at clojure.core$load_lib.doInvoke(core

Re: Reviewers needed for new Clojure book!

2015-08-24 Thread Chris Drane
I'd be interested.

On Monday, August 24, 2015 at 2:46:06 AM UTC-4, Akhil Wali wrote:
>
> If anyone is interested in being a reviewer for a new book "*Mastering 
> Clojure*" by Packt Publishing, please let me know.
> Reviewers will be entitled to a 6 montn subscription of PacktLib 
> .
>
> Here's the list of topics covered in this title.
>
>- 
>- Working with Sequences and Types
>- Orchestrating Concurrency and Parallelism
>- Parallelization using Reducers
>- Writing Macros
>- Composing Transducers
>- Using Functors and Monads
>- Programming with Logic
>- Asynchronous Programming
>- Reactive Programming
>- Working with Tests
>- Troubleshooting and Best Practices
>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from 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] Skyscraper 0.1.0, a library for scraping entire websites

2015-08-24 Thread Daniel Janus
[Reusing the relatively new thread to publish information about new 
release:]

Skyscraper 0.1.1 is now out.  New in this release:

   - Processors (process-fn functions) can now access current context.
   - Skyscraper now uses clj-http  to 
   issue HTTP GET requests. 
  - Skyscraper can now auto-detect page encoding thanks to clj-http’s 
  decode-body-headers feature.
  - scrape now supports a http-options argument to override HTTP 
  options (e.g., timeouts).
   - Skyscraper’s output is now fully lazy (i.e., guaranteed to be 
   non-chunking).
   - Fixed a bug where relative URLs were incorrectly resolved in certain 
   circumstances.

Happy using,
-dj

W dniu wtorek, 11 sierpnia 2015 19:29:03 UTC+2 użytkownik Sergey Didenko 
napisał:
>
> Looks interesting, thank you.
>
> On Tue, Aug 11, 2015 at 5:00 PM, Daniel Janus  > wrote:
>
>> Dear Clojurians,
>>
>> I'm happy to announce the availability of the first release of 
>> Skyscraper, an Enlive-based library for "structural scraping" -- extracting 
>> information from whole sites in a structural way.
>>
>> Homepage / GitHub: https://github.com/nathell/skyscraper
>> Leiningen: [skyscraper "0.1.0"]
>> Clojars: https://clojars.org/skyscraper
>>
>> From the README:
>>
>> What is structural scraping? Think of Enlive. It allows you to parse 
>> arbitrary HTML and extract various bits of information out of it: subtrees 
>> or parts of subtrees determined by selectors. You can then convert this 
>> information to some other format, easier for machine consumption, or 
>> process it in whatever other way you wish. This is called scraping.
>>
>> Now imagine that you have to parse a lot of HTML documents. They all come 
>> from the same site, so most of them are structured in the same way and can 
>> be scraped using the same sets of selectors. But not all of them. There’s 
>> an index page, which has a different layout and needs to be treated in its 
>> own peculiar way, with pagination and all. There are pages that group 
>> together individual pages in categories. And so on. Treating single pages 
>> is easy, but with whole collections of pages, you quickly find yourself 
>> writing a lot of boilerplate code.
>>
>> In particular, you realize that you can’t just wget -r the whole thing 
>> and then parse each page in turn. Rather, you want to simulate the workflow 
>> of a user who tries to “click through” the website to obtain the 
>> information she’s interested in. Sites have tree-like structure, and you 
>> want to keep track of this structure as you traverse the site, and reflect 
>> it in your output. I call it “structural scraping”.
>>
>> This is where Skyscraper comes in.
>>
>> Happy using,
>> --Daniel Janus
>>
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> 
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com 
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

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


Re: I am looking for xml parsing lib

2015-08-24 Thread Jordan Schatz
>
> Which is the recommended xml parsing lib for clojure?


I think you are after clojure.xml/parse
http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.xml/parse/
and friends:
http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.core/xml-seq/
http://conj.io/store/v1/org.clojure/clojure/1.7.0/clj/clojure.zip/xml-zip/

- Jordan

On Mon, Aug 24, 2015 at 12:50 PM, blake watson 
wrote:

> I believe that's it, though.
>
> On Mon, Aug 24, 2015 at 10:48 AM, Josh Kamau 
> wrote:
>
>> Hello;
>>
>> Which is the recommended xml parsing lib for clojure?
>>
>> clojure.data.xml was last updated 10months ago and is still on version
>> 0.0.8
>>
>> Thanks
>> Josh
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from 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.
>

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

2015-08-24 Thread gvim

Akhil

Have you considered approaching O'Reilly or Pragmatic? Packt books tend 
to be on the slim side which might affect your potential for covering so 
many topics in any kind of depth. IMHO they're also overpriced.


gvim



On 24/08/2015 07:46, Akhil Wali wrote:

If anyone is interested in being a reviewer for a new book "*Mastering
Clojure*" by Packt Publishing, please let me know.
Reviewers will be entitled to a 6 montn subscription of PacktLib
.

Here's the list of topics covered in this title.

  *


  * Working with Sequences and Types
  * Orchestrating Concurrency and Parallelism
  * Parallelization using Reducers
  * Writing Macros
  * Composing Transducers
  * Using Functors and Monads
  * Programming with Logic
  * Asynchronous Programming
  * Reactive Programming
  * Working with Tests
  * Troubleshooting and Best Practices


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


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

To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Reviewers needed for new Clojure book!

2015-08-24 Thread m00nlight
I am also interested in some of the topics listed in this book, and would
be happy to read through
the previous release and offer feedback.

Best Regards

2015-08-25 6:58 GMT+08:00 gvim :

> Akhil
>
> Have you considered approaching O'Reilly or Pragmatic? Packt books tend to
> be on the slim side which might affect your potential for covering so many
> topics in any kind of depth. IMHO they're also overpriced.
>
> gvim
>
>
>
> On 24/08/2015 07:46, Akhil Wali wrote:
>
>> If anyone is interested in being a reviewer for a new book "*Mastering
>> Clojure*" by Packt Publishing, please let me know.
>> Reviewers will be entitled to a 6 montn subscription of PacktLib
>> .
>>
>> Here's the list of topics covered in this title.
>>
>>   *
>>
>>
>>   * Working with Sequences and Types
>>   * Orchestrating Concurrency and Parallelism
>>   * Parallelization using Reducers
>>   * Writing Macros
>>   * Composing Transducers
>>   * Using Functors and Monads
>>   * Programming with Logic
>>   * Asynchronous Programming
>>   * Reactive Programming
>>   * Working with Tests
>>   * Troubleshooting and Best Practices
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To unsubscribe from 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.
>



-- 
m00nlight

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


Reviewers needed for new Clojure book!

2015-08-24 Thread VaedaStrike
I'd be very interested. Clojure was my first language in programming. So i 
might be able to give a different perspective. 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from 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] Skyscraper 0.1.0, a library for scraping entire websites

2015-08-24 Thread Bryan Maass
Thanks DJ,

I think this is a good approach for scraping hierarchical (or not) sets of 
webpages and boiling them down to maps.

On Tuesday, August 25, 2015 at 7:55:36 AM UTC+10, Daniel Janus wrote:
>
> [Reusing the relatively new thread to publish information about new 
> release:]
>
> Skyscraper 0.1.1 is now out.  New in this release:
>
>- Processors (process-fn functions) can now access current context.
>- Skyscraper now uses clj-http  
>to issue HTTP GET requests. 
>   - Skyscraper can now auto-detect page encoding thanks to clj-http’s 
>   decode-body-headers feature.
>   - scrape now supports a http-options argument to override HTTP 
>   options (e.g., timeouts).
>- Skyscraper’s output is now fully lazy (i.e., guaranteed to be 
>non-chunking).
>- Fixed a bug where relative URLs were incorrectly resolved in certain 
>circumstances.
>
> Happy using,
> -dj
>
> W dniu wtorek, 11 sierpnia 2015 19:29:03 UTC+2 użytkownik Sergey Didenko 
> napisał:
>>
>> Looks interesting, thank you.
>>
>> On Tue, Aug 11, 2015 at 5:00 PM, Daniel Janus  wrote:
>>
>>> Dear Clojurians,
>>>
>>> I'm happy to announce the availability of the first release of 
>>> Skyscraper, an Enlive-based library for "structural scraping" -- extracting 
>>> information from whole sites in a structural way.
>>>
>>> Homepage / GitHub: https://github.com/nathell/skyscraper
>>> Leiningen: [skyscraper "0.1.0"]
>>> Clojars: https://clojars.org/skyscraper
>>>
>>> From the README:
>>>
>>> What is structural scraping? Think of Enlive. It allows you to parse 
>>> arbitrary HTML and extract various bits of information out of it: subtrees 
>>> or parts of subtrees determined by selectors. You can then convert this 
>>> information to some other format, easier for machine consumption, or 
>>> process it in whatever other way you wish. This is called scraping.
>>>
>>> Now imagine that you have to parse a lot of HTML documents. They all 
>>> come from the same site, so most of them are structured in the same way and 
>>> can be scraped using the same sets of selectors. But not all of them. 
>>> There’s an index page, which has a different layout and needs to be treated 
>>> in its own peculiar way, with pagination and all. There are pages that 
>>> group together individual pages in categories. And so on. Treating single 
>>> pages is easy, but with whole collections of pages, you quickly find 
>>> yourself writing a lot of boilerplate code.
>>>
>>> In particular, you realize that you can’t just wget -r the whole thing 
>>> and then parse each page in turn. Rather, you want to simulate the workflow 
>>> of a user who tries to “click through” the website to obtain the 
>>> information she’s interested in. Sites have tree-like structure, and you 
>>> want to keep track of this structure as you traverse the site, and reflect 
>>> it in your output. I call it “structural scraping”.
>>>
>>> This is where Skyscraper comes in.
>>>
>>> Happy using,
>>> --Daniel Janus
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with 
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to clojure+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

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


Re: [ANN] Clojure 1.8.0-alpha3

2015-08-24 Thread Sean Corfield
Just to keep everyone informed, we’ve now had enough time back on Clojure 1.7.0 
to rule out 1.8.0 as the source of our very slow memory leak.

Now we have the fun task of figuring out exactly what has introduced it :)

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood


From:  Sean Corfield
Date:  Monday, August 17, 2015 at 7:50 PM
To:  
Subject:  Re: [ANN] Clojure 1.8.0-alpha3

Clojure 1.8.0-alpha3 is now available.
…
Tuples have been disabled after further analysis of performance impacts.

Out of curiosity, could this have surfaced in alpha2 as a memory leak?

We had alpha2 in production for about a week and it looked like we were seeing 
a very slow memory leak. Our next production build was based on alpha4 and we 
have not seen that same memory curve (in a slightly longer period).

Now that we’ve had longer in production, we are still seeing a slow memory 
leak. We are prepping to move back to 1.7.0 for the time being. If we don’t see 
the leak on 1.7.0 (so we can isolate the leak as coming from our code vs "your" 
code), we’ll put one server back on 1.8.0 Alpha 4 and see if we can identify 
what is actually leaking.

Sean Corfield -- (904) 302-SEAN
World Singles -- http://worldsingles.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.


Re: Reviewers needed for new Clojure book!

2015-08-24 Thread Marc Mailhot
As a moderate level clojure programmer trying to dive into the deeper 
features this seems interesting.

On Monday, 24 August 2015 02:46:06 UTC-4, Akhil Wali wrote:
>
> If anyone is interested in being a reviewer for a new book "*Mastering 
> Clojure*" by Packt Publishing, please let me know.
> Reviewers will be entitled to a 6 montn subscription of PacktLib 
> .
>
> Here's the list of topics covered in this title.
>
>- 
>- Working with Sequences and Types
>- Orchestrating Concurrency and Parallelism
>- Parallelization using Reducers
>- Writing Macros
>- Composing Transducers
>- Using Functors and Monads
>- Programming with Logic
>- Asynchronous Programming
>- Reactive Programming
>- Working with Tests
>- Troubleshooting and Best Practices
>
>
>

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

2015-08-24 Thread Theodore Konukhov
I found this blog post very useful. It has a pretty great overview of XML 
parsing libs/techniques in Clojure.

http://blog.korny.info/2014/03/08/xml-for-fun-and-profit.html

- Theodore.

On Monday, August 24, 2015 at 8:48:50 PM UTC+3, Josh Kamau wrote:
>
> Hello;
>
> Which is the recommended xml parsing lib for clojure?
>
> clojure.data.xml was last updated 10months ago and is still on version 
> 0.0.8
>
> Thanks
> Josh
>

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

2015-08-24 Thread Daniel Compton
Hi Howard

Thanks for sharing this. Can you comment briefly on how this compares and
contrasts to Liberator? I know they're not exactly the same, but they're
definitely in the same neighbourhood.

On Tue, Aug 25, 2015 at 3:31 AM Howard Lewis Ship  wrote:

> Rook is a set of middleware and handlers to enable metadata-based routing
> for Ring web applications.
>
> The intention is to expose a Clojure namespace as a web service resource;
> there’s a default mapping of HTTP verbs and paths to function names; these
> can be extended or overridden by metadata on the functions in the namespace.
>
> The end result is that a compliant web service resource can be created in
> very little code.
>
> Rook also supports Swagger 2.0: a detailed JSON description of your web
> service is generated directly from the functions and metadata.
>
> Recent changes:
>
> * Described more of the APIs using Prismatic Schema
> * Added ability to reuse the argument resolution logic outside of endpoint
> functions
> * Many improvements to the Swagger 2.0 description support
>
> https://github.com/AvisoNovate/rook
>
> --
> Howard M. Lewis Ship
>
> Looking for Clojure engagements: coding, architecture, mentoring & more!
>
> 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.
>
-- 
--
Daniel

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

2015-08-24 Thread Daniel Compton
Fluid Dynamics, your comment was neither nice, nor helpful, and doesn't
have a place in the Clojure mailing list. Please keep your inflammatory
comments to yourself.

On Tue, Aug 25, 2015 at 3:07 AM Alan Moore 
wrote:

> FWIW - My experience with Eclipse vs IntelliJ is exactly the opposite - we
> have been using Eclipse at my day job but I have recently abandoned it due
> to hangs, crashes, slow downs, etc. and have moved over to IntelliJ. YMMV.
>
> Alan
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from 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.
>
-- 
--
Daniel

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

2015-08-24 Thread Akhil Wali
Thank you everyone for the great response!
I'll notify Packt and they shall contact anyone who is shortlisted as a 
reviwer.

On Monday, August 24, 2015 at 12:16:06 PM UTC+5:30, Akhil Wali wrote:
>
> If anyone is interested in being a reviewer for a new book "*Mastering 
> Clojure*" by Packt Publishing, please let me know.
> Reviewers will be entitled to a 6 montn subscription of PacktLib 
> .
>
> Here's the list of topics covered in this title.
>
>- 
>- Working with Sequences and Types
>- Orchestrating Concurrency and Parallelism
>- Parallelization using Reducers
>- Writing Macros
>- Composing Transducers
>- Using Functors and Monads
>- Programming with Logic
>- Asynchronous Programming
>- Reactive Programming
>- Working with Tests
>- Troubleshooting and Best Practices
>
>
>

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

2015-08-24 Thread Fluid Dynamics
 Daniel Compton, your comment was neither nice, nor helpful, and doesn't 
have a place in the Clojure mailing list. Please keep your inflammatory 
comments to yourself.

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

2015-08-24 Thread kinleyd
The Clojure community on G+ is another: 
https://plus.google.com/communities/103410768849046117338

On Monday, August 24, 2015 at 6:19:28 PM UTC+6, Krzysztof Władyka wrote:
>
> Hello,
>
> From time to time i am writing article on http://clojure.wladyka.eu/, but 
> the problem is nobody know about this site, because i didn't share it :) 
> Subjectively i am writing there things what some Clojure coders will want 
> to read.
>
> Is any place where can i share Clojure articles? Anyway maybe i will find 
> there something for me also :)
>
> Best,
> Krzysztof Władyka
>

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