Re: Do web apps need Clojure?

2013-11-14 Thread Bastien
Marcus Blankenship mar...@creoagency.com writes:

 Brian, that’s really interesting.  I think we’re seeing something
 similar, and are going to look at Pedestal and Caribou as options for
 a project we’re working on.  Are their others we should consider?

Perhaps you should consider starting from scratch, in parallel.

Maybe that's because I'm a beginner in both the language and in web
development, but so far I've found it's the best way to understand the
choices behind framaworks.  Otherwise I would confuse web development
with those choices, and I feel the richness of the Clojure ecosystem
is precisely to open your mind about web development.

2 cents,

-- 
 Bastien

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


Annoying Emacs Problem

2013-11-14 Thread Alexandru Nedelcu
Hi guys,

I've got an embarrassing problem with Emacs.

In Clojure mode, I cannot type (fn, at all. I cannot copy paste text
with (fn either, the n simply vanishes. Therefore, I can only
declare anonymous functions by means of #().

:-)

For setting up the environment I followed the Getting Started tutorial
at http://clojure-doc.org/articles/tutorials/emacs.html and thus
installed starter-kit, starter-kit-lisp, starter-kit-bindings,
starter-kit-eshell, clojure-mode, clojure-test-mode and cider.

Any ideas?


-- 
Alexandru Nedelcu
www.bionicspirit.com

PGP Public Key:
https://bionicspirit.com/alexandru-nedelcu.asc

-- 
-- 
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: Annoying Emacs Problem

2013-11-14 Thread Haim Ashkenazi
Hi Alexandru,

I believe emacs-starter-kit displays all your “(fn” as “(ƒ”. This has no
effect on the program. If you’ll open the file in a different text editor
you’ll see it with regular “(fn”. It’s just a nicer display.

HTH

Haim


On Thu, Nov 14, 2013 at 10:29 AM, Alexandru Nedelcu
a...@bionicspirit.comwrote:

 Hi guys,

 I've got an embarrassing problem with Emacs.

 In Clojure mode, I cannot type (fn, at all. I cannot copy paste text
 with (fn either, the n simply vanishes. Therefore, I can only
 declare anonymous functions by means of #().

 :-)

 For setting up the environment I followed the Getting Started tutorial
 at http://clojure-doc.org/articles/tutorials/emacs.html and thus
 installed starter-kit, starter-kit-lisp, starter-kit-bindings,
 starter-kit-eshell, clojure-mode, clojure-test-mode and cider.

 Any ideas?


 --
 Alexandru Nedelcu
 www.bionicspirit.com

 PGP Public Key:
 https://bionicspirit.com/alexandru-nedelcu.asc

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




-- 
Haim

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Islon Scherer
For me it's about 1 thing: Data.

A web application is about taking data from the user, transform it and 
store it on the database and take data from the database, transform it and 
show it to the user.
Clojure is the best language I used to work with data, it just gives you a 
composable set of tools and then get out of your way, and there's always 
macros for the more complex use cases.
We have a web application that serves edn data to our clojurescript 
frontend, our webdevelopers created a new site for mobile in backbone.js 
that used json, I had just to create a function (ring middleware) that 
transformed my edn data to json based on the accept header.

My 2¢

On Thursday, November 14, 2013 9:11:04 AM UTC+1, Bastien Guerry wrote:

 Marcus Blankenship mar...@creoagency.com javascript: writes: 

  Brian, that’s really interesting.  I think we’re seeing something 
  similar, and are going to look at Pedestal and Caribou as options for 
  a project we’re working on.  Are their others we should consider? 

 Perhaps you should consider starting from scratch, in parallel. 

 Maybe that's because I'm a beginner in both the language and in web 
 development, but so far I've found it's the best way to understand the 
 choices behind framaworks.  Otherwise I would confuse web development 
 with those choices, and I feel the richness of the Clojure ecosystem 
 is precisely to open your mind about web development. 

 2 cents, 

 -- 
  Bastien 


-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Ryan Spangler
Marcus,

To answer your original question, the main reason we use Clojure is that we 
were originally using Ruby, and once our sites got to a certain level of 
traffic they fell over badly.  Rewriting the system in Clojure meant 
literally two orders of magnitude performance increase, which at the level 
of clients we are dealing with now is not just a huge win, it is critical.

I've also used Python extensively (and we still have some projects in it), 
but there is a lot of complexity in just dealing with the environments and 
dependencies (virtualenv is a standard practice now?)  Once people have 
lein installed, they can download one of our Clojure projects and we know 
everyone is using the same version of everything without any hassle.  It 
just works.  

Also, the benefit of being able to spin off a new thread to do some 
background task is not to be overlooked.  Python and Ruby are still 
fundamentally single threaded and each has its own flavors of what are 
basically hacks to get around that limitation.

As our applications begin to demand more and more asynchronous handling 
Clojure really is starting to shine.  Once you have core.async at your 
disposal, all of a sudden it is hard to imagine how you ever lived without 
it.  Seriously.  What a brilliant abstraction and solution for what was 
previously a complex architecture task.

So can you still use Django and Rails to build webapps?  Of course, these 
are mature and tested platforms for doing standard things.  But Clojure is 
the future.  There is always a choice to be made between going with the 
sanctioned solutions of today or blazing the trails of tomorrow.  I 
remember when Django and Rails were the platforms of the future and people 
thought they were risky or strange and untested.  People are always making 
a case for the safe established choice.  But somehow progress gets made 
anyway.

(I am biased of course.  But I made that decision years ago and never 
looked back.  I can't imagine going back to python or ruby now, but I can't 
speak for everyone.)

On Wednesday, November 13, 2013 2:38:49 PM UTC-8, Marcus Blankenship wrote:

 Hi Folks,

 We’re a Python / Django shop, and some folks are getting excited about 
 using Clojure for building web apps.  Certainly there are numerous 
 open-source options to assist us (Pedastal, Ring, Compojure, Caribou, etc), 
 but I think it begs a larger question: *as a rule, do web applications 
 need the power that Clojure brings to the table?*

 Other folks on my team are telling me that solutions built with Python / 
 Django (or even RubyOnRails) fully satisfy the needs of 99% of the web apps 
 we have built, and that Clojure offers nothing new to this problem space.  

 So, here’s the question: *How are you are actually using Clojure, and why 
 did you choose to use it, particularly in the “web application” space? * 

 Thanks,
 Marcus



 marcus blankenship
 \\\ Partner, Problem Solver, Linear Thinker
 \\\ 541.805.2736 \ @justzeros \ skype:marcuscreo
  


-- 
-- 
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: Releasing Caribou today: Open Source Clojure Web Ecosystem

2013-11-14 Thread Yuan
This is really cool, very happy to see things like this

_
Best regards
-
Yuan blog http://blog.lenage.com/ github http://github.com/lenage





On Thu, Nov 14, 2013 at 4:24 AM, Dmitri dmitri.sotni...@gmail.com wrote:

 I notice you're using a fairly old version of markdown-clj [markdown-clj
 0.9.19]

 The current version is [markdown-clj 0.9.35] so that should address a
 lot of formatting issues. :)


 On Wednesday, November 13, 2013 2:09:10 PM UTC-5, Ryan Spangler wrote:

 Brian,

 Thanks for the heads up!  I fixed some of the formatting issues I found,
 I'll keep a lookout for this issue (using a md-html converter which
 apparently requires spaces at the end of lines in lists?)

 And yes, data modeling is one of our main concerns.  All models are also
 data, which means they can be manipulated like any other data structure.
  This is what enables us to generate the admin and api automatically!  (as
 well as a host of other benefits)

 On Wednesday, November 13, 2013 8:07:52 AM UTC-8, Brian Craft wrote:

 Looks very cool. I'm happy to see that data modeling is taken seriously,
 which in my experience is the biggest piece lacking in other clojure web
 tools.

 The docs have a lot of layout problems with words running together, like
 so: data from oneenvironment. Looks like a string joining operation
 that's not quite right.

 On Tuesday, November 12, 2013 3:52:10 PM UTC-8, Ryan Spangler wrote:

 Hello Clojure,

 Excited to announce today the release of Caribou!
 http://let-caribou.in/

 We have been building web sites and web applications with it for over
 two years now and improving it every day.  Currently we have four people
 working on it and another ten using it to build things, so it is getting a
 lot of real world testing.

 It has been designed as a collection of independent libraries that
 could each be useful on their own, but which come together as a meaningful
 whole.

 We have been spending the last couple months getting it ready for a
 full open source release, and I am happy to say it is finally ready.
  Funded and supported by Instrument in Portland, OR:
 http://weareinstrument.com/  We have four projects using it in
 production, and several more about to be launched (as well as over a dozen
 internal things).

 Documentation is here:  http://caribou.github.io/
 caribou/docs/outline.html

 Source is here:  http://github.com/caribou/caribou (use this for
 issues, you don't actually need the source as it is installed through a
 lein template).

 Some of the independently useful libraries Caribou is built on are:

 * Polaris -- Routing with data (not macros) and reverse routing! :
 https://github.com/caribou/polaris
 * Lichen -- Image resizing to and from s3 or on disk:
 https://github.com/caribou/lichen
 * Schmetterling -- Debugging Clojure processes from the browser:
 https://github.com/prismofeverything/schmetterling
 * Antlers -- Useful extensions to mustache templating (helpers and
 blocks, among other things):  https://github.com/caribou/antlers
 * Groundhog -- Replay http requests: https://github.com/
 noisesmith/groundhog

 And many others.

 Basically this is an Alpha release, and I am announcing it here first
 in order to get as much feedback from the community as possible.  We have
 made it as useful as we can for our purposes and recognize that for it to
 improve from here, we really need as many people using it and building
 things with it as possible.  The documentation also needs to be put through
 its paces:  we need to see how well people are able to use it who know
 nothing about it, based only on the existing docs.

 All feedback welcome!

 Thanks for reading!  I hope you find it useful.

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

Re: Annoying Emacs Problem

2013-11-14 Thread Neil Dunbar

On 14/11/13 08:52, Haim Ashkenazi wrote:

Hi Alexandru,

I believe emacs-starter-kit displays all your “(fn” as “(ƒ”. This has 
no effect on the program. If you’ll open the file in a different text 
editor you’ll see it with regular “(fn”. It’s just a nicer display.




Does the same in python mode too - replaces lambda with the greek letter.

Cheers,

Neil

--
--
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: Releasing Caribou today: Open Source Clojure Web Ecosystem

2013-11-14 Thread Eric Turner
You typically need two spaces at the end of a line of markdown to force a 
line break. If your converter supports Github-flavored markdown then I 
think that will respect newlines. I've used 
marked.jshttps://github.com/chjj/markedon my personal note-taking web app, 
and it lets you configure it to use 
Github-flavored markdown.

On a different note, thank you for creating and releasing Caribou! The 
instructions for creating and running an app worked flawlessly. I'm looking 
forward to building something with it.


On Wednesday, November 13, 2013 2:09:10 PM UTC-5, Ryan Spangler wrote:

 Brian,

 Thanks for the heads up!  I fixed some of the formatting issues I found, 
 I'll keep a lookout for this issue (using a md-html converter which 
 apparently requires spaces at the end of lines in lists?)

 And yes, data modeling is one of our main concerns.  All models are also 
 data, which means they can be manipulated like any other data structure. 
  This is what enables us to generate the admin and api automatically!  (as 
 well as a host of other benefits)

 On Wednesday, November 13, 2013 8:07:52 AM UTC-8, Brian Craft wrote:

 Looks very cool. I'm happy to see that data modeling is taken seriously, 
 which in my experience is the biggest piece lacking in other clojure web 
 tools.

 The docs have a lot of layout problems with words running together, like 
 so: data from oneenvironment. Looks like a string joining operation 
 that's not quite right.

 On Tuesday, November 12, 2013 3:52:10 PM UTC-8, Ryan Spangler wrote:

 Hello Clojure,

 Excited to announce today the release of Caribou!  
 http://let-caribou.in/

 We have been building web sites and web applications with it for over 
 two years now and improving it every day.  Currently we have four people 
 working on it and another ten using it to build things, so it is getting a 
 lot of real world testing.

 It has been designed as a collection of independent libraries that could 
 each be useful on their own, but which come together as a meaningful whole.

 We have been spending the last couple months getting it ready for a full 
 open source release, and I am happy to say it is finally ready.  Funded and 
 supported by Instrument in Portland, OR:  http://weareinstrument.com/ We 
 have four projects using it in production, and several more about to be 
 launched (as well as over a dozen internal things).

 Documentation is here:  
 http://caribou.github.io/caribou/docs/outline.html

 Source is here:  http://github.com/caribou/caribou (use this for 
 issues, you don't actually need the source as it is installed through a 
 lein template).

 Some of the independently useful libraries Caribou is built on are:

 * Polaris -- Routing with data (not macros) and reverse routing! :  
 https://github.com/caribou/polaris
 * Lichen -- Image resizing to and from s3 or on disk: 
 https://github.com/caribou/lichen
 * Schmetterling -- Debugging Clojure processes from the browser:  
 https://github.com/prismofeverything/schmetterling
 * Antlers -- Useful extensions to mustache templating (helpers and 
 blocks, among other things):  https://github.com/caribou/antlers
 * Groundhog -- Replay http requests: 
 https://github.com/noisesmith/groundhog

 And many others.

 Basically this is an Alpha release, and I am announcing it here first in 
 order to get as much feedback from the community as possible.  We have made 
 it as useful as we can for our purposes and recognize that for it to 
 improve from here, we really need as many people using it and building 
 things with it as possible.  The documentation also needs to be put through 
 its paces:  we need to see how well people are able to use it who know 
 nothing about it, based only on the existing docs.

 All feedback welcome!  

 Thanks for reading!  I hope you find it useful.



-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Sean Johnson
I'm a Rails guy who now uses Clojure for all new web development, so 
don't take what I'm about to say as disagreeing with Justin. 

As someone with a foot firmly in both worlds, a couple of Justin's points 
aren't really marks in Clojure's favor, at least compared to Ruby/Rails (I 
can't say as much about Python/Django). I also have a few other benefits to 
bring up that Justin didn't:

Clojure provides execution efficiency that Ruby or Python cannot match. 
 This translates to lowered hosting costs.


Agreed. This is a huge point. And not just in lowered hosting costs, but 
also potentially a better user experience (lower latency).
 

 The lein tool provides very clean and isolated dependency management, that 
 makes setting up dev environments and deployment very straightforward.


The pair of Bundler/rake does this very effectively for  Ruby.

Targeting the JVM means that each deploy can be a single jar or war file 
 that you upload to the server.


True. Clojure offers potentially much simpler deployment schemes, but if 
this is important to you, there's JRuby.
 

 The ring middleware system is a very clean way of including functionality 
 in an app.


Rack is every bit as clean in the Ruby world.
 

 Working with immutable data structures and threadsafe bindings as a 
 pervasive default does a lot for stability, and rules out many of the round 
 about ways one of heisenbugs end up in the system.


True, but this comes up less frequently than you might expect with the 
typical web app. With the stateless nature of HTTP, and the MVC (of a sort) 
convention of Rail/Django, typical web app code in these frameworks ends up 
being more short lived, imperative, and object based in nature rather than 
long running, object-oriented, and stateful.

Here are several additional points to consider:

Conciseness. Terseness. Or to put a more positive spin on it, 
expressiveness. Idiomatic Clojure is more concise than idiomatic Ruby or 
Python. I find that having 2x or less code to implement the same 
functionality to be very refreshing and empowering. Big Rails/Django apps 
suffer entropy much faster than comparable Clojure apps.

Full-stack with ClojureScript. The ability to code all in one language, and 
to share code between client and server, is quite nice compared to 
Ruby/JavaScript, Ruby/CoffeeScript. It's one small reason node.js has 
gained momentum so quickly.

Neither Rails nor Django has a robust, mature threading story. Both achieve 
concurrency primarily through many processes. This can eat through memory 
on your hosts quickly as the footprint for Rails and Django themselves is 
not small and is replicated in each process. This comes up as you end up 
serving web requests to multiple processes to concurrently, and end up with 
a many processes model for working background requests. This has gotten a 
bit better in the Ruby/Rails world as Rails is now thread safe and so can 
be run multithreaded in alternative Ruby implementations (other than MRI), 
and Sidekiq has come on the scene for background work, and it leverages 
Celluloid's actor implementation, borrowed from Erlang, to provide 
multi-threaded Rails workers. Django has celery but I think that's still 
process based like resque is in the Ruby world. Not positive, but I don't 
think Django is threadsafe though.

Framework vs. ecosystem of interoperable libraries. The monolithic 
framework (see Rails and Django) is not the way web development is done in 
Clojure. Instead imagine the Clojure world as a set of legos. You get to 
build whatever you want with your legos, selecting just the blocks you 
need, in the colors and sizes you want, and they all snap together [1]. The 
benefit to this approach is simplicity. There is a LOT to know about the 
Rails and Django frameworks, as they are big, mature things that have grown 
to solve all the common web development needs, and you start your 
development with ALL of that framework. Your starting point with Clojure on 
the other hand is much simpler. It will seem too simple... at first you'll 
be wondering... where is all the stuff? You start with maybe just ring 
and compojure (web middleware and routing) and a few lines of your code and 
your first couple of stories are already complete. You add libraries as you 
find you need them as you build out your app over time, but at all times 
your app is as simple as it can be, and only has the stuff it needs. It's 
therefore much easier to understand and less a big ball of mud.

The magic of meta-programming (Ruby) vs. magic of macros (Clojure) vs. no 
magic (Python). This probably comes down to personal preference, and so is 
a potential benefit of any of them, depending on your preference, but it's 
a significant difference, so it's worth pointing out. By magic I just 
mean when the system seems to be more doing something much more powerful 
than you can readily see just by looking at the code. A simple few lines of 
code are doing all these wondrous 

Re: Annoying Emacs Problem

2013-11-14 Thread Alexandru Nedelcu
On 14.11.2013 10:52, Haim Ashkenazi wrote:
 I believe emacs-starter-kit displays all your “(fn” as “(ƒ”. This has no
 effect on the program. If you’ll open the file in a different text editor
 you’ll see it with regular “(fn”. It’s just a nicer display.

OK, this is embarrassing :-)
I wasn't noticing it because of the font used.

Thanks,

-- 
Alexandru Nedelcu
www.bionicspirit.com

PGP Public Key:
https://bionicspirit.com/key.aexpk



signature.asc
Description: OpenPGP digital signature


Re: Clojure Users Group - Denmark

2013-11-14 Thread Anders Konring Olesen
Anyone developing clojure in Denmark at the moment?

On Thursday, April 2, 2009 1:31:50 AM UTC+2, fyuryu wrote:

 Hi, 

 I'm currently in Copenhagen so I'm definitely interested. 

 -Roland

-- 
-- 
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: Regarding Clojure's license

2013-11-14 Thread Alx3T32
This is musicdenotat...@gmail.com. I wasn't able to post from that account. 
If I have been banned, then listen to my apology:
This user does not intend to disrupt or deface this forum or the Clojure 
community. He is just trying to get the Clojure's license changed. This 
topic has been discussed before and resulted into a flame 
war.https://groups.google.com/forum/#!topic/clojure/bpnKr88rvt8

*This user has encountered a problem with Clojure's license and had to post 
aggressively. I am sorry for any inconvenience.**

Rich Hickey doesn't like people modifying Clojure without contributing back 
or the strong requirements of the GPL/LGPL. After reading and evaluating 
various open-source licenses carefully, I recommend the Mozilla Public 
License version 2.0 http://www.mozilla.org/MPL/2.0/. I think it fits his 
(and the Clojure community's) goal without sacrificing license 
compatibility. (It is GPL-compatible, unless you declare it to be 
incompatible, but please don't do so.)

* Do you understand this? It is a joke.

-- 
-- 
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: Regarding Clojure's license

2013-11-14 Thread Phillip Lord

To me, this section appears to be about the LGPL library; so if you are
using an LGPL library, you cannot obsfucate in your (possibly modified)
version of it, nor prevent people debugging the library.

Sounds to me like jobsworth lawyers -- either they can spend time
understand something or they can just say no which is the safer cause of
action for them.

Phil

Colin Fleming colin.mailingl...@gmail.com writes:

 At least one company (mine at the time) had a problem with using LGPL
 software because of the clause where you explicitly allow reverse
 engineering of your product in order to use a different version of the LGPL
 library. That's enough to give any corporate lawyer the screaming heebie
 jeebies, not to mention the possibility of having to support your product
 with users running random versions of some of the libraries you depend on.
 A ridiculous prospect? Maybe, but the LGPL very explicitly allows it and
 forces acceptance of those terms, so clearly someone is anticipating doing
 it.


 On 13 November 2013 11:25, John Gabriele jmg3...@gmail.com wrote:

 On Tuesday, November 12, 2013 11:30:23 AM UTC-5, Sean Corfield wrote:

 It's also worth
 pointing out that a lot of US companies won't use GPL-licensed
 software (and won't pay for a closed source version), and many aren't
 comfortable with LGPL either.


 I don't see why a company would have any problem at all with *using*
 LGPL'd software, even in a product. However, I can see the possible
 complaints if they wanted to *modify* it and then distribute their modified
 version (since that would then require distributing the modified source
 along with it).

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


 -- 

-- 
Phillip Lord,   Phone: +44 (0) 191 222 7827
Lecturer in Bioinformatics, Email: phillip.l...@newcastle.ac.uk
School of Computing Science,
http://homepages.cs.ncl.ac.uk/phillip.lord
Room 914 Claremont Tower,   skype: russet_apples
Newcastle University,   twitter: phillord
NE1 7RU 

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Marcus Blankenship
Interesting you suggest that, as that's exactly what we decided to do. :-)

Thanks,
Marcus

Marcus Blankenship
541-805-2736

 On Nov 14, 2013, at 12:11 AM, Bastien bastiengue...@gmail.com wrote:

 Marcus Blankenship mar...@creoagency.com writes:

 Brian, that’s really interesting.  I think we’re seeing something
 similar, and are going to look at Pedestal and Caribou as options for
 a project we’re working on.  Are their others we should consider?

 Perhaps you should consider starting from scratch, in parallel.

 Maybe that's because I'm a beginner in both the language and in web
 development, but so far I've found it's the best way to understand the
 choices behind framaworks.  Otherwise I would confuse web development
 with those choices, and I feel the richness of the Clojure ecosystem
 is precisely to open your mind about web development.

 2 cents,

 --
 Bastien

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Marcus Blankenship
Good point!

Thanks,
Marcus

Marcus Blankenship
541-805-2736

On Nov 14, 2013, at 12:57 AM, Islon Scherer islonsche...@gmail.com wrote:

For me it's about 1 thing: Data.

A web application is about taking data from the user, transform it and
store it on the database and take data from the database, transform it and
show it to the user.
Clojure is the best language I used to work with data, it just gives you a
composable set of tools and then get out of your way, and there's always
macros for the more complex use cases.
We have a web application that serves edn data to our clojurescript
frontend, our webdevelopers created a new site for mobile in backbone.js
that used json, I had just to create a function (ring middleware) that
transformed my edn data to json based on the accept header.

My 2¢

On Thursday, November 14, 2013 9:11:04 AM UTC+1, Bastien Guerry wrote:

 Marcus Blankenship mar...@creoagency.com javascript: writes:

  Brian, that’s really interesting.  I think we’re seeing something
  similar, and are going to look at Pedestal and Caribou as options for
  a project we’re working on.  Are their others we should consider?

 Perhaps you should consider starting from scratch, in parallel.

 Maybe that's because I'm a beginner in both the language and in web
 development, but so far I've found it's the best way to understand the
 choices behind framaworks.  Otherwise I would confuse web development
 with those choices, and I feel the richness of the Clojure ecosystem
 is precisely to open your mind about web development.

 2 cents,

 --
  Bastien


-- 
-- 
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] strict-typed-ops 0.1.0

2013-11-14 Thread Ambrose Bonnaire-Sergeant
Hi,

Announcing a new library which adds Scala-style *static* strictness to
collection operations.

The first version is a proof-of-concept: please read the contributing
guidelines https://github.com/typedclojure/strict-typed-ops#contributingif
you want to contribute.

The README https://github.com/typedclojure/strict-typed-ops has
dependency information, an intro and a link to the API.

Enjoy!
Ambrose

-- 
-- 
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] Tawny-OWL 1.0

2013-11-14 Thread Phillip Lord


I am please to announce the first full release of Tawny-OWL, my library for
fully programmatic development of OWL ontologies. The library now has a fairly
large feature set:

** Complete support for OWL2
** Integrated support for reasoning with HermiT or ELK
** Profile checking
** Fixtures and support macros for unit testing
** Use of external ontologies available only as OWL files
** Rendering of OWL API objects to Tawny code.
** Support for generating and using ontologies with numeric IDs.
** Support for multilingual labels.

Additionally, I now have initial integration with Protege.

The library is now available from
Clojars (https://clojars.org/uk.org.russet/tawny-owl) or on
github (https://github.com/phillord/tawny-owl). For futher details, please
see http://www.russet.org.uk/blog/2962.

Feedback is welcome at tawny-...@googlegroups.com.

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


Re: Do web apps need Clojure?

2013-11-14 Thread Brian Craft


On Thursday, November 14, 2013 1:01:33 AM UTC-8, Ryan Spangler wrote:

 I've also used Python extensively (and we still have some projects in it), 
 but there is a lot of complexity in just dealing with the environments and 
 dependencies (virtualenv is a standard practice now?)  Once people have 
 lein installed, they can download one of our Clojure projects and we know 
 everyone is using the same version of everything without any hassle.  It 
 just works.  


I find virtualenv/pip much easier to use than lein. The search feature in 
lein is unusable, and having to edit a file to pull in dependencies is 
awkward. I'd love to have something as easy as pip for clojure.

-- 
-- 
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] datasource 0.1 - Small clojure library for access to environment dependent configuration.

2013-11-14 Thread Andrey Antukh
Hi!

A few days ago, I released some small library for setup environment
dependent configuration. And I share it here in case it may be useful to
someone.

https://github.com/niwibe/datasource

Feedback always welcomed.
Andrey

-- 
Andrey Antukh - Андрей Антух - n...@niwi.be
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

Linux is for people who hate Windows, BSD is for people who love UNIX
Social Engineer - Because there is no patch for human stupidity

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Brian Craft


On Thursday, November 14, 2013 2:28:51 AM UTC-8, Sean Johnson wrote:

 Framework vs. ecosystem of interoperable libraries. The monolithic 
 framework (see Rails and Django) is not the way web development is done in 
 Clojure. Instead imagine the Clojure world as a set of legos. You get to 
 build whatever you want with your legos, selecting just the blocks you 
 need, in the colors and sizes you want, and they all snap together [1]. The 
 benefit to this approach is simplicity. There is a LOT to know about the 
 Rails and Django frameworks, as they are big, mature things that have grown 
 to solve all the common web development needs, and you start your 
 development with ALL of that framework. Your starting point with Clojure on 
 the other hand is much simpler. It will seem too simple... at first you'll 
 be wondering... where is all the stuff? You start with maybe just ring 
 and compojure (web middleware and routing) and a few lines of your code and 
 your first couple of stories are already complete. You add libraries as you 
 find you need them as you build out your app over time, but at all times 
 your app is as simple as it can be, and only has the stuff it needs. It's 
 therefore much easier to understand and less a big ball of mud.


I don't believe the legos analogy is very accurate for clojure. Or, rather, 
it's more of a vision than a reality. I'm unaware of any libraries in 
clojure that you can piece together to give you the features of 
django-south, django admin, and the forms/validation/db layers, for 
example.  Today, clojure web libraries are more like an auto parts store: 
your chance of putting together a complete car from the inventory is slim 
indeed, and your chance of doing it in a timely fashion is exactly zero. 
 There are about a dozen migration libraries for clojure, for example, but 
none of them integrate very well with the other libraries because there 
isn't much in the way of a data modeling framework for the different 
components to leverage. Also, I don't think any of them provide the 
simplicity of south, where your data model is declared in one place (rather 
than in a sequence of sql commands that you have to interpret to deduce the 
final data model), and migrations are derived from changes in the data 
model.

The putting of things together is the hard part of software engineering. This 
makes a huge difference in development time.  Clean algorithms are easy in 
comparison. Rich talks about the importance of taking things apart, but you 
can't take things apart that never fit together in the first place. IIRC he 
actually suggested that one take things apart such that they fit together 
again. I agree with this, but I don't think it describes much of clojure 
web tooling today.

Also, the overwhelming majority of db and web work is boilerplate. That's 
what django provides: all the mindless boilerplate that is completely 
uninteresting to your problem domain, but necessary to launch a web site. 
With the current clojure web tools, there is no solution for most of that 
boilerplate, which can easily add an order of magnitude to your development 
time.

And again, I will have to reevaluate all of this in light of caribou, which 
appears to address much of it. Also, I'd be very happy to hear that I'm 
wrong, if anyone has example projects to show, or libraries I've missed.

-- 
-- 
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] datasource 0.1 - Small clojure library for access to environment dependent configuration.

2013-11-14 Thread John D. Hume
One piece of feedback: the name datasource is confusing, given
javax.sql.DataSource, as seen, for example, at
http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html#
setting-up-a-data-source


On Thu, Nov 14, 2013 at 10:09 AM, Andrey Antukh n...@niwi.be wrote:

 https://github.com/niwibe/datasource

 Feedback always welcomed.
 Andrey


-- 
-- 
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 could you solve this problem

2013-11-14 Thread Leon Grapenthin
Here you go:
https://www.refheap.com/20868

On Tuesday, November 12, 2013 11:39:18 PM UTC+1, Round Robin wrote:

 Can anyone help me solving this problem in clojure 1196 - Ring of Primes 
 http://coj.uci.cu/24h/problem.xhtml?abb=1196


-- 
-- 
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] datasource 0.1 - Small clojure library for access to environment dependent configuration.

2013-11-14 Thread Andrey Antukh
Hi John.

I know, but I chose this name because other frameworks (like Grails,
Spring, etc...) have this name for it purpose.

But... I open to change the name to one other. Any suggestions?

Thanks
Andrey



2013/11/14 John D. Hume duelin.mark...@gmail.com

 One piece of feedback: the name datasource is confusing, given
 javax.sql.DataSource, as seen, for example, at
 http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html#
 setting-up-a-data-source


 On Thu, Nov 14, 2013 at 10:09 AM, Andrey Antukh n...@niwi.be wrote:

 https://github.com/niwibe/datasource

 Feedback always welcomed.
 Andrey

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




-- 
Andrey Antukh - Андрей Антух - n...@niwi.be
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

Linux is for people who hate Windows, BSD is for people who love UNIX
Social Engineer - Because there is no patch for human stupidity

-- 
-- 
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: data.fressian, read and write Fressian from Clojure

2013-11-14 Thread Stuart Halloway
data.fressian [1] is a Clojure-language wrapper for the reference
implementation [2] of Fressian.  I am still setting up CI, maven release,
etc. but wanted to get the source up so that interested parties can peruse
and contribute.

The wiki at [2] is currently the best source of documentation.

Cheers,
Stu

[1] https://github.com/clojure/data.fressian
[2] https://github.com/Datomic/fressian/wiki

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Manuel Paccagnella


Il giorno giovedì 14 novembre 2013 17:22:03 UTC+1, Brian Craft ha scritto:



 On Thursday, November 14, 2013 2:28:51 AM UTC-8, Sean Johnson wrote:

 Framework vs. ecosystem of interoperable libraries. The monolithic 
 framework (see Rails and Django) is not the way web development is done in 
 Clojure. Instead imagine the Clojure world as a set of legos. You get to 
 build whatever you want with your legos, selecting just the blocks you 
 need, in the colors and sizes you want, and they all snap together [1]. The 
 benefit to this approach is simplicity. There is a LOT to know about the 
 Rails and Django frameworks, as they are big, mature things that have grown 
 to solve all the common web development needs, and you start your 
 development with ALL of that framework. Your starting point with Clojure on 
 the other hand is much simpler. It will seem too simple... at first you'll 
 be wondering... where is all the stuff? You start with maybe just ring 
 and compojure (web middleware and routing) and a few lines of your code and 
 your first couple of stories are already complete. You add libraries as you 
 find you need them as you build out your app over time, but at all times 
 your app is as simple as it can be, and only has the stuff it needs. It's 
 therefore much easier to understand and less a big ball of mud.


 I don't believe the legos analogy is very accurate for clojure. Or, 
 rather, it's more of a vision than a reality. I'm unaware of any libraries 
 in clojure that you can piece together to give you the features of 
 django-south, django admin, and the forms/validation/db layers, for 
 example.  Today, clojure web libraries are more like an auto parts store: 
 your chance of putting together a complete car from the inventory is slim 
 indeed, and your chance of doing it in a timely fashion is exactly zero. 
  There are about a dozen migration libraries for clojure, for example, but 
 none of them integrate very well with the other libraries because there 
 isn't much in the way of a data modeling framework for the different 
 components to leverage. Also, I don't think any of them provide the 
 simplicity of south, where your data model is declared in one place (rather 
 than in a sequence of sql commands that you have to interpret to deduce the 
 final data model), and migrations are derived from changes in the data 
 model.

 The putting of things together is the hard part of software engineering. This 
 makes a huge difference in development time.  Clean algorithms are easy 
 in comparison. Rich talks about the importance of taking things apart, but 
 you can't take things apart that never fit together in the first place. 
 IIRC he actually suggested that one take things apart such that they fit 
 together again. I agree with this, but I don't think it describes much of 
 clojure web tooling today.

 Also, the overwhelming majority of db and web work is boilerplate. That's 
 what django provides: all the mindless boilerplate that is completely 
 uninteresting to your problem domain, but necessary to launch a web site. 
 With the current clojure web tools, there is no solution for most of that 
 boilerplate, which can easily add an order of magnitude to your development 
 time.

 And again, I will have to reevaluate all of this in light of caribou, 
 which appears to address much of it. Also, I'd be very happy to hear that 
 I'm wrong, if anyone has example projects to show, or libraries I've missed.


Indeed, Caribou seems to fit quite nicely in all this: the data model is 
first class, and gives you at good amount of ready-made wiring and 
boilerplate code. Same thing (to a maybe lesser degree) does 
Luminushttp://www.luminusweb.net/. 
I agree that taking things apart is a win, working with simple things gives 
you a lot of power and flexibility. On the other hand there is a tension 
between use and reuse. However it doesn't mean that you can *only* work 
with simple components. I think that the approach taken by Luminus (and 
maybe Caribou, I've just started exploring it) is the best of both worlds: 
a template that assembles simple libraries with in a good default structure 
that you can use like a normal framework, but you still have the power to 
dive into the guts of the system and change it to suit your unique needs if 
you need to.

Probaby it comes down to a stratified 
designftp://publications.ai.mit.edu/ai-publications/pdf/AIM-986.pdf: 
simple components, assembled in a higher level template (still a component, 
not so reusable but much more usable) with a reasonable wiring and 
boilerplate code already in place but that doesn't stop you if you want to 
change it. It doesn't have the disadvantages of a framework, but neither 
requires you to compos[e] art out of found objects (quoting Pedestal 
documentation).

Cheers,
Manuel

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

Re: Do web apps need Clojure?

2013-11-14 Thread gaz jones
There is no reason not to consider using a combination of both
technologies. I have found Clojure is excellent for writing http services
(for example sending/receiving JSON), but is a bit weak in comparison to
say the combination of ruby and haml for building UIs quickly.


On Thu, Nov 14, 2013 at 10:22 AM, Brian Craft craft.br...@gmail.com wrote:



 On Thursday, November 14, 2013 2:28:51 AM UTC-8, Sean Johnson wrote:

 Framework vs. ecosystem of interoperable libraries. The monolithic
 framework (see Rails and Django) is not the way web development is done in
 Clojure. Instead imagine the Clojure world as a set of legos. You get to
 build whatever you want with your legos, selecting just the blocks you
 need, in the colors and sizes you want, and they all snap together [1]. The
 benefit to this approach is simplicity. There is a LOT to know about the
 Rails and Django frameworks, as they are big, mature things that have grown
 to solve all the common web development needs, and you start your
 development with ALL of that framework. Your starting point with Clojure on
 the other hand is much simpler. It will seem too simple... at first you'll
 be wondering... where is all the stuff? You start with maybe just ring
 and compojure (web middleware and routing) and a few lines of your code and
 your first couple of stories are already complete. You add libraries as you
 find you need them as you build out your app over time, but at all times
 your app is as simple as it can be, and only has the stuff it needs. It's
 therefore much easier to understand and less a big ball of mud.


 I don't believe the legos analogy is very accurate for clojure. Or,
 rather, it's more of a vision than a reality. I'm unaware of any libraries
 in clojure that you can piece together to give you the features of
 django-south, django admin, and the forms/validation/db layers, for
 example.  Today, clojure web libraries are more like an auto parts store:
 your chance of putting together a complete car from the inventory is slim
 indeed, and your chance of doing it in a timely fashion is exactly zero.
  There are about a dozen migration libraries for clojure, for example, but
 none of them integrate very well with the other libraries because there
 isn't much in the way of a data modeling framework for the different
 components to leverage. Also, I don't think any of them provide the
 simplicity of south, where your data model is declared in one place (rather
 than in a sequence of sql commands that you have to interpret to deduce the
 final data model), and migrations are derived from changes in the data
 model.

 The putting of things together is the hard part of software engineering. This
 makes a huge difference in development time.  Clean algorithms are easy
 in comparison. Rich talks about the importance of taking things apart, but
 you can't take things apart that never fit together in the first place.
 IIRC he actually suggested that one take things apart such that they fit
 together again. I agree with this, but I don't think it describes much of
 clojure web tooling today.

 Also, the overwhelming majority of db and web work is boilerplate. That's
 what django provides: all the mindless boilerplate that is completely
 uninteresting to your problem domain, but necessary to launch a web site.
 With the current clojure web tools, there is no solution for most of that
 boilerplate, which can easily add an order of magnitude to your development
 time.

 And again, I will have to reevaluate all of this in light of caribou,
 which appears to address much of it. Also, I'd be very happy to hear that
 I'm wrong, if anyone has example projects to show, or libraries I've missed.

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

Re: Do web apps need Clojure?

2013-11-14 Thread James Reeves
On 14 November 2013 16:22, Brian Craft craft.br...@gmail.com wrote:


 I don't believe the legos analogy is very accurate for clojure. Or,
 rather, it's more of a vision than a reality. I'm unaware of any libraries
 in clojure that you can piece together to give you the features of
 django-south, django admin, and the forms/validation/db layers, for
 example.  Today, clojure web libraries are more like an auto parts store:
 your chance of putting together a complete car from the inventory is slim
 indeed, and your chance of doing it in a timely fashion is exactly zero.


Except people *are* developing web applications in Clojure, so clearly this
isn't an accurate statement.

I certainly wouldn't be using Clojure for the web if it took longer to
develop in. It's my opinion that every non-trivial web application I've
ever written in Rails would have been faster to write in Clojure.

Also, the overwhelming majority of db and web work is boilerplate. That's
 what django provides: all the mindless boilerplate that is completely
 uninteresting to your problem domain, but necessary to launch a web site.


This certainly hasn't been my experience.

Can you be certain this isn't a symptom of the tool you're using?
Frameworks like Django and Rails are designed to build web applications in
a very specific way, and this involves generating a lot of database and
HTML boilerplate.

I can't say for sure whether it's because of Clojure, or because I'm
working on different problems these days, but I don't tend to deal with the
same issues I did when I used Rails. Nowadays I find myself building
systems out of small, isolated components, which seem to eliminate a lot of
issues Rails was designed to work around.

For instance, database migrations. This was something I thought about a lot
a few years ago, until I gradually realised that I wasn't finding myself in
any situations where I needed them.

- James

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


Re: How could you solve this problem

2013-11-14 Thread Leon Grapenthin
Corrected version link: https://www.refheap.com/20869

On Thursday, November 14, 2013 5:42:31 PM UTC+1, Leon Grapenthin wrote:

 Here you go:
 https://www.refheap.com/20868

 On Tuesday, November 12, 2013 11:39:18 PM UTC+1, Round Robin wrote:

 Can anyone help me solving this problem in clojure 1196 - Ring of Primes 
 http://coj.uci.cu/24h/problem.xhtml?abb=1196



-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Brian Craft


On Thursday, November 14, 2013 9:17:32 AM UTC-8, James Reeves wrote:

 On 14 November 2013 16:22, Brian Craft craft...@gmail.com 
 javascript:wrote:


 I don't believe the legos analogy is very accurate for clojure. Or, 
 rather, it's more of a vision than a reality. I'm unaware of any libraries 
 in clojure that you can piece together to give you the features of 
 django-south, django admin, and the forms/validation/db layers, for 
 example.  Today, clojure web libraries are more like an auto parts store: 
 your chance of putting together a complete car from the inventory is slim 
 indeed, and your chance of doing it in a timely fashion is exactly zero.


 Except people *are* developing web applications in Clojure, so clearly 
 this isn't an accurate statement.


I haven't seen a web application in clojure with the functionality of a 
django app, with the exception of polyglot applications that are using 
non-clojure frameworks to fill the gaps. I would very much like to see one.



 Also, the overwhelming majority of db and web work is boilerplate. That's 
 what django provides: all the mindless boilerplate that is completely 
 uninteresting to your problem domain, but necessary to launch a web site.

  
 This certainly hasn't been my experience.

 Can you be certain this isn't a symptom of the tool you're using? 
 Frameworks like Django and Rails are designed to build web applications in 
 a very specific way, and this involves generating a lot of database and 
 HTML boilerplate.

 I can't say for sure whether it's because of Clojure, or because I'm 
 working on different problems these days, but I don't tend to deal with the 
 same issues I did when I used Rails. Nowadays I find myself building 
 systems out of small, isolated components, which seem to eliminate a lot of 
 issues Rails was designed to work around.

 For instance, database migrations. This was something I thought about a 
 lot a few years ago, until I gradually realised that I wasn't finding 
 myself in any situations where I needed them.



I don't really understand this argument. What database tables would we not 
require if we used clojure? User passwords? Page content? User settings? 
Admin privileges? Of those tables, which ones would we not need admin 
interfaces for if we used clojure? I don't understand how choice of 
framework has any bearing on what data the app must store, what admin 
interfaces are required, what validation layers must be present, etc. You 
must validate all the user input. You must store all the data required by 
the app. You must have admin backends for all of the data used by the app. 
Using clojure doesn't change any of those requirements.

And when we have changes to the data model, for example when finding that a 
new feature requires that we track an additional field for each user, or 
finding that a new clinical data set requires a more complex model of 
clinical samples, how would clojure allow us to avoid migrating the data 
model in the database, or update the model in a reliable way across several 
installs without using migrations? Again, I don't understand how the 
framework has anything to do with the necessity of updating a data model 
when new features or new data demand it.

-- 
-- 
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] strict-typed-ops 0.1.0

2013-11-14 Thread Peter Fraenkel
Well, this is of course my favorite subject...

If we want to truly emulate Scala, then I think we'd have

(t/ann ^:no-check conj-vec
 (All [x
   [y : x]]
  [(t/Vec x) y y * - (t/Vec y)]))


because you can append a supertype and get back a vector of the supertype.

(t/ann ^:no-check conj-set
   (All [x
 [y : x : x]]
[(t/Set x) y y * - (t/Set x)]))


because Scala's Set is invariant.

On a more trivial note, why is it better to defn conj-set et al and then 
apply conj, rather than just (def conj-set conj)?


On Thursday, November 14, 2013 8:54:22 AM UTC-5, Ambrose Bonnaire-Sergeant 
wrote:

 Hi,

 Announcing a new library which adds Scala-style *static* strictness to 
 collection operations.

 The first version is a proof-of-concept: please read the contributing 
 guidelines https://github.com/typedclojure/strict-typed-ops#contributingif 
 you want to contribute.

 The README https://github.com/typedclojure/strict-typed-ops has 
 dependency information, an intro and a link to the API.

 Enjoy!
 Ambrose


-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread vrakade
Attaching nREPL to debug a live application is pretty cool.

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread J Irving
* James Reeves ja...@booleanknot.com [2013-11-14 17:17 +]:
 For instance, database migrations. This was something I thought about a lot
 a few years ago, until I gradually realised that I wasn't finding myself in
 any situations where I needed them.

I agree with much of what you write James - I'm paid to write rails and
node.js code, and I'm finding that node is encouraging me to compose
small components and basically sidestep a lot of the issues that rails
is designed to address.

But migrations, or more particularly, schema version management, is
still something I need for databases which are schema based. How do you
deal with that?

Do you tend to use schemaless databases? Or maybe keep a native schema
dump under version control?

If you use a relational db, how do you make and track changes?

I have recently encountered a large project which includes several
distinct and separately deployed components, but which shares a single
data model. A lack of schema management in this case has seriously
impeded the project's ability to move forward quickly.

Maybe the answer in that case is that those components should own their
own data models, communicate through clearly defined interfaces, and
never share a database. Maybe that's the way to deal with this -
decompose a system until data model management is trivial for any given
component.

I'm interested to know what strategies people use for this, and what
tooling (if any) is useful.

cheers, J

-- 
-- 
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 could you solve this problem

2013-11-14 Thread Leon Grapenthin
Ah, I just saw the exercise demands all possible rings to be printed which 
quite spams the REPL.
Here is a modified version that does that
https://www.refheap.com/20871

On Tuesday, November 12, 2013 11:39:18 PM UTC+1, Round Robin wrote:

 Can anyone help me solving this problem in clojure 1196 - Ring of Primes 
 http://coj.uci.cu/24h/problem.xhtml?abb=1196


-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Brian Craft


On Thursday, November 14, 2013 9:42:52 AM UTC-8, Jonathan Irving wrote:

 I agree with much of what you write James - I'm paid to write rails and 
 node.js code, and I'm finding that node is encouraging me to compose 
 small components and basically sidestep a lot of the issues that rails 
 is designed to address. 


Can you give a concrete example? 

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Stanislav Sedov

On Nov 14, 2013, at 3:28 AM, Sean Johnson belu...@acm.org wrote:

 Agreed. This is a huge point. And not just in lowered hosting costs, but also 
 potentially a better user experience (lower latency).

I am actually not sure how true it is.  While the raw throughput of JVM 
applications
is indisputably much higher than those based on non JVM ruby virtual machines,
in my experience the response latency in JVM is much more unpredictable and
have a much higher worst case.  I believe this is due to the fact that ruby HTTP
servers tend to spawn multiple processes to handle requests which lead to a
per-process garbage collection, and thus to shorter pauses.  At least that was 
true
for all the applications I built around Sinatra.  I never used rails, so cannot
comment on that.

Regarding multithreading, modern ruby implementations like rubinius are
completely multithreaded and it's up to the application code to take advantage
of it.  However, the lack of proper multiprocessing primitives in the language
and lack of multithreading in the ruby interpreters for a long time lead to
libraries and frameworks designed around the asynchronous abstraction
and are generally not thread-safe.  So in practice, it's very hard to take
advantage of that support.

For me, the biggest advantage of using ruby vs clojure for web development
comes from the development standpoint.  While I love clojure as a language,
which is arguably a much more powerful and better designed language than
ruby is, it suffers from the typical problems any JVM platform has:
1) long startup time.  While there are workarounds to this problem like
using a persistent vm, it's still a hassle compared to a non-jvm platform
where one does not even have to think about it;
2) horrible dependencies management.  In jvm world you have to use
maven or ant style jar artifacts, which are tarballs with compiled
java classes inside.  Those have no versions in them, so when
something breaks you cannot easily debug the issue just by looking
at the corresponding line of code like one does in ruby: I routinely
have to decompile class file to look at the code to try to figure out
what broke (I even set up mc to invoke jad(1) automatically when
I view a class file).  The lack of versions in classfiles lead to another
problem: you are never sure that the jars hosted on the public
artifact sites correspond to the code versions they advertise, I
found it to be not true in a lot of cases and spent hours debugging
issues which were not present in the actual source code of the
library I used.  There is also no verification of who uploads those
jar files to the artifactory and you cannot AFAIK provide maven or
ant with the checksum of the artifact you want, so those are as safe
to use as running a random code downloaded from the internet.
Unfortunately, it seems that the only way to do development on
the jvm platform at the time is to set up your own artifactory and
set up an automated build for each dependency version you
are using. :-(. Which slows develoment a lot.

Another issue I often face is that class files are not namespaced
via symbol versioning like native libraries are.  That is the entire
JVM application has to use a specific dependency version for
all it's code.  What happens if some library you use uses a different
dependency version than you need?  You end up maintaining a
fork.

Some of this is true for ruby libraries as well, but late binding,
relaxed version specifications and generally better API stability
in ruby world makes this issue rare.  And if it happens, it's much
easier to submit a fix upstream and rely on it, at least in my
experience.

3) General lack of decent tools.  The only jvm debugger, jdb,
while nice, does not allow you to attach to an already running
process like gdb would.  Profiling tools are pretty much GUI
only so won't allow you to collect profiled data in an automated
way.  The same goes to JMX counters: you can only collect
them by using a gui application, or by using java API; there are
no command line tools provided in standard distribution which
complicates ad-hoc monitoring and collection.  There are no
easy to use tools or APIs to work with bytecodes, jars, manifests
and so on either.

I guess the bottom line is that jvm does not play well with the
outside world and you pretty much have to commit to JVM
platform if you want to use it for development.  Any interoperation
with other platforms and OS services was a big hassle for me.
I hope that clojurejs on nodejs will make the life much easier
in that regard.

As as a side note, I used erlang/webmachine for one of my
recent projects and found the experience quite pleasant.  While
the language is not as powerful as clojure or any other kind of
lisp is and metaprogramming capabilities are quite limited,
it is very 

Re: Do web apps need Clojure?

2013-11-14 Thread Waldemar Schwan
I just want to say that this is one of the most interesting discussions I 
followed on this mailing list.

Thanks to all participants.

Am 14.11.2013 um 19:24 schrieb Brian Craft craft.br...@gmail.com:

 
 
 On Thursday, November 14, 2013 9:42:52 AM UTC-8, Jonathan Irving wrote:
 I agree with much of what you write James - I'm paid to write rails and 
 node.js code, and I'm finding that node is encouraging me to compose 
 small components and basically sidestep a lot of the issues that rails 
 is designed to address. 
 
 Can you give a concrete example? 
 
 -- 
 -- 
 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: Do web apps need Clojure?

2013-11-14 Thread J Irving
* Brian Craft craft.br...@gmail.com [2013-11-14 10:24 -0800]:
 On Thursday, November 14, 2013 9:42:52 AM UTC-8, Jonathan Irving wrote:
 
  I agree with much of what you write James - I'm paid to write rails and
  node.js code, and I'm finding that node is encouraging me to compose
  small components and basically sidestep a lot of the issues that rails
  is designed to address.
 

 Can you give a concrete example?

Tricky, because my work doesn't belong to me.

I have a component which collects weather forecasts from a public API
for all of the US. This is isolated from other parts of the app. It
acquires the data in one form, transcodes and strips it down, and puts
it into a mongodb.

Another component runs async map reduce ops on the data, creates
aggregated and otherwise reduced data.

Finally, there is a service endpoint which serves the product to another
component, which (irrelevantly) is a rails app.

Managing the data model for these components is trivial, because they
only touch one kind of data, and they are each very small. What the
rails app sees is a service endpoint with a well defined API. I use no
ODM or ORM, just mongodb queries.

OTOH as I mentioned further down my first post, I don't see how to avoid
schema (version/migration) management in apps which have a richer data
model. Your user management example fits that description. Hence my
questions.

BTW I realize that I'm talking about node not clojure here, but I see a
lot of parallels between the approaches taken in clojure and node
webapps. They're more similar to me than either of them are to rails or
django, for example.

Nonetheless, sorry if this feels off topic.

cheers, J

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Justin Smith


On Thursday, November 14, 2013 10:23:40 AM UTC-8, Stanislav Sedov wrote:

 3) General lack of decent tools.  The only jvm debugger, jdb, 
 while nice, does not allow you to attach to an already running 
 process like gdb would.  Profiling tools are pretty much GUI 
 only so won't allow you to collect profiled data in an automated 
 way.


Both of these statements are false. 

-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread James Reeves
On 14 November 2013 17:55, Brian Craft craft.br...@gmail.com wrote:


 On Thursday, November 14, 2013 9:17:32 AM UTC-8, James Reeves wrote:


 For instance, database migrations. This was something I thought about a
 lot a few years ago, until I gradually realised that I wasn't finding
 myself in any situations where I needed them.


 I don't really understand this argument. What database tables would we not
 require if we used clojure? User passwords? Page content? User settings?
 Admin privileges? Of those tables, which ones would we not need admin
 interfaces for if we used clojure? I don't understand how choice of
 framework has any bearing on what data the app must store, what admin
 interfaces are required, what validation layers must be present, etc. You
 must validate all the user input. You must store all the data required by
 the app. You must have admin backends for all of the data used by the app.
 Using clojure doesn't change any of those requirements.

 And when we have changes to the data model, for example when finding that
 a new feature requires that we track an additional field for each user, or
 finding that a new clinical data set requires a more complex model of
 clinical samples, how would clojure allow us to avoid migrating the data
 model in the database, or update the model in a reliable way across several
 installs without using migrations? Again, I don't understand how the
 framework has anything to do with the necessity of updating a data model
 when new features or new data demand it.


SQL databases complect a number of different ideas about data, and this
complexity results in certain problems.

Database migrations, for instance, are a symptom of a system where data
storage is tightly coupled to grouping and validation of data. In systems
which separate data storage from data indexing and viewing, migrations
cease to be something you need.

Let's assume that we're measuring the heart rate of subjects for a clinical
trial. We might have a data structure that looks like this:


{:timestamp  #inst ...

 :subject/id #uuid ...

 :subject/heart-rate 80}


Let's further assume that we're only going to deal with *storage* and
*ordering* for this data. So we're going to maintain an atomically updated
log of incoming data from patients.

We now want to *index* this data in some fashion, to display the results in
a table or a chart. This can be done by taking the data from the log, and
copying it to a read-only database that supports querying and aggregation.
The data could be copied over in bulk periodically, or pushed in real time.

After some time, the requirements for our system change, and we now have to
record heart-rate at rest and during exercise. Because we don't want to
complect the data by prematurely grouping it, we instead introduce two new
types of data structure:

{:timestamp  #inst ...

 :subject/id #uuid ...

 :subject/hr-rest 80}

{:timestamp  #inst ...

 :subject/id #uuid ...

 :subject/hr-max 180}


We then update our indexing algorithm, so that it now indexes two different
heart-rates. We might also choose to make :subject/heart-rate equivalent to
:subject/hr-rest. Instead of migrating this data, we can just regenerate
the database from scratch from the raw data.

Essentially we're doing away with a data model altogether, and replacing it
with a log of isolated, immutable data entries combined with a set of
disposable, read-only views.

Django's admin interface is nice, but it's still tied to the idea of having
a monolithic, complex and mutable database. The benefits of working with
isolated, simple, immutable data aren't worth giving up for that.

- James

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


Re: How could you solve this problem

2013-11-14 Thread Leon Grapenthin
I have now modified the implementation so that it generates all possible 
rings for any given length as a lazy sequence.

On Thursday, November 14, 2013 7:19:37 PM UTC+1, Leon Grapenthin wrote:

 Ah, I just saw the exercise demands all possible rings to be printed which 
 quite spams the REPL.
 Here is a modified version that does that
 https://www.refheap.com/20871

 On Tuesday, November 12, 2013 11:39:18 PM UTC+1, Round Robin wrote:

 Can anyone help me solving this problem in clojure 1196 - Ring of Primes 
 http://coj.uci.cu/24h/problem.xhtml?abb=1196



-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Brian Craft


On Thursday, November 14, 2013 10:50:48 AM UTC-8, Jonathan Irving wrote:

 * Brian Craft craft...@gmail.com javascript: [2013-11-14 10:24 
 -0800]: 
  On Thursday, November 14, 2013 9:42:52 AM UTC-8, Jonathan Irving wrote: 
   
   I agree with much of what you write James - I'm paid to write rails 
 and 
   node.js code, and I'm finding that node is encouraging me to compose 
   small components and basically sidestep a lot of the issues that rails 
   is designed to address. 
   
  
  Can you give a concrete example? 

 Tricky, because my work doesn't belong to me. 

 I have a component which collects weather forecasts from a public API 
 for all of the US. This is isolated from other parts of the app. It 
 acquires the data in one form, transcodes and strips it down, and puts 
 it into a mongodb. 

 Another component runs async map reduce ops on the data, creates 
 aggregated and otherwise reduced data. 

 Finally, there is a service endpoint which serves the product to another 
 component, which (irrelevantly) is a rails app. 

 Managing the data model for these components is trivial, because they 
 only touch one kind of data, and they are each very small. What the 
 rails app sees is a service endpoint with a well defined API. I use no 
 ODM or ORM, just mongodb queries. 


Doesn't this reflect more on your problem domain than on your choice of 
tools? The first two components are roughly ETL, and the last is data API? 
How would this have been different in rails? I've done this in django, and 
it's the same as you describe here.

But more to the point, the pieces you've mentioned can't be composed to 
build a web app with a UI, and you can't decompose a web app with a UI into 
just the service layer bits. You also need the UI bits: the forms layer, 
the validation layer, the admin, etc., etc. To be maintainable, those 
layers should be common for different components in the application: it 
does not scale to require devs to learn multiple template languages, 
multiple migration tools, multiple admin interfaces, etc.

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


a possibly vague question

2013-11-14 Thread Jim - FooBar();

Hi people,

I 'll have to apologise in advance for the potential vagueness of my 
question but I am utterly baffled by the behaviour I am seeing and I'd 
like to share  ask.


I have a (seesaw) GUI with a swingx.busy-label which I want activated 
when certain tasks are performed. The code that i've written so fat 
works perfectly at the repl but for some bizarre reason it won't work 
when attached as a handler to a button. I mean literally the same code 
works perfectly at the REPL while the GUI is up but from the GUI itself 
the effect does not happen, even though the actual work is being done 
(i.e. loading a big pdf file)!


my question is what could possibly cause such a different behaviour? 
What is so different between the REPL and attaching a handler to a 
button? If anything, the REPL involves a compilation step whereas the 
handler has been sitting there all along... any ideas? I don't even know 
where to start looking since the code runs fine at the repl... This has 
never happened to me before!


many thanks in advance,

Jim

ps: even though I have posted at the seesaw list, I am starting to doubt 
this is a seesaw-related issue simply because it works at the repl


--
--
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: a possibly vague question

2013-11-14 Thread Josh Kamau
Try to create a simple app that just demonstrate the issue.  Then send the
sample to the mailing list. Most likely you won't have to send because you
will discover the problem in the process.

Josh
On 14 Nov 2013 23:08, Jim - FooBar(); jimpil1...@gmail.com wrote:

 Hi people,

 I 'll have to apologise in advance for the potential vagueness of my
 question but I am utterly baffled by the behaviour I am seeing and I'd like
 to share  ask.

 I have a (seesaw) GUI with a swingx.busy-label which I want activated when
 certain tasks are performed. The code that i've written so fat works
 perfectly at the repl but for some bizarre reason it won't work when
 attached as a handler to a button. I mean literally the same code works
 perfectly at the REPL while the GUI is up but from the GUI itself the
 effect does not happen, even though the actual work is being done (i.e.
 loading a big pdf file)!

 my question is what could possibly cause such a different behaviour? What
 is so different between the REPL and attaching a handler to a button? If
 anything, the REPL involves a compilation step whereas the handler has been
 sitting there all along... any ideas? I don't even know where to start
 looking since the code runs fine at the repl... This has never happened to
 me before!

 many thanks in advance,

 Jim

 ps: even though I have posted at the seesaw list, I am starting to doubt
 this is a seesaw-related issue simply because it works at the repl

 --
 --
 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: a possibly vague question

2013-11-14 Thread Jim - FooBar();
oops! I am not receiving regular updates from the seesaw mailing list so 
I did not see that..sincere apologies.


I will try what you suggest immediately :)

thanks again

Jim


On 14/11/13 20:26, Dave Ray wrote:
As noted over on the Seesaw list, your pdf loading code is blocking 
the UI thread. When you call it from the REPL, it's a separate thread 
so the button has a chance to update itself. You'll need to put the 
pdf loading on a separate thread if you want to the UI to update and 
stay responsive.


Cheers,

Dave


On Thu, Nov 14, 2013 at 12:19 PM, Josh Kamau joshnet2...@gmail.com 
mailto:joshnet2...@gmail.com wrote:


Try to create a simple app that just demonstrate the issue.  Then
send the sample to the mailing list. Most likely you won't have to
send because you will discover the problem in the process.

Josh

On 14 Nov 2013 23:08, Jim - FooBar(); jimpil1...@gmail.com
mailto:jimpil1...@gmail.com wrote:

Hi people,

I 'll have to apologise in advance for the potential vagueness
of my question but I am utterly baffled by the behaviour I am
seeing and I'd like to share  ask.

I have a (seesaw) GUI with a swingx.busy-label which I want
activated when certain tasks are performed. The code that i've
written so fat works perfectly at the repl but for some
bizarre reason it won't work when attached as a handler to a
button. I mean literally the same code works perfectly at the
REPL while the GUI is up but from the GUI itself the effect
does not happen, even though the actual work is being done
(i.e. loading a big pdf file)!

my question is what could possibly cause such a different
behaviour? What is so different between the REPL and attaching
a handler to a button? If anything, the REPL involves a
compilation step whereas the handler has been sitting there
all along... any ideas? I don't even know where to start
looking since the code runs fine at the repl... This has never
happened to me before!

many thanks in advance,

Jim

ps: even though I have posted at the seesaw list, I am
starting to doubt this is a seesaw-related issue simply
because it works at the repl

-- 
-- 
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
mailto: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
mailto: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
mailto: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
mailto: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
mailto: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
mailto: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.google.com/groups/opt_out.


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

Re: a possibly vague question

2013-11-14 Thread Paul L. Snyder
On Thu, 14 Nov 2013, Jim - FooBar(); wrote:
 
 I have a (seesaw) GUI with a swingx.busy-label which I want
 activated when certain tasks are performed. The code that i've
 written so fat works perfectly at the repl but for some bizarre
 reason it won't work when attached as a handler to a button. I mean
 literally the same code works perfectly at the REPL while the GUI is
 up but from the GUI itself the effect does not happen, even though
 the actual work is being done (i.e. loading a big pdf file)!
 
 my question is what could possibly cause such a different behaviour?
 What is so different between the REPL and attaching a handler to a
 button? If anything, the REPL involves a compilation step whereas
 the handler has been sitting there all along... any ideas? I don't
 even know where to start looking since the code runs fine at the
 repl... This has never happened to me before!

Are you sure the handler is being called? How are you attaching it to the
button?

For some of the logic in the Seesaw GUI of my current project, I
define the actions separately for naming purposes and attach them
later.

E.g.:

 (let [freeze-button (ss/button :text freeze)
   freeze-action (ss/action :handler
(fn freeze-handler [evt]
  (ss/config! freeze-button :text
  unfreeze)))]
   (ss/config! freeze-button :action freeze-action))

Try sticking some other side-effect (like a println) into your handler,
so you can determine whether it's set up correctly. You can call the
action's handler manually, as well:

  ((ss/config freeze-action :handler) ignored dummy event)

If you determine that it is firing, can you provide a minimal example where
you're seeing this behavior?

Cheers,
Paul Snyder

-- 
-- 
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: a possibly vague question

2013-11-14 Thread Jim - FooBar();
putting the entire macro call 'with-busy' in a future solved the 
issue...I have been bitten by this sort of thing before...I'll have tos 
top being so forgetful. Thanks for reminding me Dave and also a massive 
RESPECT for seesaw :)


