Re: Largest Clojure codebases?

2015-11-15 Thread Marc O'Morain
We have a large app at CircleCI - as of September:





"The repo for our main app contains 93,983 lines of Clojure code. The src 
directory of our main app contains 369 namespaces."





http://blog.circleci.com/why-were-no-longer-using-core-typed/

On Sun, Nov 15, 2015 at 7:22 PM, null  wrote:

> I've been having a (friendly) argument with a friend who is an old-school 
> OOP programmer.  He insists that you need objects to make large-scale 
> codebases legible and maintainable over the long run.  Quite apart from 
> this argument's virtues or lack thereof, this made me curious -- what are 
> the largest programs written in Clojure in terms of LOC?  I know I've seen 
> mentions of 50k-100k LOC projects (World Singles, if I'm remembering 
> correctly), but are there any that are larger?
>Vikram
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group 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.


Largest Clojure codebases?

2015-11-15 Thread dilettante . coder
I've been having a (friendly) argument with a friend who is an old-school 
OOP programmer.  He insists that you need objects to make large-scale 
codebases legible and maintainable over the long run.  Quite apart from 
this argument's virtues or lack thereof, this made me curious -- what are 
the largest programs written in Clojure in terms of LOC?  I know I've seen 
mentions of 50k-100k LOC projects (World Singles, if I'm remembering 
correctly), but are there any that are larger?

   Vikram

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

2015-11-15 Thread Andy Fingerhut
Eastwood, the Clojure lint tool, version 0.2.2 has been released.  See
install instructions and complete documentation at [1].

Below are some of the changes since version 0.2.1.  A complete list is at
[2].

Go squash some bugs!

Jonas Enlund, Nicola Mometto, and Andy Fingerhut

[1] https://github.com/jonase/eastwood
[2]
https://github.com/jonase/eastwood/blob/master/changes.md#changes-from-version-021-to-022


New linter:

* New linter :wrong-pre-post that warns about several kinds of wrong or
suspicious preconditions or postconditions in a function.
https://github.com/jonase/eastwood#keyword-typos


Other enhancements and bug fixes:

* Updates to support Clojure 1.8.0-RC1.
* Several fixes to the bad-arglists linter.
* Picture of Clint Eastwood in the README.

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

2015-11-15 Thread Timothy Baldridge
It's funny, because most of the larger OOP projects I worked on were large
because of class bloat, not because of business concerns. For example, the
C# app I used to work on was a more or less simple CRUD app. We had a ORM
that served up objects to a Silverlight UI. So if we wanted to display
information about a person on the UI we normally had to modify around 5
classes in 5 files. We had the following layers

ORM - 1.4MB of generated C# for interfacing with the 200 or so SQL tables
we had
DTO - Data Transfer Object, where used "normal" C# objects to abstract the
ORM. This is where we had the "Person" object
API - A web service that served up DTOs over HTTP
Data Model - Processed views of DTOs formatted in a way that was easily
viewable by the UI
View Model - UI classes that would take data from a Data Model and emit UI
controls.

All of that ceremonythat is replaced by one thing in Clojure...data.
Hashmaps and vectors replace all the junk you see above.

So that's where I often assert "Yes, you may have 1 million lines of Java
codebut that would only be ~10,000 lines of Clojure." With proper
application of data driven systems (data that configures pipelines and
writes code) you can easily get a 100:1 ratio of Java to Clojure code.

Timothy


On Sun, Nov 15, 2015 at 12:48 PM, Marc O'Morain  wrote:

> We have a large app at CircleCI - as of September:
>
> "The repo for our main app contains 93,983 lines of Clojure code. The src 
> directory
> of our main app contains 369 namespaces."
>
> http://blog.circleci.com/why-were-no-longer-using-core-typed/
>
>
>
> On Sun, Nov 15, 2015 at 7:22 PM, dilettante.co...@live.com <
> dilettante.co...@live.com> wrote:
>
>> I've been having a (friendly) argument with a friend who is an old-school
>> OOP programmer.  He insists that you need objects to make large-scale
>> codebases legible and maintainable over the long run.  Quite apart from
>> this argument's virtues or lack thereof, this made me curious -- what are
>> the largest programs written in Clojure in terms of LOC?  I know I've seen
>> mentions of 50k-100k LOC projects (World Singles, if I'm remembering
>> correctly), but are there any that are larger?
>>
>>Vikram
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

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


