Possible to dual license open source Clojure project under EPL with commercial option?

2013-12-28 Thread Michael Bradley, Jr.
Do any Clojure developers have experience with dual licensing an open 
source Clojure project under the EPL with the option of a commercial 
license?

I have in mind corporate customer-developers for one of my projects who 
aren't comfortable with the terms of the EPL – i.e. they desire to embrace 
and extend without bumping into the reciprocal clauses of the EPL.

It seems to me the EPL doesn't prohibit the option of a commercial license. 
 But I'm wondering if this kind of thing has been done or is being done 
with EPL'd open source Clojure codebases.

I'm sure I would need the services of an IP lawyer to make sure the fine 
print is in good order, but I would appreciate input from the readers here 
as well.

Thanks.

--
Michael Bradley
@michaelsbradley

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


Library can depend on an older version of itself?

2013-12-23 Thread Michael Bradley, Jr.
Is there a straightforward way to setup a Clojure library so that it can 
depend on an older version of itself?

I can think of a couple of ways to do this that seem clunky, but was 
wondering what approaches (if any) have worked well for other folks. 
Something involving pomegranate and clojure.tools.namespace?

--
Michael Bradley
@michaelsbradley

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

2013-12-23 Thread Michael Bradley, Jr.
I’m writing a parser that will be easier to write with itself, but I want to be 
able to “freeze” an earlier version that’s passing all the tests (for features 
implemented so far) and which is implemented quite differently.  The older 
version can then be used as the basis for the next version, and that version in 
turn as the basis for the version after next, and so on.

--
Michael Bradley, Jr.
@michaelsbradley




On Dec 23, 2013, at 18:12, James Reeves ja...@booleanknot.com wrote:

 I don't have any suggestions as to how this might be achieved, I'm afraid, 
 but I am very curious as to why you'd want to do this.
 
 - James
 
 
 On 24 December 2013 00:07, Michael Bradley, Jr. michaelsbradle...@gmail.com 
 wrote:
 Is there a straightforward way to setup a Clojure library so that it can 
 depend on an older version of itself?
 
 I can think of a couple of ways to do this that seem clunky, but was 
 wondering what approaches (if any) have worked well for other folks. 
 Something involving pomegranate and clojure.tools.namespace?
 
 --
 Michael Bradley
 @michaelsbradley
 
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from 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 a topic in the Google 
 Groups Clojure group.
 To unsubscribe from this topic, visit 
 https://groups.google.com/d/topic/clojure/OFwMQ5apN0Y/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to 
 clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/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.


Vote for Clojure on DevDocs

2013-09-07 Thread Michael Bradley, Jr.
A couple of months ago I discovered DevDocs:

http://devdocs.io/


As a developer who has been spending a lot of time with front-end DOM / 
JavaScript / HTTP / XHR code over the past 6 months, it's been a real boon.

The maintainer is using Trello as a mechanism to collect suggestions and 
votes for what libraries, languages and tools should have their 
documentation ported into DevDocs:

https://trello.com/b/6BmTulfx/devdocs-documentation


Back in late August, I requested that Clojure be added to the voting-list, 
but didn't notice until yesterday that he did add it, in the [Other] list.

*If you would like to see Clojure's docs available through DevDocs, please 
go vote for it!*  It may be some time before the maintainer gets around to 
it, but he does seem quite responsive when the votes tally up for a 
particular entry.


Perhaps some other popular Clojure-related APIs could be suggested as well: 
 ring, Datomic, etc.

In the long run, I hope the maintainer will open source the DevDocs 
platform and some docs-contribution mechanism (it's not an open platform at 
present), but I find it to be a very practical and useful tool in any case.


Best regards.

--
Michael Bradley, Jr.
@michaelsbradley

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


Can't get ritz-swank working

2012-12-23 Thread Michael Bradley, Jr.
I'd like to move away from lein-swank and swank-clojure, since they're 
noted as deprecated (though still working for me in the context of Clojure 
1.4.0 and Emacs 24).

I've tried working with nREPL + Emacs, but it just doesn't seem as nice 
what I get with lein-swank (stacktraces and other aspects of the 
integration feel more raw). What I'd really like is to get lein-ritz and 
ritz-swank https://github.com/pallet/ritz/tree/develop/swank working, as 
they seems to be the proper slime/swank successors to lein-swank and 
swank-clojure.