Jim


On 14/11/13 20:26, Dave Ray wrote:
As noted over on the Seesaw list, your pdf loading code is blocking 
the UI thread. When you call it from the REPL, it's a separate thread 
so the button has a chance to update itself. You'll need to put the 
pdf loading on a separate thread if you want to the UI to update and 
stay responsive.


Cheers,

Dave


On Thu, Nov 14, 2013 at 12:19 PM, Josh Kamau joshnet2...@gmail.com 
mailto:joshnet2...@gmail.com wrote:


Try to create a simple app that just demonstrate the issue.  Then
send the sample to the mailing list. Most likely you won't have to
send because you will discover the problem in the process.

Josh

On 14 Nov 2013 23:08, Jim - FooBar(); jimpil1...@gmail.com
mailto:jimpil1...@gmail.com wrote:

Hi people,

I 'll have to apologise in advance for the potential vagueness
of my question but I am utterly baffled by the behaviour I am
seeing and I'd like to share  ask.

I have a (seesaw) GUI with a swingx.busy-label which I want
activated when certain tasks are performed. The code that i've
written so fat works perfectly at the repl but for some
bizarre reason it won't work when attached as a handler to a
button. I mean literally the same code works perfectly at the
REPL while the GUI is up but from the GUI itself the effect
does not happen, even though the actual work is being done
(i.e. loading a big pdf file)!

