Re: is org.clojure/java.jdbc part of the official clojure
In addition to Andy's points, it's also worth pointing out that reaching a 1.0.0 release for a contrib library is a big deal and requires Clojure/core approval. See: http://dev.clojure.org/display/design/Contrib+1.0.0+Releases On Tue, Jan 15, 2013 at 1:10 AM, Josh Kamau joshnet2...@gmail.com wrote: Hi there , I am a little confused here (no big deal though) . Is org.clojure/java.jdbc an official clojure library? if yes, why is the version still 0.2.3 and not 1.4.x as clojure ? TIA Josh -- 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 -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
On Jan 16, 2013, at 1:45 AM, larry google groups wrote: For anyone else who might make the same mistake I did, I changed this: (GET /admin request (friend/authorize #{::admin} (admin request))) to this: (GET /admin request (friend/authorize #{::admin} {} (admin request))) adding an empty map before the string that is my actual HTML page. That resolved the error in the stack trace. However, my login still fails. I copy and paste both the username and password, very carefully, into the login form, and hit submit, only to get redirected to: http://localhost:3/login?login_failed=Yusername= I have not idea why this fails. I thought I had followed the documentation carefully, but I suppose there is always something that I miss. Are you using the keyword-params middleware? It's not in the code you initially provided, and you don't mention adding it after seeing the note about it being required. If you are submitting a value for the `username` parameter to /login, but the failure redirect does not echo that username, then a lack of keyword-params is indicated. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
[ANN] modern-cljs
For who is interested I updated the last tutorial on clojurescript/ajax to version 1.0.2-SNAPSHOT of domina. I had to downgrade from leion-cljsbuild 0.2.10 to 0.2.9 due to an annoying delay time after successfully CLJS compilation before lein cljsbuild once returns. My best mimmo -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
Are you using the keyword-params middleware? It's not in the code you initially provided, and you don't mention adding it after seeing the note about it being required. If you are submitting a value for the `username` parameter to /login, but the failure redirect does not echo that username, then a lack of keyword-params is indicated. Thank you, but I believe I have all the other needed software libraries: (ns caddys-clojure.core (:gen-class) (:import (java.net URL)) (:require [clojure.string :as st] [clojure.java.io :as io] [clojure.java.jdbc :as jdbc] [clojure.data.json :as json] [clj-yaml.core :as yaml] [clj-time.core :as tyme] [fs.core :as fs] [clj-time.format :as tyme-format] [caddys-clojure.debugging :as debug] [caddys-clojure.memory_display :as mem] [caddys-clojure.dates_as_strings :as das] [caddys-clojure.fake-data-for-development :as fd] [net.cgrand.enlive-html :as enlive] [compojure.core :refer :all] [compojure.handler :as handler] [compojure.route :as route] [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds])) (:use [ring.util.response] [ring.middleware.params] [ring.middleware.keyword-params] [ring.middleware.nested-params] [ring.middleware.file] [ring.middleware.resource] [ring.middleware.cookies] [ring.middleware.file-info] [ring.middleware.session] [ring.middleware.session.cookie] [ring.middleware.session.store] [ring.adapter.jetty :only [run-jetty]])) When I try to log in, I get no error, but I am not logged in. I get login_failed=Y. And this is with me copying and pasting the username and password from the users var that I copied from the documentation on github. On Jan 16, 5:47 am, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 1:45 AM, larry google groups wrote: For anyone else who might make the same mistake I did, I changed this: (GET /admin request (friend/authorize #{::admin} (admin request))) to this: (GET /admin request (friend/authorize #{::admin} {} (admin request))) adding an empty map before the string that is my actual HTML page. That resolved the error in the stack trace. However, my login still fails. I copy and paste both the username and password, very carefully, into the login form, and hit submit, only to get redirected to: http://localhost:3/login?login_failed=Yusername= I have not idea why this fails. I thought I had followed the documentation carefully, but I suppose there is always something that I miss. Are you using the keyword-params middleware? It's not in the code you initially provided, and you don't mention adding it after seeing the note about it being required. If you are submitting a value for the `username` parameter to /login, but the failure redirect does not echo that username, then a lack of keyword-params is indicated. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
On 2013-01-15, at 5:00 PM, Justin Kramer jkkra...@gmail.com wrote: Formative is a library for dealing with web forms. Features: Describe forms using simple data Render forms via pluggable renderers (comes with Bootstrap and other renderers built-in) Parse submitted form data from Ring params Validate parsed data using Verily (another new but less interesting lib) A live demo can be seen at http://formative-demo.herokuapp.com/. Demo source: https://github.com/jkk/formative-demo See the README for a usage guide and quick reference: https://github.com/jkk/formative It has seem some real-world usage, and I consider the API stable. Feedback and contributions welcome. This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? On Jan 16, 5:47 am, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 1:45 AM, larry google groups wrote: For anyone else who might make the same mistake I did, I changed this: (GET /admin request (friend/authorize #{::admin} (admin request))) to this: (GET /admin request (friend/authorize #{::admin} {} (admin request))) adding an empty map before the string that is my actual HTML page. That resolved the error in the stack trace. However, my login still fails. I copy and paste both the username and password, very carefully, into the login form, and hit submit, only to get redirected to: http://localhost:3/login?login_failed=Yusername= I have not idea why this fails. I thought I had followed the documentation carefully, but I suppose there is always something that I miss. Are you using the keyword-params middleware? It's not in the code you initially provided, and you don't mention adding it after seeing the note about it being required. If you are submitting a value for the `username` parameter to /login, but the failure redirect does not echo that username, then a lack of keyword-params is indicated. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3540}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? On Jan 16, 5:47 am, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 1:45 AM, larry google groups wrote: For anyone else who might make the same mistake I did, I changed this: (GET /admin request (friend/authorize #{::admin} (admin request))) to this: (GET /admin request (friend/authorize #{::admin} {} (admin request))) adding an empty map before the string that is my actual HTML page. That resolved the error in the stack trace. However, my login still fails. I copy and paste both the username and password, very carefully, into the login form, and hit submit, only to get redirected to: http://localhost:3/login?login_failed=Yusername= I have not idea why this fails. I thought I had followed the documentation carefully, but I suppose there is always something that I miss. Are you using the keyword-params middleware? It's not in the code you initially provided, and you don't mention adding it after seeing the note about it being required. If you are submitting a value for the `username` parameter to /login, but the failure redirect does not echo that username, then a lack of keyword-params is indicated. - Chas -- 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
emacs - how to wean me off the family of Java IDEs
Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
you can install autocomplete package (available via package.el on MELPA) - it will provide dictionary based name completion for JS On Wed, Jan 16, 2013 at 3:29 PM, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- 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 -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Jan 16, 2013, at 7:29 AM, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Hi Colin: No real answers, but I wanted to chime in to say that I'm in the same spot. I had been putting off using Emacs until I felt I was ready, but then came to realize that the choice to use Emacs is like the choice to have kids. If you wait until you're ready, you'll never do it. This is week 2 and it's definitely getting better, altho truth be told it wasn't nearly as bad last week as I expected it would be. Been working on the desktop with a cheat sheet constantly open on my laptop next to me. I also miss the project explorer. I'm used to working with multiple files at once, having them open in tabs, and being able to easily switch back and forth between any of them. I've definitely found that to be a bit jarring in Emacs, but trust that at some point I'll get used to the Emacs way versus trying to find a plugin to provide a project explorer. I have to remind myself that all of the files that I'm working with are there, they're just not immediately visible. M-x B will let me go thru the list of files open in buffers, even if those buffers aren't visible. It's different, but that's where the trust comes in :) The biggest issue I find with the lack of a project explorer is when I don't know what directory a particular file is in. Emacs provides great autocompletion when you're navigating to a particular file in the minibuffer, but that presumes you know exactly where the file is. I suppose there's always the option of opening a dired buffer (M-x dired) or even a shell (M-x shell). That's still not as easy or visual as a directory tree, but I think the big issue is that Emacs is really all about keeping your hands on the (proper) keys. A shell at least lets you continue to type your way around your directory structure to locate a file. A directory tree/project explorer would likely require grabbing the mouse and clicking down into various directories. It's what we're used to, yes… but it's not really, um… idiomatic Emacs :D -- Charlie Griefer http://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
Hi Bob, Thanks for sharing your use case. One possible approach to fieldsets (among others) is to have the renderer split fields on e.g. :heading and put each group into a fieldset. Another would be to create a :fieldset field type that itself contains other fields. I've created a GitHub issue for this - https://github.com/jkk/formative/issues/4 - and plan on addressing it in the near future. Separating the form buttons should be relatively easy with CSS - the default renderer spits out tons of classes for every piece of the form. You could also use :submit-label nil to turn off the submit button altogether and include your own as an :html type. There are various possibilities. Justin On Wednesday, January 16, 2013 8:35:54 AM UTC-5, hutch wrote: This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com javascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
On Jan 16, 2013, at 9:07 AM, larry google groups wrote: I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? You're still not using wrap-keyword-params. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Thanks Alex. Charlie - I hear you. You are right to (very gently) point out that I should embrace new idioms. Boy it is hard though :). I have to say that I too found it much less of a shock then I thought. I am very familiar with Linux and shell scripts so I had that skillset already which I think helps the with the paradigm shift. I accept your (implicit) challenge - let's continue without a project explorer :) On 16 January 2013 14:42, Charlie Griefer charlie.grie...@gmail.com wrote: On Jan 16, 2013, at 7:29 AM, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Hi Colin: No real answers, but I wanted to chime in to say that I'm in the same spot. I had been putting off using Emacs until I felt I was ready, but then came to realize that the choice to use Emacs is like the choice to have kids. If you wait until you're ready, you'll never do it. This is week 2 and it's definitely getting better, altho truth be told it wasn't nearly as bad last week as I expected it would be. Been working on the desktop with a cheat sheet constantly open on my laptop next to me. I also miss the project explorer. I'm used to working with multiple files at once, having them open in tabs, and being able to easily switch back and forth between any of them. I've definitely found that to be a bit jarring in Emacs, but trust that at some point I'll get used to the Emacs way versus trying to find a plugin to provide a project explorer. I have to remind myself that all of the files that I'm working with are there, they're just not immediately visible. M-x B will let me go thru the list of files open in buffers, even if those buffers aren't visible. It's different, but that's where the trust comes in :) The biggest issue I find with the lack of a project explorer is when I don't know what directory a particular file is in. Emacs provides great autocompletion when you're navigating to a particular file in the minibuffer, but that presumes you know exactly where the file is. I suppose there's always the option of opening a dired buffer (M-x dired) or even a shell (M-x shell). That's still not as easy or visual as a directory tree, but I think the big issue is that Emacs is really all about keeping your hands on the (proper) keys. A shell at least lets you continue to type your way around your directory structure to locate a file. A directory tree/project explorer would likely require grabbing the mouse and clicking down into various directories. It's what we're used to, yes… but it's not really, um… idiomatic Emacs :D -- Charlie Griefer http://charlie.griefer.comhttp://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
How to (easily) show the advantages of Clojure
Hi All, Something that came up last night in the blank? thread. What is a good way to show someone the advantages of Clojure. Something that is simple, not too complicated, easily understood, shows a (significant) benefit, etc. Any ideas? (As said in the other thread, I have used the blank? example from Stuart Halloway to show people the difference). Thomas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: How to (easily) show the advantages of Clojure
Hi, I based a recent presentation in a local user group on the bank account example: two accounts, deposit, withdrawal, transfer. Starting with maps. Building the code. Noticing that no locks are required. Replacing maps with records w/o changes to underlying code. Easily testing pure functions. c. c. There was a lot of positive feedback. (Although I don't know how far things will get.) It was a two hours live session with many questions from the auditorium and ad hoc examples. The advantage of the bank account kata is that chances are that people know this already in other (maybe OO) languages. So they can easily compare with their experiences. (In fact the same kata was discussed for OO languages in December in our user group.) Meikel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
emacs-live is a pretty great starting point. It's the 'whole-kitchen-sink', but it's great for finding out what you don't know. emacs-rocks videos are good (and short) I also put off learning it until late last year, and I'm not completely converted. I *love* it and would be very unhappy if I didn't have it. I missed the project explorer at first, until I figured out that I can C-x C-f and just start typing, and emacs will fuzzy match what I might be looking for, including files in directories other than current. On Wed, Jan 16, 2013 at 10:01 AM, Colin Yates colin.ya...@gmail.com wrote: Thanks Alex. Charlie - I hear you. You are right to (very gently) point out that I should embrace new idioms. Boy it is hard though :). I have to say that I too found it much less of a shock then I thought. I am very familiar with Linux and shell scripts so I had that skillset already which I think helps the with the paradigm shift. I accept your (implicit) challenge - let's continue without a project explorer :) On 16 January 2013 14:42, Charlie Griefer charlie.grie...@gmail.com wrote: On Jan 16, 2013, at 7:29 AM, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Hi Colin: No real answers, but I wanted to chime in to say that I'm in the same spot. I had been putting off using Emacs until I felt I was ready, but then came to realize that the choice to use Emacs is like the choice to have kids. If you wait until you're ready, you'll never do it. This is week 2 and it's definitely getting better, altho truth be told it wasn't nearly as bad last week as I expected it would be. Been working on the desktop with a cheat sheet constantly open on my laptop next to me. I also miss the project explorer. I'm used to working with multiple files at once, having them open in tabs, and being able to easily switch back and forth between any of them. I've definitely found that to be a bit jarring in Emacs, but trust that at some point I'll get used to the Emacs way versus trying to find a plugin to provide a project explorer. I have to remind myself that all of the files that I'm working with are there, they're just not immediately visible. M-x B will let me go thru the list of files open in buffers, even if those buffers aren't visible. It's different, but that's where the trust comes in :) The biggest issue I find with the lack of a project explorer is when I don't know what directory a particular file is in. Emacs provides great autocompletion when you're navigating to a particular file in the minibuffer, but that presumes you know exactly where the file is. I suppose there's always the option of opening a dired buffer (M-x dired) or even a shell (M-x shell). That's still not as easy or visual as a directory tree, but I think the big issue is that Emacs is really all about keeping your hands on the (proper) keys. A shell at least lets you continue to type your way around your directory structure to locate a file. A directory tree/project explorer would likely require grabbing the mouse and clicking down into various directories. It's what we're used to, yes… but it's not really, um… idiomatic Emacs :D -- Charlie Griefer http://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first
Re: How to (easily) show the advantages of Clojure
How about something from the world of concurrency? It is not as easy to demonstrate, though. Many true advantages are too subtle for elevatorspeak, though. For example, people used to pitch *pmap* that way: instantly turn a sequence transformation into a multicore-saturating performance king. The reality is that there are increased constant-time-and-space costs involved and there are major issues with chunked seqs. Another similar thought is transforming an arbitrary calculation into a * future*. When I pitch Clojure, I use as much emotional arguments as rational ones, and I see many others feel the same way: the *joy of Clojure* is something many people feel. Sharing your enthusiasm works quite well in the field :) On Wednesday, January 16, 2013 4:08:41 PM UTC+1, Thomas wrote: Hi All, Something that came up last night in the blank? thread. What is a good way to show someone the advantages of Clojure. Something that is simple, not too complicated, easily understood, shows a (significant) benefit, etc. Any ideas? (As said in the other thread, I have used the blank? example from Stuart Halloway to show people the difference). Thomas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
I missed the project explorer at first, until I figured out that I can C-x C-f and just start typing, and emacs will fuzzy match what I might be looking for, including files in directories other than current. This function is contributed by some package and is not the default, at least in 23. I think it was TextMate-mode, but not sure anymore because I removed it. It makes it very hard to create a new file with C-x C-f. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Jan 16, 2013, at 8:29 AM, Marko Topolnik marko.topol...@gmail.com wrote: I missed the project explorer at first, until I figured out that I can C-x C-f and just start typing, and emacs will fuzzy match what I might be looking for, including files in directories other than current. This function is contributed by some package and is not the default, at least in 23. I think it was TextMate-mode, but not sure anymore because I removed it. It makes it very hard to create a new file with C-x C-f. I'm starting off with 24, so not sure what was default in 23… but C-x C-f in 24 lets you fuzzy match to a particular directory, then type a file name. The minibuffer alerts you to the fact that there's no match, but you simply hit return, then return again to confirm, and the new file is created. Not sure if it's possible via C-x C-f to create a new directory, but new file works pretty well. -- Charlie Griefer http://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Hi: I use Everything http://www.emacswiki.org/emacs/Everything to find files in project. Just type a part of the name, all files filter by your typing listed for you to choose from. Something like Eclipse's Ctrl +Shift + R (or Command + Shift + R on mac) . But you need some time to set it up. Herehttps://github.com/shenfeng/dotfiles/blob/master/emacs.d/feng-anything.elis my config for your reference. rainbow-delimiters is helpful for my lisp coding. On Wednesday, January 16, 2013 10:29:36 PM UTC+8, Colin Yates wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: How to (easily) show the advantages of Clojure
How about Clojure's web 1. Plain Clojure function as handler, request and response are just maps, they are printable. 2. Easy testable: handler is a function, pass a request, get the response, assert the response is wanted. 3. Easy mockable: use bindings to mock centain functions. Like talking to a database, read the content of a file. On Wednesday, January 16, 2013 11:08:41 PM UTC+8, Thomas wrote: Hi All, Something that came up last night in the blank? thread. What is a good way to show someone the advantages of Clojure. Something that is simple, not too complicated, easily understood, shows a (significant) benefit, etc. Any ideas? (As said in the other thread, I have used the blank? example from Stuart Halloway to show people the difference). Thomas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: How to (easily) show the advantages of Clojure
I have trouble finding a simple example, but I know I have written a lot of apps that have less than 200 lines of code, but if I had written them in PHP, they would have been a mess. And consider this: I worked at WineSpectator.com for awhile, and they had me writing big import scripts for the database. These projects usually started off sounding small: Can you write a quick PHP script to pull all the user subscriptions and update the user history table? and then they ballooned in scope, with more tables being added, and with more transformations of the data being added. A simple PHP script is good for a simple import of database data, but once you get to complicated transformations, which can be broken into pieces, then you need a multi-threaded app. I wrote one PHP script which took data from one table (that had 100 million rows) and had to combine it with data from 3 other tables (one of which had 70 millions rows). The PHP script took 3 days to run. At that point I made the argument to management We can not handle this with PHP scripts, we need something more sophisticated, and it needs to be multi-threaded. When they heard multi-threaded they thought of Java, but they were afraid of Java, because they felt it was verbose. Clojure is ideal for those situations: concise, small, fast, multi-threaded. On 16 Sty, 10:08, Thomas th.vanderv...@gmail.com wrote: Hi All, Something that came up last night in the blank? thread. What is a good way to show someone the advantages of Clojure. Something that is simple, not too complicated, easily understood, shows a (significant) benefit, etc. Any ideas? (As said in the other thread, I have used the blank? example from Stuart Halloway to show people the difference). Thomas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Regarding the explorer, I keep several frames open (a frame is the word that Emacs uses for window -- I keep several windows open) and in one of those windows I'll keep my bookmarks (a bookmark is an alias you can use in Emacs to jump to any location in any file). But I also feel that Emacs is old. I donated to LightTable on Kickstarter and I have high hopes for it. Hopefully by the end of this year LightTable will be strong enough that I can make the switch. On 16 Sty, 09:29, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have readhttp://dev.clojure.org/display/doc/Getting+Started+with+Emacs andhttps://github.com/technomancy/emacs-starter-kitand I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- 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
CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts] Is there a CLJS issue# that addresses this? (coudn't fine one… but I've been wrong before) Thanks, FrankS. -- 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
New G+ Datomic Community
Fellow Clojurians, allow me to introduce a new Google+ Datomic Community: https://plus.google.com/communities/109115177403359845949 If you have an interest in Datomic, please join us there. And if you've already seen my earlier announcements on the G+ Clojure Community or on the Google Groups Datomic forum, please forgive me. This will be the last in this series. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
They aren't supported in Clojure either. On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts] Is there a CLJS issue# that addresses this? (coudn't fine one… but I've been wrong before) Thanks, FrankS. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: How to (easily) show the advantages of Clojure
Here's a quick example of getting all the streets in Baltimore from a 1GB XML file of Maryland map data. I shudder to think of how to do this in java. Takes about 60 seconds to run on my box. https://gist.github.com/4548456 On Wednesday, January 16, 2013 10:08:41 AM UTC-5, Thomas wrote: Hi All, Something that came up last night in the blank? thread. What is a good way to show someone the advantages of Clojure. Something that is simple, not too complicated, easily understood, shows a (significant) benefit, etc. Any ideas? (As said in the other thread, I have used the blank? example from Stuart Halloway to show people the difference). Thomas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
You're still not using wrap-keyword-params. Thanks. I changed the routes so I now have: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-keyword-params) (wrap-nested-params) (wrap-params))) Then I go here with my browser: localhost:4/login and I copy and paste the username and password from the :users map inside of @interactions. Then I hit the submit button. I get redirected back to the login page. The URL is now: http://localhost:4/login?login_failed=Yusername=lawrence I am trying to think of what I can change so I can see some of the intermediate steps. How do I debug this and find out what the point of failure is? Part of me is thinking that I could clone Friend from github and build my own custom version of it, with debugging code throughout it. But most of me thinks that is stupid, since it works for others, so the problem can not be in Friend, it must be something that I am doing. lawrence On 16 Sty, 09:55, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 9:07 AM, larry google groups wrote: I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? You're still not using wrap-keyword-params. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
I realize this is name space qualified: ::admin ::user I'm actually referencing these in my core namespace, though the user info is defined in (def fake-data ;; big map of fake data) which is in a different name space. I am not sure how that would effect the way Friend interprets the data. On 16 Sty, 11:20, larry google groups lawrencecloj...@gmail.com wrote: You're still not using wrap-keyword-params. Thanks. I changed the routes so I now have: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-keyword-params) (wrap-nested-params) (wrap-params))) Then I go here with my browser: localhost:4/login and I copy and paste the username and password from the :users map inside of @interactions. Then I hit the submit button. I get redirected back to the login page. The URL is now: http://localhost:4/login?login_failed=Yusername=lawrence I am trying to think of what I can change so I can see some of the intermediate steps. How do I debug this and find out what the point of failure is? Part of me is thinking that I could clone Friend from github and build my own custom version of it, with debugging code throughout it. But most of me thinks that is stupid, since it works for others, so the problem can not be in Friend, it must be something that I am doing. lawrence On 16 Sty, 09:55, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 9:07 AM, larry google groups wrote: I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? You're still not using wrap-keyword-params. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Just a few things, you might find interesting * anything/helm: http://www.emacswiki.org/Anything * speedbar (used that in my early years; got rid of it eventually) * mtorus: http://www.emacswiki.org/emacs/MTorus (shameless self-plug) * M-. on functions * M-x ffap * iswitchb-buffer (just keep the buffers open) * Spend some months testing all the buffer cycling options listed at http://emacswiki.org/emacs/CategoryBufferSwitching * M-x dabbrev-expand (I bind that to Shift-Space) * Keep an eye on the recent changes at emacswiki.org. Every now and then you will find something interesting there. Cheers, Stefan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
Oh, I think I figured this out. I re-read this: https://github.com/cemerick/friend/#authentication And I see the keys here are strings: (def users {root {:username root :password (creds/hash-bcrypt admin_password) :roles #{::admin}} jane {:username jane :password (creds/hash-bcrypt user_password) :roles #{::user}}}) I switched to keywords when I implemented this in my own code. When I copy and paste this map (above) into my code, and use root and admin_password to login, it seems to work. On 16 Sty, 11:20, larry google groups lawrencecloj...@gmail.com wrote: You're still not using wrap-keyword-params. Thanks. I changed the routes so I now have: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-keyword-params) (wrap-nested-params) (wrap-params))) Then I go here with my browser: localhost:4/login and I copy and paste the username and password from the :users map inside of @interactions. Then I hit the submit button. I get redirected back to the login page. The URL is now: http://localhost:4/login?login_failed=Yusername=lawrence I am trying to think of what I can change so I can see some of the intermediate steps. How do I debug this and find out what the point of failure is? Part of me is thinking that I could clone Friend from github and build my own custom version of it, with debugging code throughout it. But most of me thinks that is stupid, since it works for others, so the problem can not be in Friend, it must be something that I am doing. lawrence On 16 Sty, 09:55, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 9:07 AM, larry google groups wrote: I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? You're still not using wrap-keyword-params. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
So I went ahead and implemented the first solution I mentioned: the default renderer now groups fields into fieldsets, split by :heading and :submit fields. Each fieldset has a class that you can target with css/js. You can see the result in the demo - http://formative-demo.herokuapp.com/. Justin On Wednesday, January 16, 2013 8:35:54 AM UTC-5, hutch wrote: This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com javascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
I'm starting off with 24, so not sure what was default in 23… but C-x C-f in 24 lets you fuzzy match to a particular directory, then type a file name. The minibuffer alerts you to the fact that there's no match, but you simply hit return, then return again to confirm, and the new file is created. Trouble begins when it *does* fuzzy-match your new file name :) I ran into this when working on a Ruby project, might be less of an issue with 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
Re: emacs - how to wean me off the family of Java IDEs
Thanks all. LightTable does look awesome and I haven't invested enough time to fully get to grips with it yet, but I am not sure it would be an upgrade for me (wow - I am really going with the flame bait today!). Coming from IntelliJ, which is a pretty fantastic general (i.e. Java, scala, clojure, Javascript) editor to Emacs (which is an even better general purpose editor) to a Clojure specific editor is a step backwards. To be explicit, I marvel at the engineering behind LightTable, my concern is it might be too focused and not general enough. On 16 January 2013 16:09, larry google groups lawrencecloj...@gmail.comwrote: Regarding the explorer, I keep several frames open (a frame is the word that Emacs uses for window -- I keep several windows open) and in one of those windows I'll keep my bookmarks (a bookmark is an alias you can use in Emacs to jump to any location in any file). But I also feel that Emacs is old. I donated to LightTable on Kickstarter and I have high hopes for it. Hopefully by the end of this year LightTable will be strong enough that I can make the switch. On 16 Sty, 09:29, Colin Yates colin.ya...@gmail.com wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have readhttp://dev.clojure.org/display/doc/Getting+Started+with+Emacs andhttps://github.com/technomancy/emacs-starter-kitand I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Great! emacs is my favorite editor, I used it for many years now except for Java dev because I'm too lazy to configure intelli-sens... In the following there is all I *use* in emacs and which make you ready to use emacs - as I am - daily. I use emacs 24 and the following only needs a vanilla emacs install and there is nothing specific to Clojure. C is Ctrl M is Meta (Alt) C-x means Ctrl+X... C-x b means Ctrl+X then b My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» It's in vanilla emacs 24, it does also file/class explorer, but I don't use it. I only use «buffer navigation»: - «C-x C-f» to browser file system - «C-x b» to switch to the previous buffer, but the mini-buffer is active you can type the name of a buffer. If you have a lot of similarly named buffers use the «Use directory names in buffer names», it use a clever algorithm based on the path to the file to name the buffer - when needed... autocompletion work with tab and their might be smart extension to improve it, but for me it's enough There is also the the following bindings «C-x right/left arrow» but I seldom use them. - is there a decent JS and clojure autocompletion aware plugin I don't use any intelli-autocompletion but the basic autocompletion, it's a vanilla feature: «M-/» it does autocompletion based on the names that are already in the current buffer. You can use several times «M-/» to change the cnd directory, I use the followings, use arrows to navigate the ompletion. Also to search for something in a file I use «C-s» then mini-buffer, if you don't capitalize it do a case insensitive search. There is also «C-r» for backward but instead I do the following when I want to search the whole file «M-g 0 enter» which brings you at the top of the file then «C-s» the things. «M-g» is go to line by the way. I don't use bookmarks, I use my memory and the above commands, speebar can help in big files, if any. Also I use «C-g» to get away «quit» the mini-buffer. In a buffer, I use «C-a» and «C-e» to respectively go at the end of the beginning of the line and end of the line. «C-k» to «kill» a line or several «C-y» to yield what you killed «C-_» to undo To select use «C-space» then navigate, then «C-w» to cut and «C-y» to yield. Also you will probably want if you have a big screen to cut the window to be able to look at two files at the same time: - «C-x 3» cut vertically - «C-x 2» cut horizontally Then, you might sometime want to use: - «C-1» maximize current frame - «C-0» close current frame Most of the time I use only two frames with vertical separation. - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install dired-xhttp://www.gnu.org/software/emacs/manual/html_node/dired-x/index.html#Top, here is the configuration that use for it, it allows not to show useless files in the buffer and mini-buffer: (require 'dired-x) (setq dired-omit-files (rx (or (seq bol (? .) #) ;; emacs autosave files (seq ~ eol) ;; backup-files (seq bol svn eol) ;; svn dirs (seq .pyc eol (setq dired-omit-extensions (append dired-latex-unclean-extensions dired-bibtex-unclean-extensions dired-texinfo-unclean-extensions)) (add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1))) (put 'dired-find-alternate-file 'disabled nil) This works in without the extension: When you browser your file systems with «C-x C-f» you can do some operations on the files and directory, I use the followings, use arrows to navigate the buffer, then on a file or directory: - «C-r» to rename then put the new name in mini-buffer (it's a mv) - «C-c» to copy then put the new name in mini-buffer - «C-d» to delete - «g» to update the content of dired (if you created a file with «C-x f» it won't appear in dired before you hit «g») To look a particular directory go to this directory with «C-x C-f» hit enter then «M-x grep-find the-thing-you-are-looking-for» Also if you use git or mercurial (I have an extension for mercurial...): - you can commit a file with «C-x v v» (yes two times «v») then a buffer will show up write the commit message, submit the message with «C-c C-c»: Done. - you can show global colored diff with «C-x v d» If you want to send mail you can hit «C-x m» then «C-c C-c» to send. I also use flymake with flymake-cursor for code linting/feedback. I use the zenburn theme https://github.com/bbatsov/zenburn-emacs which happens to
Re: emacs - how to wean me off the family of Java IDEs
Thanks a bunch. On 16 Jan 2013 16:34, Amirouche Boubekki amirouche.boube...@gmail.com wrote: Great! emacs is my favorite editor, I used it for many years now except for Java dev because I'm too lazy to configure intelli-sens... In the following there is all I *use* in emacs and which make you ready to use emacs - as I am - daily. I use emacs 24 and the following only needs a vanilla emacs install and there is nothing specific to Clojure. C is Ctrl M is Meta (Alt) C-x means Ctrl+X... C-x b means Ctrl+X then b My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» It's in vanilla emacs 24, it does also file/class explorer, but I don't use it. I only use «buffer navigation»: - «C-x C-f» to browser file system - «C-x b» to switch to the previous buffer, but the mini-buffer is active you can type the name of a buffer. If you have a lot of similarly named buffers use the «Use directory names in buffer names», it use a clever algorithm based on the path to the file to name the buffer - when needed... autocompletion work with tab and their might be smart extension to improve it, but for me it's enough There is also the the following bindings «C-x right/left arrow» but I seldom use them. - is there a decent JS and clojure autocompletion aware plugin I don't use any intelli-autocompletion but the basic autocompletion, it's a vanilla feature: «M-/» it does autocompletion based on the names that are already in the current buffer. You can use several times «M-/» to change the cnd directory, I use the followings, use arrows to navigate the ompletion. Also to search for something in a file I use «C-s» then mini-buffer, if you don't capitalize it do a case insensitive search. There is also «C-r» for backward but instead I do the following when I want to search the whole file «M-g 0 enter» which brings you at the top of the file then «C-s» the things. «M-g» is go to line by the way. I don't use bookmarks, I use my memory and the above commands, speebar can help in big files, if any. Also I use «C-g» to get away «quit» the mini-buffer. In a buffer, I use «C-a» and «C-e» to respectively go at the end of the beginning of the line and end of the line. «C-k» to «kill» a line or several «C-y» to yield what you killed «C-_» to undo To select use «C-space» then navigate, then «C-w» to cut and «C-y» to yield. Also you will probably want if you have a big screen to cut the window to be able to look at two files at the same time: - «C-x 3» cut vertically - «C-x 2» cut horizontally Then, you might sometime want to use: - «C-1» maximize current frame - «C-0» close current frame Most of the time I use only two frames with vertical separation. - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install dired-xhttp://www.gnu.org/software/emacs/manual/html_node/dired-x/index.html#Top, here is the configuration that use for it, it allows not to show useless files in the buffer and mini-buffer: (require 'dired-x) (setq dired-omit-files (rx (or (seq bol (? .) #) ;; emacs autosave files (seq ~ eol) ;; backup-files (seq bol svn eol) ;; svn dirs (seq .pyc eol (setq dired-omit-extensions (append dired-latex-unclean-extensions dired-bibtex-unclean-extensions dired-texinfo-unclean-extensions)) (add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1))) (put 'dired-find-alternate-file 'disabled nil) This works in without the extension: When you browser your file systems with «C-x C-f» you can do some operations on the files and directory, I use the followings, use arrows to navigate the buffer, then on a file or directory: - «C-r» to rename then put the new name in mini-buffer (it's a mv) - «C-c» to copy then put the new name in mini-buffer - «C-d» to delete - «g» to update the content of dired (if you created a file with «C-x f» it won't appear in dired before you hit «g») To look a particular directory go to this directory with «C-x C-f» hit enter then «M-x grep-find the-thing-you-are-looking-for» Also if you use git or mercurial (I have an extension for mercurial...): - you can commit a file with «C-x v v» (yes two times «v») then a buffer will show up write the commit message, submit the message with «C-c C-c»: Done. - you can show global colored diff with «C-x v d» If you want to send mail you can hit «C-x
Re: Error on redirect when attempting unauthorized entry to Friend route
I am getting closer, I think. I changed the keys from keywords to strings and that seemed to let me login. But if I go to /logout, I get: 2013-01-16 11:37:25.875:WARN:oejs.AbstractHttpConnection:/logout java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IPersistentMap at clojure.lang.RT.dissoc(RT.java:747) at clojure.core$dissoc.invoke(core.clj:1405) at clojure.lang.AFn.applyToHelper(AFn.java:163) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:603) at clojure.core$update_in.doInvoke(core.clj:5472) at clojure.lang.RestFn.invoke(RestFn.java:467) at cemerick.friend$logout_STAR_.invoke(friend.clj:69) at cemerick.friend$logout$fn__496.invoke(friend.clj:76) at compojure.core$routing$fn__260.invoke(core.clj:106) at clojure.core$some.invoke(core.clj:2390) at compojure.core$routing.doInvoke(core.clj:106) at clojure.lang.RestFn.applyTo(RestFn.java:139) at clojure.core$apply.invoke(core.clj:603) at compojure.core$routes$fn__264.invoke(core.clj:111) at cemerick.friend$authenticate_STAR_.invoke(friend.clj:195) at cemerick.friend$authenticate$fn__526.invoke(friend.clj:207) at ring.middleware.resource$wrap_resource $fn__15.invoke(resource.clj:17) at ring.middleware.session$wrap_session $fn__170.invoke(session.clj:43) at ring.middleware.cookies$wrap_cookies $fn__108.invoke(cookies.clj:160) at ring.middleware.cookies$wrap_cookies $fn__108.invoke(cookies.clj:160) at ring.middleware.keyword_params$wrap_keyword_params $fn__139.invoke(keyword_params.clj:27) at ring.middleware.nested_params$wrap_nested_params $fn__321.invoke(nested_params.clj:65) at ring.middleware.params$wrap_params $fn__113.invoke(params.clj:55) at clojure.lang.Var.invoke(Var.java:415) at ring.adapter.jetty$proxy_handler$fn__355.invoke(jetty.clj: 18) at ring.adapter.jetty.proxy $org.eclipse.jetty.server.handler.AbstractHandler$0.handle(Unknown Source) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java: 111) at org.eclipse.jetty.server.Server.handle(Server.java:349) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java: 452) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java: 884) at org.eclipse.jetty.server.AbstractHttpConnection $RequestHandler.headerComplete(AbstractHttpConnection.java:93\ 8) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java: 634) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java: 76) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java: 609) at org.eclipse.jetty.io.nio.SelectChannelEndPoint $1.run(SelectChannelEndPoint.java:45) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java: 599) at org.eclipse.jetty.util.thread.QueuedThreadPool $3.run(QueuedThreadPool.java:534) at java.lang.Thread.run(Thread.java:722) I think going to /logout should erase the session values and then redirect to the homepage? On 16 Sty, 11:31, larry google groups lawrencecloj...@gmail.com wrote: Oh, I think I figured this out. I re-read this: https://github.com/cemerick/friend/#authentication And I see the keys here are strings: (def users {root {:username root :password (creds/hash-bcrypt admin_password) :roles #{::admin}} jane {:username jane :password (creds/hash-bcrypt user_password) :roles #{::user}}}) I switched to keywords when I implemented this in my own code. When I copy and paste this map (above) into my code, and use root and admin_password to login, it seems to work. On 16 Sty, 11:20, larry google groups lawrencecloj...@gmail.com wrote: You're still not using wrap-keyword-params. Thanks. I changed the routes so I now have: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-keyword-params) (wrap-nested-params) (wrap-params))) Then I go here with my browser: localhost:4/login and I copy and paste the username and password from the :users map inside of @interactions. Then I hit the submit button. I get redirected back to the login page. The URL is now:
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
Ouch! Where is that documented? Cannot find it in the defprotocol docstring, not in http://clojure.org/protocols; nor http://clojuredocs.org/clojure_core/clojure.core/defprotocol;. Just a mention by Alan Malloy: https://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w; Thanks, FrankS. On Jan 16, 2013, at 8:14 AM, David Nolen dnolen.li...@gmail.com wrote: They aren't supported in Clojure either. On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts] Is there a CLJS issue# that addresses this? (coudn't fine one… but I've been wrong before) Thanks, FrankS. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
Looks interesting, and well-documented. I will give this a try on my next project. Thanks! On Wednesday, January 16, 2013 at 10:31 AM, Justin Kramer wrote: So I went ahead and implemented the first solution I mentioned: the default renderer now groups fields into fieldsets, split by :heading and :submit fields. Each fieldset has a class that you can target with css/js. You can see the result in the demo - http://formative-demo.herokuapp.com/. Justin On Wednesday, January 16, 2013 8:35:54 AM UTC-5, hutch wrote: This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com (javascript:) Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com (javascript:) For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com (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+unsubscr...@googlegroups.com) For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
I am ignorant about the implications of using :: to namespace vars. The fact that I have ::admin in one namespace: :users {root{:username lawrence :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} jane {:username jane :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} but then in the core name space I have: (derive ::admin ::user) and: (GET /account request (friend/authorize #{::user} {} (account request))) (GET /admin request (friend/authorize #{::admin} {} (admin request))) I assume I need to change this. What are the implications? These declarations of roles all need to reference the same namespace, yes? On 16 Sty, 11:31, larry google groups lawrencecloj...@gmail.com wrote: Oh, I think I figured this out. I re-read this: https://github.com/cemerick/friend/#authentication And I see the keys here are strings: (def users {root {:username root :password (creds/hash-bcrypt admin_password) :roles #{::admin}} jane {:username jane :password (creds/hash-bcrypt user_password) :roles #{::user}}}) I switched to keywords when I implemented this in my own code. When I copy and paste this map (above) into my code, and use root and admin_password to login, it seems to work. On 16 Sty, 11:20, larry google groups lawrencecloj...@gmail.com wrote: You're still not using wrap-keyword-params. Thanks. I changed the routes so I now have: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-keyword-params) (wrap-nested-params) (wrap-params))) Then I go here with my browser: localhost:4/login and I copy and paste the username and password from the :users map inside of @interactions. Then I hit the submit button. I get redirected back to the login page. The URL is now: http://localhost:4/login?login_failed=Yusername=lawrence I am trying to think of what I can change so I can see some of the intermediate steps. How do I debug this and find out what the point of failure is? Part of me is thinking that I could clone Friend from github and build my own custom version of it, with debugging code throughout it. But most of me thinks that is stupid, since it works for others, so the problem can not be in Friend, it must be something that I am doing. lawrence On 16 Sty, 09:55, Chas Emerick c...@cemerick.com wrote: On Jan 16, 2013, at 9:07 AM, larry google groups wrote: I define a var with user info like this: (ns kiosks-clojure.fake-data-for-development (:require [cemerick.friend :as friend] (cemerick.friend [workflows :as workflows] [credentials :as creds]))) (def fake-data { :users {:root {:username la...@wonderful.com :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} :jane {:username j...@wonderful.com :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} }) Then in my core namespace, I add this to an atom: (def interactions (atom fd/fake-data)) And then later I fetch this and add this to the authentication of friend: (def app (- app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource public) (wrap-session {:cookie-name discovery-session :cookie-attrs {:max-age 1 }}) (wrap-cookies) (wrap-params))) Any thoughts about where I should try to debug this? You're still not using wrap-keyword-params. - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
Not documented anywhere as far as I know. Also not documented is the fact that destructuring *is* supported. David On Wed, Jan 16, 2013 at 11:46 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: Ouch! Where is that documented? Cannot find it in the defprotocol docstring, not in http://clojure.org/protocols; nor http://clojuredocs.org/clojure_core/clojure.core/defprotocol;. Just a mention by Alan Malloy: https://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w; Thanks, FrankS. On Jan 16, 2013, at 8:14 AM, David Nolen dnolen.li...@gmail.com wrote: They aren't supported in Clojure either. On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts] Is there a CLJS issue# that addresses this? (coudn't fine one… but I've been wrong before) Thanks, FrankS. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Is keyword-params middleware safe?
From what I have read about keywords in Clojure, it does not seem like they are garbage collected. The keyword params middleware seems to convert user input into keywords. Putting two and two together, it seems like you could DoS any server using this middleware by sending large amounts of random strings as params. Eventually exhausting the memory of the JVM. This is a common security vulnerability in the Ruby world with converting user input strings to symbols. Am I missing something here? Thanks, Tony -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
Thanks for the confirmation. I know that destructuring is supported in protocols as I'm using with much pleasure - kind of assumed it would work as it wasn't documented not to work ;-) I'll open up an jira-issue to improve the docs for defprotocol and supply a patch. -Frank. On Jan 16, 2013, at 9:05 AM, David Nolen dnolen.li...@gmail.com wrote: Not documented anywhere as far as I know. Also not documented is the fact that destructuring *is* supported. David On Wed, Jan 16, 2013 at 11:46 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: Ouch! Where is that documented? Cannot find it in the defprotocol docstring, not in http://clojure.org/protocols; nor http://clojuredocs.org/clojure_core/clojure.core/defprotocol;. Just a mention by Alan Malloy: https://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w; Thanks, FrankS. On Jan 16, 2013, at 8:14 AM, David Nolen dnolen.li...@gmail.com wrote: They aren't supported in Clojure either. On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist frank.siebenl...@gmail.com wrote: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts] Is there a CLJS issue# that addresses this? (coudn't fine one… but I've been wrong before) Thanks, FrankS. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- 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
resolving a var when AOT-ed returns nil?
Hi everyone, Does anyone have a clue why this would perfectly run on the repl but will throw NPE when run from the jar or via lein2 run (aot-ed)? ;;there exist global vars of the form 'xxx-NER-tags' ;;first the repl everything works as expected...I get the map back PAnnotator.core= (var-get (resolve (symbol (str (:for-lib opts) -tags {:middle , :closing END, :opening START:, :order [:entity :token]} Where (:for-lib opts) returns custom-NER ... Now when this is aot-ed and run either via the cmd or the jar it fails with NPE at var-get which is called with nil! For some reason resolving a symbol brings back nil and then of course (var-get nil) will throw... any ideas...It's been 2 hours since I did anything useful due to this... btw I am on Clojure 1.5-RC1... as always, thanks a lot... Jim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
On 2013-01-16, at 11:31 AM, Justin Kramer jkkra...@gmail.com wrote: So I went ahead and implemented the first solution I mentioned: the default renderer now groups fields into fieldsets, split by :heading and :submit fields. Each fieldset has a class that you can target with css/js. You can see the result in the demo - http://formative-demo.herokuapp.com/. Heh, that was quick :-) Thanks! I don't suppose you've thought much about this situation: I've got a couple of standard (what I'll call) mixin-forms that have fields and validations that I 'mixin' to a form (once or not at all). They aren't forms on their own, just a bunch of fields and validation rules. For example, I have a standard way of describing an entity (name, title, abbreviated description, full description, and a few other things). It's possible to think of tabs this way as well. Dropdowns in a nav bar is similar too, maybe. It's pretty clear how to get started on implementing something like this, but I'm wondering if you've considered anything in this regard. I've also got groups of several controls that operate together. The bootstrap prepended and appended inputs are simple examples. These are to some degree like the 'mixin' things I mentioned, but there can be more than one of them and they need to be distinguished, and the validation might be different for each or need to be extended for each instance. It looks to be easy enough to do this by adding new field types (extending the render-field and parse-input multimethods). Is that how you'd approach the problem? While I think of it, do you provide a way to validate that a value corresponds to one of the :options? Cheers, Bob Justin On Wednesday, January 16, 2013 8:35:54 AM UTC-5, hutch wrote: This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Wed, Jan 16, 2013 at 7:38 AM, Charlie Griefer charlie.grie...@gmail.com wrote: I'm starting off with 24, so not sure what was default in 23… but C-x C-f in 24 lets you fuzzy match to a particular directory, then type a file name. And if you've typed a new filename and it still tries to match an existing file, use C-f to turn off fuzzy matching temporarily so you can create your new file. Not sure if it's possible via C-x C-f to create a new directory, but new file works pretty well. You can C-x C-f and specify a file in a completely new directory path and it will open the file, and tell you to use M-x make-directory to create the new folders so you can save your file: C-x C-f /path/to/new/file.clj (C-f if needed, RET to confirm, RET to create) M-x make-directory RET RET -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Colin Yates writes: So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout Personally I believe this is an antipattern; IMO you should only see the file structure it is relevant rather than the speedbar style of having it always visible. For navigating larger projects I wrote find-file-in-project for this: https://github.com/technomancy/find-file-in-project You can install it from Marmalade. If it's a project you're less familiar with you can enable full project-relative paths rather than having it simply show you enough to ensure it's unambiguous: (setq ffip-full-paths t) Of course the best solution is simply not to work on large projects and break your codebase up into manageable units where you can keep the project structure in your head, but I understand this isn't always within your control. - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install You're missing out if you're using git without Magit. There's a screencast here that covers the highlights: http://vimeo.com/2871241 It's a bit old but most of it still applies. Every time I have to use git without Magit I am reminded of how spoiled I am; command-line git feels like banging rocks together after using a flamethrower. I'm a big fan of using ERC to connect to the #clojure and #emacs channels on Freenode too; erc-hl-nicks makes that much more pleasant: https://github.com/leathekd/erc-hl-nicks -Phil -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
- is there a decent project explorer. I really miss the tree on the left, editor on the right layout Emacs is my favorite editor. But it is not perfect. My thoughts from my 8 years of using it are: 1. It is very customizable, as it builds on Elisp. After you learned some Elisp programming (should not be a problem if you are doing Clojure), you can almost customize anything, either by setting config variables, adding advices (which can also replace the whole stock function with your own), or writing your own function/packages. The fact that you can easily see the source code and debug it (with edebug), make it easy to understand what is going on and the customization. Everybody can has his own Emacs. 2. The point 1 is also a disadvantage sometimes, because Emacs sometimes requires you to do a lot of customization. Sometimes it is because the package itself is low-quality, sometimes it is because you already have some heavy customization so when a new package is integrated into your Emacs, you need to customize it to fit your own already customized Emacs environment. 3. At this point, because my Emacs is so heavily customized, I can not even use a standard Emacs without my own customization. Because my heavy investment on it, even though I feel quite happy with my Emacs, I also feel like I am somehow trapped into it. Maybe not be a bad thing to be trapped with a good editor, just a reminder what may happen down the road. 4. Emacs is far from being perfect. Project management is a pretty weak spot. I use a combination of Emacs and other tools for my daily work. My thinking is: if you can make 80% of your work time more efficient (which in my case is editing code) by using Emacs, then overall you are more efficient even though you do need spend 20% time on other tools. If you go with an IDE with a lousy editor, you may need to reverse the 80% and 20% time and hence lose overall. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Wed, Jan 16, 2013 at 8:33 AM, Amirouche Boubekki amirouche.boube...@gmail.com wrote: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» M-x speedbar - but that looks very interesting, thank you! It's kinda funky in full-screen mode on Mac OS X but it does satisfy the project explorer itch. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Wed, Jan 16, 2013 at 10:38 AM, Phil Hagelberg p...@hagelb.org wrote: Of course the best solution is simply not to work on large projects and break your codebase up into manageable units where you can keep the project structure in your head, but I understand this isn't always within your control. Our Clojure code is a relatively small portion of a much larger system. We have maybe 200 Clojure files in total in a project with close to 4,000 of our own files - nearly 10,000 if you add in all the frameworks and infrastructure that sits around that source code. Moving more and more to Clojure will definitely reduce that number! :) You're missing out if you're using git without Magit. +1 - magit is awesome sauce! I'm a big fan of using ERC to connect to the #clojure and #emacs Also +1 -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: resolving a var when AOT-ed returns nil?
My first guess would be *ns* is different when you try it at the repl. To verify, try (ns-resolve 'PAnnotator.core (symbol ... On Wed, Jan 16, 2013 at 1:31 PM, Jim - FooBar(); jimpil1...@gmail.comwrote: Hi everyone, Does anyone have a clue why this would perfectly run on the repl but will throw NPE when run from the jar or via lein2 run (aot-ed)? ;;there exist global vars of the form 'xxx-NER-tags' ;;first the repl everything works as expected...I get the map back PAnnotator.core= (var-get (resolve (symbol (str (:for-lib opts) -tags {:middle , :closing END, :opening START:, :order [:entity :token]} Where (:for-lib opts) returns custom-NER ... Now when this is aot-ed and run either via the cmd or the jar it fails with NPE at var-get which is called with nil! For some reason resolving a symbol brings back nil and then of course (var-get nil) will throw... any ideas...It's been 2 hours since I did anything useful due to this... btw I am on Clojure 1.5-RC1... as always, thanks a lot... Jim -- 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+unsubscribe@**googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
ECB is another option. It shows the directory tree, methods/functions, altered files (waiting to be saved) etc. I get the sense that people avoid ECB but I've always used because it had IDE-like functionality that I missed. Configuring it can be a bit difficult but IMO worth it. I preferred it over speedbar. -Levi On Wednesday, January 16, 2013 6:29:36 AM UTC-8, Colin Yates wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
just want to say, that ECB that works with fresh Emacs/CEDET is available from my repo: https://github.com/alexott/ecb On Wed, Jan 16, 2013 at 7:32 PM, localredhead levi.str...@gmail.com wrote: ECB is another option. It shows the directory tree, methods/functions, altered files (waiting to be saved) etc. I get the sense that people avoid ECB but I've always used because it had IDE-like functionality that I missed. Configuring it can be a bit difficult but IMO worth it. I preferred it over speedbar. -Levi On Wednesday, January 16, 2013 6:29:36 AM UTC-8, Colin Yates wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- 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 -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
On Wed, Jan 16, 2013 at 12:53 PM, Frank Siebenlist frank.siebenl...@gmail.com wrote: Thanks for the confirmation. I know that destructuring is supported in protocols as I'm using with much pleasure - kind of assumed it would work as it wasn't documented not to work ;-) I don't believe this is true. You may think it is working, but you probably are just ending up with a function that has a parameter named . https://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w -- 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
[core.logic] Performance question
Hi I have been able to improve the performance of the core.logic based type inference in symbol quite a lot based on David's suggestions https://github.com/timowest/symbol/blob/master/src/symbol/types.clj The biggest change was to use maps for the type environment I wonder if it is possible to optimize / customize how the final map is generated defn new-env [env form] (first (run 1 [q] (fresh [type] (typedo env form type q) q will be a map in this case. I believe it would be ok to just give the map out as it is, and transform lvars that are included on demand. In other words, I have optimized goals for map population and querying and I also want to opimize the final extraction of the type environment. Is this possible? Br, Timo Westkämper -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Error on redirect when attempting unauthorized entry to Friend route
On Jan 16, 2013, at 12:03 PM, larry google groups wrote: I am ignorant about the implications of using :: to namespace vars. The fact that I have ::admin in one namespace: :users {root{:username lawrence :password (creds/hash-bcrypt admin_password) :roles #{::admin} :created_at 2013-01-08 14:00:00 :telephone-numbers [{:country USA :number 434 825 7694} {:country USA :number 732 364 3640}]} jane {:username jane :password (creds/hash-bcrypt user_password) :roles #{::user} :created_at 2013-01-10 16:40:34 :telephone-numbers []}} but then in the core name space I have: (derive ::admin ::user) and: (GET /account request (friend/authorize #{::user} {} (account request))) (GET /admin request (friend/authorize #{::admin} {} (admin request))) I assume I need to change this. What are the implications? These declarations of roles all need to reference the same namespace, yes? ::foo is unrelated to vars; that's just a keyword that happens to have a namespace component of *ns*. If you use `::foo` in namespace A, that is namespaced as `:A/foo`, whereas the same `::foo` in B is equivalent to `:B/foo`. For further understanding, I suggest taking a look at http://clojure.org/multimethods, or the hierarchy/multimethod/namespaced keyword section of your local Clojure book. The roles you use don't all have to be identically namespaced; that would defeat the point of using hierarchies to model relationships among independent sets of roles. However, if you want to refer to a given namespace's ::user, then you do need to refer to it that way, e.g. :ns-alias/user or :full.ns.name/user. Cheers, - Chas -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
Not sure I follow. What is there to further optimize? Is there something that you're trying to do with q that you can clarify further? Thanks, David On Wed, Jan 16, 2013 at 2:19 PM, Timo Westkämper timo.westkam...@mysema.com wrote: Hi I have been able to improve the performance of the core.logic based type inference in symbol quite a lot based on David's suggestions https://github.com/timowest/symbol/blob/master/src/symbol/types.clj The biggest change was to use maps for the type environment I wonder if it is possible to optimize / customize how the final map is generated defn new-env [env form] (first (run 1 [q] (fresh [type] (typedo env form type q) q will be a map in this case. I believe it would be ok to just give the map out as it is, and transform lvars that are included on demand. In other words, I have optimized goals for map population and querying and I also want to opimize the final extraction of the type environment. Is this possible? Br, Timo Westkämper -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
Hi. On Wednesday, January 16, 2013 9:27:37 PM UTC+2, David Nolen wrote: Not sure I follow. What is there to further optimize? Is there something that you're trying to do with q that you can clarify further? The final output is map which includes form / type mappings. And the types can be lvars. I believe in the final output lvars are replaced by _0, _1 etc symbols. So there is some final normalization in the end. Is this correct, or did I misinterpret something? Forgive my vague terminology. Timo Thanks, David On Wed, Jan 16, 2013 at 2:19 PM, Timo Westkämper timo.we...@mysema.comjavascript: wrote: Hi I have been able to improve the performance of the core.logic based type inference in symbol quite a lot based on David's suggestions https://github.com/timowest/symbol/blob/master/src/symbol/types.clj The biggest change was to use maps for the type environment I wonder if it is possible to optimize / customize how the final map is generated defn new-env [env form] (first (run 1 [q] (fresh [type] (typedo env form type q) q will be a map in this case. I believe it would be ok to just give the map out as it is, and transform lvars that are included on demand. In other words, I have optimized goals for map population and querying and I also want to opimize the final extraction of the type environment. Is this possible? Br, Timo Westkämper -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
Ok. But at that point can't you just process the type environment with Clojure code? Or would you like those fresh vars to reify differently, as in you want something other than _N? On Wednesday, January 16, 2013, Timo Westkämper wrote: Hi. On Wednesday, January 16, 2013 9:27:37 PM UTC+2, David Nolen wrote: Not sure I follow. What is there to further optimize? Is there something that you're trying to do with q that you can clarify further? The final output is map which includes form / type mappings. And the types can be lvars. I believe in the final output lvars are replaced by _0, _1 etc symbols. So there is some final normalization in the end. Is this correct, or did I misinterpret something? Forgive my vague terminology. Timo Thanks, David On Wed, Jan 16, 2013 at 2:19 PM, Timo Westkämper timo.we...@mysema.comwrote: Hi I have been able to improve the performance of the core.logic based type inference in symbol quite a lot based on David's suggestions https://github.com/timowest/**symbol/blob/master/src/symbol/**types.cljhttps://github.com/timowest/symbol/blob/master/src/symbol/types.clj The biggest change was to use maps for the type environment I wonder if it is possible to optimize / customize how the final map is generated defn new-env [env form] (first (run 1 [q] (fresh [type] (typedo env form type q) q will be a map in this case. I believe it would be ok to just give the map out as it is, and transform lvars that are included on demand. In other words, I have optimized goals for map population and querying and I also want to opimize the final extraction of the type environment. Is this possible? Br, Timo Westkämper -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@**googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.comjavascript:_e({}, 'cvml', '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 javascript:_e({}, 'cvml', '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 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
lein-daemon 0.5
Hey guys, I've been wrestling with this for a bit. I have [seancorfield/lein-daemon 0.5.0-SNAPSHOT] in my :plugins, which seems to be the latest lein-daemon. 0.4.2 doesn't seem to work with lein2. I'm using Lein 2.0.0-RC2 on Java 1.6.0_24 OpenJDK 64-Bit Server VM When I try lein daemon start :ring, I get: Exception in thread main java.io.FileNotFoundException: Could not locate leiningen/daemon_runtime__init.class or leiningen/daemon_runtime.clj on classpath Any idea what's amiss? What's the current status of lein-daemon on lein2? Cheers Omer -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: lein-daemon 0.5
On Wed, Jan 16, 2013 at 11:57 AM, Omer Iqbal momeriqb...@gmail.com wrote: Hey guys, I've been wrestling with this for a bit. I have [seancorfield/lein-daemon 0.5.0-SNAPSHOT] in my :plugins, which seems to be the latest lein-daemon. 0.4.2 doesn't seem to work with lein2. Well, that's an interim hack I created as part of trying to get lein-daemon doing the right thing on Leiningen 2.0 but it certainly isn't definitive and I know that Allen Rohner has been working on updating the plugin to Do The Right Thing. According to https://github.com/arohner/lein-daemon it looks like he has a version 0.5.0 in the repo that works with Leiningen 2.0 but has not yet released it to Clojars. You might try cloning Allen's official repo and running `lein2 install` and then depending on [lein-deamon 0.5.0] and see how far that gets you... I'm certainly looking forward to getting off my SNAPSHOT hack! -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
Hi. On Wednesday, January 16, 2013 9:56:39 PM UTC+2, David Nolen wrote: Ok. But at that point can't you just process the type environment with Clojure code? But I get them out with replacements, is there any way to avoid this? Or would you like those fresh vars to reify differently, as in you want something other than _N? The types with fresh vars will be function signatures and can be used as such. It will be even easier to use them with lvars than with _* symbols. At least in this case. Br, Timo On Wednesday, January 16, 2013, Timo Westkämper wrote: Hi. On Wednesday, January 16, 2013 9:27:37 PM UTC+2, David Nolen wrote: Not sure I follow. What is there to further optimize? Is there something that you're trying to do with q that you can clarify further? The final output is map which includes form / type mappings. And the types can be lvars. I believe in the final output lvars are replaced by _0, _1 etc symbols. So there is some final normalization in the end. Is this correct, or did I misinterpret something? Forgive my vague terminology. Timo Thanks, David On Wed, Jan 16, 2013 at 2:19 PM, Timo Westkämper timo.we...@mysema.comwrote: Hi I have been able to improve the performance of the core.logic based type inference in symbol quite a lot based on David's suggestions https://github.com/timowest/**symbol/blob/master/src/symbol/**types.cljhttps://github.com/timowest/symbol/blob/master/src/symbol/types.clj The biggest change was to use maps for the type environment I wonder if it is possible to optimize / customize how the final map is generated defn new-env [env form] (first (run 1 [q] (fresh [type] (typedo env form type q) q will be a map in this case. I believe it would be ok to just give the map out as it is, and transform lvars that are included on demand. In other words, I have optimized goals for map population and querying and I also want to opimize the final extraction of the type environment. Is this possible? Br, Timo Westkämper -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@**googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Is keyword-params middleware safe?
Keywords are garbage-collected if no references to them exist. I think this is as of Clojure 1.3, but I'm not sure exactly; perhaps it's always been true. You can see it easily enough at https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Keyword.java#L32 - there's a map from symbols to *references* to keywords, not keywords themselves. Those (weak) references make the keywords themselves eligible for GC. On Wednesday, January 16, 2013 9:51:59 AM UTC-8, Tony Pitluga wrote: From what I have read about keywords in Clojure, it does not seem like they are garbage collected. The keyword params middleware seems to convert user input into keywords. Putting two and two together, it seems like you could DoS any server using this middleware by sending large amounts of random strings as params. Eventually exhausting the memory of the JVM. This is a common security vulnerability in the Ruby world with converting user input strings to symbols. Am I missing something here? Thanks, Tony -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
On Wed, Jan 16, 2013 at 3:13 PM, Timo Westkämper timo.westkam...@mysema.com wrote: Hi. On Wednesday, January 16, 2013 9:56:39 PM UTC+2, David Nolen wrote: Ok. But at that point can't you just process the type environment with Clojure code? But I get them out with replacements, is there any way to avoid this? This is what I was asking. You want them reify differently. In this case you want the lvars left alone and not converted into symbols right? David -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
Hi. On Wednesday, January 16, 2013 10:20:36 PM UTC+2, David Nolen wrote: On Wed, Jan 16, 2013 at 3:13 PM, Timo Westkämper timo.we...@mysema.comjavascript: wrote: Hi. On Wednesday, January 16, 2013 9:56:39 PM UTC+2, David Nolen wrote: Ok. But at that point can't you just process the type environment with Clojure code? But I get them out with replacements, is there any way to avoid this? This is what I was asking. You want them reify differently. In this case you want the lvars left alone and not converted into symbols right? Yes, you are right. At least I want to try what the performance impact would be. Br, Timo David -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
There's a MELPA package (use `M-x package-list-packages') called sr-speedbar that displays the speedbar in the same frame you are already working in. I just stick sr-speedbar-toggle on F11 and call it a day. YMMV. On Wednesday, January 16, 2013 1:45:35 PM UTC-5, Sean Corfield wrote: On Wed, Jan 16, 2013 at 8:33 AM, Amirouche Boubekki amirouche...@gmail.com javascript: wrote: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» M-x speedbar - but that looks very interesting, thank you! It's kinda funky in full-screen mode on Mac OS X but it does satisfy the project explorer itch. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
On Wednesday, January 16, 2013 11:17:41 AM UTC-8, Aaron Cohen wrote: On Wed, Jan 16, 2013 at 12:53 PM, Frank Siebenlist frank.si...@gmail.comjavascript: wrote: Thanks for the confirmation. I know that destructuring is supported in protocols as I'm using with much pleasure - kind of assumed it would work as it wasn't documented not to work ;-) I don't believe this is true. You may think it is working, but you probably are just ending up with a function that has a parameter named . https://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w He said destructuring is working (which is true), not that varargs are working (which would not be true). -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: CLJS: protocol interfaces don't seem to support variable args in the arglist, like [ opts]
Aha, yep, whoops. --Aaron On Wed, Jan 16, 2013 at 3:54 PM, Alan Malloy a...@malloys.org wrote: On Wednesday, January 16, 2013 11:17:41 AM UTC-8, Aaron Cohen wrote: On Wed, Jan 16, 2013 at 12:53 PM, Frank Siebenlist frank.si...@gmail.comwrote: Thanks for the confirmation. I know that destructuring is supported in protocols as I'm using with much pleasure - kind of assumed it would work as it wasn't documented not to work ;-) I don't believe this is true. You may think it is working, but you probably are just ending up with a function that has a parameter named . https://groups.google.com/**forum/?fromgroups=#!topic/** clojure/HyoSBEfEF4whttps://groups.google.com/forum/?fromgroups=#!topic/clojure/HyoSBEfEF4w He said destructuring is working (which is true), not that varargs are working (which would not be true). -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [core.logic] Performance question
You can prevent logic var reification by binding *reify-vars* to false. run is lazy so you need to wrap your run in a doall as well. On Wednesday, January 16, 2013, Timo Westkämper wrote: Hi. On Wednesday, January 16, 2013 10:20:36 PM UTC+2, David Nolen wrote: On Wed, Jan 16, 2013 at 3:13 PM, Timo Westkämper timo.we...@mysema.comwrote: Hi. On Wednesday, January 16, 2013 9:56:39 PM UTC+2, David Nolen wrote: Ok. But at that point can't you just process the type environment with Clojure code? But I get them out with replacements, is there any way to avoid this? This is what I was asking. You want them reify differently. In this case you want the lvars left alone and not converted into symbols right? Yes, you are right. At least I want to try what the performance impact would be. Br, Timo David -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.comjavascript:_e({}, 'cvml', '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 javascript:_e({}, 'cvml', '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 post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: lein-daemon 0.5
I've just released 0.5.0. I had to get a patch into leiningen to make things work in lein2, so you'll need to be using lein-2.0.0-RC1 or later. I've also updated the readme at https://github.com/arohner/lein-daemon Let me know how it goes! Allen -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: resolving a var when AOT-ed returns nil?
On 16/01/13 18:57, Aaron Cohen wrote: My first guess would be *ns* is different when you try it at the repl. Thanks a million Aaron...That was very helpful. I can't believe I wasted 2 more than 2 hours for something like this! Jim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: [ANN] Formative - render, parse, and validate web forms
Bob, 1) Because form specifications are data, it's pretty easy to build one up at runtime. One tool for mixins -- which I just noticed isn't documented in the readme -- is *formative.core/merge-fields*. It makes it easy to tweaks fields, or insert new fields before or after existing fields. 2) Your approach sounds reasonable. Note that you can create your own :type with render-field and still use an existing :datatype; you don't necessarily have to implement parse-input. If the prepending/appending Bootstrap stuff is generalizable, it might be worth adding it to the default renderer. I don't actually use Bootstrap much myself so I'm open to improvements. 3) Right now only by using the :in validator. I've added an issue for that - https://github.com/jkk/formative/issues/6 Let me know how it goes. Feel free to add issues if you find any. Justin On Wednesday, January 16, 2013 1:32:21 PM UTC-5, hutch wrote: On 2013-01-16, at 11:31 AM, Justin Kramer jkkr...@gmail.com javascript: wrote: So I went ahead and implemented the first solution I mentioned: the default renderer now groups fields into fieldsets, split by :heading and :submit fields. Each fieldset has a class that you can target with css/js. You can see the result in the demo - http://formative-demo.herokuapp.com/. Heh, that was quick :-) Thanks! I don't suppose you've thought much about this situation: I've got a couple of standard (what I'll call) mixin-forms that have fields and validations that I 'mixin' to a form (once or not at all). They aren't forms on their own, just a bunch of fields and validation rules. For example, I have a standard way of describing an entity (name, title, abbreviated description, full description, and a few other things). It's possible to think of tabs this way as well. Dropdowns in a nav bar is similar too, maybe. It's pretty clear how to get started on implementing something like this, but I'm wondering if you've considered anything in this regard. I've also got groups of several controls that operate together. The bootstrap prepended and appended inputs are simple examples. These are to some degree like the 'mixin' things I mentioned, but there can be more than one of them and they need to be distinguished, and the validation might be different for each or need to be extended for each instance. It looks to be easy enough to do this by adding new field types (extending the render-field and parse-input multimethods). Is that how you'd approach the problem? While I think of it, do you provide a way to validate that a value corresponds to one of the :options? Cheers, Bob Justin On Wednesday, January 16, 2013 8:35:54 AM UTC-5, hutch wrote: This is *really* interesting! I'll have a look at this more closely over the next couple of days, but, really, the timing could not be better… you might have just tipped a project I'm working on over to Clojure :-) It looks as though you've not put any kind of 'structure' on the fields… they are 'flat'. For example, I don't see fieldsets. One of my projects has its forms in two parts, the input fields which scroll (and have fieldsets) and a second part that consists of things like the submit and cancel buttons. The second part is pulled into a sidebar and fixed on the page (doesn't scroll with the rest of the fields). These forms can be a bit long (but they are a lot more usable than you'd think), so there's also an index in the sidebar that on click moves the scrollable part to make the corresponding fields come into view. In my current project these indexed things aren't fieldsets but they could be. Alternatively, some other kind of grouping structure could be used. Or possibly just a new field type that created an index entry… I'll have a muck about and see what I can come up with. Cheers, Bob Justin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com javascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your
Re: emacs - how to wean me off the family of Java IDEs
Alex - I recognized your name in this thread but couldn't pinpoint how/where. You just reminded me that I'm using your ECB fork. Thanks for pulling that together :) On Wednesday, January 16, 2013 11:14:11 AM UTC-8, Alex Ott wrote: just want to say, that ECB that works with fresh Emacs/CEDET is available from my repo: https://github.com/alexott/ecb On Wed, Jan 16, 2013 at 7:32 PM, localredhead levi@gmail.comjavascript: wrote: ECB is another option. It shows the directory tree, methods/functions, altered files (waiting to be saved) etc. I get the sense that people avoid ECB but I've always used because it had IDE-like functionality that I missed. Configuring it can be a bit difficult but IMO worth it. I preferred it over speedbar. -Levi On Wednesday, January 16, 2013 6:29:36 AM UTC-8, Colin Yates wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
+1 sr-speedbar for NERDTree like functionality. Normal speedbar being a different window always bothered me. sr-speedbar + find-files-in-project is a pretty powerful combo. On Wednesday, January 16, 2013 12:50:59 PM UTC-8, Gary Johnson wrote: There's a MELPA package (use `M-x package-list-packages') called sr-speedbar that displays the speedbar in the same frame you are already working in. I just stick sr-speedbar-toggle on F11 and call it a day. YMMV. On Wednesday, January 16, 2013 1:45:35 PM UTC-5, Sean Corfield wrote: On Wed, Jan 16, 2013 at 8:33 AM, Amirouche Boubekki amirouche...@gmail.com wrote: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» M-x speedbar - but that looks very interesting, thank you! It's kinda funky in full-screen mode on Mac OS X but it does satisfy the project explorer itch. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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
2 issues (with workarounds) running ClojureCLR in ASP.NET
(This is my first post. Please let me know if I've got the protocol wrong.) First, I don't know that anyone else is even trying to run ClojureCLR in ASP.NET. All I've seen is this posthttps://groups.google.com/d/topic/clojure/np3sRVTMrS4/discussionfrom March 2010. It looks like the recommended patch (to RT.cs) was eventually incorporated. But I found that two other modifications were needed to use the current version (1.4): (Note that these only came up when loading Clojure in ASP.NET. I had no problems with console programs.) 1) *Can't locate assemblies in bin*. RT.load only looks for assemblies in AppDomain.CurrentDomain.BaseDirectory. For ASP.NET applications, this is the root of the site, and assemblies are located under bin. I did the following in RT.cs to get around this: @@ -3122,6 +3122,14 @@ namespace clojure.lang bool loaded = false; +// Look for assembly alongside this one +if (assyInfo == null cljInfo == null) { +Uri codeBase; + +if (Uri.TryCreate(Assembly.GetExecutingAssembly().CodeBase, UriKind.Absolute, out codeBase) + codeBase.IsFile) +assyInfo = FindFile(Path.GetDirectoryName(codeBase.LocalPath), assemblyname); +} + if ((assyInfo != null (cljInfo == null || assyInfo.LastWriteTime cljInfo.LastWriteTime))) Assembly location was changed in changeset 02607349 to use a non-probing path (although the paths returned by GetFindFilePaths() wouldn't locate in bin, either). ASP.NET includes bin in the standard probing path, but I think you have to actually load it for that to work. 2) *Static initialization error*. After that, loading the assembly results in the following error System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --- System.TypeInitializationException: The type initializer for '__Init__' threw an exception. --- System.NullReferenceException: Object reference not set to an instance of an object. at clojure.lang.Compiler.FindDuplicateType(String typename) in \Clojure\Clojure\CljCompiler\Compiler.cs:line 866 at clojure.lang.RT.classForName(String p) in \Clojure\Clojure\Lib\RT.cs:line 2720 at __Init__.__static_ctor_helper_constants() at __Init__..cctor() --- End of inner exception stack trace --- at __Init__.Initialize() --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args) at clojure.lang.Compiler.LoadAssembly(FileInfo assyInfo) in \Clojure\Clojure\CljCompiler\Compiler.cs:line 1275 Without getting too deep into the codehttp://clojure.org/patches?responseToken=172419b0a608c93e78a91b42fd5283b5, this is apparently due to the lexical order of the static initializers. It goes away if you move the following line in Compiler.cs to the top of the class: static DictionaryString, Type _duplicateTypeMap = new Dictionarystring, Type(); Presumably, FindDuplicateType is in the call chain of a static initializer that appears above it — at least when running in ASP.NET. So I'm up and running now, but I'd like to help out if possible. Thanks, Gavin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
sr-speedbar seems to depend on the CL package being present? Not sure I want to have that installed... I seem to recall cautions from several folks about that...? Sean On Wed, Jan 16, 2013 at 2:51 PM, localredhead levi.str...@gmail.com wrote: +1 sr-speedbar for NERDTree like functionality. Normal speedbar being a different window always bothered me. sr-speedbar + find-files-in-project is a pretty powerful combo. On Wednesday, January 16, 2013 12:50:59 PM UTC-8, Gary Johnson wrote: There's a MELPA package (use `M-x package-list-packages') called sr-speedbar that displays the speedbar in the same frame you are already working in. I just stick sr-speedbar-toggle on F11 and call it a day. YMMV. On Wednesday, January 16, 2013 1:45:35 PM UTC-5, Sean Corfield wrote: On Wed, Jan 16, 2013 at 8:33 AM, Amirouche Boubekki amirouche...@gmail.com wrote: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» M-x speedbar - but that looks very interesting, thank you! It's kinda funky in full-screen mode on Mac OS X but it does satisfy the project explorer itch. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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 -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
As a long time Eclipse user who dabbles with Clojure using CCW, I'd love to hear your experience of emacs after you get used to it. Would you consider writing up a blog entry? On Wednesday, January 16, 2013 6:29:36 AM UTC-8, Colin Yates wrote: Hi all, After 15 off years of using IDEs I am making the jump into Emacs. I have read http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and https://github.com/technomancy/emacs-starter-kit and I am just at the point where I have stopped yelling at paredit and starting to appreciate its point. My current major stumbling block though is navigating my project. Whilst (I expect) the density and sane namespacing capabilities of Clojure to significantly reduce the number of files, that isn't true of everything. In particular, ExtJS encourages you to follow the one file per class. You don't have to but eventually you will have more than a handful of files regardless. So my questions: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout - is there a decent JS and clojure autocompletion aware plugin - other than paredit, nrepl and clojure-mode (and the excellent coffee-mode for coffeescript), what other plugins should I install Thanks all. Col P.S Please don't turn this into a flame war :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
The traditional project explorer / directory tree I use is dirtree: https://github.com/zkim/emacs-dirtree - with a couple of tweaks I found it to be very useful. It is based on tree-mode. There are other available file browser plugins based on 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
Re: emacs - how to wean me off the family of Java IDEs
On Jan 16, 2013 6:50 PM, Sean Corfield seancorfi...@gmail.com wrote: sr-speedbar seems to depend on the CL package being present? Not sure I want to have that installed... I seem to recall cautions from several folks about that...? cl.el ships with emacs and is widely used. Writing elisp without it is extremely cumbersome as you miss out on reduce, filter, keyword args etc. The only downside is your code can't be included in Emacs itself. You may be thinking of eieio, which is a CLOS clone that introduces a lot of annoying runtime overhead, but that's separate from cl.el. -Phil -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
On Wed, Jan 16, 2013 at 8:34 PM, Phil Hagelberg p...@hagelb.org wrote: cl.el ships with emacs and is widely used. OK, so I shouldn't worry about this warning when I install a package then? Warning: cl package required at runtime I've seen that a couple of times and assumed it meant cl was not installed (and some of the stuff out there on the 'net makes it sound like the cl package causes a lot of problems... good to know that's not the case!). However, when I try to install sr-speedbar I also get this error which prevents installation: Error: Symbol's function definition is void: make-local-hook So I guess there's a pre-req for sr-speedbar? -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
[ANN] Clojure/West 2013 - Portland, OR - Mar 18-20
= Schedule = The Clojure/West 2013 schedule is available! http://clojurewest.org/schedule - Keynotes from Rich Hickey and Matthew Flatt - A deep dive on the new Pedestal project from Relevance - Design talks on domain driven design, abstraction, contracts, and large systems - Intros to macros, data readers, and the new threading macros - A new simulation testing framework from Stuart Halloway - Crazy stuff on concatenative programming, Clojure on Python, Clojure to native code via Scheme, and ClojureScript in ClojureScript - Distributed or large scale programming with Cascalog, PaaS in Clojure, and PuppetDB - A wealth of ideas on ClojureScript, FRP, and interop - Tooling with Emacs and Ritz - And even more - see it all at http://clojurewest.org/sessions Register now! http://regonline.com/clojurewest2013 = miniKanren Confo = The miniKanren Confo will be a 4 hour mini conference on the evening of Tuesday, March 19th from 6-10 pm at the conference hotel. The schedule will feature Dan Friedman and Will Byrd, David Nolen, Nada Amin and more. Check out all the Confo sessions at http://clojurewest.org/sessions#confo. The Confo will cost $50 and can be added to your Clojure/West registration or purchased standalone. = Sponsorship = If your company is interested in sponsoring, the sponsorship prospectus is available at http://clojurewest.org/sponsorship-prospectus. Clojure/West is a great opportunity to get your company's name in front of a great group of crazy smart developers. Email a...@thestrangeloop.com if you're interested in sponsoring. Many thanks to our sponsors so far: Relevance Inc, Factual, 8th Light, and Basho! Alex Miller -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: emacs - how to wean me off the family of Java IDEs
Another thing, that I want to mention, that some work for support of Clojure in CEDET already started: - there is lein project type for EDE, that automatically recognizes lein projects, and uses lein to fetch classpath information, that can be used for name completion (after parser will be ready). You can also compile project from any open file, by using standard commands for compilation. - there is basic parser for Clojure code for CEDET: https://github.com/kototama/clojure-semantic - I hope, that it will be included into standard CEDET distribution... On Wed, Jan 16, 2013 at 11:51 PM, localredhead levi.str...@gmail.com wrote: +1 sr-speedbar for NERDTree like functionality. Normal speedbar being a different window always bothered me. sr-speedbar + find-files-in-project is a pretty powerful combo. On Wednesday, January 16, 2013 12:50:59 PM UTC-8, Gary Johnson wrote: There's a MELPA package (use `M-x package-list-packages') called sr-speedbar that displays the speedbar in the same frame you are already working in. I just stick sr-speedbar-toggle on F11 and call it a day. YMMV. On Wednesday, January 16, 2013 1:45:35 PM UTC-5, Sean Corfield wrote: On Wed, Jan 16, 2013 at 8:33 AM, Amirouche Boubekki amirouche...@gmail.com wrote: - is there a decent project explorer. I really miss the tree on the left, editor on the right layout speedbar: «C-X speedbar» M-x speedbar - but that looks very interesting, thank you! It's kinda funky in full-screen mode on Mac OS X but it does satisfy the project explorer itch. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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 -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- 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