I've tried a couple of times in the past couple of months to setup 
lein-ritz / ritz-swank, but they just don't seem to work for me. I've 
followed the instructions in the README to the letter, and then tried 
tweaking things here and there to see if I can figure out what's going 
wrong ... nothing seems to work.

Long story short, after I run `slime-connect` in Emacs, I get a warning: 
Versions differ: 2010-11-13 (slime) vs. 20101113 (swank). After choosing 
to continue, I'm told a connection has been established, but no REPL 
appears, and I can't seem to bring one up manually.

Any help or suggestions would be appreciated.

--
Michael Bradley, Jr.
@michaelsbradley

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

Re: Two clojure with emacs questions

2012-12-20 Thread Michael Bradley, Jr.
On Wednesday, December 19, 2012 10:52:26 AM UTC-6, Jonathon McKitrick wrote:

 Hi Tassilo

  1.  Can emacs with swank dynamically update Noir code running locally, 

  or do I need to save the code and then 'lein run' to see the new 
  result? 

 Without ever having used Noir, I would assume you can hack on the living 
 instance at the REPL. 


 I was wondering if I could make changes in emacs, C-c C-k, and refresh the 
 web page to see the results.



Yes, you can do this kind of thing, but you'll have to do a bit of setup.

My preference is to use lein-ring 
https://github.com/weavejester/lein-ringwith `:auto-refresh?` and 
`:auto-reload?` enabled. And I include something 
like this in one of the namespaces (i.e. some .clj file) that gets loaded 
as a result of running `lein ring server ...` in my terminal:

(ns some.namespace
  (:require [swank.swank :as swank]))

(defonce swankify
  (swank/start-server :port 4005))


Note that you'll need to include [swank-clojure 1.4.3] as a dependency in 
your project.clj for the above to work.

Once your program has been started, e.g. with `lein ring server 3000`, you 
should be able to use the `slime-connect` command from within Emacs to 
connect to localhost:4005.  Another thing to note: if you haven't installed 
the SLIME package for Emacs, but you do have clojure-mode installed, then 
first issue the `clojure-jack-in` command from within Emacs, then close the 
swank buffer, and then you'll be able to use the `slime-connect` command 
(as clojure-mode embeds a version of SLIME, but it's not loaded until your 
run `clojure-jack-in` the first time).

At this point, things you do in the slime-connect'ed REPL will have an 
effect on the running web server process. Also, if you make changes to 
source files in your project, the next time a web client makes a request 
those files/namespaces wil get reloaded thanks to lein-ring's 
`:auto-reload?` option. Also, changes to the source files will trigger a 
browser refresh thanks to lein-ring's `:auto-refresh?` option.

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

Re: monads

2012-10-29 Thread Michael Bradley, Jr.
On Friday, October 26, 2012 11:06:59 AM UTC-5, Brian Craft wrote:

 I've read about four tutorials on monads so far, but it still escapes me.

 In fact, I'm still not sure what problem it solves. I'm familiar with the 
 problem of having, say, three functions like f(a) - b, g(c) - d, h(e) - 
 f, which you'd like to chain like f(g(h(x))), but you can't because b is a 
 different type from c and d is a different type from e. The monad tutorials 
 all start with a problem like this, but I still can't tell if they're 
 actually providing a solution, because it appears every monad is specific 
 to a particular type. E.g. a sequence monad. So, great, I have something 
 that takes a scalar and returns a sequence. That might solve g(h(x)) if f 
 is a scalar and c is a sequence by letting me write g(s(h(x))), but it 
 doesn't solve the whole problem, since I still have f() to worry about.

 snip



Brian, you may have looked at it already, but I found Konrad Hinsen's 
4-part tutorial linked from the README in Clojure's algo.monads repository 
to be quite helpful:

https://github.com/clojure/algo.monads

By the way, the links in that README to Jim Duey's tutorials are broken; 
here is the correct link to Part 1 of Jim's tutorials:

http://www.intensivesystems.net/tutorials/monads_101.html

I read Jim's tutorials first, and then tried Konrad's. I found the latter a 
bit more helpful. Also, Konrad's explanation of the state monad in Part 3 
really clicked with me, so I felt it was worth working through Parts 1 
and 2, even though I was still scratching my head a bit when I finished 
Part 2.