my question is what could possibly cause such a different
behaviour? What is so different between the REPL and attaching
a handler to a button? If anything, the REPL involves a
compilation step whereas the handler has been sitting there
all along... any ideas? I don't even know where to start
looking since the code runs fine at the repl... This has never
happened to me before!

many thanks in advance,

Jim

ps: even though I have posted at the seesaw list, I am
starting to doubt this is a seesaw-related issue simply
because it works at the repl

-- 
-- 
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
mailto: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
mailto: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
mailto: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
mailto: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
mailto: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
mailto: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.google.com/groups/opt_out.


--
--
You received this message because 

Re: a possibly vague question

2013-11-14 Thread Dave Ray
As noted over on the Seesaw list, your pdf loading code is blocking the UI
thread. When you call it from the REPL, it's a separate thread so the
button has a chance to update itself. You'll need to put the pdf loading on
a separate thread if you want to the UI to update and stay responsive.

Cheers,

Dave


On Thu, Nov 14, 2013 at 12:19 PM, Josh Kamau joshnet2...@gmail.com wrote:

 Try to create a simple app that just demonstrate the issue.  Then send the
 sample to the mailing list. Most likely you won't have to send because you
 will discover the problem in the process.

 Josh
 On 14 Nov 2013 23:08, Jim - FooBar(); jimpil1...@gmail.com wrote:

 Hi people,

 I 'll have to apologise in advance for the potential vagueness of my
 question but I am utterly baffled by the behaviour I am seeing and I'd like
 to share  ask.

 I have a (seesaw) GUI with a swingx.busy-label which I want activated
 when certain tasks are performed. The code that i've written so fat works
 perfectly at the repl but for some bizarre reason it won't work when
 attached as a handler to a button. I mean literally the same code works
 perfectly at the REPL while the GUI is up but from the GUI itself the
 effect does not happen, even though the actual work is being done (i.e.
 loading a big pdf file)!

 my question is what could possibly cause such a different behaviour? What
 is so different between the REPL and attaching a handler to a button? If
 anything, the REPL involves a compilation step whereas the handler has been
 sitting there all along... any ideas? I don't even know where to start
 looking since the code runs fine at the repl... This has never happened to
 me before!

 many thanks in advance,

 Jim

 ps: even though I have posted at the seesaw list, I am starting to doubt
 this is a seesaw-related issue simply because it works at the repl

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


