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


[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 Sean Corfield
On Wed, Jan 16, 2013 at 8:34 PM, Phil Hagelberg  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


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


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 
postfrom 
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 
code,
 
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 Dictionary _duplicateTypeMap = new 
Dictionary();

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 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 
>>  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 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 
> > 
> 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.com 
> > 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 
>
>
>
> -- 
> 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: [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 > 
> 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 
> 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@

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: 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: [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 
>> 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 'clojure@googlegroups.com');>
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com  '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: 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  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 
> 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
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 
> 
> > 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: 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 
> > 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: [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 
> 
> > 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: [core.logic] Performance question

2013-01-16 Thread David Nolen
On Wed, Jan 16, 2013 at 3:13 PM, Timo Westkämper  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: 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 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 
>>> 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.com
 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: lein-daemon 0.5

2013-01-16 Thread Sean Corfield
On Wed, Jan 16, 2013 at 11:57 AM, Omer Iqbal  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


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: [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 
>> 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.com
>>> 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 'clojure@googlegroups.com');>
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com  '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: [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 
> 
> > 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.com
>> 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

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


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

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  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: 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: 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(); wrote:

> 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 " ", :opening " :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.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 10:38 AM, Phil Hagelberg  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: 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
 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 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 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 Sean Corfield
On Wed, Jan 16, 2013 at 7:38 AM, Charlie Griefer
 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: [ANN] Formative - render, parse, and validate web forms

2013-01-16 Thread Bob Hutchison

On 2013-01-16, at 11: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/.

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

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 " ", :opening ":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: 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  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 
>  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  wrote:
>> 
>> > They aren't supported in Clojure either.
>> >
>> >
>> > On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist 
>> >  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

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

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 
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 
> 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=Y&username=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  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)))
>
> > > >

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

> They aren't supported in Clojure either.
> 
> 
> On Wed, Jan 16, 2013 at 11:11 AM, Frank Siebenlist 
>  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: 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 
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 
> 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:
>
> >htt

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" 
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-x,
> 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 th

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

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

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

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 
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=Y&username=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  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

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 
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=Y&username=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  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
>
> 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=Y&username=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  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: 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: 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

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

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


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


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  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 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: emacs - how to wean me off the family of Java IDEs

2013-01-16 Thread Feng Shen
Hi:

   I use  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.  
Hereis
 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: 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  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 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: 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 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  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  wrote:
>>
>>
>> On Jan 16, 2013, at 7:29 AM, 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
>>
>>
>> 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,

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

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

>
> On Jan 16, 2013, at 7:29 AM, 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
>
>
> 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 post.
To unsubscribe from 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: [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 
> 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

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


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: 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  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=Y&username=
>
> > 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
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  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=Y&username=
>
> > 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  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
>
> 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  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=Y&username=
>
> > 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 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=Y&username=
> 
> 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: 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  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