Re: How to go about 'proving' why dynamically typed languages are better.

2013-12-20 Thread zcaudate
@philip lord.

Where would mutant elephants and the elephant god Ganesha fit in that 
classification?

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


Re: [ANN] Hoplon: web applications in Clojure and ClojureScript

2013-12-20 Thread Alan Dipert
Hi Murtaza, thanks for your interest!  Responses below.
Alan 

1. Why not use hiccup data structure for representing DOM, instead of the 
> custom fns and macros. This provides several advantages where your DOM is 
> just data and you can manipulate it like data.
>
 
The hlisp part of Hoplon - the compiler bit that converts HTML to 
ClojureScript - was designed and implemented specifically to avoid having 
to do this.  It's our opinion (and experience) that admission of the DOM as 
a data structure instead of a piece of the program introduces tremendous 
complexity.  This data structure must be explicitly interpreted, evaluated, 
and updated in complicated ways that tend to couple tightly to both overall 
state logic and DOM quirks.  That said, Hoplon markup can be manipulated as 
data the way any other Lisp program sanely can - via hygienic macros. 
 Also, the semantics we apply to HTML to compile it to ClojureScript extend 
to other representations.  For instance, I'm currently finishing up boot 
tasks for compiling HAML and Slim markup to ClojureScript programs.  A 
hiccup task would be just as straightforward, but IMO pointless.

2. The destructing and looping used within the DOM forms is custom. Why 
> cant we have regular clojure all the way ? Introduction of a another syntax 
> for templating is not very appealing. So a regular 'map' or 'for' could be 
> used instead of 'loop-tpl'
>

I'm sympathetic to your concern here, but loop-tpl is an entirely different 
animal than map or for and unfortunately they don't line up.  The main 
difference between loop-tpl and map/for is that loop-tpl is a macro that 
statically allocates DOM elements to deposit the elements it loops over 
into - it is not a runtime construct.  For more on loop-tpl please see the 
end of "Task 6" on http://hoplon.io/#/getting-started/.  Plus, hey, you're 
already ClojureScripting - how bad can just a little more weirdness be? ;-)

3. String interpolation for the bindings - '~{x}' . Cant we use something 
> more idiomatic, either the var itself or atleast a symbol :x ?
>

If interpolation just used var symbols, we'd need to analyze the global 
environment and look for a possible var match for every word we found in 
the string - a complicated process.  If we used :keywords, we'd have to 
escape them in order to write the string \:keyword - highly unintuitive 
IMO.  ~{} is odd enough to probably not occur in a string, and follows how 
interpolation works in e.g. Ruby (which uses #{}).  Also, ClojureScript's 
js* compiler macro uses ~{} to achieve kinda the same thing.
 

> 4. It will also be helpful to have a leiningen example for the project. 
> Nothing against boot, however it will be easy to get started, and also 
> IDE's are already configured to work with project.clj
>

A Leiningen plugin is unlikely, but we're open to improving the 
documentation, friendliness of, and tool support around boot.  For more on 
Why Boot, please see 
http://www.reddit.com/r/Clojure/comments/1t6wgs/hoplon_a_simpler_way_to_program_the_web/ce5zntf
 

>
>
> On Friday, December 20, 2013 3:40:41 AM UTC+5:30, James Reeves wrote:
>>
>> Thank you for taking the time to write such a detailed explanation. That 
>> clears up my understanding of the library considerably.
>>
>> - James
>>
>>
>> On 19 December 2013 03:45, Micha Niskin  wrote:
>>
>>> Ah, yes. There are some gaps in the docs that need to be fixed. To 
>>> answer your questions:
>>>
>>>
>>>1. The main thing that Hoplon does is unify the DOM and the dynamic 
>>>environment (the JS environment). This makes it possible to refer to 
>>> things 
>>>from the dynamic environment in your markup. Normally you can reference 
>>>things in the DOM from JavaScript, but not the other way around. So in a 
>>>unified environment that includes both JavaScript and the DOM there 
>>> needs 
>>>to be a way to develop both of them in the same page. A Hoplon page has 
>>> 3 
>>>parts: the page declaration, a number of optional top-level forms, and 
>>>finally the DOM markup. So yes, the Hoplon compiler selects the last 
>>>expression in the file as the DOM markup. 
>>>2. The primitive HTML5 elements (div, span, etc.) are, in fact 
>>>ClojureScript functions in the tailrecursion.hoplon namespace. These 
>>>functions return new DOM elements of the appropriate type. However, the 
>>>Element type is extended to implement the IFn protocol such that they 
>>>maintain the HTML semantic. That is, function application means append 
>>>child / set attribute. So yes, div and span etc. are functions, but they 
>>>return DOM elements that implement IFn, so they return functions, in a 
>>> way, 
>>>too. 
>>>3. Everything is generated on the fly, pretty much. The entire 
>>>document is replaced with the result of evaluating the DOM markup when 
>>> the 
>>>page loads. In other words, when the page loads the last expression in 
>>> the 
>>>source file is 

Re: How to go about 'proving' why dynamically typed languages are better.

2013-12-20 Thread Phillip Lord
zcaudate  writes:
> @philip lord.
>
> Where would mutant elephants and the elephant god Ganesha fit in that 
> classification?


It might surprise you to know that there is actually quite a lot work on
both of these.

The problem with mutant elephants generalises into the problem with
abnormalities; for example, if I build a model of a human which says,
"humans have two hands, and two legs" then there are plenty of counter
examples, having more or less than two hands (mostly less). If, on the
other hand, you have a model which can cope with these exceptions, then
it gets too complex to handle, and you can rarely conclude anything
useful.

Ganesha causes a different problem: that is does he exist at all, and if
he does, is he an elephant. Now there are those who say no he isn't, so
he shouldn't be in the model. And, there are those (like me) who say,
well it depends on your application and what you are trying to achieve.

Farcical as all of this sounds, it does actually have implications for
the way that we build data models, particularly for biology and
medicine. If you are interested, you can read my paper on the subject
here:

http://www.russet.org.uk/blog/1713

And a companion article by my co-author. It's about unicorns, but most
of it probably covers Ganesha also.

http://robertdavidstevens.wordpress.com/2011/05/26/unicorns-in-my-ontology/

Phil

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


Re: How to go about 'proving' why dynamically typed languages are better.

2013-12-20 Thread Dennis Haupt
in my mental world, there is a "pure human", and a 4 armed human would
probably be a 95% human or something, just like a hobbit would be. the
other way round, a human would be a "95% hobbit". an elephant would be 4%
hobbit on that scale.
this model is flexible, covers everything, and is not really helpful when
you ask "what is it?" you have to ask "is this at least 90% cat?"


2013/12/20 Phillip Lord 

> zcaudate  writes:
> > @philip lord.
> >
> > Where would mutant elephants and the elephant god Ganesha fit in that
> classification?
>
>
> It might surprise you to know that there is actually quite a lot work on
> both of these.
>
> The problem with mutant elephants generalises into the problem with
> abnormalities; for example, if I build a model of a human which says,
> "humans have two hands, and two legs" then there are plenty of counter
> examples, having more or less than two hands (mostly less). If, on the
> other hand, you have a model which can cope with these exceptions, then
> it gets too complex to handle, and you can rarely conclude anything
> useful.
>
> Ganesha causes a different problem: that is does he exist at all, and if
> he does, is he an elephant. Now there are those who say no he isn't, so
> he shouldn't be in the model. And, there are those (like me) who say,
> well it depends on your application and what you are trying to achieve.
>
> Farcical as all of this sounds, it does actually have implications for
> the way that we build data models, particularly for biology and
> medicine. If you are interested, you can read my paper on the subject
> here:
>
> http://www.russet.org.uk/blog/1713
>
> And a companion article by my co-author. It's about unicorns, but most
> of it probably covers Ganesha also.
>
> http://robertdavidstevens.wordpress.com/2011/05/26/unicorns-in-my-ontology/
>
> Phil
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

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


Re: [ClojureScript] ANN: Om, a ClojureScript binding to Facebook's React

2013-12-20 Thread Samuel Aaron
Hey David,

this looks fab. I'm trying to play with it within a stub project of mine. 
However, I'm not having much success getting it to compile. This is likely to 
be some cljs setup issue I'm having (there are so many moving parts!).

Steps taken:

* Download, and build latest cljs (0.0-2127)
* Clone om and link to it from within my cljs-src directory
* Modify project.clj file to look similar to yours
* Run `lein cljsbuild auto` and see the following error:

λ lein cljsbuild once
Compiling ClojureScript.
java.lang.IllegalArgumentException: No implementation of method: :make-reader 
of protocol: #'clojure.java.io/IOFactory found for class: nil
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:541)
at clojure.java.io$fn__8551$G__8546__8558.invoke(io.clj:73)
at clojure.java.io$reader.doInvoke(io.clj:106)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invoke(core.clj:619)