-- 
-- 
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] cwo.io, a Twitter/sharable web REPL

2013-11-14 Thread Paul Bostrom
Hey folks
For fun I built a Twitter REPL. If you have a Twitter account, you can 
tweet Clojure code to the Twitter handle @cwoio, i.e. @cwoio (range 
10). After about a minute you should get an @ reply to your tweet with the 
return value, which will show up in your mentions feed, or your main feed 
if you follow @cwoio.
There is also a web interface to the REPL, so you can sign in with your 
Twitter credentials and seed your REPL with anything you want to def:
http://cwo.io/
It includes a button to load pastes by id from either Gist or RefHeap. A 
little use case I like is this Sudoku solver written by David Nolen in 
core.logic:
https://gist.github.com/pbostrom/5342129
Now you have a Sudoku solver interface that fits in a tweet, i.e.
@cwoio (sudokufd 
003020600900305001001806481029007000800670822609500800203009005010300)

The web REPL also has some code sharing functionality so you can 
collaborate with other users that are logged in. The experience is not as 
polished as it could be, but it works. It requires a browser that supports 
WebSockets.
Another feature is loading pastes via URL. I wrote the following code as a 
quick solution to the max subarray problem [1]:
https://gist.github.com/pbostrom/6926519
Instead of just sending someone the gist, I can send them to a REPL with my 
code preloaded:
http://cwo.io/#paste/gist/6926519

