deprecation warnings?

2015-10-14 Thread William la Forge
Going forward, I'd like to deprecate some functions and have a warning 
displayed on first use. So I've done this:

(def emptyAAMap ^{:deprecated "0.3.4"}
  (new AAMap emptyNode {:comparator RT/DEFAULT_COMPARATOR}))


But I am not seeing any warnings from either lein or cursive. Do I need to 
add a plugin?

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: deprecation warnings?

2015-10-14 Thread Colin Yates
Isn’t meta data before the symbol name?

> On 14 Oct 2015, at 17:09, William la Forge  wrote:
> 
> Going forward, I'd like to deprecate some functions and have a warning 
> displayed on first use. So I've done this:
> 
> (def emptyAAMap ^{:deprecated "0.3.4"}
>   (new AAMap emptyNode {:comparator RT/DEFAULT_COMPARATOR}))
> 
> But I am not seeing any warnings from either lein or cursive. Do I need to 
> add a plugin?
> 
> Thanks!
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .

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


Newbie trying HTML parsing

2015-10-14 Thread Mike
Hello,

For my first real Clojure project I am attempting to get an HTML page and 
locate a particular ** tag within the page. I have my program 
GETting the page, but
I am having trouble parsing it.  I am trying to use *clj-tagsoup* to parse 
the page, but I get an error message when I try to ;require it as an 
external reference. Here
are (what I think are) the pertinent segments of "code":

*project.clj* file extract:
 
 :dependencies [
 [org.clojure/clojure "1.7.0"]
 [clj-http "2.0.0"]
  [clj-tagsoup "0.3.0"]]



*source *file extract:

(ns one.core
  (:gen-class)
  (:require [clj-http.client :as client])
  (:require [clj-tagsoup :as html]))

  
  
I am using LightTable as my IDE; when I added the *clj-tagsoup* dependency 
the next loading of my project did appear to go fetch the required files.

I have some questions:

1) I am using Windows 8.1 Pro, my project is located at 
c:\Users\Michael\CLJ\one; I have LightTable loaded at 
c:\LightTableWin\LightTable\LightTable.exe.
Where would I manually verify that the *clj-tagsoup* files have been loaded?

2) *clj-tagsoup* didn't have an example of how to reference it in a :
*require* clause.  Did I write this correctly, and how would I know if it 
needed to be different?

3) Is this an appropriate approach?  I noticed that *clj-http* has a 
*parse-html* function, but when I call that I get an assert that says that 
*crouton 
*is not present.

Any answers or guidance appreciated.

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

2015-10-14 Thread Alex Miller
You might wish to up-vote http://dev.clojure.org/jira/browse/CLJ-706 

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

2015-10-14 Thread James Reeves
In the clj-tagsoup example it has the following line:

(use 'pl.danieljanus.tagsoup)

The use function is like require, except it aliases the vars to the current
namespace. So the pl.danieljanus.tagsoup is the namespace to use.

If the README doesn't provide any clues, you can sometimes figure out the
namespace to use by looking at the src directory in the repository. In the
clj-tagsoup repository there's a file:

src/pl/danieljanus/tagsoup.clj

Which again indicates a namespace of pl.danieljanus.tagsoup. Just convert
"/" to "." and "_" to "-", then remove the file extension to produce the
namespace of the file.

Crouton is an alternative HTML parsing library (that's coincidentally
written by me) and can be found at: https://github.com/weavejester/crouton

Crouton uses a slightly different output syntax, which is compatible with
Clojure's xml zipper functions, making it more suitable for document
searches and traversal (IMO).

- James

On 14 October 2015 at 19:16, Mike  wrote:

> Hello,
>
> For my first real Clojure project I am attempting to get an HTML page and
> locate a particular ** tag within the page. I have my program
> GETting the page, but
> I am having trouble parsing it.  I am trying to use *clj-tagsoup* to
> parse the page, but I get an error message when I try to ;require it as an
> external reference. Here
> are (what I think are) the pertinent segments of "code":
>
> *project.clj* file extract:
>
>  :dependencies [
>  [org.clojure/clojure "1.7.0"]
>  [clj-http "2.0.0"]
>   [clj-tagsoup "0.3.0"]]
>
>
>
> *source *file extract:
>
> (ns one.core
>   (:gen-class)
>   (:require [clj-http.client :as client])
>   (:require [clj-tagsoup :as html]))
>
>
>
> I am using LightTable as my IDE; when I added the *clj-tagsoup*
> dependency the next loading of my project did appear to go fetch the
> required files.
>
> I have some questions:
>
> 1) I am using Windows 8.1 Pro, my project is located at
> c:\Users\Michael\CLJ\one; I have LightTable loaded at
> c:\LightTableWin\LightTable\LightTable.exe.
> Where would I manually verify that the *clj-tagsoup* files have been
> loaded?
>
> 2) *clj-tagsoup* didn't have an example of how to reference it in a :
> *require* clause.  Did I write this correctly, and how would I know if it
> needed to be different?
>
> 3) Is this an appropriate approach?  I noticed that *clj-http* has a
> *parse-html* function, but when I call that I get an assert that says
> that *crouton *is not present.
>
> Any answers or guidance appreciated.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group 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: deprecation warnings?