Re: Parens of the Dead, a Clojure + ClojureScript video series

2015-11-15 Thread Andrea Russo
Wonderful screencasts! I'll use it to shock people!

Thank you very much for this work,
Andrea.

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

2015-11-15 Thread Colin Yates
Exactly this. I couldn’t find a reliable way of counting LOC but my 
(Clojure/ClojureSciprt) src tree (excluding test) in the project I have to hand 
is 1.5MB.


> On 15 Nov 2015, at 21:27, Timothy Baldridge  wrote:
> 
> It's funny, because most of the larger OOP projects I worked on were large 
> because of class bloat, not because of business concerns. For example, the C# 
> app I used to work on was a more or less simple CRUD app. We had a ORM that 
> served up objects to a Silverlight UI. So if we wanted to display information 
> about a person on the UI we normally had to modify around 5 classes in 5 
> files. We had the following layers
> 
> ORM - 1.4MB of generated C# for interfacing with the 200 or so SQL tables we 
> had
> DTO - Data Transfer Object, where used "normal" C# objects to abstract the 
> ORM. This is where we had the "Person" object 
> API - A web service that served up DTOs over HTTP
> Data Model - Processed views of DTOs formatted in a way that was easily 
> viewable by the UI
> View Model - UI classes that would take data from a Data Model and emit UI 
> controls. 
> 
> All of that ceremonythat is replaced by one thing in Clojure...data. 
> Hashmaps and vectors replace all the junk you see above. 
> 
> So that's where I often assert "Yes, you may have 1 million lines of Java 
> codebut that would only be ~10,000 lines of Clojure." With proper 
> application of data driven systems (data that configures pipelines and writes 
> code) you can easily get a 100:1 ratio of Java to Clojure code. 
> 
> Timothy
> 
> 
> On Sun, Nov 15, 2015 at 12:48 PM, Marc O'Morain  > wrote:
> We have a large app at CircleCI - as of September:
> 
> "The repo for our main app contains 93,983 lines of Clojure code. The src 
> directory of our main app contains 369 namespaces."
> 
> http://blog.circleci.com/why-were-no-longer-using-core-typed/ 
> 
> 
> 
> 
> On Sun, Nov 15, 2015 at 7:22 PM, dilettante.co...@live.com 
>   > wrote:
> 
> I've been having a (friendly) argument with a friend who is an old-school OOP 
> programmer.  He insists that you need objects to make large-scale codebases 
> legible and maintainable over the long run.  Quite apart from this argument's 
> virtues or lack thereof, this made me curious -- what are the largest 
> programs written in Clojure in terms of LOC?  I know I've seen mentions of 
> 50k-100k LOC projects (World Singles, if I'm remembering correctly), but are 
> there any that are larger?
> 
>Vikram
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com 
> 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com 
> 
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com 
> 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com 
> 
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en 
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> 
> 
> -- 
> “One of the main causes of the fall of the Roman Empire was that–lacking 
> zero–they had no way to indicate successful termination of their C programs.”
> (Robert Firth)
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that 

Re: Largest Clojure codebases?

2015-11-15 Thread dennis zhuang
I use cloc(http://cloc.sourceforge.net/) to counting the LOC of our
projects, it's total about 41025 lines of Clojure  code.






2015-11-16 7:22 GMT+08:00 Colin Yates :

> Exactly this. I couldn’t find a reliable way of counting LOC but my
> (Clojure/ClojureSciprt) src tree (excluding test) in the project I have to
> hand is 1.5MB.
>
>
> On 15 Nov 2015, at 21:27, Timothy Baldridge  wrote:
>
> It's funny, because most of the larger OOP projects I worked on were large
> because of class bloat, not because of business concerns. For example, the
> C# app I used to work on was a more or less simple CRUD app. We had a ORM
> that served up objects to a Silverlight UI. So if we wanted to display
> information about a person on the UI we normally had to modify around 5
> classes in 5 files. We had the following layers
>
> ORM - 1.4MB of generated C# for interfacing with the 200 or so SQL tables
> we had
> DTO - Data Transfer Object, where used "normal" C# objects to abstract the
> ORM. This is where we had the "Person" object
> API - A web service that served up DTOs over HTTP
> Data Model - Processed views of DTOs formatted in a way that was easily
> viewable by the UI
> View Model - UI classes that would take data from a Data Model and emit UI
> controls.
>
> All of that ceremonythat is replaced by one thing in Clojure...data.
> Hashmaps and vectors replace all the junk you see above.
>
> So that's where I often assert "Yes, you may have 1 million lines of Java
> codebut that would only be ~10,000 lines of Clojure." With proper
> application of data driven systems (data that configures pipelines and
> writes code) you can easily get a 100:1 ratio of Java to Clojure code.
>
> Timothy
>
>
> On Sun, Nov 15, 2015 at 12:48 PM, Marc O'Morain  wrote:
>
>> We have a large app at CircleCI - as of September:
>>
>> "The repo for our main app contains 93,983 lines of Clojure code. The src 
>> directory
>> of our main app contains 369 namespaces."
>>
>> http://blog.circleci.com/why-were-no-longer-using-core-typed/
>>
>>
>>
>> On Sun, Nov 15, 2015 at 7:22 PM, dilettante.co...@live.com <
>> dilettante.co...@live.com> wrote:
>>
>>> I've been having a (friendly) argument with a friend who is an
>>> old-school OOP programmer.  He insists that you need objects to make
>>> large-scale codebases legible and maintainable over the long run.  Quite
>>> apart from this argument's virtues or lack thereof, this made me curious --
>>> what are the largest programs written in Clojure in terms of LOC?  I know
>>> I've seen mentions of 50k-100k LOC projects (World Singles, if I'm
>>> remembering correctly), but are there any that are larger?
>>>
>>>Vikram
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> “One of the main causes of the fall of the Roman Empire was that–lacking
> zero–they had no way to indicate successful termination of their C
> programs.”
> (Robert Firth)
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group 

Re: [ANN] Eastwood, the Clojure lint tool, version 0.2.2 released

2015-11-15 Thread Andy Fingerhut
Sorry, that link to the docs on the new wrong pre/post-condition linter
should have been: https://github.com/jonase/eastwood#wrong-pre-post

Andy

On Sun, Nov 15, 2015 at 1:25 PM, Andy Fingerhut 
wrote:

> Eastwood, the Clojure lint tool, version 0.2.2 has been released.  See
> install instructions and complete documentation at [1].
>
> Below are some of the changes since version 0.2.1.  A complete list is at
> [2].
>
> Go squash some bugs!
>
> Jonas Enlund, Nicola Mometto, and Andy Fingerhut
>
> [1] https://github.com/jonase/eastwood
> [2]
> https://github.com/jonase/eastwood/blob/master/changes.md#changes-from-version-021-to-022
>
>
> New linter:
>
> * New linter :wrong-pre-post that warns about several kinds of wrong or
> suspicious preconditions or postconditions in a function.
> https://github.com/jonase/eastwood#keyword-typos
>
>
> Other enhancements and bug fixes:
>
> * Updates to support Clojure 1.8.0-RC1.
> * Several fixes to the bad-arglists linter.
> * Picture of Clint Eastwood in the README.
>
>

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

2015-11-15 Thread Andy Fingerhut
With updates I have made in the latest release of Eastwood 0.2.2 (announced
in a separate message), I am seeing pretty much identical linting results
running Eastwood on about 80 Clojure contrib and 3rd party libraries when
using Clojure 1.8.0-RC1 as I see with Clojure 1.7.0.  The run time is
nearly the same -- about 2% longer with 1.8.0-RC1, but I only ran each set
of tests once, and that could be within the range of variability across
runs.

Andy


On Wed, Nov 11, 2015 at 12:02 PM, Andy Fingerhut 
wrote:

> Results of some testing done on 1.8.0-RC1:
>
> Ran 'mvn clean test' on a few OS/JDK combos that are not tested as often.
> Reason: there have been (or still are) build or test failures with some of
> them.  All JDKs listed below were 64-bit.
>
> Windows 7 Enterprise SP1 + Oracle JDK 1.7.0_80-b15: ok 3/3 trials
> Ubuntu 14.04.3 LTS + OpenJDK 1.7.0_85: ok 3/3 trials
> Ubuntu 14.04.3 LTS + IBM JDK 1.7.0: ok 10/10 trials, as long as failing
> tests mentioned in http://dev.clojure.org/jira/browse/CLJ-1678 are
> commented out
> Ubuntu 14.04.3 LTS + IBM JDK 1.8.0 (based on jdk8u51-b15): same as for IBM
> JDK 1.7.0
> Mac OS X 10.11.1 + Oracle JDK 1.8.0_11: ok 631/631 trials
>
> There were some JVM crashes during 'mvn test' that I have seen with an
> earlier version of IBM JDK 1.8.0 (based on jdk8u45-b13), but with the
> version mentioned above those seem to be gone.  The older one failed 5 out
> of 10 trials.  The newer one gave passing test results with no JVM crash 10
> out of 10 trials.
>
> I plan to, but haven't yet, compared Eastwood results with 1.8.0-RC1 vs.
> 1.7.0.  That will take some work before I can give those results, primarily
> updating Eastwood to work with 1.8.0-RC1.  Eastwood makes some assumptions
> about the structure of ASTs (abstract syntax trees) that 1.8.0-RC!'s
> :rettag addition changed.  I don't think it is much work, but not sure when
> I will be able to get to it.  Until then, I have the following message near
> the beginning of Eastwood's README:
>
> It has been tried with some of the Clojure 1.8.0-alpha versions, but there
> are known problems there (e.g. incorrect warning about misplaced
> docstrings, perhaps incorrect warnings about wrong tags, etc.)
>
> Andy
>
>
> On Tue, Nov 10, 2015 at 9:30 AM, Alex Miller  wrote:
>
>> Clojure 1.8.0-RC1 is now available. *This build is a "release
>> candidate"!* We would appreciate any and all testing you can do on your
>> own libraries or internal projects to find problems. If no problems are
>> found, we expect to make this the 1.8.0 final release!
>>
>> Try it via
>>
>>- Download:
>>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-RC1
>>- Leiningen: [org.clojure/clojure "1.8.0-RC1"]
>>
>> Below is the only change since 1.8.0-beta2. See the full 1.8 change log
>> here: https://github.com/clojure/clojure/blob/master/changes.md.
>>
>>- CLJ-1845  Make
>>clojure.core/load dynamic so it can be redef'ed even with direct linking
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group 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: Parens of the Dead, a Clojure + ClojureScript video series

2015-11-15 Thread William Swaney
Cool, thanks for doing these!

Bill



On Sunday, November 15, 2015 at 11:15:46 AM UTC-8, Magnar Sveen wrote:
>
> I've made a short video series on writing a game with Clojure and 
> ClojureScript. The last episode is out today, so the series is complete. 
> Hope you find some entertainment in it. :-)
>
> http://www.parens-of-the-dead.com/
>
> - Magnar
>
>
>

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