Refheap is also supported:
https://www.refheap.com/20877 becomes
http://cwo.io/#paste/refheap/20877

Anyway, this is mostly just a project for me to try out various things in 
Clojure and ClojureScript, but I'm putting it out there in case anyone 
might find it useful, or a novelty at the very least. The code is also 
available on GitHub: https://github.com/pbostrom/cwo

[1] http://en.wikipedia.org/wiki/Maximum_subarray_problem

-- 
-- 
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: ClojureScript 0.0-2030, core.async compatibility

2013-11-14 Thread Tim Visher
Figure I'd ask this on this thread since it's the latest public release.

I'm trying to get relative source maps to work and I'm not sure if I'm
doing something wrong or there's a bug.

I have the following entry in my [project.clj][] `cljsbuild` section
with `0.0-2030` in my deps:

{:id advanced
 :source-paths   [src/cljs]
 :compiler   {:pretty-print  false
  :output-to resources/public/js/bible-plan.js
  :output-dirresources/public/js
  :source-mapresources/public/js/bible-plan.js.map
  :externs   [externs/bible-plan-bibles-externs.js]
  :optimizations :advanced}}

The effect that I would expect that to have would be to output
`bible-plan.js` into `resources/public/js` with the line `//#
sourceMappingURL=bible-plan.js.map` at the bottom, and
`bible-plan.js.map` into `resources/public/js`, and indeed it does.

