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