Re: is org.clojure/java.jdbc part of the official clojure

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Chas Emerick
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

2013-01-16 Thread Mimmo Cosenza
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

2013-01-16 Thread larry google groups

 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

2013-01-16 Thread Bob Hutchison

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

2013-01-16 Thread larry google groups

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

2013-01-16 Thread larry google groups

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

2013-01-16 Thread Colin Yates
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

2013-01-16 Thread Alex Ott
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

2013-01-16 Thread Charlie Griefer

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

2013-01-16 Thread Justin Kramer
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

2013-01-16 Thread Chas Emerick
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

2013-01-16 Thread Colin Yates
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

2013-01-16 Thread Thomas
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

2013-01-16 Thread Meikel Brandmeyer (kotarak)
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

2013-01-16 Thread Jay Fields
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

2013-01-16 Thread Marko Topolnik
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

2013-01-16 Thread Marko Topolnik


 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

2013-01-16 Thread Charlie Griefer

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

2013-01-16 Thread Feng Shen
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

2013-01-16 Thread Feng Shen
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

2013-01-16 Thread larry google groups
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

2013-01-16 Thread larry google groups
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]

2013-01-16 Thread Frank Siebenlist
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

2013-01-16 Thread kinleyd
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]

2013-01-16 Thread David Nolen
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

2013-01-16 Thread Gary Trakhman
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

2013-01-16 Thread larry google groups

 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

2013-01-16 Thread larry google groups

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

2013-01-16 Thread Stefan Kamphausen
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

2013-01-16 Thread larry google groups
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

2013-01-16 Thread Justin Kramer
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

2013-01-16 Thread Marko Topolnik


 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

2013-01-16 Thread Colin Yates
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

2013-01-16 Thread Amirouche Boubekki
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

2013-01-16 Thread Colin Yates
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

2013-01-16 Thread larry google groups
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]

2013-01-16 Thread Frank Siebenlist
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

2013-01-16 Thread Devin Walters
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

2013-01-16 Thread larry google groups
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]

2013-01-16 Thread David Nolen
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?

2013-01-16 Thread Tony Pitluga
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]

2013-01-16 Thread Frank Siebenlist
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?

2013-01-16 Thread Jim - FooBar();

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

2013-01-16 Thread Bob Hutchison

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

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Phil Hagelberg

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

2013-01-16 Thread Warren Lynn

  - 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

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Sean Corfield
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?

2013-01-16 Thread Aaron Cohen
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

2013-01-16 Thread localredhead
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

2013-01-16 Thread Alex Ott
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]

2013-01-16 Thread Aaron Cohen
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

2013-01-16 Thread Timo Westkämper
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

2013-01-16 Thread Chas Emerick
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

2013-01-16 Thread David Nolen
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

2013-01-16 Thread Timo Westkämper
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

2013-01-16 Thread David Nolen
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

2013-01-16 Thread Omer Iqbal
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

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Timo Westkämper
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?

2013-01-16 Thread Alan Malloy
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

2013-01-16 Thread David Nolen
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

2013-01-16 Thread Timo Westkämper
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

2013-01-16 Thread Gary Johnson
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]

2013-01-16 Thread Alan Malloy
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]

2013-01-16 Thread Aaron Cohen
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

2013-01-16 Thread David Nolen
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

2013-01-16 Thread Allen Rohner
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?

2013-01-16 Thread Jim - FooBar();

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

2013-01-16 Thread Justin Kramer
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

2013-01-16 Thread localredhead
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

2013-01-16 Thread localredhead
+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

2013-01-16 Thread gavin . cannizzaro
(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

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Mark
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

2013-01-16 Thread vemv
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

2013-01-16 Thread Phil Hagelberg
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

2013-01-16 Thread Sean Corfield
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

2013-01-16 Thread Alex Miller
= 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

2013-01-16 Thread Alex Ott
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