My project.clj is as follows:

(defproject overtext "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME";
  :license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
 [http-kit "2.1.13"]
 [org.clojure/clojurescript "0.0-2127"]]
  :plugins [[lein-cljsbuild "1.0.1"]]
  :source-paths ["cljs-src" ]
  :profiles {:dev {:plugins [[com.cemerick/austin "0.1.3"]]}}
  :cljsbuild {
  :builds [{:id "dev"
:source-paths ["cljs-src"]
:compiler {
  :output-to "resources/web/js/cljs-main.js"

  :optimizations :none
  :externs ["cljs-src/om/externs/react.js"]}}]})


My project directory structure is:

∴ /Users/sam/scratch/overtext
λ tree .
.
├── LICENSE
├── README.md
├── cljs-src
│   ├── om -> /Users/sam/Development/cljs/om/src/om
│   └── overtext
│   ├── onload.cljs
│   └── ws.cljs
├── doc
│   └── intro.md
├── pom.xml
├── project.clj
├── resources
│   └── web
│   └── static
│   ├── index.html
│   └── js
│   └── cljs-main.js
├── src
│   └── overtext
│   └── core.clj
└── test
└── overtext
└── core_test.clj

12 directories, 11 files


Am I doing anything obviously foolish?

Sam

---
http://sam.aaron.name

On 19 Dec 2013, at 19:12, David Nolen  wrote:

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

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


Re: How do I serve clojure pages with nginx

2013-12-20 Thread Dave Della Costa
Hi Zeynel,