2015-10-14 Thread William la Forge
OK, but

1. Still no warning from cursive or lein test and
2. I think the metadata goes after the arguments when defining multi-arity
functions.

On Wed, Oct 14, 2015 at 12:11 PM, Colin Yates  wrote:

> Isn’t meta data before the symbol name?
>
> On 14 Oct 2015, at 17:09, William la Forge  wrote:
>
> Going forward, I'd like to deprecate some functions and have a warning
> displayed on first use. So I've done this:
>
> (def emptyAAMap ^{:deprecated "0.3.4"}
>   (new AAMap emptyNode {:comparator RT/DEFAULT_COMPARATOR}))
>
>
> But I am not seeing any warnings from either lein or cursive. Do I need to
> add a plugin?
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/sWUz7VGLv_o/unsubscribe.
> To unsubscribe from this group and all its topics, 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: deprecation warnings?

2015-10-14 Thread Andy Fingerhut
Try out the Eastwood Clojure lint tool [1] and see if it gives deprecation
warnings where you hope to see them.

Andy

[1] https://github.com/jonase/eastwood

On Wed, Oct 14, 2015 at 9:31 AM, William la Forge 
wrote:

> OK, but
>
> 1. Still no warning from cursive or lein test and
> 2. I think the metadata goes after the arguments when defining multi-arity
> functions.
>
> On Wed, Oct 14, 2015 at 12:11 PM, Colin Yates 
> wrote:
>
>> Isn’t meta data before the symbol name?
>>
>> On 14 Oct 2015, at 17:09, William la Forge  wrote:
>>
>> Going forward, I'd like to deprecate some functions and have a warning
>> displayed on first use. So I've done this:
>>
>> (def emptyAAMap ^{:deprecated "0.3.4"}
>>   (new AAMap emptyNode {:comparator RT/DEFAULT_COMPARATOR}))
>>
>>
>> But I am not seeing any warnings from either lein or cursive. Do I need
>> to add a plugin?
>>
>> Thanks!
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/sWUz7VGLv_o/unsubscribe.
>> To unsubscribe from this group and all its topics, 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: deprecation warnings?

2015-10-14 Thread William la Forge
*warn-on-deprecated* would be super! :D

On Wed, Oct 14, 2015 at 1:44 PM, Alex Miller  wrote:

> You might wish to up-vote http://dev.clojure.org/jira/browse/CLJ-706
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/sWUz7VGLv_o/unsubscribe.
> To unsubscribe from this group and all its topics, 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: Ted Dziuba: The S in REST