The contents of [`bible-plan.js.map`][], however, I would expect to
have entries like:

[goog/base.js,
 goog/string/string.js,
 goog/debug/error.js,
 goog/asserts/asserts.js,
 goog/array/array.js,
 goog/object/object.js,
 …

In it, because the all the files are being output to common directory.

Instead, it contains:

[resources/public/js/goog/base.js,
 resources/public/js/goog/string/string.js,
 resources/public/js/goog/debug/error.js,
 resources/public/js/goog/asserts/asserts.js,
 resources/public/js/goog/array/array.js,
 resources/public/js/goog/object/object.js,
…

Which doesn't then resolve automatically because it becomes
`js/resources/public/js/…` in the resulting server.

Is this the intended behavior?

[project.clj]: 
https://github.com/timvisher/bible-plan/blob/source-maps/project.clj#L36-L53
[`bible-plan.js.map`]:
https://github.com/timvisher/bible-plan/blob/source-maps/resources/public/js/bible-plan.js.map

--

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: Do web apps need Clojure?

2013-11-14 Thread J Irving
On Thu, Nov 14, 2013 at 2:53 PM, Brian Craft craft.br...@gmail.com wrote:

 On Thursday, November 14, 2013 10:50:48 AM UTC-8, Jonathan Irving wrote:

 * Brian Craft craft...@gmail.com [2013-11-14 10:24 -0800]:
  On Thursday, November 14, 2013 9:42:52 AM UTC-8, Jonathan Irving wrote:
  
   I agree with much of what you write James - I'm paid to write rails
 and
   node.js code, and I'm finding that node is encouraging me to compose
   small components and basically sidestep a lot of the issues that
 rails
   is designed to address.
  
 
  Can you give a concrete example?

 Tricky, because my work doesn't belong to me.

 I have a component which collects weather forecasts from a public API
 for all of the US. This is isolated from other parts of the app. It
 acquires the data in one form, transcodes and strips it down, and puts
 it into a mongodb.

 Another component runs async map reduce ops on the data, creates
 aggregated and otherwise reduced data.

 Finally, there is a service endpoint which serves the product to another
 component, which (irrelevantly) is a rails app.

 Managing the data model for these components is trivial, because they
 only touch one kind of data, and they are each very small. What the
 rails app sees is a service endpoint with a well defined API. I use no
 ODM or ORM, just mongodb queries.


 Doesn't this reflect more on your problem domain than on your choice of
 tools? The first two components are roughly ETL, and the last is data API?
 How would this have been different in rails? I've done this in django, and
 it's the same as you describe here.

 But more to the point, the pieces you've mentioned can't be composed to
 build a web app with a UI,


True say. There is another app that would be a better example, but it is
not mine - a node API service, a node web app serving an AngularJS client,
and an agent which performs work tasks for the app. The latter can be
exec'd by the web app, or from the command line. It is a better example,
but I don't know it as well because it isn't my code. I can also imagine
composing an app as described by tjholowaychuk here:
http://vimeo.com/56166857 - where each component has its own middleware
stack based on its specific requirements; I can imagine some being API
endpoints, others being bits of template or html/js client code, etc.

But I think this is kind of off topic.

 and you can't decompose a web app with a UI into just the service layer
 bits. You also need the UI bits: the forms layer, the validation layer, the
 admin, etc., etc. To be maintainable, those layers should be common for
 different components in the application: it does not scale to require devs
 to learn multiple template languages, multiple migration tools, multiple
 admin interfaces, etc.


I'm hoping to be convinced otherwise - though I agree that you need those
different bits, I disagree with the rest of that paragraph. I certainly
don't have a problem with multiple languages and multiple sets of tools. I
suspect you have different criteria for maintainable than I do - for
example, you seem to be saying that scaling out development to a group of
people who can't handle multiple languages, tools, admin interfaces, is a
requirement for you, which it isn't for me. I'm not really that interested
in admin interfaces at all for example.

So I'll respectfully disagree and look out for some suggestions from people
who have made this work. Also, remember that I already do use rails, and am
quite attached to its schema management tools - but I want to discover
another way, not be convinced its impossible.

cheers, J

-- 
-- 
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: Regarding Clojure's license

2013-11-14 Thread Paul L. Snyder
On Thu, 14 Nov 2013, Korny Sietsma wrote:

  any sufficiently poorly worded argument is indistinguishable from
  trolling.
 
 Is that original? I want to quote it. A lot.

Heh. The reaction was spontaneous and the phrasing is my own. I wasn't
thinking about Poe's Law at the time, but it's somewhat similar (though
aimed at parody and crankery, rather than straight troublemaking versus
ineffective communication).

Also, apologies to Sir Arthur C. Clarke, of course.

Paul Snyder

-- 
-- 
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] datasource 0.1 - Small clojure library for access to environment dependent configuration.

2013-11-14 Thread Andrey Antukh
Now renamed to env-config for avoid confusion.
Thanks for suggestion!

New link: https://github.com/niwibe/env-config


2013/11/14 Andrey Antukh n...@niwi.be

 Hi John.

 I know, but I chose this name because other frameworks (like Grails,
 Spring, etc...) have this name for it purpose.

 But... I open to change the name to one other. Any suggestions?

 Thanks
 Andrey



 2013/11/14 John D. Hume duelin.mark...@gmail.com

 One piece of feedback: the name datasource is confusing, given
 javax.sql.DataSource, as seen, for example, at
 http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html#
 setting-up-a-data-source


 On Thu, Nov 14, 2013 at 10:09 AM, Andrey Antukh n...@niwi.be wrote:

 https://github.com/niwibe/datasource

 Feedback always welcomed.
 Andrey

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




 --
 Andrey Antukh - Андрей Антух - n...@niwi.be
 http://www.niwi.be/about.html
 http://www.kaleidos.net/A5694F/

 Linux is for people who hate Windows, BSD is for people who love UNIX
 Social Engineer - Because there is no patch for human stupidity




-- 
Andrey Antukh - Андрей Антух - n...@niwi.be
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

Linux is for people who hate Windows, BSD is for people who love UNIX
Social Engineer - Because there is no patch for human stupidity

-- 
-- 
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 could you solve this problem

2013-11-14 Thread Leon Grapenthin
Edited version with more code-cleanup (got rid of result symbol):
https://www.refheap.com/20882

I have finally managed to register to refheap and will keep this one 
updated in case I make more changes. That problem you have posted can 
really keep your head spinning if you want to implement it in a functional 
way.

On Tuesday, November 12, 2013 11:39:18 PM UTC+1, Round Robin wrote:

 Can anyone help me solving this problem in clojure 1196 - Ring of Primes 
 http://coj.uci.cu/24h/problem.xhtml?abb=1196


-- 
-- 
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: Clojure Users Group - Denmark

2013-11-14 Thread Jacob Mortensen
I do clojure+clojurescript hobby programming at home. I live in copenhagen. 
It seems there is a clojure user group here in copenhagen, but I havent 
been able to locate it.

--Jacob

Den torsdag den 14. november 2013 11.47.13 UTC+1 skrev Anders Konring 
Olesen:

 Anyone developing clojure in Denmark at the moment?

 On Thursday, April 2, 2009 1:31:50 AM UTC+2, fyuryu wrote:

 Hi, 

 I'm currently in Copenhagen so I'm definitely interested. 

 -Roland



-- 
-- 
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: Do web apps need Clojure?

2013-11-14 Thread Bayard Randel
In a world where increasingly we're pushing more logic, rendering to the 
client, what is there in the python ecosystem to support this? I'm a 
professional django developer and am a bit dumbstruck by the lack of 
interest in supporting python on the client. Clojure and ClojureScript are 
far more forward thinking in this regard. To my mind, any platform that is 
going to be successful for web development in the future needs to support 
for the 'JS VM'.

On Thursday, 14 November 2013 11:38:49 UTC+13, Marcus Blankenship wrote:

 Hi Folks,

 We’re a Python / Django shop, and some folks are getting excited about 
 using Clojure for building web apps.  Certainly there are numerous 
 open-source options to assist us (Pedastal, Ring, Compojure, Caribou, etc), 
 but I think it begs a larger question: *as a rule, do web applications 
 need the power that Clojure brings to the table?*

 Other folks on my team are telling me that solutions built with Python / 
 Django (or even RubyOnRails) fully satisfy the needs of 99% of the web apps 
 we have built, and that Clojure offers nothing new to this problem space.  

 So, here’s the question: *How are you are actually using Clojure, and why 
 did you choose to use it, particularly in the “web application” space? * 

 Thanks,
 Marcus



 marcus blankenship
 \\\ Partner, Problem Solver, Linear Thinker
 \\\ 541.805.2736 \ @justzeros \ skype:marcuscreo
  


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