I don't know if setting things up the way I've laid out there is such a
great idea.  What I would do instead is set the port and whatnot in the
jetty configuration inside of ring, assuming that's what you're using
(this assumes a lot about how your app is set up, so let me know if this
doesn't match your setup):

http://ring-clojure.github.io/ring/ring.adapter.jetty.html

Then, I would compile an uberjar with lein, like so:

$ lein uberjar

In your startup script, as Curtis laid out, call the jar file using
something like:

/path/to/java -jar /path/to/uberjar

That will be much simpler than what I have in my tutorial...which I
should really update, now that you mention it!

DD

(2013/12/19 9:28), Zeynel wrote:
> I am following your tutorial, but I am stuck with Jetty configuration.
> My installation does not seem to have a /contexts directory. Where is it?
> 
> On Tuesday, December 17, 2013 9:02:19 AM UTC-4, David Della Costa wrote:
> 
> I have not done this specifically with Nginx but I suspect you probably
> want something like what I set up with Apache + Jetty:
> 
> 
> https://github.com/ddellacosta/Clojure-under-Jetty-and-Apache#setting-up-jetty-with-apache-httpd
> 
> 
> 
> 
> That is, set up Nginx to act as a proxy for Jetty:
> 
> http://nginx.org/en/docs/beginners_guide.html#proxy
> 
> 
> One difference with how I would do it these days (vs. what I wrote in
> the piece above) is that I would probably simply push out an uberjar
> with lein which I would run with Java via an init script--for example,
> if using Ubuntu:
> 
> http://upstart.ubuntu.com/cookbook/#run-a-java-application
> 
> 
> So, I would imagine the basic construction would be something like:
> ring
> app w/jetty or http-kit, packaged as an uberjar (lein uberjar), then
> set
> up to run via an init script (via upstart in your case) on an
> alternative port, which is proxied by Nginx as in the link above.
> 
> Hope this helps--
> 
> DD
> 
> (2013/12/17 21:44), Zeynel wrote:
> > I've set up a home server with ubuntu and nginx and I can serve
> static
> > pages. Now I want to add clojure but I am not sure what I need to
> do. I
> > asked the same question in StackOverflow but for some reason it is
> voted
> > to be
> > closed:
> 
> http://stackoverflow.com/questions/20632987/how-to-serve-clojure-pages-with-nginx
> 
> 
> 
> >
> > Can you please direct me to documentation where I can read about
> this?
> > Some issues that I don't understand are: how do I tell nginx that
> I am
> > using clojure? Where do I install clojure, in the server? Where do I
> > create the clojure files? Thanks.
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clo...@googlegroups.com
> 
> > Note that posts from new members are moderated - please be patient
> with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+u...@googlegroups.com 
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> 
> > ---
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send
> > an email to clojure+u...@googlegroups.com .
> > For more options, visit https://groups.google.com/groups/opt_out
> .
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

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

library development

2013-12-20 Thread Bob Hutchison
Hi,

I’m missing something. And it’s annoying me.

Let’s say I’m working on three or four projects and there’s some code that 
really should be developed as a library and used by each of the projects. A 
similar thing happens if I fork a library from github. I don’t want to make any 
of this code public so clojars is not an option. It’s clear enough that the 
solution to this will involve a local maven repository somehow.

Now, I don’t know maven. I like it that way. I *do* *not* want to know maven. 
It’s so low on my priority list that reviewing the new C++ standard is higher. 
Basically it’ll never get to the top of the list.

Furthermore I think requiring someone to know maven to do any non-trivial 
Clojure development is a bad plan. This is surely one of the founding goals of 
Leiningen.

I’ve found some documentation and blog posts that, as soon as they get 
interesting, pretty much all end up assuming you know maven. I’ve found 
lein-localrepo plugin, which is was hopeful until you read it’s docs and see 
that it describes itself in maven terminology (why do I care what the maven 
coordinates of a file are? *WHY* do I have to know? Is this about Clojure or 
Java jar files? Are they different?)

Lein install makes a jar file and a pom file. So what? Is there something you 
do with these? There must be. But since I don’t know maven I’ve not got a clue 
what that might be.

What I’d like to do is type something no more complex than “lein local-install” 
and be done with it. I do not care if every developer on my team has to execute 
that command. I don’t care about sharing. I don’t care about naming. I just 
want to work on my library, install it, and use it in my other four projects.

Running “cp -r” will do it, but it’s a bit crude.

Thanks,
Bob

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


Re: library development

2013-12-20 Thread Daniel Higginbotham
"lein install" actually installs your library ~/.m2/repository in addition 
to creating the pom and jar. That should be all you need to do.

On Friday, December 20, 2013 9:09:32 AM UTC-5, Bob Hutchison wrote:
>
> Hi, 
>
> I’m missing something. And it’s annoying me. 
>
> Let’s say I’m working on three or four projects and there’s some code that 
> really should be developed as a library and used by each of the projects. A 
> similar thing happens if I fork a library from github. I don’t want to make 
> any of this code public so clojars is not an option. It’s clear enough that 
> the solution to this will involve a local maven repository somehow. 
>
> Now, I don’t know maven. I like it that way. I *do* *not* want to know 
> maven. It’s so low on my priority list that reviewing the new C++ standard 
> is higher. Basically it’ll never get to the top of the list. 
>
> Furthermore I think requiring someone to know maven to do any non-trivial 
> Clojure development is a bad plan. This is surely one of the founding goals 
> of Leiningen. 
>
> I’ve found some documentation and blog posts that, as soon as they get 
> interesting, pretty much all end up assuming you know maven. I’ve found 
> lein-localrepo plugin, which is was hopeful until you read it’s docs and 
> see that it describes itself in maven terminology (why do I care what the 
> maven coordinates of a file are? *WHY* do I have to know? Is this about 
> Clojure or Java jar files? Are they different?) 
>
> Lein install makes a jar file and a pom file. So what? Is there something 
> you do with these? There must be. But since I don’t know maven I’ve not got 
> a clue what that might be. 
>
> What I’d like to do is type something no more complex than “lein 
> local-install” and be done with it. I do not care if every developer on my 
> team has to execute that command. I don’t care about sharing. I don’t care 
> about naming. I just want to work on my library, install it, and use it in 
> my other four projects. 
>
> Running “cp -r” will do it, but it’s a bit crude. 
>
> Thanks, 
> Bob

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


ANN: ClojureScript 0.0-2127

2013-12-20 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

New release version: 0.0-2127

Leiningen dependency information:

[org.clojure/clojurescript "0.0-2127"]

Enhancements:
* Add :preamble compiler option. Takes a vector of resources to prepend to
minified JS without going through Google Closure.

Bug fixes:
* fix disj and dissoc 2 arity case when coll is nil

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


Re: library development

2013-12-20 Thread Tim Visher
Maybe using lein checkouts is also something that would interest you?

https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md#checkout-dependencies

On Fri, Dec 20, 2013 at 9:22 AM, Daniel Higginbotham
 wrote:
> "lein install" actually installs your library ~/.m2/repository in addition
> to creating the pom and jar. That should be all you need to do.
>
>
> On Friday, December 20, 2013 9:09:32 AM UTC-5, Bob Hutchison wrote:
>>
>> Hi,
>>
>> I’m missing something. And it’s annoying me.
>>
>> Let’s say I’m working on three or four projects and there’s some code that
>> really should be developed as a library and used by each of the projects. A
>> similar thing happens if I fork a library from github. I don’t want to make
>> any of this code public so clojars is not an option. It’s clear enough that
>> the solution to this will involve a local maven repository somehow.
>>
>> Now, I don’t know maven. I like it that way. I *do* *not* want to know
>> maven. It’s so low on my priority list that reviewing the new C++ standard
>> is higher. Basically it’ll never get to the top of the list.
>>
>> Furthermore I think requiring someone to know maven to do any non-trivial
>> Clojure development is a bad plan. This is surely one of the founding goals
>> of Leiningen.
>>
>> I’ve found some documentation and blog posts that, as soon as they get
>> interesting, pretty much all end up assuming you know maven. I’ve found
>> lein-localrepo plugin, which is was hopeful until you read it’s docs and see
>> that it describes itself in maven terminology (why do I care what the maven
>> coordinates of a file are? *WHY* do I have to know? Is this about Clojure or
>> Java jar files? Are they different?)
>>
>> Lein install makes a jar file and a pom file. So what? Is there something
>> you do with these? There must be. But since I don’t know maven I’ve not got
>> a clue what that might be.
>>
>> What I’d like to do is type something no more complex than “lein
>> local-install” and be done with it. I do not care if every developer on my
>> team has to execute that command. I don’t care about sharing. I don’t care
>> about naming. I just want to work on my library, install it, and use it in
>> my other four projects.
>>
>> Running “cp -r” will do it, but it’s a bit crude.
>>
>> Thanks,
>> Bob
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

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


Re: library development

2013-12-20 Thread John Gabriele
Ah, neat. This works great!

If I can just `lein install` my libs (or other people's libs) and then use 
them in all my projects (just like the libs found at clojars), what extra 
functionality does lein-localrepo provide beyond that?

-- John


On Friday, December 20, 2013 9:22:30 AM UTC-5, Daniel Higginbotham wrote:
>
> "lein install" actually installs your library ~/.m2/repository in addition 
> to creating the pom and jar. That should be all you need to do.
>
> On Friday, December 20, 2013 9:09:32 AM UTC-5, Bob Hutchison wrote:
>>
>> Hi, 
>>
>> I’m missing something. And it’s annoying me. 
>>
>> Let’s say I’m working on three or four projects and there’s some code 
>> that really should be developed as a library and used by each of the 
>> projects. A similar thing happens if I fork a library from github. I don’t 
>> want to make any of this code public so clojars is not an option. It’s 
>> clear enough that the solution to this will involve a local maven 
>> repository somehow. 
>>
>> Now, I don’t know maven. I like it that way. I *do* *not* want to know 
>> maven. It’s so low on my priority list that reviewing the new C++ standard 
>> is higher. Basically it’ll never get to the top of the list. 
>>
>> Furthermore I think requiring someone to know maven to do any non-trivial 
>> Clojure development is a bad plan. This is surely one of the founding goals 
>> of Leiningen. 
>>
>> I’ve found some documentation and blog posts that, as soon as they get 
>> interesting, pretty much all end up assuming you know maven. I’ve found 
>> lein-localrepo plugin, which is was hopeful until you read it’s docs and 
>> see that it describes itself in maven terminology (why do I care what the 
>> maven coordinates of a file are? *WHY* do I have to know? Is this about 
>> Clojure or Java jar files? Are they different?) 
>>
>> Lein install makes a jar file and a pom file. So what? Is there something 
>> you do with these? There must be. But since I don’t know maven I’ve not got 
>> a clue what that might be. 
>>
>> What I’d like to do is type something no more complex than “lein 
>> local-install” and be done with it. I do not care if every developer on my 
>> team has to execute that command. I don’t care about sharing. I don’t care 
>> about naming. I just want to work on my library, install it, and use it in 
>> my other four projects. 
>>
>> Running “cp -r” will do it, but it’s a bit crude. 
>>
>> Thanks, 
>> Bob
>
>

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


Re: library development

2013-12-20 Thread John Gabriele
On Friday, December 20, 2013 9:22:30 AM UTC-5, Daniel Higginbotham wrote:
> > "lein install" actually installs your library ~/.m2/repository in 
addition
> >  to creating the pom and jar. That should be all you need to do.

On Friday, December 20, 2013 12:16:59 PM UTC-5, John Gabriele wrote:
>
> Ah, neat. This works great!
>
> If I can just `lein install` my libs (or other people's libs) and then use 
> them in all my projects (just like the libs found at clojars), what extra 
> functionality does lein-localrepo provide beyond that?
>
>
By "or other people's libs", I meant if it's a lib not on clojars, and if 
I've cloned its project directory (and it's a project managed by lein) .

(Also, sorry about top-posting and also for including the entire parent 
message in my previous message.)

-- John

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


Re: library development

2013-12-20 Thread Tim Visher
On Fri, Dec 20, 2013 at 12:16 PM, John Gabriele  wrote:
> If I can just `lein install` my libs (or other people's libs) and then use
> them in all my projects (just like the libs found at clojars), what extra
> functionality does lein-localrepo provide beyond that?

lein-localrepo provides ways to interact with the local repo beyond
just installing a leiningen project to it. You can install arbitrary
artifacts that have poms. You can use to grab coords for a file. Etc.

--

In Christ,

Timmy V.

http://blog.twonegatives.com/
http://five.sentenc.es/ -- Spend less time on mail

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


Re: library development

2013-12-20 Thread Bob Hutchison

On Dec 20, 2013, at 9:22 AM, Daniel Higginbotham  wrote:

> "lein install" actually installs your library ~/.m2/repository in addition to 
> creating the pom and jar. That should be all you need to do.

[message was bounced earlier…]

Thank you. You’re right. As it happens, I just discovered that myself. I nice 
cup of tea and thinking “there’s no way these leiningen guys didn’t do 
something so obvious” led be to suck it up and poke around my maven repository 
to see what I could see. Maven’s getting pretty quick isn’t it?

Cheers,
Bob

> 
> On Friday, December 20, 2013 9:09:32 AM UTC-5, Bob Hutchison wrote:
> Hi, 
> 
> I’m missing something. And it’s annoying me. 
> 
> Let’s say I’m working on three or four projects and there’s some code that 
> really should be developed as a library and used by each of the projects. A 
> similar thing happens if I fork a library from github. I don’t want to make 
> any of this code public so clojars is not an option. It’s clear enough that 
> the solution to this will involve a local maven repository somehow. 
> 
> Now, I don’t know maven. I like it that way. I *do* *not* want to know maven. 
> It’s so low on my priority list that reviewing the new C++ standard is 
> higher. Basically it’ll never get to the top of the list. 
> 
> Furthermore I think requiring someone to know maven to do any non-trivial 
> Clojure development is a bad plan. This is surely one of the founding goals 
> of Leiningen. 
> 
> I’ve found some documentation and blog posts that, as soon as they get 
> interesting, pretty much all end up assuming you know maven. I’ve found 
> lein-localrepo plugin, which is was hopeful until you read it’s docs and see 
> that it describes itself in maven terminology (why do I care what the maven 
> coordinates of a file are? *WHY* do I have to know? Is this about Clojure or 
> Java jar files? Are they different?) 
> 
> Lein install makes a jar file and a pom file. So what? Is there something you 
> do with these? There must be. But since I don’t know maven I’ve not got a 
> clue what that might be. 
> 
> What I’d like to do is type something no more complex than “lein 
> local-install” and be done with it. I do not care if every developer on my 
> team has to execute that command. I don’t care about sharing. I don’t care 
> about naming. I just want to work on my library, install it, and use it in my 
> other four projects. 
> 
> Running “cp -r” will do it, but it’s a bit crude. 
> 
> Thanks, 
> Bob
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

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


Re: How to go about 'proving' why dynamically typed languages are better.

2013-12-20 Thread Chris Zheng
Thanks Phil.

I'm exploring how type theory works at doing partial classifications,
especially where there can be arbitrary models on the same object. I'm not
sure that it does and I'm of the opinion that in these cases, type systems
aren't really that useful.

Ganesha is surgically grafted elephant.. Only his head is because it got
cut off and they stuck an elephants head on him Then we can have undead
elephants.   I would still call it an elephant.. But is it even alive?

On Friday, December 20, 2013, Dennis Haupt wrote:

> in my mental world, there is a "pure human", and a 4 armed human would
> probably be a 95% human or something, just like a hobbit would be. the
> other way round, a human would be a "95% hobbit". an elephant would be 4%
> hobbit on that scale.
> this model is flexible, covers everything, and is not really helpful when
> you ask "what is it?" you have to ask "is this at least 90% cat?"
>
>
> 2013/12/20 Phillip Lord  'cvml', 'phillip.l...@newcastle.ac.uk');>>
>
>> zcaudate >
>> writes:
>> > @philip lord.
>> >
>> > Where would mutant elephants and the elephant god Ganesha fit in that
>> classification?
>>
>>
>> It might surprise you to know that there is actually quite a lot work on
>> both of these.
>>
>> The problem with mutant elephants generalises into the problem with
>> abnormalities; for example, if I build a model of a human which says,
>> "humans have two hands, and two legs" then there are plenty of counter
>> examples, having more or less than two hands (mostly less). If, on the
>> other hand, you have a model which can cope with these exceptions, then
>> it gets too complex to handle, and you can rarely conclude anything
>> useful.
>>
>> Ganesha causes a different problem: that is does he exist at all, and if
>> he does, is he an elephant. Now there are those who say no he isn't, so
>> he shouldn't be in the model. And, there are those (like me) who say,
>> well it depends on your application and what you are trying to achieve.
>>
>> Farcical as all of this sounds, it does actually have implications for
>> the way that we build data models, particularly for biology and
>> medicine. If you are interested, you can read my paper on the subject
>> here:
>>
>> http://www.russet.org.uk/blog/1713
>>
>> And a companion article by my co-author. It's about unicorns, but most
>> of it probably covers Ganesha also.
>>
>>
>> http://robertdavidstevens.wordpress.com/2011/05/26/unicorns-in-my-ontology/
>>
>> Phil
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to 
>> clojure@googlegroups.com> 'clojure@googlegroups.com');>
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com > 'clojure%2bunsubscr...@googlegroups.com');>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com > 'clojure%2bunsubscr...@googlegroups.com');>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to 
> clojure@googlegroups.com 'clojure@googlegroups.com');>
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com  'clojure%2bunsubscr...@googlegroups.com');>
> 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/0I7u5yn01qU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com  'clojure%2bunsubscr...@googlegroups.com');>.
> For more options, visit https://groups.google.com/groups/opt_out.
>

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