2015-10-14 Thread Colin Yates
Not following this too closely, but CQRS and event sourcing is an incredibly 
powerful combination (particularly if you throw DDD in there as well) and might 
be a perfect fit here...
> On 14 Oct 2015, at 04:48, James Reeves  wrote:
> 
> On 13 October 2015 at 09:49, Patrick Kristiansen  > wrote:
> Has anyone read and given any thoughts to the ideas about immutability and 
> REST by Ted Dizuba here:
> 
> http://teddziuba.github.io/2014/08/18/the-s-in-rest/ 
> 
> 
> Has anyone done anything resembling this? I think the ideas sounds intriguing.
> 
> It's a reasonable start, but I don't think it goes far enough. Why make only 
> small parts of a system immutable? Why tie the canonical identifier for an 
> immutable value to a domain?
> 
> I'd be inclined to model the entire system as a reference. So we have 
> something that deferences it, producing an immutable snapshot at a certain 
> point in time, and we have something that atomically updates it.
> 
> For example, we could build a route that gives us an immutable snapshot of 
> the system, identified by a cryptographic hash. We could also supply a 
> hypertext reference in the response, which would function as a suggested 
> source for the snapshot.
> 
>   GET https://api.example.com/ 
>   => {:id #sha1 "aaa", :href #url "https://api.example.com/aaa 
> "}
> 
> Once we have the snapshot, we can query it. The simplest way would be via a 
> subpath:
> 
>   GET https://api.example.com/aaa/users 
>   => [{:id #sha1 "bbb", :name "Alice", :job-title "Cryptographer"}]
> 
> But we could conceive of more complex queries as well, ones that would enable 
> us to fetch multiple parts of the database simultaneously.
> 
> For updating the data, we need a route that accepts some data that represents 
> how the data is to be changed. So at its most basic, something like:
> 
>   POST https://api.example.com/ 
>   [[:set #sha1 "bbb" :job-title "Senior Cryptographer"]]
> 
> Of course, the difficulty with this architecture is that few databases have 
> fast, immutable snapshots built in, so you'd have to get a little creative 
> with your database design.
> 
> - James
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group 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: Inspecting the Call Stack on Recursive Calls

2015-10-14 Thread Philippe Guillebert
Hi

Well, you answered yourself, either replace recur with random-depth (and it
will consume stack), or add a counter in your recursion and (recur (inc i)).

Philippe


On Wed, Oct 14, 2015 at 2:41 AM, Jeremiah Via 
wrote:

> Hi all,
>
> I was curious to know if it is at all possible to determine how many times
> a function has been recursively called by inspecting the callstack.
>
> Given this code snippet:
>
> (defn ignored? [classname]
>   (let [ignored #{"callers" "dbg" "clojure.lang" "swank" "nrepl" "eval"}]
> (some #(re-find (re-pattern %) classname) ignored)))
>
> (defn callstack []
>   (let [fns (map #(str (.getClassName %))
>  (-> (Throwable.) .fillInStackTrace .getStackTrace))]
> (vec (doall (remove ignored? fns)
>
> (defn random-depth []
>   (pprint (callstack))
>   (if (> (Math/random) 0.5)
> (recur)))
>
> I get the following output:
>
> ["user$callstack"
>  "user$random_depth"
>  "clojure.main$repl$fn__7108"
>  "clojure.main$repl"
>  "clojure.core$apply"
>  "clojure.core$with_bindings_STAR_"
>  "java.util.concurrent.ThreadPoolExecutor"
>  "java.util.concurrent.ThreadPoolExecutor$Worker"
>  "java.lang.Thread"]
> ["user$callstack"
>  "user$random_depth"
>  "clojure.main$repl$fn__7108"
>  "clojure.main$repl"
>  "clojure.core$apply"
>  "clojure.core$with_bindings_STAR_"
>  "java.util.concurrent.ThreadPoolExecutor"
>  "java.util.concurrent.ThreadPoolExecutor$Worker"
>  "java.lang.Thread"]
>
> I would like to get a different stack on each iteration, but given that
> the whole point of recur is not to consume the stack while looping, I
> understand why this method would not work.
>
> Is there any other data that I could use to either get or approximate this
> information?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Philippe

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

2015-10-14 Thread Marc O'Morain
FYI - Trying to upgrade CircleCI I get a syntax error in clj-ssh (passing
too many argument to throw):

https://github.com/hugoduncan/clj-ssh/issues/39

I've logged the issue with them.



On 13 October 2015 at 15:01, Alex Miller  wrote:

> Clojure 1.8.0-beta1 is now available.
>
> Try it via
>
>- Download:
>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-beta1
>- Leiningen: [org.clojure/clojure "1.8.0-beta1"]
>
> Below is a list of the other changes included in beta1. See the full
> change log here: https://github.com/clojure/clojure/blob/master/changes.md
> .
>
>
>- CLJ-1456  Compiler now
>errors if too few or too many arguments to throw
>- CLJ-1282  quote now
>throws if passed more or less than one arg
>- CLJ-1210  Improved
>error message for (clojure.java.io/reader nil)
>- CLJ-1414  sort and
>sort-by now indicate sort is stable in docstring
>- CLJ-1765  areduce
>performance improvements
>- CLJ-1724  Remove
>unnecessary call to seq() in LazySeq.hashCode()
>- CLJ-1295  Improved
>array-map dissoc performance
>- CLJ-1277  Speed up
>printing of time instants with type hints
>- CLJ-1259  Speed up
>pprint and cl-format with type hints
>- CLJ-668  Improve slurp
>performance by using StringWriter and jio/copy
>- CLJ-1810  ATransientMap
>now marked public
>- CLJ-1653  str of an
>empty list should be "()"
>- CLJ-1567  Removed
>unused local in condp implementation
>- CLJ-1351  Unused
>swapThunk method was being emitted for fns with keyword callsites
>- CLJ-1329  Removed
>unused local in PersistentVector.cons()
>- CLJ-1380  3-arg
>ExceptionInfo constructor permitted nil data
>- CLJ-1226  set! of a
>deftype field using field-access syntax caused ClassCastException
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group 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: [ANN] Clojure 1.8.0-beta1

2015-10-14 Thread Mike Rodriguez
Just a heads up, I tried upliftign to Clojure 1.8.0-beta1 today and had a 
failure that is originating from potemkin "0.4.1".  I think the issue may 
be in its dependent project riddley "0.1.10".
I logged an issue there at https://github.com/ztellman/riddley/issues/18.

I haven't tracked down the cause of this problem right now.  I figure this 
may affect more people though, since I often read of people using potemkin 
in their projects.  These issues didn't seem to exists when I ran against 
some older potemkin versions (e.g. "0.3.2" was my test case).

On Tuesday, October 13, 2015 at 9:01:06 AM UTC-5, Alex Miller wrote:
>
> Clojure 1.8.0-beta1 is now available.
>
> Try it via
>
>- Download: 
>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-beta1
>- Leiningen: [org.clojure/clojure "1.8.0-beta1"]
>
> Below is a list of the other changes included in beta1. See the full 
> change log here: https://github.com/clojure/clojure/blob/master/changes.md
> .
>
>
>- CLJ-1456  Compiler now 
>errors if too few or too many arguments to throw
>- CLJ-1282  quote now 
>throws if passed more or less than one arg
>- CLJ-1210  Improved 
>error message for (clojure.java.io/reader nil)
>- CLJ-1414  sort and 
>sort-by now indicate sort is stable in docstring
>- CLJ-1765  areduce 
>performance improvements
>- CLJ-1724  Remove 
>unnecessary call to seq() in LazySeq.hashCode()
>- CLJ-1295  Improved 
>array-map dissoc performance
>- CLJ-1277  Speed up 
>printing of time instants with type hints
>- CLJ-1259  Speed up 
>pprint and cl-format with type hints
>- CLJ-668  Improve slurp 
>performance by using StringWriter and jio/copy
>- CLJ-1810  ATransientMap 
>now marked public
>- CLJ-1653  str of an 
>empty list should be "()"
>- CLJ-1567  Removed 
>unused local in condp implementation
>- CLJ-1351  Unused 
>swapThunk method was being emitted for fns with keyword callsites
>- CLJ-1329  Removed 
>unused local in PersistentVector.cons()
>- CLJ-1380  3-arg 
>ExceptionInfo constructor permitted nil data
>- CLJ-1226  set! of a 
>deftype field using field-access syntax caused ClassCastException
>
>

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


The Reading List

2015-10-14 Thread Alan Thompson
Hi,

Just saw a good presentation on InfoQ by Jason McCreary  (
http://www.infoq.com/presentations/the-reading-list) where he mentions
several topics from "The Reading List", which is an informal list of books
that are considered by many in the industry to be "required reading" for
software engineers.  He has a blog post with the full list
, reproduced
below.  Lots of good stuff to think about.

Alan



A few years ago I continued my journey to become a true software engineer
. I
interviewed with big tech names and worked with brilliant people. Along the
way, I asked for ways to improve my craft.

The following is the intersection of a long list of books. It has been
culled through cross-reference and repeated recommendation. I call this *The
Reading List*. Some believe it’s what every software engineer must read.
The Reading List

   - Agile Software Development
   

   - Agile Testing
   
   - Analysis Patterns
   

   - Art of Capacity Planning
   
   - Art of Software Testing
   
   - Clean Code
   

   - Code Complete 2
   

   - Continuous Delivery
   

   - Continuous Integration
   

   - Design Patterns
   

   - Domain Driven Design
   

   - Even Faster Web Sites
   
   - Experiences of Test Automation
   

   - Extreme Programming Explained: Embrace Change
   

   - Founders at Work 
   - Fundamentals of Object Oriented Design in UML
   

   - Growing Object-Oriented Software Guided by Tests
   

   - High Performance MySQL
   

   - High Performance Web Sites
   
   - Implementation Patterns
   
   - JavaScript The Good Parts
   
   - Joe Celko’s SQL for Smarties
   
   - Joe Celko’s Thinking in Sets
   
   - Large-Scale C++ Software Design
   
   - Lean Architecture
   

   - Lean Startup
   

   - Object Oriented Software Construction
   

   - Out of the Crisis
   
   - Patterns of Enterprise Application Architecture
   

   - Peopleware
   

   - Pragmatic Programmer
   
   - Refactoring Databases
   

   - Refactoring to Patterns
   
   - Refactoring
   

   - Service Design Patterns
   

Re: The Reading List

2015-10-14 Thread Dragan Djuric
Is there a living person who read all, or even a majority, of these books? 
If there is (although I doubt), what he/she thinks about them? I am 
genuinely interested. In my opinion, there is too much Cool Aid magic in 
the list, and too little of more tangible stuff. Is not that the books are 
useless, I just think that many of such books are really some good points 
mixed with too much of fluff to stretch to full books, unless you want to 
specialize in the book's topic. Some are outright non-topic in the context 
of Clojure, like Design Patterns or Growing OO Software...

I won't post my list, since I do not think it would be widely applicable, 
but when it is about the "THE" lists, I think those lists must be much, 
much shorter, and to the point.

On Wednesday, October 14, 2015 at 9:20:04 PM UTC+2, Alan Thompson wrote:
>
> Hi,
>
> Just saw a good presentation on InfoQ by Jason McCreary  (
> http://www.infoq.com/presentations/the-reading-list) where he mentions 
> several topics from "The Reading List", which is an informal list of books 
> that are considered by many in the industry to be "required reading" for 
> software engineers.  He has a blog post with the full list 
> , reproduced 
> below.  Lots of good stuff to think about.
>
> Alan
>
>
> 
>
> A few years ago I continued my journey to become a true software engineer 
> . I 
> interviewed with big tech names and worked with brilliant people. Along the 
> way, I asked for ways to improve my craft.
>
> The following is the intersection of a long list of books. It has been 
> culled through cross-reference and repeated recommendation. I call this *The 
> Reading List*. Some believe it’s what every software engineer must read.
> The Reading List
>
>- Agile Software Development 
>
> 
>- Agile Testing 
>
>- Analysis Patterns 
>
> 
>- Art of Capacity Planning 
>
> 
>- Art of Software Testing 
>
>- Clean Code 
>
> 
>- Code Complete 2 
>
> 
>- Continuous Delivery 
>
> 
>- Continuous Integration 
>
> 
>- Design Patterns 
>
> 
>- Domain Driven Design 
>
> 
>- Even Faster Web Sites 
>
>- Experiences of Test Automation 
>
> 
>- Extreme Programming Explained: Embrace Change 
>
> 
>- Founders at Work 
>- Fundamentals of Object Oriented Design in UML 
>
> 
>- Growing Object-Oriented Software Guided by Tests 
>
> 
>- High Performance MySQL 
>
> 
>- High Performance Web Sites 
>
>- Implementation Patterns 
>
>- JavaScript The Good Parts 
>
> 
>- Joe Celko’s SQL for Smarties 
>
>- Joe Celko’s Thinking in Sets 
>
>- Large-Scale C++ Software Design 
>
> 
>- Lean Architecture 
>
> 
>- Lean Startup 
>

Re: [ANN] Clojure 1.8.0-beta1

2015-10-14 Thread Marc O'Morain
I just ran the CircleCI code-base under 1.8 beta 1 to see if there were any
gains in compile time (which is in the region of 90 seconds for our main
app). The clj-ssh issue was the only third-party lib that didn't work.

Here is our compile time on Clojure 1.7 and 1.8:

Clojure 1.7:
real 1m30.622s user 1m32.535s sys 0m4.182s
real 1m33.238s user 1m36.139s sys 0m4.381s

Clojure 1.8 beta 1:
real 1m31.001s user 1m41.139s sys 0m4.432s
real 1m34.107s user 1m42.723s sys 0m4.742s

Marc


On 14 October 2015 at 20:56, Mike Rodriguez  wrote:

> Just a heads up, I tried upliftign to Clojure 1.8.0-beta1 today and had a
> failure that is originating from potemkin "0.4.1".  I think the issue may
> be in its dependent project riddley "0.1.10".
> I logged an issue there at https://github.com/ztellman/riddley/issues/18.
>
> I haven't tracked down the cause of this problem right now.  I figure this
> may affect more people though, since I often read of people using potemkin
> in their projects.  These issues didn't seem to exists when I ran against
> some older potemkin versions (e.g. "0.3.2" was my test case).
>
> On Tuesday, October 13, 2015 at 9:01:06 AM UTC-5, Alex Miller wrote:
>>
>> Clojure 1.8.0-beta1 is now available.
>>
>> Try it via
>>
>>- Download:
>>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-beta1
>>- Leiningen: [org.clojure/clojure "1.8.0-beta1"]
>>
>> Below is a list of the other changes included in beta1. See the full
>> change log here:
>> https://github.com/clojure/clojure/blob/master/changes.md.
>>
>>
>>- CLJ-1456  Compiler now
>>errors if too few or too many arguments to throw
>>- CLJ-1282  quote now
>>throws if passed more or less than one arg
>>- CLJ-1210  Improved
>>error message for (clojure.java.io/reader nil)
>>- CLJ-1414  sort and
>>sort-by now indicate sort is stable in docstring
>>- CLJ-1765  areduce
>>performance improvements
>>- CLJ-1724  Remove
>>unnecessary call to seq() in LazySeq.hashCode()
>>- CLJ-1295  Improved
>>array-map dissoc performance
>>- CLJ-1277  Speed up
>>printing of time instants with type hints
>>- CLJ-1259  Speed up
>>pprint and cl-format with type hints
>>- CLJ-668  Improve slurp
>>performance by using StringWriter and jio/copy
>>- CLJ-1810  ATransientMap
>>now marked public
>>- CLJ-1653  str of an
>>empty list should be "()"
>>- CLJ-1567  Removed
>>unused local in condp implementation
>>- CLJ-1351  Unused
>>swapThunk method was being emitted for fns with keyword callsites
>>- CLJ-1329  Removed
>>unused local in PersistentVector.cons()
>>- CLJ-1380  3-arg
>>ExceptionInfo constructor permitted nil data
>>- CLJ-1226  set! of a
>>deftype field using field-access syntax caused ClassCastException
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group 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 

Re: [ANN] Clojure 1.8.0-beta1

2015-10-14 Thread Marc O'Morain
Agreed :)

On 14 October 2015 at 23:08, Alex Miller  wrote:

> This is a bug in the original code that is being caught by the stricter
> check on throws (at
> https://github.com/hugoduncan/clj-ssh/blob/develop/src/clj_ssh/ssh.clj#L301)
> - name there should be the final arg to ex-info, not to throw.
>
> So I'm going to call that a good regression. :)
>
> On Wednesday, October 14, 2015 at 3:35:09 PM UTC-5, Marc O'Morain wrote:
>>
>> FYI - Trying to upgrade CircleCI I get a syntax error in clj-ssh (passing
>> too many argument to throw):
>>
>> https://github.com/hugoduncan/clj-ssh/issues/39
>>
>> I've logged the issue with them.
>>
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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

2015-10-14 Thread Mike
Thanks James!  You helped me get another step along the way, I got this 
working.

Of course you mentioned Crouton; you should and I asked for advice on my 
approach.  So please allow me to expand the problem statement and you may 
advise me further...

Once I get this HTML parsed, I know that somewhere buried in this page is 
an ** tag that has *name="name"* attribute where I will specify the 
name value at run time.  I will need to be able to programmatically find 
this tag and pul some values out of it.  Will using *clj-tagsoup* or *Crouton 
*make this location operation easier?  Perhaps even using *Enlive *might 
make it easier, since the location and path to the tag is not known; it 
must be located.

On Wednesday, October 14, 2015 at 1:53:11 PM UTC-5, James Reeves wrote: 
>
>
> Crouton is an alternative HTML parsing library (that's coincidentally 
> written by me) and can be found at: https://github.com/weavejester/crouton
>
> Crouton uses a slightly different output syntax, which is compatible with 
> Clojure's xml zipper functions, making it more suitable for document 
> searches and traversal (IMO).
>
> - James
>
>

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

2015-10-14 Thread Ghadi Shayban
Marc,
Any changes up or down in run-time performance (post-startup)?

On Wednesday, October 14, 2015 at 5:11:20 PM UTC-4, Marc O'Morain wrote:
>
> I just ran the CircleCI code-base under 1.8 beta 1 to see if there were 
> any gains in compile time (which is in the region of 90 seconds for our 
> main app). The clj-ssh issue was the only third-party lib that didn't work.
>
> Here is our compile time on Clojure 1.7 and 1.8:
>
> Clojure 1.7:
> real 1m30.622s user 1m32.535s sys 0m4.182s
> real 1m33.238s user 1m36.139s sys 0m4.381s
>
> Clojure 1.8 beta 1:
> real 1m31.001s user 1m41.139s sys 0m4.432s
> real 1m34.107s user 1m42.723s sys 0m4.742s
>
> Marc
>
>
> On 14 October 2015 at 20:56, Mike Rodriguez  > wrote:
>
>> Just a heads up, I tried upliftign to Clojure 1.8.0-beta1 today and had a 
>> failure that is originating from potemkin "0.4.1".  I think the issue may 
>> be in its dependent project riddley "0.1.10".
>> I logged an issue there at https://github.com/ztellman/riddley/issues/18.
>>
>> I haven't tracked down the cause of this problem right now.  I figure 
>> this may affect more people though, since I often read of people using 
>> potemkin in their projects.  These issues didn't seem to exists when I ran 
>> against some older potemkin versions (e.g. "0.3.2" was my test case).
>>
>> On Tuesday, October 13, 2015 at 9:01:06 AM UTC-5, Alex Miller wrote:
>>>
>>> Clojure 1.8.0-beta1 is now available.
>>>
>>> Try it via
>>>
>>>- Download: 
>>>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-beta1
>>>- Leiningen: [org.clojure/clojure "1.8.0-beta1"]
>>>
>>> Below is a list of the other changes included in beta1. See the full 
>>> change log here: 
>>> https://github.com/clojure/clojure/blob/master/changes.md.
>>>
>>>
>>>- CLJ-1456  Compiler 
>>>now errors if too few or too many arguments to throw
>>>- CLJ-1282  quote now 
>>>throws if passed more or less than one arg
>>>- CLJ-1210  Improved 
>>>error message for (clojure.java.io/reader nil)
>>>- CLJ-1414  sort and 
>>>sort-by now indicate sort is stable in docstring
>>>- CLJ-1765  areduce 
>>>performance improvements
>>>- CLJ-1724  Remove 
>>>unnecessary call to seq() in LazySeq.hashCode()
>>>- CLJ-1295  Improved 
>>>array-map dissoc performance
>>>- CLJ-1277  Speed up 
>>>printing of time instants with type hints
>>>- CLJ-1259  Speed up 
>>>pprint and cl-format with type hints
>>>- CLJ-668  Improve slurp 
>>>performance by using StringWriter and jio/copy
>>>- CLJ-1810  ATransientMap 
>>>now marked public
>>>- CLJ-1653  str of an 
>>>empty list should be "()"
>>>- CLJ-1567  Removed 
>>>unused local in condp implementation
>>>- CLJ-1351  Unused 
>>>swapThunk method was being emitted for fns with keyword callsites
>>>- CLJ-1329  Removed 
>>>unused local in PersistentVector.cons()
>>>- CLJ-1380  3-arg 
>>>ExceptionInfo constructor permitted nil data
>>>- CLJ-1226  set! of a 
>>>deftype field using field-access syntax caused ClassCastException
>>>
>>> -- 
>> 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

Re: deprecation warnings?

2015-10-14 Thread Colin Fleming
Sadly Cursive doesn't show this right now - it definitely should, though.

Cheers,
Colin

On 15 October 2015 at 06:55, William la Forge  wrote:

> *warn-on-deprecated* would be super! :D
>
> On Wed, Oct 14, 2015 at 1:44 PM, Alex Miller  wrote:
>
>> You might wish to up-vote http://dev.clojure.org/jira/browse/CLJ-706
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/sWUz7VGLv_o/unsubscribe.
>> To unsubscribe from this group and all its topics, 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: [ANN] Clojure 1.8.0-beta1

2015-10-14 Thread Marc O'Morain
I don't have a good way to measure runtime like that I'm afraid.

On 14 October 2015 at 22:39, Ghadi Shayban  wrote:

> Marc,
> Any changes up or down in run-time performance (post-startup)?
>
> On Wednesday, October 14, 2015 at 5:11:20 PM UTC-4, Marc O'Morain wrote:
>>
>> I just ran the CircleCI code-base under 1.8 beta 1 to see if there were
>> any gains in compile time (which is in the region of 90 seconds for our
>> main app). The clj-ssh issue was the only third-party lib that didn't work.
>>
>> Here is our compile time on Clojure 1.7 and 1.8:
>>
>> Clojure 1.7:
>> real 1m30.622s user 1m32.535s sys 0m4.182s
>> real 1m33.238s user 1m36.139s sys 0m4.381s
>>
>> Clojure 1.8 beta 1:
>> real 1m31.001s user 1m41.139s sys 0m4.432s
>> real 1m34.107s user 1m42.723s sys 0m4.742s
>>
>> Marc
>>
>>
>> On 14 October 2015 at 20:56, Mike Rodriguez  wrote:
>>
>>> Just a heads up, I tried upliftign to Clojure 1.8.0-beta1 today and had
>>> a failure that is originating from potemkin "0.4.1".  I think the issue may
>>> be in its dependent project riddley "0.1.10".
>>> I logged an issue there at https://github.com/ztellman/riddley/issues/18
>>> .
>>>
>>> I haven't tracked down the cause of this problem right now.  I figure
>>> this may affect more people though, since I often read of people using
>>> potemkin in their projects.  These issues didn't seem to exists when I ran
>>> against some older potemkin versions (e.g. "0.3.2" was my test case).
>>>
>>> On Tuesday, October 13, 2015 at 9:01:06 AM UTC-5, Alex Miller wrote:

 Clojure 1.8.0-beta1 is now available.

 Try it via

- Download:
https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-beta1
- Leiningen: [org.clojure/clojure "1.8.0-beta1"]

 Below is a list of the other changes included in beta1. See the full
 change log here:
 https://github.com/clojure/clojure/blob/master/changes.md.


- CLJ-1456  Compiler
now errors if too few or too many arguments to throw
- CLJ-1282  quote now
throws if passed more or less than one arg
- CLJ-1210  Improved
error message for (clojure.java.io/reader nil)
- CLJ-1414  sort and
sort-by now indicate sort is stable in docstring
- CLJ-1765  areduce
performance improvements
- CLJ-1724  Remove
unnecessary call to seq() in LazySeq.hashCode()
- CLJ-1295  Improved
array-map dissoc performance
- CLJ-1277  Speed up
printing of time instants with type hints
- CLJ-1259  Speed up
pprint and cl-format with type hints
- CLJ-668  Improve
slurp performance by using StringWriter and jio/copy
- CLJ-1810  ATransientMap
now marked public
- CLJ-1653  str of an
empty list should be "()"
- CLJ-1567  Removed
unused local in condp implementation
- CLJ-1351  Unused
swapThunk method was being emitted for fns with keyword callsites
- CLJ-1329  Removed
unused local in PersistentVector.cons()
- CLJ-1380  3-arg
ExceptionInfo constructor permitted nil data
- CLJ-1226  set! of a
deftype field using field-access syntax caused ClassCastException

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

Re: [ANN] Clojure 1.8.0-beta1

2015-10-14 Thread Alex Miller
This is a bug in the original code that is being caught by the stricter 
check on throws 
(at 
https://github.com/hugoduncan/clj-ssh/blob/develop/src/clj_ssh/ssh.clj#L301) 
- name there should be the final arg to ex-info, not to throw.

So I'm going to call that a good regression. :)

On Wednesday, October 14, 2015 at 3:35:09 PM UTC-5, Marc O'Morain wrote:
>
> FYI - Trying to upgrade CircleCI I get a syntax error in clj-ssh (passing 
> too many argument to throw):
>
> https://github.com/hugoduncan/clj-ssh/issues/39
>
> I've logged the issue with them.
>
>
>

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


Re: Newbie trying HTML parsing

2015-10-14 Thread James Reeves
I'm not that familiar with Enlive, so I can't comment on the ease of that
approach.

However, the way I'd personally do it is that I'd make use of Crouton and
the zipper functions in clojure.zip and clojure.data.zip. A zipper is a
functional way of navigating an immutable data structure.

So first add Crouton and data.zip to your dependencies:

  [[crouton "0.1.2"]
   [org.clojure/data.zip "0.1.1"]]

Then use Crouton to parse the body of the response from clj-http:

  (crouton.html/parse (:body response))

This will give you a data structure that's compatible with clojure.xml, and
therefore compatible with the XML zipper functions

(dzx/xml1-> (z/xml-zip parsed-html)
  dz/descendents
  (dzx/tag= "input")
  (dzx/attr= "name" "foo")

In the above case I'm using the following namespace aliases:

  (require '[clojure.zip :as z]
   '[clojure.data.zip :as dz]
   '[clojure.data.zip.xml :as dzx])

It's been a while since I've needed to traverse X/HTML in Clojure though,
so my code might be a little off.

- James

On 14 October 2015 at 22:53, Mike  wrote:

> Thanks James!  You helped me get another step along the way, I got this
> working.
>
> Of course you mentioned Crouton; you should and I asked for advice on my
> approach.  So please allow me to expand the problem statement and you may
> advise me further...
>
> Once I get this HTML parsed, I know that somewhere buried in this page is
> an ** tag that has *name="name"* attribute where I will specify
> the name value at run time.  I will need to be able to programmatically
> find this tag and pul some values out of it.  Will using *clj-tagsoup* or 
> *Crouton
> *make this location operation easier?  Perhaps even using *Enlive *might
> make it easier, since the location and path to the tag is not known; it
> must be located.
>
> On Wednesday, October 14, 2015 at 1:53:11 PM UTC-5, James Reeves wrote:
>>
>>
>> Crouton is an alternative HTML parsing library (that's coincidentally
>> written by me) and can be found at:
>> https://github.com/weavejester/crouton
>>
>> Crouton uses a slightly different output syntax, which is compatible with
>> Clojure's xml zipper functions, making it more suitable for document
>> searches and traversal (IMO).
>>
>> - James
>>
>>

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

2015-10-14 Thread Patrick Kristiansen
On Wednesday, October 14, 2015 at 5:49:06 AM UTC+2, James Reeves wrote:
>
> Of course, the difficulty with this architecture is that few databases 
> have fast, immutable snapshots built in, so you'd have to get a little 
> creative with your database design.
>

Which, I guess, is where Datomic would fit in perfectly :-)

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

2015-10-14 Thread Mike
So now I'm trying to make the conversion to Crouton.  Of course that is not 
going well.  Here is a chunk of code:

(ns one.core
  (:gen-class))

(require '[clj-http.client :as client]
 '[clojure.zip :as z]
 '[clojure.data.zip :as dz]
 '[clojure.data.zip.xml :as dzx]
 '[crouton.html :as html])

(defn get-post-data [url]
  (client/get url))

(def response (get-post-data login-URL))

(html/parse (:body response))

The *response *value is correct (its the HTML), but when I try to execute 
the *html/parse* I get:

java.io.FileNotFoundException: 




 User Login Page
<\title>

Re: Newbie trying HTML parsing

2015-10-14 Thread James Reeves
It looks like the response body is a string rather than a stream. Try using
crouton.html/parse-string instead.

- James

On 15 October 2015 at 01:27, Mike  wrote:

> So now I'm trying to make the conversion to Crouton.  Of course that is
> not going well.  Here is a chunk of code:
>
> (ns one.core
>   (:gen-class))
>
> (require '[clj-http.client :as client]
>  '[clojure.zip :as z]
>  '[clojure.data.zip :as dz]
>  '[clojure.data.zip.xml :as dzx]
>  '[crouton.html :as html])
>
> (defn get-post-data [url]
>   (client/get url))
>
> (def response (get-post-data login-URL))
>
> (html/parse (:body response))
>
> The *response *value is correct (its the HTML), but when I try to execute
> the *html/parse* I get:
>
> java.io.FileNotFoundException:
>
>
> 
> 
>  User Login Page
> <\title>
> 

Tessel and ClojureScript

2015-10-14 Thread Erlis Vidal
This question is for the clojurescript guys.

Do you think it's possible to code the Tessel (https://tessel.io/) using
ClojureScript?

I really want to have fun :)

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


aatree release 0.3.3--AASet

2015-10-14 Thread William la Forge
The aatree project provides fully compatible alternatives to Clojure 
sorted-map, sorted-set and vector, with several extensions:
  - AAVector supports add/drop at any point using addn and dropn.
  - AAMap and AASet implement Reversible, Counted, Indexed and Sorted
  - CountedSequence implements Counted and do not use synchronized.
  - Lazy deserialization/reserialization provides ridiculously fast 
deserialize/update/reserialize processing typical of disk access.

Release 0.3.3:

   -   AASet has been implemented for completeness. AASet's can be nested 
   within AAMaps and AAVectors and still provide lazy deserialization / 
   reserialization. Serialization of an AASet retains only a single copy of 
   each value, not 2 copies (key and value).
   -   Examples provided of basic AASet, lazy AASet and nesting lazy AASet 
   in a lazy AAMap and lazy AAVector.
   

https://github.com/laforge49/aatree#readme

On Clojars: https://clojars.org/aatree

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


Where I can learn this?

2015-10-14 Thread Erlis Vidal
Guys,

I've just finished the first episode of "parens of the dead" and was mind
blown for what I saw there.

http://www.parens-of-the-dead.com/e1.html

Have you been near someone that do something cool and you have to ask, "how
you did that?" Well, every second on the video I was having that feeling. I
don't work much in clojure, just in my spare time, is my dream language, I
use it in emacs, but I'm really not using any of the things I saw in the
video.

- html completion
- refactoring (rename, move to function)
- adding dependencies and automatic project.clj modificaiton

Is there a way I can learn what emacs packages was used for all that?

I know this is not a clojure question but I'll die to have a screencast
that teach all those keystrokes and reveal the real power of emacs +
clojure.

It was really nice to see the mouse in the middle of the screen and not
moving at all. :D

Thanks for sharing! In just 11 minutes you empowered my Clojure passion
even more!

Erlis

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

2015-10-14 Thread Matching Socks
(Enlive wraps JSoup and TagSoup and causes them both to return a value in 
the same format as clojure.xml.  Likewise, Enlive's transformation features 
will work with anything that looks like clojure.xml.)

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