2015-11-15 Thread Gregg Reynolds
I'm reminded of the old joke: to err is human; to really screw up you need
a computer (read: OO).
On Nov 15, 2015 3:27 PM, "Timothy Baldridge"  wrote:

> It's funny, because most of the larger OOP projects I worked on were large
> because of class bloat, not because of business concerns. For example, the
> C# app I used to work on was a more or less simple CRUD app. We had a ORM
> that served up objects to a Silverlight UI. So if we wanted to display
> information about a person on the UI we normally had to modify around 5
> classes in 5 files. We had the following layers
>
> ORM - 1.4MB of generated C# for interfacing with the 200 or so SQL tables
> we had
> DTO - Data Transfer Object, where used "normal" C# objects to abstract the
> ORM. This is where we had the "Person" object
> API - A web service that served up DTOs over HTTP
> Data Model - Processed views of DTOs formatted in a way that was easily
> viewable by the UI
> View Model - UI classes that would take data from a Data Model and emit UI
> controls.
>
> All of that ceremonythat is replaced by one thing in Clojure...data.
> Hashmaps and vectors replace all the junk you see above.
>
> So that's where I often assert "Yes, you may have 1 million lines of Java
> codebut that would only be ~10,000 lines of Clojure." With proper
> application of data driven systems (data that configures pipelines and
> writes code) you can easily get a 100:1 ratio of Java to Clojure code.
>
> Timothy
>
>
> On Sun, Nov 15, 2015 at 12:48 PM, Marc O'Morain  wrote:
>
>> We have a large app at CircleCI - as of September:
>>
>> "The repo for our main app contains 93,983 lines of Clojure code. The src 
>> directory
>> of our main app contains 369 namespaces."
>>
>> http://blog.circleci.com/why-were-no-longer-using-core-typed/
>>
>>
>>
>> On Sun, Nov 15, 2015 at 7:22 PM, dilettante.co...@live.com <
>> dilettante.co...@live.com> wrote:
>>
>>> I've been having a (friendly) argument with a friend who is an
>>> old-school OOP programmer.  He insists that you need objects to make
>>> large-scale codebases legible and maintainable over the long run.  Quite
>>> apart from this argument's virtues or lack thereof, this made me curious --
>>> what are the largest programs written in Clojure in terms of LOC?  I know
>>> I've seen mentions of 50k-100k LOC projects (World Singles, if I'm
>>> remembering correctly), but are there any that are larger?
>>>
>>>Vikram
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> “One of the main causes of the fall of the Roman Empire was that–lacking
> zero–they had no way to indicate successful termination of their C
> programs.”
> (Robert Firth)
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this 