Re: library development

2013-12-20 Thread Mimmo Cosenza
I used localrepo as Timmy said: 
- to install in the local maven repository a native dynamic c++ lib and its 
corresponding java wrapper
- to makes it available to all my clojure/java projects requiring to use that 
lib (artifact in maven parlance) 

It works like a charm.

Here you can find a sample of its use:

http://docs.opencv.org/2.4/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.html#install-the-java-specific-libs-as-local-repository

HIH 
mimmo

On Dec 20, 2013, at 6:22 PM, Tim Visher  wrote:

> On Fri, Dec 20, 2013 at 12:16 PM, John Gabriele  wrote:
>> If I can just `lein install` my libs (or other people's libs) and then use
>> them in all my projects (just like the libs found at clojars), what extra
>> functionality does lein-localrepo provide beyond that?
> 
> lein-localrepo provides ways to interact with the local repo beyond
> just installing a leiningen project to it. You can install arbitrary
> artifacts that have poms. You can use to grab coords for a file. Etc.
> 
> --
> 
> In Christ,
> 
> Timmy V.
> 
> http://blog.twonegatives.com/
> http://five.sentenc.es/ -- Spend less time on mail
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: library development

2013-12-20 Thread Shantanu Kumar
Author of lein-localrepo here. Just to mention few points:

1. Leiningen builds over Maven's transitive dependency management system. 
So, I guess at some point of time you just have to accept Maven's 
nomenclature.

2. `lein install` works when you have source code and a `project.clj` for 
your project. `lein-localrepo` helps you with third-party JARs for which 
you probably have no source code.

3. Can `lein-localrepo` help you totally forget about Maven? Sorry, see #1

Shantanu

On Friday, 20 December 2013 23:57:55 UTC+5:30, Magomimmo wrote:
>
> I used localrepo as Timmy said: 
> - to install in the local maven repository a native dynamic c++ lib and 
> its corresponding java wrapper
> - to makes it available to all my clojure/java projects requiring to use 
> that lib (artifact in maven parlance) 
>
> It works like a charm.
>
> Here you can find a sample of its use:
>
>
> http://docs.opencv.org/2.4/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.html#install-the-java-specific-libs-as-local-repository
>
> HIH 
> mimmo
>
> On Dec 20, 2013, at 6:22 PM, Tim Visher > 
> wrote:
>
> On Fri, Dec 20, 2013 at 12:16 PM, John Gabriele 
> > 
> wrote:
>
> If I can just `lein install` my libs (or other people's libs) and then use
> them in all my projects (just like the libs found at clojars), what extra
> functionality does lein-localrepo provide beyond that?
>
>
> lein-localrepo provides ways to interact with the local repo beyond
> just installing a leiningen project to it. You can install arbitrary
> artifacts that have poms. You can use to grab coords for a file. Etc.
>
> --
>
> In Christ,
>
> Timmy V.
>
> http://blog.twonegatives.com/
> http://five.sentenc.es/ -- Spend less time on mail
>
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com 
> Note that posts from new members are moderated - please be patient with 
> your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com 
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+u...@googlegroups.com .
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

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


Re: [ANN] Hoplon: web applications in Clojure and ClojureScript

2013-12-20 Thread Ryan Spangler

>
> The hlisp part of Hoplon - the compiler bit that converts HTML to 
>> ClojureScript - was designed and implemented specifically to avoid having 
>> to do this.  It's our opinion (and experience) that admission of the DOM as 
>> a data structure instead of a piece of the program introduces tremendous 
>> complexity.  This data structure must be explicitly interpreted, evaluated, 
>> and updated in complicated ways that tend to couple tightly to both overall 
>> state logic and DOM quirks.  That said, Hoplon markup can be manipulated as 
>> data the way any other Lisp program sanely can - via hygienic macros. 
>>
>
I am curious about this.  I have had the opposite experience.  Whenever I 
use a library based on macros I find myself wanting to do something with 
them the macro writer did not expect, and being forced to wrap the macros 
in functions so I can compose things programmatically (which seems to me 
like unnecessary complexity).  I can't pass macros around as arguments, 
store them in a list, or apply them to arguments in a general way.  

On the other hand, if I am just working with a data structure, I can write 
functions to manipulate the data in novel ways and even use many functions 
that already exist to manipulate data without having to recreate that 
functionality for a specific domain (like looping, merging, search and 
replace etc).  

So I am curious specifically what flexibility you are gaining by using 
macros (things you can't do with functions and data) that would offset the 
flexibility you sacrifice with macros?  I am open to being convinced on 
this point!

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


Re: [ClojureScript] Re: AnNN: ClojureScript 0.0-2120

2013-12-20 Thread Gary Johnson
Thanks, Tim. I somehow missed Brandon's exposition earlier in the thread. These 
features look great. Fantastic job, ClojureScript devs!

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


Re: Implementation options for auto-complete and symbol resolution while coding

2013-12-20 Thread Zach Oakes
Nightcode uses Compliment for providing completion suggestions and 
documentation of Clojure functions:

https://github.com/alexander-yakushev/compliment

On Wednesday, December 18, 2013 11:27:06 AM UTC-5, juan.facorro wrote:
>
> Hi Clojurers,
>
> I'm building a tool for Clojure and I've been hitting the same bump for 
> quite some time now, namely auto-completion and finding the definition of a 
> symbol. After doing some research I've found that some tools rely on a 
> running REPL to figure out where a symbol might be coming from; these 
> include emacs [1], Counter-Clockwise, clooj and maybe others I don't know 
> about (like Nightcode or Cursive). This seems the natural thing to do since 
> while developing we always have a REPL running to try out what we code, 
> after all this is one of the best LISP features. This approach results in 
> very accurate locations for global symbol definitions, but locals are not 
> found since they are not accesible form the REPL.
>
> Another approach I've seen used for auto-completion in Clojure is the 
> token-based, which involves looking for tokens in the code base associated 
> with the current project and then providing the nearest match regardless of 
> context; these include J Editor [2], Light Table (which I think uses 
>  inter-buffer token matching [3]) and emacs when it uses dictionary files 
> (maybe not specifically in existing Clojure modes but it's something that 
> emacs can do). Although this approach resolves the auto-completion, it is 
> not very accurate when locating symbol definitions.
>
> From what I've read this is not a trivial problem so I was wondering if 
> there's some implementation that actually resolves symbols statically (I 
> mean without having a running REPL) in an accurate way or, if there's no 
> implementation, maybe someone could point me in the right direction (or any 
> direction) as to what would ease the pain to accomplish such a task. 
> Building something on my own to do this "static symbol resolution" is out 
> of the question, since that sounds like a whole project on its own and I'm 
> currently trying to build something else entirely. 
>
> There are parsing libraries which provide good parse trees (i.e. Parsley, 
> Instaparse), but my understanding is that what needs to be mantained is a 
> full abstract syntax tree for the whole code base and although 
> clojure.tools.analyzer [4] does the job of creating an AST, generating and 
> mantaining all these trees sounds very costly and not the right way to do 
> it.
>
> If the running REPL approach is the saner one, then I would have no 
> problem with going down that road, but I just wanted to make sure what the 
> viable options were.
>
> If you got this far, thank you for your time. :)
>
> Any help, thoughts or comments will be greatly appreciated!
>
> Juan
>
> [1] https://github.com/clojure-emacs/ac-nrepl
> [2] http://armedbear-j.sourceforge.net/
> [3] 
> https://groups.google.com/forum/#!msg/light-table-discussion/Q-ZvOJSr1qo/-D6tAV_XiMUJ
> [4] https://github.com/clojure/tools.analyzer
>

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


Re: Who is "doing something worthwhile" in Clojure?

2013-12-20 Thread Rich Morin
On Dec 19, 2013, at 18:15, Sean Corfield wrote:
> If you think that discussion is inappropriate for this list (and I
> agree - it is), then why do you think this discussion is appropriate:
> 
>> Can we get back to talking about folks who are using Clojure to
>> make a positive impact?
> 
> It seems to me this is bound to be a political or at least a very
> subjective one based on people's own moral compass and their ideology?
> As such I don't think it's a particularly useful discussion on what is
> primarily a technical list.  Perhaps post the question on Quora?  That
> seems to be very friendly toward political / moral discussions...

My problem with the Monsanto topic is not that it is political or
subjective, but that it is likely to be contentious and negative.  Other
candidates for "doing something worthwhile" may be arguable, but at
least they start on a positive note.

FWIW, I like John Wiseman's take on this:
> Suggestions of endeavors using clojure for something worthwhile itself
> seems like an entirely worthwhile discussion if people can resist the
> temptation to debate what worthwhile means and to disagree with other
> people's concept of worthwhile.  For example, here's a recipe for a
> useful discussion: If you know of activity X that you in good faith
> believe is worthwhile or, more specifically, (and I'm guessing at
> Rich's original intention so I could be wrong) philanthropic then
> post about X.  If you disagree with a poster about whether X is
> worthwhile, do not post.



Getting on to the question of non-technical questions on the list,
my reactions are that (a) this seems like the best place to find
information on the question I posed and (b) this is a mailing list
of Clojurists, not just a mailing list about Clojure, per se.  So,
I don't feel guilty about adding a few messages to the list.

-r

 -- 
http://www.cfcl.com/rdm   Rich Morin   r...@cfcl.com
http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA   +1 650-873-7841

Software system design, development, and documentation


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


Re: Who is "doing something worthwhile" in Clojure?

2013-12-20 Thread Rich Morin
My initial attempts at finding an article failed, so I didn't list one
on my initial posting.  However, but it turns out that Tim O'Reilly has
a blog entry (from early 2009) on this topic:

  Work on Stuff that Matters: First Principles
  http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html

FYI, his major points are:

  Work on something that matters to you more than money.

  Create more value than you capture.

  Take the long view.

-r

 -- 
http://www.cfcl.com/rdm   Rich Morin   r...@cfcl.com
http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA   +1 650-873-7841

Software system design, development, and documentation


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


Re: Does Pedestal have a future in the long run

2013-12-20 Thread Thomas Deutsch
As far as i can read the community, there are 3 Projects that use the UI as 
a value.

- Pedestal  
- Om
- Aurora  ( comming early 2014 )

As a Clojure community we know "the value of 
values", 
and for a UI as a value we will have "Immediate 
Mode" 
on the view side of things,
because we want to reflect our value (a clojure/script data type) to the 
DOM.
It seems that all 3 Projects could use react.js because:
*"react.js is the immediate mode abstraction over the retained mode dom"*(Chris 
Granger)

Does Pedestal have a future in the long run?
I hope that pedestal will be simple, and open to a solution to use react.js 
or any immediate mode abstraction lib that will come along.


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


Re: [ANN] Hoplon: web applications in Clojure and ClojureScript

2013-12-20 Thread Alan Dipert
Hi Ryan, thanks for your interest - and for remaining open, because things 
will get weird here for a moment :-)

I didn't mean to say that macros are a substitute for data manipulation; 
they are just a related thing, of arguable utility depending on context, 
that come along with the idea of Lisp.

In general, I too prefer function composition.  The problem hlisp addresses 
is that out of the box, the DOM doesn't come with anything like function 
composition at all.  Many people resort to something worse than even 'data' 
as we know it to deal with this issue - they write big DOM programs with 
C-preprocessors they call template engines!  Something better than this is 
to represent DOM in the hiccup style and perform higher level data 
manipulation using a programming language.  I see the relationship between 
string-munging template languages and Clojure-style data manipulation of 
hiccup as roughly the relationship between C-preprocessor macros and Lisp 
macros.  Data driven is clearly better, and most of us in Clojure-land are 
already here when it comes to representing and emitting DOM or DOM 
fragments.

Conspicuously missing from this continuum is the thing we really want: 
functional composition.  This is the flavor of composition we use most when 
we're programming.  How do we get it?  Well, in order for data to compose 
with other like data in the way we're used to functions doing, we must 
apply 'denotational semantics'.  Lisp's semantics are things like: a list 
means a function call.  The first thing in the list is the function.  The 
rest of the things are arguments.  If we provide a set of "primitive" 
operations - "the 7 things" [1] - and then apply the combination of our 
primitives and our semantics to Lisp data - we have a programming language, 
Lisp.  Once we have Lisp, we have a way to perform functional composition 
and do all the other great stuff one can do in Lisp.  As a programming 
language now, our data has sprouted the ability to compose with other like 
data in possibly novel ways without us necessarily adding more base 
semantics to our interpreter.  In a sense, our data has become infinitely 
meaningful, because it is now Turing complete.

This is what hlisp is: it's a means to a real Lisp, ClojureScript, atop not 
traditional lists, but DOM elements.  Where Lisp is that thing that happens 
when you apply the 7 things and semantics to lists, hlisp is the thing that 
happens when you apply the set of primitives and semantics Micha Niskin 
designed [2] to the DOM.

The result, in my opinion, is mindblowingly beautiful and extremely 
powerful.  By making the DOM a Lisp - and not just any Lisp, ClojureScript 
- we have a means to *real* DOM component modularity.  The exact same 
modularity that you get with things like namespaces and closures.  Where 
various other HTML component systems drag in their own reference types and 
scoping rules and evaluation semantics,  we have just ClojureScript's usual 
rules.  That's because, via the IFn protocol, it's possible for us to make 
DOM elements invokable.  As implementers of IFn, hlisp-generated DOM nodes 
can participate fully in the ClojureScript world without introducing new 
scoping constructs or DOM-specific composition rules.  As a result of all 
this, we have no need to represent HTML anywhere as data.  Everything is a 
program, and expressions in this program may evaluate to DOM.  There are no 
templates, just expressions.  I encourage you to check out our "Getting 
Started" page to see just how powerful functional composition can be when 
applied over Lispified DOM nodes.

It's worth noting that hlisp is not an interpreter - it actually compiles 
HTML to ClojureScript.  As a result, our entire program including 'markup' 
can now benefit from Google Closure stuff like optimization and dead-code 
analysis.

My reference to macros in my previous post was just this point: you can 
write macros in Clojure to write hlisp the same way you can write macros in 
Clojure to write ClojureScript.  Again, this is something that just falls 
out of Lisp and doesn't necessarily have much to do with hiccup or the idea 
of the DOM as data.

I hope this cleared things up for you.  Don't hesitate to join us on our 
mailing list or in IRC #hoplon if you have further questions!

Happy Lisping,
Alan

1. http://www.paulgraham.com/rootsoflisp.html
2. 
https://github.com/tailrecursion/hlisp-starter/blob/master/PROJECT.md#html-is-semantically-compatible-with-lisp

On Friday, December 20, 2013 2:01:37 PM UTC-5, Ryan Spangler wrote:
>
> The hlisp part of Hoplon - the compiler bit that converts HTML to 
>>> ClojureScript - was designed and implemented specifically to avoid having 
>>> to do this.  It's our opinion (and experience) that admission of the DOM as 
>>> a data structure instead of a piece of the program introduces tremendous 
>>> complexity.  This data structure must be explicitly interpreted, evaluated, 
>>> and updated in complicated ways tha

Re: library development

2013-12-20 Thread Phil Hagelberg
On Friday, December 20, 2013 9:16:59 AM UTC-8, John Gabriele wrote:

>
> If I can just `lein install` my libs (or other people's libs) and then use 
> them in all my projects (just like the libs found at clojars), what extra 
> functionality does lein-localrepo provide beyond that?
>

It used to be that you needed lein-localrepo if you wanted to put a jar in 
your local repository that wasn't a Leiningen project (if you couldn't do 
`lein install`). But these days you can do `lein deploy 
file:///home/me/.m2/repository com.somebody/mylib 0.1.0 mylib.jar 
mylib-pom.xml` to get any old jar+pom into your ~/.m2 repository.

There may be other things lein-localrepo can be used for that aren't 
covered by Leiningen, but in my experience that was the main thing people 
used it for. Perhaps if you don't have a pom and don't feel like generating 
a dummy one then it's a better fit.

-Phil 

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


[ANN] Cartridge 1.0.0 -- HTTP response recording and playback for clj-http

2013-12-20 Thread David Leatherman
Hi all,

I'm happy to announce the release of Cartridge, an HTTP request
recording and playback library well suited for testing HTTP client
calls when the server is unavailable.

This project is in active use at Sonian and was built to help test
clients of HTTP services when the server is unavailable or impractical
to run in every development environment.  It offers convenience during
daily testing at the cost of occasional maintenance of the Cartridge
recording file (i.e., whenever the server responses change).

With the small addition of a clojure.test fixture we can run our tests
to produce a recording of all requests and responses in a form that
can be checked into Git.  Subsequent test runs will read that file and
play it back instead of making live requests.  Typically, no code
outside of the tests needs to be modified.

You can find Cartridge along with docs and examples at
https://github.com/sonian/cartridge

Feedback welcome.  Enjoy!

-The Sonian Team

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


Re: Who is "doing something worthwhile" in Clojure?

2013-12-20 Thread Samuel Aaron
I personally believe that Overtone is a worthwhile project.

Whilst I totally want to see more projects that help us at least maintain and 
ideally improve the harmony of the world, I also value projects that dare to 
take us in new directions.

With Overtone, I'm attempting to ask the question "can we enrich the way we 
communicate?". Live Coding with Overtone, for me at least, is a new way for me 
to communicate (via sounds) parts of me that words struggle to represent. Sure, 
I bet I could do a much richer job with a traditional musical instrument. 
However, by opening up a window to the music world for programmers, I'm 
hopefully broadening the number of people (including myself) that will be able 
to communicate in this way. Also, I'm driven by the idea that using programming 
languages as musical interfaces can take us to extraordinary places that 
traditional instruments can't currently reach.

To me at least, this is a worthwhile endeavour. 

Sam

---
http://sam.aaron.name

On 20 Dec 2013, at 20:01, Rich Morin  wrote:

> My initial attempts at finding an article failed, so I didn't list one
> on my initial posting.  However, but it turns out that Tim O'Reilly has
> a blog entry (from early 2009) on this topic:
> 
>  Work on Stuff that Matters: First Principles
>  http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html
> 
> FYI, his major points are:
> 
>  Work on something that matters to you more than money.
> 
>  Create more value than you capture.
> 
>  Take the long view.
> 
> -r
> 
> -- 
> http://www.cfcl.com/rdm   Rich Morin   r...@cfcl.com
> http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA   +1 650-873-7841
> 
> Software system design, development, and documentation
> 
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

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


Re: [ClojureScript] ANN: Om, a ClojureScript binding to Facebook's React

2013-12-20 Thread Moritz Ulrich

David Nolen writes:

> Enjoy,
> http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/
>
> David

Fantastic work! Om is (even in it's current state) really accessible and
easy to use. The TodoMVC implementation you mentioned in the Readme is a
really nice help when following the React tutorial.

I really look forward to using this library for some private and
(hopefully) work-related projects in the future.


Cheers!

-- 
Moritz Ulrich


pgpAxW_2KmKeQ.pgp
Description: PGP signature


computed docstrings

2013-12-20 Thread Dave Tenny
I'm guessing the answer to this is that I'd have to write my own 'defn' 
equivalent that would parse a form rather than requiring a string, but 
here's hoping.

One of the things I did in Common Lisp was to occasionally compute the 
docstring for a function with a little function that formatted them the way 
I wanted them.

e.g.

(defun foo (bar)
  #.(docstring "some text to be made into a docstring for foo"
   "some more text to be formatted as part of the docstring of 
foo")
   ...


There's no #. equivalent that I know of in clojure, so that approach is out.

I also can't do a 

(def docstring "abc")
(defn foo docstring [] 'bar)

or an error crops up.   

Is there any alternative I'm missing short of writing my own macro to allow 
non-string forms for docstrings?

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


Re: computed docstrings

2013-12-20 Thread guns
On Fri 20 Dec 2013 at 05:04:13PM -0800, Dave Tenny wrote:

> Is there any alternative I'm missing short of writing my own macro to
> allow non-string forms for docstrings?

Use the ^ reader macro to set the :doc entry:

(def my-docstring "foo bar")

(defn ^{:doc my-docstring} foo [])

guns


pgpGliEWfoje7.pgp
Description: PGP signature


Re: computed docstrings

2013-12-20 Thread Dave Tenny
Good, thanks

On Friday, December 20, 2013 8:08:39 PM UTC-5, guns wrote:
>
> On Fri 20 Dec 2013 at 05:04:13PM -0800, Dave Tenny wrote: 
>
> > Is there any alternative I'm missing short of writing my own macro to 
> > allow non-string forms for docstrings? 
>
> Use the ^ reader macro to set the :doc entry: 
>
> (def my-docstring "foo bar") 
>
> (defn ^{:doc my-docstring} foo []) 
>
> guns 
>

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