Jim also has a more recent set of blog posts dedicated to exploring monads:

http://www.clojure.net/archive.html

I worked from the bottom of that list to the top, after reading the other 
tutorials, and came away with a basic but sound understanding of the core 
concepts:  m-result, m-bind, the Monad Laws, etc.

Also note that Jim has developed a new monads library for Clojure, 
implemented with protocols:

https://github.com/jduey/protocol-monads

Working through that library's test suite seems like a good way improve 
one's understanding of monads; also, I'm going to try to port the 
examples from algo.monads over to protocol-monads. I haven't done that yet, 
but when I do you will be able to find them in my fork of protocol-monads 
(if things go well, I'll submit a pull request):

https://github.com/michaelsbradleyjr/protocol-monads/blob/examples/src/examples/monads.clj

The original examples for algo.monads:

https://github.com/clojure/algo.monads/blob/master/src/examples/clojure/examples/monads.clj

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

[ANN] clojure-script for NodeJS

2012-05-10 Thread Michael Bradley, Jr.
I'm looking for folks to help me kick the tires and push this project 
forward:

https://github.com/michaelsbradleyjr/node-clojurescript

http://search.npmjs.org/#/clojure-script

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

Re: [ANN] clojure-script for NodeJS

2012-05-10 Thread Michael Bradley, Jr.
Four reasons, all interrelated. Whether they're good reasons, I'm not 100% 
positive, but felt this was the way to go:

*1.*  The coffee-script package on npm is one of my favorites, and was 
the inspiration for my clojure-script package. Thus, I wanted the package 
names to resemble one another.

*2.  *The npm package and the language it facilitates are two different 
things. So that way someone can say, I'm having an issue with 
clojure-script, and mean they're having trouble with my package and not 
with the language itself. 

*3.* From its early days, the npm registry only supports lower case package 
names, e.g. no camel case. So putting a - between coffee and script 
makes the coffee pop out in the text-heavy pages of the npm website. The 
same goes for clojure-script.

*4. *I felt weird about calling my GitHub repository 
michaelsbradleyjr/clojurescript, since it's really a distinct project 
from ClojureScript the language. So I named it node-clojurescript. 
However, it's officially not recommended to npm-publish packages with names 
that include the word node, since that' redundant. But for the same 
reasons I didn't want to name my repository clojurescript, I chose a 
package name that would implicitly indicate that clojure-script is a 
distinct entity from ClojureScript the language.



On Thursday, May 10, 2012 8:55:52 AM UTC-5, David Nolen wrote:

 Looks neat.

 Any reason to call the module clojure-script instead of just clojurescript?

 David

 On Thu, May 10, 2012 at 2:38 AM, Michael Bradley, Jr. 
 michaelsbradle...@gmail.com wrote:

 I'm looking for folks to help me kick the tires and push this project 
 forward:

 https://github.com/michaelsbradleyjr/node-clojurescript

 http://search.npmjs.org/#/clojure-script

 snip




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

Re: [ANN] clojure-script for NodeJS

2012-05-10 Thread Michael Bradley, Jr.
Sure, maybe a spinner or something like that.

However, many use cases would exclude displaying such an indicator, e.g. if 
you're sending the compiled text to stdout, running a .cljs script directly 
or some other script that uses Node's `require` to load a .cljs script, 
etc. That is, in those cases it probably wouldn't be appropriate to send 
extra stuff to stdout or stderr, because the developer may expect to have 
exclusive control over them.
 
But when using ncljsc's -c / --compile flag, perhaps together with the -w / 
--watch and -W / --watch-deps flags, then it would make sense to have a 
busy compiling indicator.

Thanks for the suggestion. I'll definitely look into it.



On Thursday, May 10, 2012 8:58:33 AM UTC-5, David Nolen wrote:

 Just gave it a shot, works! Would be nice if it gave some feedback that it 
 was compiling / recompiling.

 David

 On Thu, May 10, 2012 at 2:38 AM, Michael Bradley, Jr. 
 michaelsbradle...@gmail.com wrote:

 I'm looking for folks to help me kick the tires and push this project 
 forward:

 https://github.com/michaelsbradleyjr/node-clojurescript

 http://search.npmjs.org/#/clojure-script

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




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