Re: [ANN] Clojure 1.8.0-RC1 is now available

2015-11-15 Thread Daniel Compton
Tom, would you be able to run your performance regression suite against 1.8
with direct linking enabled and share the performance changes?

On Mon, Nov 16, 2015 at 1:19 PM Andy Fingerhut 
wrote:

> With updates I have made in the latest release of Eastwood 0.2.2
> (announced in a separate message), I am seeing pretty much identical
> linting results running Eastwood on about 80 Clojure contrib and 3rd party
> libraries when using Clojure 1.8.0-RC1 as I see with Clojure 1.7.0.  The
> run time is nearly the same -- about 2% longer with 1.8.0-RC1, but I only
> ran each set of tests once, and that could be within the range of
> variability across runs.
>
> Andy
>
>
> On Wed, Nov 11, 2015 at 12:02 PM, Andy Fingerhut  > wrote:
>
>> Results of some testing done on 1.8.0-RC1:
>>
>> Ran 'mvn clean test' on a few OS/JDK combos that are not tested as
>> often.  Reason: there have been (or still are) build or test failures with
>> some of them.  All JDKs listed below were 64-bit.
>>
>> Windows 7 Enterprise SP1 + Oracle JDK 1.7.0_80-b15: ok 3/3 trials
>> Ubuntu 14.04.3 LTS + OpenJDK 1.7.0_85: ok 3/3 trials
>> Ubuntu 14.04.3 LTS + IBM JDK 1.7.0: ok 10/10 trials, as long as failing
>> tests mentioned in http://dev.clojure.org/jira/browse/CLJ-1678 are
>> commented out
>> Ubuntu 14.04.3 LTS + IBM JDK 1.8.0 (based on jdk8u51-b15): same as for
>> IBM JDK 1.7.0
>> Mac OS X 10.11.1 + Oracle JDK 1.8.0_11: ok 631/631 trials
>>
>> There were some JVM crashes during 'mvn test' that I have seen with an
>> earlier version of IBM JDK 1.8.0 (based on jdk8u45-b13), but with the
>> version mentioned above those seem to be gone.  The older one failed 5 out
>> of 10 trials.  The newer one gave passing test results with no JVM crash 10
>> out of 10 trials.
>>
>> I plan to, but haven't yet, compared Eastwood results with 1.8.0-RC1 vs.
>> 1.7.0.  That will take some work before I can give those results, primarily
>> updating Eastwood to work with 1.8.0-RC1.  Eastwood makes some assumptions
>> about the structure of ASTs (abstract syntax trees) that 1.8.0-RC!'s
>> :rettag addition changed.  I don't think it is much work, but not sure when
>> I will be able to get to it.  Until then, I have the following message near
>> the beginning of Eastwood's README:
>>
>> It has been tried with some of the Clojure 1.8.0-alpha versions, but
>> there are known problems there (e.g. incorrect warning about misplaced
>> docstrings, perhaps incorrect warnings about wrong tags, etc.)
>>
>> Andy
>>
>>
>> On Tue, Nov 10, 2015 at 9:30 AM, Alex Miller  wrote:
>>
>>> Clojure 1.8.0-RC1 is now available. *This build is a "release
>>> candidate"!* We would appreciate any and all testing you can do on your
>>> own libraries or internal projects to find problems. If no problems are
>>> found, we expect to make this the 1.8.0 final release!
>>>
>>> Try it via
>>>
>>>- Download:
>>>https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0-RC1
>>>- Leiningen: [org.clojure/clojure "1.8.0-RC1"]
>>>
>>> Below is the only change since 1.8.0-beta2. See the full 1.8 change log
>>> here: https://github.com/clojure/clojure/blob/master/changes.md.
>>>
>>>- CLJ-1845  Make
>>>clojure.core/load dynamic so it can be redef'ed even with direct linking
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group 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.
>
-- 
Daniel

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

Re: Parens of the Dead, a Clojure + ClojureScript video series

2015-11-15 Thread Denis Fuenzalida
Thank you so much for the effort you put on these screencasts. There's so 
much for me to learn from them!

Best,

Denis

El domingo, 15 de noviembre de 2015, 11:15:46 (UTC-8), Magnar Sveen 
escribió:
>
> I've made a short video series on writing a game with Clojure and 
> ClojureScript. The last episode is out today, so the series is complete. 
> Hope you find some entertainment in it. :-)
>
> http://www.parens-of-the-dead.com/
>
> - Magnar
>
>
>

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


Locking non-local variable inside macro

2015-11-15 Thread Alice
user=> (def obj (Object.))
#'user/obj
user=> (defmacro mac1 [& body] `(locking ~obj ~@body))
#'user/mac1
user=> (mac1 nil)
CompilerException java.lang.RuntimeException: Can't embed object in code, 
maybe print-dup not defined: java.lang.Object@2a747a37, 
compiling:(NO_SOURCE_PATH:1:1)


Why am I getting the error?

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

2015-11-15 Thread dennis zhuang
I think the reason is in macroexpand-1 result:

user=> (macroexpand-1 '(mac1 1))
(clojure.core/locking # 1)

It's not a valid form to be read and eval by clojure reader,the object form
can't be parsed.

If define obj to be a map {}, it works fine:

user=> (def obj {})
#'user/obj
user=> (mac1 1)
1
user=> (macroexpand-1 '(mac1 1))
(clojure.core/locking {} 1)


2015-11-16 13:55 GMT+08:00 Alice :

> user=> (def obj (Object.))
> #'user/obj
> user=> (defmacro mac1 [& body] `(locking ~obj ~@body))
> #'user/mac1
> user=> (mac1 nil)
> CompilerException java.lang.RuntimeException: Can't embed object in code,
> maybe print-dup not defined: java.lang.Object@2a747a37,
> compiling:(NO_SOURCE_PATH:1:1)
>
>
> Why am I getting the error?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
庄晓丹
Email:killme2...@gmail.com xzhu...@avos.com
Site:   http://fnil.net
Twitter:  @killme2008

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

2015-11-15 Thread Michael Blume
The problem here is that you are splicing in obj when there is no need to.
You actually want your generated code to refer to obj. So just

(defmacro mac1 [& body] `(locking obj ~@body))

is fine.

dennis' solution will work too, but it will work almost accidentally? All
blank maps evaluate to the same object, so if you do (locking {}
(whatever)) it will lock on the same map every time, but if for some reason
someone else does the same trick, you'll be competing for the same lock.
Better to do what you're doing, but without the unnecessary splice.

On Sun, Nov 15, 2015 at 11:17 PM dennis zhuang  wrote:

> I think the reason is in macroexpand-1 result:
>
> user=> (macroexpand-1 '(mac1 1))
> (clojure.core/locking # 1)
>
> It's not a valid form to be read and eval by clojure reader,the object
> form can't be parsed.
>
> If define obj to be a map {}, it works fine:
>
> user=> (def obj {})
> #'user/obj
> user=> (mac1 1)
> 1
> user=> (macroexpand-1 '(mac1 1))
> (clojure.core/locking {} 1)
>
>
> 2015-11-16 13:55 GMT+08:00 Alice :
>
>> user=> (def obj (Object.))
>> #'user/obj
>> user=> (defmacro mac1 [& body] `(locking ~obj ~@body))
>> #'user/mac1
>> user=> (mac1 nil)
>> CompilerException java.lang.RuntimeException: Can't embed object in code,
>> maybe print-dup not defined: java.lang.Object@2a747a37,
>> compiling:(NO_SOURCE_PATH:1:1)
>>
>>
>> Why am I getting the error?
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> 庄晓丹
> Email:killme2...@gmail.com xzhu...@avos.com
> Site:   http://fnil.net
> Twitter:  @killme2008
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group 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.


Parens of the Dead, a Clojure + ClojureScript video series

2015-11-15 Thread Magnar Sveen
I've made a short video series on writing a game with Clojure and 
ClojureScript. The last episode is out today, so the series is complete. 
Hope you find some entertainment in it. :-)

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

- Magnar


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