clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
Hi Everyone,

I want to let you know about clooj, a small, simple IDE for clojure
that I have been developing (in clojure). It's packaged as a single
jar file (including clojure 1.2), here:
https://github.com/downloads/arthuredelstein/clooj/clooj-0.1.0-standalone.jar
Just download it and double-click. (I use clooj to develop clojure
code every day at work.)

You can look at the source code here:
https://github.com/arthuredelstein/clooj

clooj runs as a standalone application or you can embed it in other
JVM programs. (See the README, below).

This is an alpha release and I plan to continue further development.
Feedback of all kinds and code contributions are much appreciated! :)

Arthur Edelstein
San Francisco

--

clooj, a lightweight IDE for clojure

--- the application
clooj is a small, simple IDE (integrated development environment) for
the clojure programming language. clooj is written entirely in clojure
and uses a swing-based GUI. It is cross-platform (assuming Java 1.6
has been installed on your operating system), and runs as a standalone
application or as a clojure editor embedded in another java or clojure
application. The standalone version (containing the clojure core) is a
single jar file that can be launched by double-clicking its file icon
or by running
java -jar clooj-XXX-STANDALONE.jar from the command line. To embed in
java, call clooj.core.show().

--- the layout
The clooj window contains three columns. The left-most column is a
tree showing clojure projects and the source files they contain. The
middle column is the source file editor. The right column displays
inputs and outputs of clojure REPLs (read-evaluate-print loops).

--- the source editor
The source code editor offers a few simple things to make writing
clojure code easier:

 *  A non-traditional bracket-matching feature highlights in gray
those brackets that contain the innermost form you are currently
editing.
 *  Mismatched or unmatched brackets are highlighted in pink.
 *  TAB indents, and shift+TAB unindents.
 *  Automatically comment-out (and un-comment-out) multiple lines.
 *  When newlines are entered, the next line is automatically
indented.
 *  Press ctrl-ENTER to send either the nearest root form or the
selected text to the REPL.
 *  Source files are continuously saved in the background to prevent
accidental loss of your work in the event of a crash.

--- clojure projects
Each clojure project corresponds to a project directory somewhere in
the file system, containing a src directory. Inside the src directory
is the source code hierarchy, composed of directories and .clj files.
Note this directory structure is completely compatible with the lein
and cake clojure build programs and you are encouraged to use one of
these from the command line in conjunction with the clooj editor.
Clicking different source files in the projects tree will
automatically change the source file currently being edited, as well
as switch the REPL to the appropriate namespace.

--- read-evaluate-print loops
The upper part of clooj's REPL display column shows the REPL history
(inputs and outputs) and the lower part is a text area for inputting
forms into REPL. Each project gets its own REPL environment: when a
project is first selected, a new clojure REPL is created behind the
scenes and becomes the REPL in use. By choosing Restart REPL you
cause a new REPL to be created for the currently selected project and
the old one to be discarded, if possible. If the project directory
contains directories named lib and/or jars and there are any jar
files inside, these jars will be included in the classpath whenever
the project REPL is launched. You can subsequently add further jar
files to the classpath by placing them in the lib or jars
directory and restarting the REPL.

--- more work needed
clooj is a work in progress. Your suggestions, criticisms and code
contributions are appreciated.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Ambrose Bonnaire-Sergeant
This is a first for me, a Clojure IDE that just works.

Big thumbs up!

Ambrose

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

Re: Tutorial about web development with Clojure

2011-07-18 Thread Tarantoga
I have reorganised the code, made some refactoring and added new
functionality. For now, it is not just a blog but a more general
framework which you can reuse for your own webapps. It is here now:
https://github.com/dbushenko/Clojure-WebApp .
The enhancements:
1. Added validations for models.
2. Added URL-encoding functions in Rails-style. So, now if you define
a route like (route GET /post/show/:id post/show), you automatically
get a function 'post-show'. Calling it like this (post-show {:id 10})
will get you an actual route /post/show/10. I really like the
routing mechanisms in RoR and missed this functionality in clojure.
I will evolve the Clojure WebApp and will appreciate any help from all
of you. The feature requests are also welcome.
I think, that the main drawback of all the existing solutions in
clojure -- is lack of documentation. I plan to write a really detailed
guide of how to develop web applications with Clojure-WebApp in a
couple of weeks.
Again, don't hesitate to improve my code / documentation.

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


Aw: clooj, a lightweight IDE for clojure

2011-07-18 Thread finbeu
Arthur hi,

that's cool! Just works out of the box! I will recommend it to everyone that 
wants to try clojure.

- Finn


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Tarantoga
Yep, this is great! How about syntax highlighting?

On Jul 18, 10:03 am, Arthur Edelstein arthuredelst...@gmail.com
wrote:
 Hi Everyone,

 I want to let you know about clooj, a small, simple IDE for clojure
 that I have been developing (in clojure). It's packaged as a single
 jar file (including clojure 1.2), 
 here:https://github.com/downloads/arthuredelstein/clooj/clooj-0.1.0-standa...
 Just download it and double-click. (I use clooj to develop clojure
 code every day at work.)

 You can look at the source code here:https://github.com/arthuredelstein/clooj

 clooj runs as a standalone application or you can embed it in other
 JVM programs. (See the README, below).

 This is an alpha release and I plan to continue further development.
 Feedback of all kinds and code contributions are much appreciated! :)

 Arthur Edelstein
 San Francisco

 --

 clooj, a lightweight IDE for clojure

 --- the application
 clooj is a small, simple IDE (integrated development environment) for
 the clojure programming language. clooj is written entirely in clojure
 and uses a swing-based GUI. It is cross-platform (assuming Java 1.6
 has been installed on your operating system), and runs as a standalone
 application or as a clojure editor embedded in another java or clojure
 application. The standalone version (containing the clojure core) is a
 single jar file that can be launched by double-clicking its file icon
 or by running
 java -jar clooj-XXX-STANDALONE.jar from the command line. To embed in
 java, call clooj.core.show().

 --- the layout
 The clooj window contains three columns. The left-most column is a
 tree showing clojure projects and the source files they contain. The
 middle column is the source file editor. The right column displays
 inputs and outputs of clojure REPLs (read-evaluate-print loops).

 --- the source editor
 The source code editor offers a few simple things to make writing
 clojure code easier:

  *  A non-traditional bracket-matching feature highlights in gray
 those brackets that contain the innermost form you are currently
 editing.
  *  Mismatched or unmatched brackets are highlighted in pink.
  *  TAB indents, and shift+TAB unindents.
  *  Automatically comment-out (and un-comment-out) multiple lines.
  *  When newlines are entered, the next line is automatically
 indented.
  *  Press ctrl-ENTER to send either the nearest root form or the
 selected text to the REPL.
  *  Source files are continuously saved in the background to prevent
 accidental loss of your work in the event of a crash.

 --- clojure projects
 Each clojure project corresponds to a project directory somewhere in
 the file system, containing a src directory. Inside the src directory
 is the source code hierarchy, composed of directories and .clj files.
 Note this directory structure is completely compatible with the lein
 and cake clojure build programs and you are encouraged to use one of
 these from the command line in conjunction with the clooj editor.
 Clicking different source files in the projects tree will
 automatically change the source file currently being edited, as well
 as switch the REPL to the appropriate namespace.

 --- read-evaluate-print loops
 The upper part of clooj's REPL display column shows the REPL history
 (inputs and outputs) and the lower part is a text area for inputting
 forms into REPL. Each project gets its own REPL environment: when a
 project is first selected, a new clojure REPL is created behind the
 scenes and becomes the REPL in use. By choosing Restart REPL you
 cause a new REPL to be created for the currently selected project and
 the old one to be discarded, if possible. If the project directory
 contains directories named lib and/or jars and there are any jar
 files inside, these jars will be included in the classpath whenever
 the project REPL is launched. You can subsequently add further jar
 files to the classpath by placing them in the lib or jars
 directory and restarting the REPL.

 --- more work needed
 clooj is a work in progress. Your suggestions, criticisms and code
 contributions are appreciated.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Shantanu Kumar
This is so cool. Any chance you can use Laurent Petit's Paredit?
https://github.com/laurentpetit/paredit.clj

Any roadmap for features? Syntax highlight, autocomplete etc?

Regards,
Shantanu

On Jul 18, 12:03 pm, Arthur Edelstein arthuredelst...@gmail.com
wrote:
 Hi Everyone,

 I want to let you know about clooj, a small, simple IDE for clojure
 that I have been developing (in clojure). It's packaged as a single
 jar file (including clojure 1.2), 
 here:https://github.com/downloads/arthuredelstein/clooj/clooj-0.1.0-standa...
 Just download it and double-click. (I use clooj to develop clojure
 code every day at work.)

 You can look at the source code here:https://github.com/arthuredelstein/clooj

 clooj runs as a standalone application or you can embed it in other
 JVM programs. (See the README, below).

 This is an alpha release and I plan to continue further development.
 Feedback of all kinds and code contributions are much appreciated! :)

 Arthur Edelstein
 San Francisco

 --

 clooj, a lightweight IDE for clojure

 --- the application
 clooj is a small, simple IDE (integrated development environment) for
 the clojure programming language. clooj is written entirely in clojure
 and uses a swing-based GUI. It is cross-platform (assuming Java 1.6
 has been installed on your operating system), and runs as a standalone
 application or as a clojure editor embedded in another java or clojure
 application. The standalone version (containing the clojure core) is a
 single jar file that can be launched by double-clicking its file icon
 or by running
 java -jar clooj-XXX-STANDALONE.jar from the command line. To embed in
 java, call clooj.core.show().

 --- the layout
 The clooj window contains three columns. The left-most column is a
 tree showing clojure projects and the source files they contain. The
 middle column is the source file editor. The right column displays
 inputs and outputs of clojure REPLs (read-evaluate-print loops).

 --- the source editor
 The source code editor offers a few simple things to make writing
 clojure code easier:

  *  A non-traditional bracket-matching feature highlights in gray
 those brackets that contain the innermost form you are currently
 editing.
  *  Mismatched or unmatched brackets are highlighted in pink.
  *  TAB indents, and shift+TAB unindents.
  *  Automatically comment-out (and un-comment-out) multiple lines.
  *  When newlines are entered, the next line is automatically
 indented.
  *  Press ctrl-ENTER to send either the nearest root form or the
 selected text to the REPL.
  *  Source files are continuously saved in the background to prevent
 accidental loss of your work in the event of a crash.

 --- clojure projects
 Each clojure project corresponds to a project directory somewhere in
 the file system, containing a src directory. Inside the src directory
 is the source code hierarchy, composed of directories and .clj files.
 Note this directory structure is completely compatible with the lein
 and cake clojure build programs and you are encouraged to use one of
 these from the command line in conjunction with the clooj editor.
 Clicking different source files in the projects tree will
 automatically change the source file currently being edited, as well
 as switch the REPL to the appropriate namespace.

 --- read-evaluate-print loops
 The upper part of clooj's REPL display column shows the REPL history
 (inputs and outputs) and the lower part is a text area for inputting
 forms into REPL. Each project gets its own REPL environment: when a
 project is first selected, a new clojure REPL is created behind the
 scenes and becomes the REPL in use. By choosing Restart REPL you
 cause a new REPL to be created for the currently selected project and
 the old one to be discarded, if possible. If the project directory
 contains directories named lib and/or jars and there are any jar
 files inside, these jars will be included in the classpath whenever
 the project REPL is launched. You can subsequently add further jar
 files to the classpath by placing them in the lib or jars
 directory and restarting the REPL.

 --- more work needed
 clooj is a work in progress. Your suggestions, criticisms and code
 contributions are appreciated.

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

2011-07-18 Thread Ben Smith-Mannschott
Clojure does not allow cyclic dependencies between namespaces.

Java does allow cyclic dependencies between classes.

I'm not familiar with appengine-clj. Are you certain that
appengine.datastore is Clojure code, not Java code? If it's Java you
should be using import.

// Ben

On Sat, Jul 16, 2011 at 18:14, Razvan Rotaru razvan.rot...@gmail.com wrote:
 Hi,

 I'm trying to use r0man / appengine-clj, and when :use-ing the
 datastore namespace I get a cyclic load dependency. Doesn't clojure
 allow such cyclic references?


 (use 'appengine.datastore)
 Cyclic load dependency: [ /appengine/datastore/entities ]-/appengine/
 datastore/query-[ /appengine/datastore/entities ]-/appengine/
 datastore
  [Thrown class java.lang.Exception]

 Restarts:
  0: [QUIT] Quit to the SLIME top level

 Backtrace:
  0: clojure.core$check_cyclic_dependency.invoke(core.clj:4817)
  1: clojure.core$load.doInvoke(core.clj:4912)
  2: clojure.lang.RestFn.invoke(RestFn.java:408)
  3: clojure.core$load_one.invoke(core.clj:4729)
  4: clojure.core$load_lib.doInvoke(core.clj:4766)
  5: clojure.lang.RestFn.applyTo(RestFn.java:142)
  6: clojure.core$apply.invoke(core.clj:542)
  7: clojure.core$load_libs.doInvoke(core.clj:4800)
  8: clojure.lang.RestFn.applyTo(RestFn.java:137)
  9: clojure.core$apply.invoke(core.clj:544)



 Cheers,
 Razvan

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Lee Spector

I am *very* excited to see this project, which I think could be a great 
addition to the Clojure world, particularly for newcomers and those of us who 
teach them.

First critical reactions:

- I put a high premium on auto-indendentation, and clooj seems to get this 
right when hitting return after typing some code (or in the middle of code) -- 
this is great and missing in some other Clojure editing environments. A big 
plus. But if one screws up the indentation I don't see how to say indent this 
properly again, in the context of what comes above it. Tab moves it to the 
right, shift-tab moves it to the left, but is there a way to say move it to 
the correct place? Actually, yes: one can do this by deleting the previous 
newline and hitting return again, but that's awkward, particularly if you want 
to go through a block of code and see if the structure is what you thought it 
was... you'd have to delete and re-enter each newline.

- I just created a new project and I get a user prompt in the REPL pane but I 
can't type anything into that... so I can't actually try it... I click in there 
but I don't get a cursor there, and typing does nothing. In case it matters I'm 
running Mac OS 10.6.8 and java -version says:

java version 1.6.0_26
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)

- How is one supposed to create a new .clj file and add it to the project? I 
see that you say that some stuff is to be done with lein or cake at the command 
line... and I guess some stuff like creating new files could be done with other 
OS-specific tools, and all of this is fine with me, but it's not clear to me 
what should be done how. I'm not suggesting that any more needs to be done 
within clooj itself -- just that it should be more clear what should be done 
where. I think that a hello world example that walks one through the process 
of creating a new project, adding a new, empty src file, adding code to that 
file, and running the code, would clear this up. Maybe also a second simple 
example that also adds one library... or something like that.

- It would be nice if all of the basic editor functionality was discoverable 
via menu items. For example the indentation commands are mentioned in the 
instructions in the posting to the list, but since they're not in the menus a 
user may not realize they're there. (These in particular could be under the 
Source menu, but as a general rule it would be nice if all major features are 
*somewhere* in the interface.)

- Longer term I agree with Shantanu that things like syntax highlighting and 
autocompletion would be great, and actually I'd put my all-time favorite 
feature even before those: arglist-on-space. I'm a total arglist-on-space 
fanatic and evangelist -- I think it's the greatest idea ever for 
supporting/speeding code editing and that it should be in every Lisp editor. 
AFAIK it is currently available for Clojure only in emacs and MCLIDE. If I were 
going to add one editor feature beyond robust auto-indenting it would be 
arglist-on-space.

Again, I love this project! I hope that the comments above are taken as 
constructive criticism.

 -Lee




On Jul 18, 2011, at 3:03 AM, Arthur Edelstein wrote:

 Hi Everyone,
 
 I want to let you know about clooj, a small, simple IDE for clojure
 that I have been developing (in clojure). It's packaged as a single
 jar file (including clojure 1.2), here:
 https://github.com/downloads/arthuredelstein/clooj/clooj-0.1.0-standalone.jar
 Just download it and double-click. (I use clooj to develop clojure
 code every day at work.)
 
 You can look at the source code here:
 https://github.com/arthuredelstein/clooj
 
 clooj runs as a standalone application or you can embed it in other
 JVM programs. (See the README, below).
 
 This is an alpha release and I plan to continue further development.
 Feedback of all kinds and code contributions are much appreciated! :)
 
 Arthur Edelstein
 San Francisco
 
 --
 
 clooj, a lightweight IDE for clojure
 
 --- the application
 clooj is a small, simple IDE (integrated development environment) for
 the clojure programming language. clooj is written entirely in clojure
 and uses a swing-based GUI. It is cross-platform (assuming Java 1.6
 has been installed on your operating system), and runs as a standalone
 application or as a clojure editor embedded in another java or clojure
 application. The standalone version (containing the clojure core) is a
 single jar file that can be launched by double-clicking its file icon
 or by running
 java -jar clooj-XXX-STANDALONE.jar from the command line. To embed in
 java, call clooj.core.show().
 
 --- the layout
 The clooj window contains three columns. The left-most column is a
 tree showing clojure projects and the source files they contain. The
 middle column is the source file editor. The right column displays
 inputs and outputs of clojure REPLs (read-evaluate-print 

Re: clooj, a lightweight IDE for clojure

2011-07-18 Thread Adam Burry
 - I just created a new project and I get a user prompt in the REPL pane but I 
 can't type anything into that... so I can't actually try it... I click in 
 there but I don't get a cursor there, and typing does nothing. In case it 
 matters I'm running Mac OS 10.6.8 and java -version says:

Re-read the OP. The right hand column has two parts: the top part
shows REPL evaluation, the bottom part is your REPL input window.

Adam

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Tamreen Khan
It's a little confusing to see what's normally the text for the prompt,
user=, be in the window that shows the result. Why can't both the prompt
and the results be shown in the same area?

On Mon, Jul 18, 2011 at 8:32 AM, Adam Burry abu...@gmail.com wrote:

  - I just created a new project and I get a user prompt in the REPL pane
 but I can't type anything into that... so I can't actually try it... I click
 in there but I don't get a cursor there, and typing does nothing. In case it
 matters I'm running Mac OS 10.6.8 and java -version says:

 Re-read the OP. The right hand column has two parts: the top part
 shows REPL evaluation, the bottom part is your REPL input window.

 Adam

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

2011-07-18 Thread r0man
There was indeed a cyclic dependency, that didn't show up with clojure
1.2.0.
I fixed it and pushed an updated version using clojure 1.2.1 to
clojars.

Roman

On Jul 18, 12:07 pm, Ben Smith-Mannschott bsmith.o...@gmail.com
wrote:
 Clojure does not allow cyclic dependencies between namespaces.

 Java does allow cyclic dependencies between classes.

 I'm not familiar with appengine-clj. Are you certain that
 appengine.datastore is Clojure code, not Java code? If it's Java you
 should be using import.

 // Ben







 On Sat, Jul 16, 2011 at 18:14, Razvan Rotaru razvan.rot...@gmail.com wrote:
  Hi,

  I'm trying to use r0man / appengine-clj, and when :use-ing the
  datastore namespace I get a cyclic load dependency. Doesn't clojure
  allow such cyclic references?

  (use 'appengine.datastore)
  Cyclic load dependency: [ /appengine/datastore/entities ]-/appengine/
  datastore/query-[ /appengine/datastore/entities ]-/appengine/
  datastore
   [Thrown class java.lang.Exception]

  Restarts:
   0: [QUIT] Quit to the SLIME top level

  Backtrace:
   0: clojure.core$check_cyclic_dependency.invoke(core.clj:4817)
   1: clojure.core$load.doInvoke(core.clj:4912)
   2: clojure.lang.RestFn.invoke(RestFn.java:408)
   3: clojure.core$load_one.invoke(core.clj:4729)
   4: clojure.core$load_lib.doInvoke(core.clj:4766)
   5: clojure.lang.RestFn.applyTo(RestFn.java:142)
   6: clojure.core$apply.invoke(core.clj:542)
   7: clojure.core$load_libs.doInvoke(core.clj:4800)
   8: clojure.lang.RestFn.applyTo(RestFn.java:137)
   9: clojure.core$apply.invoke(core.clj:544)

  Cheers,
  Razvan

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


use of subseq on a vector which I know is already sorted

2011-07-18 Thread Sunil S Nandihalli
Hi everybody,

I have a situation where I know that the sequence I have at hand is sorted
but does not implement the Sorted interface. How can I use subseq for
example on a vector without actually creating a sorted-set out of it which I
think may be wasteful.. Am I mis-informed about creation of sorted-set being
wastefull? If I am right in assuming what I said above, how can efficiently
make something like following work? can I like just implement Sorted for
Vector in the namespace I am working in?

(subseq [1 2 3 4]  3)

thanks,
Sunil.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
 Yep, this is great! How about syntax highlighting?

Thanks, good suggestion! I'm not a huge fan of most syntax
highlighting -- what do you think would be helpful but unobtrusive?

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein


On Jul 18, 2:31 am, Shantanu Kumar kumar.shant...@gmail.com wrote:
 This is so cool. Any chance you can use Laurent Petit's 
 Paredit?https://github.com/laurentpetit/paredit.clj

Thanks, that's a very interesting idea. Perhaps, if Laurent doesn't
mind! :)

 Any roadmap for features? Syntax highlight, autocomplete etc?

I'm adding Issues to the github project now.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
Hi Florian,

 but somehow i can't save ...
 It always says Oops Unable to save file

Sorry, you need to choose File  New first, or open a project with
existing source files. I will try to fix this issue soon.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: FleetDB or other NoSQL store for Clojure?

2011-07-18 Thread Robert Lally
I've been using OrientDB [ http://www.orientechnologies.com/ ] recently, and
although it isn't quite ready for primetime, it has a structure that would
map quite well onto Clojure.

R,

On 15 July 2011 08:17, Marko Kocić marko.ko...@gmail.com wrote:

 Hi all,
 I would like to try out some of those no-sql datastores for my next
 project, and need an advice which one, since I never used the one before.
 It needs to fulfill at least some of those following criteria, in order of
 importance:

 - is nicelly supported by Clojure (by this I mean idiomatic clojure
 driver, not java plain java wrapper)
 - it should be schemaless
 - it should support transactions
 - it's good if it can be used as embedded db
 - it doesn't have to support large datasets (in-memmory is ok)
 - it has to run on both Windows and Linux

 My first choice would be FleetDB, since it was written in Clojure and
 examples look nice, but I'm not sure if it is abandonware or not, and I
 havent heard that people are actually using it in production.

 What are my other options?

 Regards,
 Marko

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




-- 
Blog : http://robertlally.com

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

Construct map without associng nil values..

2011-07-18 Thread Andreas Liljeqvist
Got something like this:

(for [e entries]
  {:filename (.getName e)
   :comment (.getComment e)
   :manymorekeys xxx})

Quite often I get nil as comments. Problem is that I don't want any keys
added for comment if there are none.

I could wrap the whole thing in a

(defn remove-nil-comment [{comment :comment :as m}]
  (if comment
m
(dissoc m :comment)))

(for [e entries]
  (remove-nil-comment {:filename (.getName e)
   :comment (.getComment e)
   :manymorekeys xxx}))

But yeah...

Thanks

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

Excellent intro to core.logic

2011-07-18 Thread David Nolen
I highly recommend checking this out if you're curious about core.logic,
https://github.com/frenchy64/Logic-Starter/wiki

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: Construct map without associng nil values..

2011-07-18 Thread Meikel Brandmeyer
Hi,

Am Montag, 18. Juli 2011 16:48:05 UTC+2 schrieb bonega:

 Got something like this:

 (for [e entries]
   {:filename (.getName e)
:comment (.getComment e)
:manymorekeys xxx})

 Quite often I get nil as comments. Problem is that I don't want any keys 
 added for comment if there are none.


You could do something like this:

(for [e entries]
  (merge {:filename (.getName e) :manymorekeys :xxx}
  (when-let [comments (.getComments e)] {:comments comments})))

Sincerely
Meikel
 

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

Re: use of subseq on a vector which I know is already sorted

2011-07-18 Thread Benny Tsai
Hi Sunil,

If you know that the input sequence is already sorted, then you can use 
take-while and drop-while in lieu of subseq.

(subseq (sorted-set 1 2 3 4)  3) - (take-while #( % 3) [1 2 3 4])
(subseq (sorted-set 1 2 3 4) = 3) - (take-while #(= % 3) [1 2 3 4])
(subseq (sorted-set 1 2 3 4)  3) - (drop-while #(= % 3) [1 2 3 4])
(subseq (sorted-set 1 2 3 4) = 3) - (drop-while #( % 3) [1 2 3 4])

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein

Hi Lee,

  Tab moves it to the right, shift-tab moves it to the left, but is there a 
 way to say move it to the correct place

A very good point -- added to the clooj github issues.

 - I just created a new project and I get a user prompt in the REPL pane but I 
 can't type anything into that... so I can't actually try it... I click in 
 there but I don't get a cursor there, and typing does nothing. In case it 
 matters I'm running Mac OS 10.6.8 and java -version says:

The REPL input is the lower right pane. I think I should add some
labels on each pane.

 - How is one supposed to create a new .clj file and add it to the project?

Use the File  New menu.

 I think that a hello world example that walks one through the process of 
 creating a new project, adding a new, empty src file, adding code to that 
 file, and running the code, would clear this up. Maybe also a second simple 
 example that also adds one library... or something like that.

That's a good suggestion. Overall I'd like to make the user interface
more self-explanatory -- any ideas on how to do this would be very
helpful.

 - It would be nice if all of the basic editor functionality was discoverable 
 via menu items. For example the indentation commands are mentioned in the 
 instructions in the posting to the list, but since they're not in the menus a 
 user may not realize they're there. (These in particular could be under the 
 Source menu, but as a general rule it would be nice if all major features are 
 *somewhere* in the interface.)

A good point. Added to the github issues.

 - Longer term I agree with Shantanu that things like syntax highlighting and 
 autocompletion would be great, and actually I'd put my all-time favorite 
 feature even before those: arglist-on-space. I'm a total arglist-on-space 
 fanatic and evangelist -- I think it's the greatest idea ever for 
 supporting/speeding code editing and that it should be in every Lisp editor. 
 AFAIK it is currently available for Clojure only in emacs and MCLIDE. If I 
 were going to add one editor feature beyond robust auto-indenting it would be 
 arglist-on-space.

Another excellent suggestion (added to issues). I think you're right
-- arglist-on-space is very cool. Where do you think the arglist
should appear? I think there's a tension between wanting to display it
near where the user is typing and the need to not obscure nearby code.

 Again, I love this project! I hope that the comments above are taken as 
 constructive criticism.

Absolutely! Thank you very much for taking the time to give me so much
helpful feedback.

Best regards,
Arthur

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: use of subseq on a vector which I know is already sorted

2011-07-18 Thread Meikel Brandmeyer
Hi,

Am Montag, 18. Juli 2011 16:59:40 UTC+2 schrieb Benny Tsai:

If you know that the input sequence is already sorted, then you can use 
 take-while and drop-while in lieu of subseq.

 (subseq (sorted-set 1 2 3 4)  3) - (take-while #( % 3) [1 2 3 4])
 (subseq (sorted-set 1 2 3 4) = 3) - (take-while #(= % 3) [1 2 3 4])
 (subseq (sorted-set 1 2 3 4)  3) - (drop-while #(= % 3) [1 2 3 4])
 (subseq (sorted-set 1 2 3 4) = 3) - (drop-while #( % 3) [1 2 3 4])


However with a different performance promise, I believe. So this is maybe 
the answer to OP's question: you'll have to pay the price. On data structure 
creation or on member access. However you might get away with some saving in 
case you know that your subsequence is short (in case of a two end limited 
subsequence) and always near the vector head.

Sincerely
Meikel

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

Re: clooj, a lightweight IDE for clojure

2011-07-18 Thread Shantanu Kumar


On Jul 18, 7:24 pm, Arthur Edelstein arthuredelst...@gmail.com
wrote:
 On Jul 18, 2:31 am, Shantanu Kumar kumar.shant...@gmail.com wrote:

  This is so cool. Any chance you can use Laurent Petit's 
  Paredit?https://github.com/laurentpetit/paredit.clj

 Thanks, that's a very interesting idea. Perhaps, if Laurent doesn't
 mind! :)

Laurent has already suggested someone in the past to use Paredit, so I
don't think he would mind. :-)

Another kick-ass feature would be first-class integration with
Leiningen (and likewise, with Cake) - you can discover the list of
commands using the lein command without any args. Once you discover
the command names you can display it in a menu. When a user clicks one
of those menu items, pop a textbox for other arguments and execute the
entire command on pressing Enter.

You may also consider building a plugin architecture for Clooj. For
example, Leiningen support can be built by writing a plugin.

Regards,
Shantanu

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


following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Stuart Halloway
Several people have asked about access to Rich's upcoming talk this Wednesday 
night [1]. In order to make information available for those who are not present 
in NYC, we are planning to do the following:

During the talk:

* We will be live streaming the talk at [2]. This is our first time live 
streaming from the facility, so cross your fingers.

* We will be covering the talk live in the Clojure IRC.

After the talk:

* Video will be posted online. Once the editing is complete, I will post a link 
here with details.

* The slides will be posted online. 

Cheers,
Stu

[1] http://www.meetup.com/Clojure-NYC/events/16166953/
[2] http://www.ustream.tv/channel/clojurenyc

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Lee Spector

On Jul 18, 2011, at 11:10 AM, Arthur Edelstein wrote:
 
 The REPL input is the lower right pane. I think I should add some
 labels on each pane.

Ah yes -- now I see it and that works fine. Thanks also to Adam Burry for 
pointing this out. As Tamreen Khan noted it's a little confusing that there's a 
prompt in the upper pane while input can only be given in the lower pane... I 
agree with Tamreen that the ideal thing would be for both to be in the same 
pane, so it's a normal REPL that takes input and also gives output, but if 
that's very difficult for some reason then I agree that pane labels would help.

 - How is one supposed to create a new .clj file and add it to the project?
 
 Use the File  New menu.

For some reason I was missing this and only seeing the menu item for a new 
project... but now I think this was just me, and that I jumped too quickly to 
the conclusion that new files were to be created outside of clooj. Now I see it 
and it works very nicely. I do think that a hello world walkthrough doc would 
prevent others from missing this and generally help to orient newcomers to the 
environment.

 Another excellent suggestion (added to issues). I think you're right
 -- arglist-on-space is very cool. Where do you think the arglist
 should appear? I think there's a tension between wanting to display it
 near where the user is typing and the need to not obscure nearby code.

In emacs and MCLIDE (and as far as I recall in other environments that I've 
used, mostly for Common Lisp) it appears in a mini buffer below the editing 
pane. I think that's a good solution, but anywhere else within view but out of 
the way would suffice. I wouldn't want to put this within the edit buffer 
itself, since it might then get in the way and there'd be a much higher premium 
on getting the information and the way that it's displayed exactly right. Part 
of the beauty of arglist-on-space is that it's often extremely helpful -- and I 
tend to rely on it rather than my memory if it's available -- but there are no 
bad consequences if it's not exactly perfect (e.g. because of complex argument 
lists or special cases that make it hard to display the right info).

 -Lee

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: use of subseq on a vector which I know is already sorted

2011-07-18 Thread Benny Tsai
On Monday, July 18, 2011 9:12:05 AM UTC-6, Meikel Brandmeyer wrote:

 Hi,

 *snip*

 However with a different performance promise, I believe.


Hi Meikel,

I took a look at the source for subseq, and you're right.  To be specific, 
when the comparison operation is either  or =, seqFrom allows subseq to 
get to the elements of interest in O(log n) steps, whereas drop-while needs 
O(n) steps to do the same.

On the other hand, it looks like when the elements of interest are at the 
beginning of the collection (using  or = as comparison operation), subseq 
and take-while should perform the same, since subseq simply uses take-while 
to iterate through the elements of interest in this case.

To make a long story short, when using  or =, use subseq instead of 
drop-while, especially if the elements of interest are deep in the 
collection or the same collection will be accessed multiple times.  When 
using  or =, subseq and take-while should have the same performance.  Does 
that sound about right?

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Baishampayan Ghose
Yoohoo!  Thanks a bunch, Stu  co.

Regards,
BG

---
Sent from phone. Please excuse brevity.
On Jul 18, 2011 9:28 PM, Stuart Halloway stuart.hallo...@gmail.com
wrote:
 Several people have asked about access to Rich's upcoming talk this
Wednesday night [1]. In order to make information available for those who
are not present in NYC, we are planning to do the following:

 During the talk:

 * We will be live streaming the talk at [2]. This is our first time live
streaming from the facility, so cross your fingers.

 * We will be covering the talk live in the Clojure IRC.

 After the talk:

 * Video will be posted online. Once the editing is complete, I will post a
link here with details.

 * The slides will be posted online.

 Cheers,
 Stu

 [1] http://www.meetup.com/Clojure-NYC/events/16166953/
 [2] http://www.ustream.tv/channel/clojurenyc

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
your first post.
 To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
On Jul 18, 3:16 am, Florian Over florian.o...@googlemail.com wrote:
 Hmm, good idea
 but somehow i can't save ...
 It always says Oops Unable to save file
 When i'm at home i will give it another try.

Hi Florian,

There are two requirements:
1. You need to have a project open, in a writable directory.
2. You need to create a .clj file in your project, by choosing File 
New. Sorry this isn't obvious -- I now realize this weirdness is the
first issue I need to fix.

Thanks for the feedback!

Best regards,
Arthur

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
Hi Tamreen,

On Jul 18, 5:38 am, Tamreen Khan histor...@gmail.com wrote:
 It's a little confusing to see what's normally the text for the prompt,
 user=, be in the window that shows the result. Why can't both the prompt
 and the results be shown in the same area?

That is a good point. I wanted a multi-line editor for the REPL input,
so I put the REPL input and output in separate panes. But I agree it
would be nice to have the prompt in the REPL input pane. I'm adding
this suggestion to the issues. Thanks for the feedback!

Best regards,
Arthur

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
  The REPL input is the lower right pane. I think I should add some
  labels on each pane.

 Ah yes -- now I see it and that works fine. Thanks also to Adam Burry for 
 pointing this out. As Tamreen Khan noted it's a little confusing that there's 
 a prompt in the upper pane while input can only be given in the lower pane... 
 I agree with Tamreen that the ideal thing would be for both to be in the same 
 pane, so it's a normal REPL that takes input and also gives output, but if 
 that's very difficult for some reason then I agree that pane labels would 
 help.

I see what you're saying. I made the REPL input and output separate to
make an easy multiline editor for the input. But I do agree it would
be nice to show the prompt in the REPL input. If I combine the panes,
I'm concerned that it will be tricky for users to see where the cursor
can go.

 For some reason I was missing this and only seeing the menu item for a new 
 project... but now I think this was just me, and that I jumped too quickly to 
 the conclusion that new files were to be created outside of clooj. Now I see 
 it and it works very nicely. I do think that a hello world walkthrough doc 
 would prevent others from missing this and generally help to orient newcomers 
 to the environment.

My next task is to make this requirement more obvious -- it's a very
awkward behavior right now.

 In emacs and MCLIDE (and as far as I recall in other environments that I've 
 used, mostly for Common Lisp) it appears in a mini buffer below the editing 
 pane. I think that's a good solution, but anywhere else within view but out 
 of the way would suffice. I wouldn't want to put this within the edit buffer 
 itself, since it might then get in the way and there'd be a much higher 
 premium on getting the information and the way that it's displayed exactly 
 right. Part of the beauty of arglist-on-space is that it's often extremely 
 helpful -- and I tend to rely on it rather than my memory if it's available 
 -- but there are no bad consequences if it's not exactly perfect (e.g. 
 because of complex argument lists or special cases that make it hard to 
 display the right info).

I think I can grab the arglist just the way the built-in doc macro
does, so it should be relatively straightforward. Thanks again for the
awesome suggestion!

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Timothy Baldridge
There's allot here I really like. This could end up being the IDE
for clojure newbies. I agree though, lein integration would be
awesome. One of my biggest complaints against larger IDE's is trying
to get them to look at the lein classpaths. Getting the same result in
my repl as I get by doing lein run would be awesome.


Great job!

Timothy

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein

 Another kick-ass feature would be first-class integration with
 Leiningen (and likewise, with Cake) - you can discover the list of
 commands using the lein command without any args. Once you discover
 the command names you can display it in a menu. When a user clicks one
 of those menu items, pop a textbox for other arguments and execute the
 entire command on pressing Enter.

That's definitely something I would like. I've added it to the issues.

 You may also consider building a plugin architecture for Clooj. For
 example, Leiningen support can be built by writing a plugin.

That's an interesting idea. How do you envision a plugin architecture
should work?

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
 One of my biggest complaints against larger IDE's is trying
 to get them to look at the lein classpaths. Getting the same result in
 my repl as I get by doing lein run would be awesome.

That's more or less what I've been attempting to do, but I need to
check carefully that I have covered the lein/cake classpath
completely. Added to github issues.

 Great job!

Thanks! :) And thank you for the feedback!

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: FleetDB or other NoSQL store for Clojure?

2011-07-18 Thread Edwin Watkeys
Hi,

I would recommend using — or at least giving serious consideration to — the 
Redis client as part of Zach Tellman's Aleph project. It has been the most 
reliable, robust Redis client I've found, and the Aleph framework makes it 
easy to deal with asynchronous I/O.

Edwin

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

2011-07-18 Thread Gary
I am the tech lead on the Aparapi team here at AMD.

We have heard of folks attempting to use Aparapi from Clojure (as well
as Beanshell, Groovy and Scala), and we would like to followup with
various communities to work out what would be needed to make this
work.

There are a couple of challenges, which I am sure can be overcome but
which will be immediate.  Aparapi currently uses the classloader to
extract the bytecode of the 'Kernel' class and at present we need some
javac debug artifacts to help us decompile the bytecode to OpenCL
(primarily we need LocalVariableTable to determine the scope/name of
local variables). I can see how to sidestep the local variable table,
and can envisage that a customized classloader might be constructed to
help us extract bytecode for synthetic (or dynamically generated)
classes/methods.

We announced recently (at AMD fusion developer summit) that we plan to
OpenSource Aparapi in Q311. It would be great to work with folks with
intimate knowledge of these alternate JVM languages to make them work
with Aparapi.

Gary

On Jul 15, 12:17 pm, cej38 junkerme...@gmail.com wrote:
 Hello.
   Has anyone looked at using AMD'sAparapiAPI from within 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


[ANN] Nimrod: logs-based metrics server

2011-07-18 Thread Sergio Bossa
Hi guys,

Nimrod is a metrics server based on logs processing, and I've just
published its first (0.1) binary release:
https://github.com/sbtourist/nimrod
Any feedback, either on source code, product usage or features, as
well as any kind of contribution, will be greatly appreciated :)

Enjoy,

Sergio B.

-- 
Sergio Bossa
http://www.linkedin.com/in/sergiob

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Lars Nilsson
On Mon, Jul 18, 2011 at 3:03 AM, Arthur Edelstein
arthuredelst...@gmail.com wrote:
 --- more work needed
 clooj is a work in progress. Your suggestions, criticisms and code
 contributions are appreciated.

Not sure if I'm not misunderstanding the initial creating of a
project, but it seems to me that I am using a file dialog box for a
directory selection. As it wasn't entirely clear what it expected me
to do at that point, I just typed in some name without knowing for
sure if it was supposed to be a file name or a directory, and found
out afterward that it was in fact a name that represented a directory.

It will probably take quite a bit for me to give up Emacs, but I find
it a very interesting project, and like several others have said, it
worked right out of the box, which is a huge plus.

Regards,
Lars Nilsson

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


The Last Programming Language

2011-07-18 Thread TimDaly
Robert Martin argues that Clojure could be the seed of the last
programming language.

http://skillsmatter.com/podcast/agile-testing/bobs-last-language

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
 Not sure if I'm not misunderstanding the initial creating of a
 project, but it seems to me that I am using a file dialog box for a
 directory selection. As it wasn't entirely clear what it expected me
 to do at that point, I just typed in some name without knowing for
 sure if it was supposed to be a file name or a directory, and found
 out afterward that it was in fact a name that represented a directory.

The file dialog for creating a new project is supposed to have the
title Create a project directory. Is this visible on your OS when
you choose Project  New...? (If not, what OS are you using?) Thanks
for the feedback, Lars!

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Lars Nilsson
On Mon, Jul 18, 2011 at 1:42 PM, Arthur Edelstein
arthuredelst...@gmail.com wrote:
 Not sure if I'm not misunderstanding the initial creating of a
 project, but it seems to me that I am using a file dialog box for a
 directory selection. As it wasn't entirely clear what it expected me
 to do at that point, I just typed in some name without knowing for
 sure if it was supposed to be a file name or a directory, and found
 out afterward that it was in fact a name that represented a directory.

 The file dialog for creating a new project is supposed to have the
 title Create a project directory. Is this visible on your OS when
 you choose Project  New...? (If not, what OS are you using?) Thanks
 for the feedback, Lars!

Yes, it does say that now that I'm checking again, I must have missed
it the first time around. I just confused it with a regular file
dialog box. My feeling about a different style dialog box stands, I
think, but it's really a very minor issue, and I'm much, much more
interested in a the automatic indent (first brought up by Lee in this
thread) that I couldn't live without in Emacs (for any programming
langauge..) Being able to hit tab wherever I happen to be in a line
and have it do the right thing rather than simply inserting a tab at
the cursor location is invaluable, along with reindenting a region or
a whole file. So +1 from me for that feature, if there's a tally going
on for the requests. ;)

Lars

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

2011-07-18 Thread Tarantoga
I have splitted it into two projects: the Clojure-WebApp itself
(webapp-0.1.0.jar on clojars.org) and the webexample1.
https://github.com/dbushenko/Clojure-WebApp
https://github.com/dbushenko/webexample1
Next step now: the detailed guide of using Clojure-WebApp.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
 Yes, it does say that now that I'm checking again, I must have missed
 it the first time around. I just confused it with a regular file
 dialog box. My feeling about a different style dialog box stands,

Thanks for pointing it out; I'll try to fix that.

 I'm much, much more
 interested in a the automatic indent (first brought up by Lee in this
 thread) that I couldn't live without in Emacs (for any programming
 langauge..) Being able to hit tab wherever I happen to be in a line
 and have it do the right thing rather than simply inserting a tab at
 the cursor location is invaluable, along with reindenting a region or
 a whole file. So +1 from me for that feature, if there's a tally going
 on for the requests. ;)

Tallied. :) What's your favorite keyboard shortcut for invoking smart
indent? Is it TAB? I imagine it's still important to be able to indent
and de-indent manually, but maybe I'm wrong.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Lars Nilsson
On Mon, Jul 18, 2011 at 2:06 PM, Arthur Edelstein
arthuredelst...@gmail.com wrote:
 Tallied. :) What's your favorite keyboard shortcut for invoking smart
 indent? Is it TAB? I imagine it's still important to be able to indent
 and de-indent manually, but maybe I'm wrong.

I use TAB. Just about the only file type I edit for which it doesn't
do this are Makefiles. C/C++, Clojure/Lisp, O'Caml source files, etc,
I use TAB in Emacs and expect it do make the current line indented
appropriately, whether I'm at the beginning, end or in the middle of
the line. I can't remember the last time I really felt I needed an
actual tab character in a source file of mine. Obviously, this can be
a highly individual preference and I fully realize not everyone will
want to have an editor/IDE behave this way (of course, they're
misguided... ;) )

Lars

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
 I use TAB. Just about the only file type I edit for which it doesn't
 do this are Makefiles. C/C++, Clojure/Lisp, O'Caml source files, etc,
 I use TAB in Emacs and expect it do make the current line indented
 appropriately, whether I'm at the beginning, end or in the middle of
 the line. I can't remember the last time I really felt I needed an
 actual tab character in a source file of mine.

I should make clear, I don't allow tab characters in clooj at all. :)
All indentation uses spaces. I guess my fear is that users will find
it annoying if the TAB key is devoted to smart indentation and space
and delete are the only tools for adjusting the indentation manually.
But maybe manual indentation is a rare enough that it is better to use
TAB for smart indentation.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Timothy Baldridge
I don't know if it has been mentioned yet, but I'm not getting
error-output in the REPL. If I type

(println foo)

then do CTRL+E

I see the REPL spit out the lines I entered, then nothing...

Some sort of error feedback would be nice.

Timothy

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Shantanu Kumar
  You may also consider building a plugin architecture for Clooj. For
  example, Leiningen support can be built by writing a plugin.

 That's an interesting idea. How do you envision a plugin architecture
 should work?

From the top of my head it looks like it should be possible to safely
maintain a global state. The global state can change when you switch
from project to project or create/remove projects. Since it is
Clojure, safety (due to concurrency) is less of a concern. Based on
the Global state, you can choose to render different things for the
various controls on screen. For example, if the current project
contains project.clj and Leiningen plugin is installed then include a
Leiningen menu in the menu bar (which should act on the current
project). Similarly, if Marginalia plugin is installed then show a
Marginalia menu item under Tools.

A TextMate theme plugin may work by taking into account less amount
of global states -- it should rather modify the way controls are
rendered. So, the look-n-feel should be theme-able. The keyword here
seems to be well defined global state properties, which could be
hierarchical in order to be extensible.

Regards,
Shantanu

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: use of subseq on a vector which I know is already sorted

2011-07-18 Thread Ken Wesson
If the input is always going to be sorted, consider using a sorted-set
or similar collection type to hold it in the first place.

If you're going to need to refer to a particular subsequence
repeatedly, and it's held in a vector, you might also consider using
subvec after using loop/recur to find the start and end indices.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Shantanu Kumar
 All indentation uses spaces. I guess my fear is that users will find
 it annoying if the TAB key is devoted to smart indentation and space
 and delete are the only tools for adjusting the indentation manually.
 But maybe manual indentation is a rare enough that it is better to use
 TAB for smart indentation.

Just wanted to highlight that both Emacs Clojure-mode and Eclipse/
CounterClockWise use TAB to auto-indent the current line correctly.
So, I guess the expectation would be likewise for the respective
proportion of Clojure users. Though of course the key bindings should
be re-mappable too IMHO.

Regards,
Shantanu

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Shantanu Kumar
So, just to expand the scope - what kind of plugins should be
possible:

1. Source control plugins - Git, Mercurial, Subversion...
2. Theme/Look-n-feel plugins
3. Syntax highlight plugin - Clojure, Markdown, Textile, XML,
Leiningen project.clj, Rakefile, Ruby
4. Tool plugins -- Leiningen, Marginalia, Heroku, AppEngine

Features:
1. Debugging using JPDA/CDT
2. Preferences - fonts, key bindings, JDK, Clojure versions
3. Workspaces - project management, source dirs, dependencies etc
4. nREPL support

Regards,
Shantanu

On Jul 19, 1:12 am, Shantanu Kumar kumar.shant...@gmail.com wrote:
   You may also consider building a plugin architecture for Clooj. For
   example, Leiningen support can be built by writing a plugin.

  That's an interesting idea. How do you envision a plugin architecture
  should work?

 From the top of my head it looks like it should be possible to safely
 maintain a global state. The global state can change when you switch
 from project to project or create/remove projects. Since it is
 Clojure, safety (due to concurrency) is less of a concern. Based on
 the Global state, you can choose to render different things for the
 various controls on screen. For example, if the current project
 contains project.clj and Leiningen plugin is installed then include a
 Leiningen menu in the menu bar (which should act on the current
 project). Similarly, if Marginalia plugin is installed then show a
 Marginalia menu item under Tools.

 A TextMate theme plugin may work by taking into account less amount
 of global states -- it should rather modify the way controls are
 rendered. So, the look-n-feel should be theme-able. The keyword here
 seems to be well defined global state properties, which could be
 hierarchical in order to be extensible.

 Regards,
 Shantanu

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
Hi Timothy,

Thanks for your message.

 I don't know if it has been mentioned yet, but I'm not getting
 error-output in the REPL. If I type

 (println foo)

 then do CTRL+E

 I see the REPL spit out the lines I entered, then nothing...

I don't know why are aren't getting an error message. When I do the
same thing, in the REPL output pane I get

(println foo)
#CompilerException java.lang.Exception: Unable to resolve symbol: foo
in this context (NO_SOURCE_FILE:1)

What OS and java version are you using?

Best regards,
Arthur

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Arthur Edelstein
Hi Shantanu,

 Just wanted to highlight that both Emacs Clojure-mode and Eclipse/
 CounterClockWise use TAB to auto-indent the current line correctly.
 So, I guess the expectation would be likewise for the respective
 proportion of Clojure users. Though of course the key bindings should
 be re-mappable too IMHO.

Very good points.

 The keyword here
 seems to be well defined global state properties, which could be
 hierarchical in order to be extensible.

This makes sense to me. How should clooj plug in plugins?

 So, just to expand the scope - what kind of plugins should be
 possible:
  ...

Wow, these are fantastic ideas and suggestions. Thanks for thinking
all of this through! There's so much to do ... if you feel like
undertaking any of these, I'll be very excited by pull requests! ;)

Arthur

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Timothy Baldridge
Java HotSpot 1.6.0_24 64-bit Server VM
Windows 7 Professional 64bit

Timothy

-- 
“One of the main causes of the fall of the Roman Empire was
that–lacking zero–they had no way to indicate successful termination
of their C programs.”
(Robert Firth)

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


[meta] Google Groups/gmail support?

2011-07-18 Thread Ken Wesson
I can no longer find any forum or submission form for reporting
problems to Google. You're a bunch of tech-savvy people using Google
Groups and, probably in many cases, gmail. Do any of you know either:

1. How to report problems to Google nowadays, in such a way that they
will actually receive attention rather than disappear down a black
hole?

2. How to avoid weirdness like this: I was catching up on the long
clooj thread, and when I was about halfway down suddenly the browser
started spinning and then loaded the gmail login page with my username
filled in but a blank password field! I didn't hit anything but
MWHEELUP or MWHEELDN proximate to this event, so it seems as if
somehow *someone else* clicked the signout link in the top right
corner on my behalf. (The mouse pointer FWIW was nowhere near there
and my hands were off the keyboard, so no mis-click or mis-key could
have caused it.) This should not be possible, yet it happened. Worse,
the back button did not DTRT and return me to the page I was reading
and my position partway down that page, even though it should have
still been in my browser's cache after such a short absence (ten
seconds? Less?). So I wound up losing my place in the thread and it
took me several minutes to find the exact right spot again. Obviously
frustrating, and since I didn't do anything wrong to deserve such
frustration, this behavior of the browser is obviously incorrect.
AFAICT, this falls squarely on Google's shoulders no matter where the
bug is: Google Groups is their responsibility, gmail is their
responsibility, and the browser I was using was Chrome, which is guess
whose responsibility? So, does anyone know what caused this and how to
make sure it never, ever, ever, ever, ever happens again? I do NOT
want to be in the middle of reading ANY page and suddenly have my
browser deciding, on its own initiative, to navigate itself to some
other page. EVER. It's MY browser. It goes where *I* tell it to, when
*I* tell it to, and NOT BEFORE, and I wish to know how to actually
enforce that -- which I shouldn't even have to, as that should be its
natural behavior anyway!

And don't tell me to ditch Chrome and use Firefox. Recent versions of
Firefox have a very similar and inexplicable behavior that can strike
on any page and that happens much more frequently: if anything at all
slows down the computer, such as something else paging or
wool-gathering, Firefox 4 and above will blank the page you were in
the middle of reading and hide the tab bar and show a spinning-wheel
mouse cursor for a while. Or sometimes, inexplicably, jump to the last
YouTube page visited (why YouTube?), render it shoddily (usually with
most of the page elements surrounding the media player missing), and
sit there unresponsive for a while. Then eventually jump back.

I'd take anything else, including a temporarily-nonresponsive browser
frozen displaying the same page I was on (which I can at least
continue to read until I hit the bottom of the screen!), over that.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Construct map without associng nil values..

2011-07-18 Thread Andreas Liljeqvist
Thanks, but I still feel that it's a little verbose though.
Is there some sort of thrush that returns nil if any steps are nil?

One might do something like this:
(-- e .getComments (hashmap :comments))

not necessarily clear though...

2011/7/18 Meikel Brandmeyer m...@kotka.de

 Hi,

 Am Montag, 18. Juli 2011 16:48:05 UTC+2 schrieb bonega:

 Got something like this:

 (for [e entries]
   {:filename (.getName e)
:comment (.getComment e)
:manymorekeys xxx})

 Quite often I get nil as comments. Problem is that I don't want any keys
 added for comment if there are none.


 You could do something like this:

 (for [e entries]
   (merge {:filename (.getName e) :manymorekeys :xxx}
   (when-let [comments (.getComments e)] {:comments comments})))

 Sincerely
 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

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Construct map without associng nil values..

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 6:09 PM, Andreas Liljeqvist bon...@gmail.com wrote:
 Thanks, but I still feel that it's a little verbose though.
 Is there some sort of thrush that returns nil if any steps are nil?
 One might do something like this:
 (-- e .getComments (hashmap :comments))

There's -? in, I think, contrib somewhere.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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


Error running Clojure 1.3 in Eclipse

2011-07-18 Thread ron peterson
I've upgraded my projects in Eclipse 3.7  to use Clojure 1.3 beta1
release, however when I try running it in Eclipse the REPL console
throws the following exception. Other versions of Clojure 1.3 alpha
gave the same exception: (but clojure 1.2.1 works fine)

Warning: *print-detail-on-error* not declared dynamic and thus is not
dynamically rebindable, but its name suggests otherwise. Please either
indicate ^:dynamic *print-detail-on-error* or change the name.
Warning: *pretty-print* not declared dynamic and thus is not
dynamically rebindable, but its name suggests otherwise. Please either
indicate ^:dynamic *pretty-print* or change the name.
Exception in thread main java.lang.UnsupportedOperationException:
Cannot recur across try, compiling:(clojure/tools/nrepl.clj:107)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6357)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5513)
at clojure.lang.Compiler$TryExpr$Parser.parse(Compiler.java:2054)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6350)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5513)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:4949)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3570)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6348)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6338)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3444)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6352)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5513)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:4949)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3570)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6348)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6338)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:492)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6350)
at clojure.lang.Compiler.analyze(Compiler.java:6157)
at clojure.lang.Compiler.analyze(Compiler.java:6118)
at clojure.lang.Compiler.eval(Compiler.java:6410)
at clojure.lang.Compiler.load(Compiler.java:6843)
at clojure.lang.RT.loadResourceScript(RT.java:357)
at clojure.lang.RT.loadResourceScript(RT.java:348)
at clojure.lang.RT.load(RT.java:427)
at clojure.lang.RT.load(RT.java:398)
at clojure.core$load$fn__4637.invoke(core.clj:5377)
at clojure.core$load.doInvoke(core.clj:5376)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5191)
at clojure.core$load_lib.doInvoke(core.clj:5228)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$load_libs.doInvoke(core.clj:5262)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$require.doInvoke(core.clj:5343)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval63.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6406)
at clojure.lang.Compiler.eval(Compiler.java:6372)
at clojure.core$eval.invoke(core.clj:2745)
at clojure.main$eval_opt.invoke(main.clj:296)
at clojure.main$initialize.invoke(main.clj:315)
at clojure.main$null_opt.invoke(main.clj:348)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:457)
at clojure.lang.Var.invoke(Var.java:413)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
Caused by: java.lang.UnsupportedOperationException: Cannot recur
across try
at clojure.lang.Compiler$RecurExpr$Parser.parse(Compiler.java:6045)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6350)
... 62 more

Here's the project.clj:

(defproject Test 1.0.0-SNAPSHOT
  :dependencies [[org.clojure/clojure 1.2.1]
 [org.clojure/clojure-contrib 1.2.0]
  :dev-dependencies [[lein-eclipse 1.0.0]]
  )


-- 
You received this message 

Re: Enlive (HTML templating library) tutorial

2011-07-18 Thread Stefan Ring
On Fri, Jul 15, 2011 at 5:54 PM, Brian Marick mar...@exampler.com wrote:
 Enlive is Christophe Grand's templating library for Clojure. Instead of the 
 usual substitute-into-delimited-text approach, it works by editing node trees 
 selected by CSS selectors. I’ve written a tutorial for it. Comments welcome, 
 especially from Enlive novices.

 https://github.com/cgrand/enlive/wiki/Table-and-Layout-Tutorial,-Part-1:-The-Goal

Very good tutorial! It has definitely wetted my appetite for playing
around with Enlive. Bonus points for its home in the official Enlive
wiki.

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


Re: [meta] Google Groups/gmail support?

2011-07-18 Thread Joop Kiefte
Google is introducing Google+-like feedback buttons now.

2011/7/18 Ken Wesson kwess...@gmail.com

 I can no longer find any forum or submission form for reporting
 problems to Google. You're a bunch of tech-savvy people using Google
 Groups and, probably in many cases, gmail. Do any of you know either:

 1. How to report problems to Google nowadays, in such a way that they
 will actually receive attention rather than disappear down a black
 hole?

 2. How to avoid weirdness like this: I was catching up on the long
 clooj thread, and when I was about halfway down suddenly the browser
 started spinning and then loaded the gmail login page with my username
 filled in but a blank password field! I didn't hit anything but
 MWHEELUP or MWHEELDN proximate to this event, so it seems as if
 somehow *someone else* clicked the signout link in the top right
 corner on my behalf. (The mouse pointer FWIW was nowhere near there
 and my hands were off the keyboard, so no mis-click or mis-key could
 have caused it.) This should not be possible, yet it happened. Worse,
 the back button did not DTRT and return me to the page I was reading
 and my position partway down that page, even though it should have
 still been in my browser's cache after such a short absence (ten
 seconds? Less?). So I wound up losing my place in the thread and it
 took me several minutes to find the exact right spot again. Obviously
 frustrating, and since I didn't do anything wrong to deserve such
 frustration, this behavior of the browser is obviously incorrect.
 AFAICT, this falls squarely on Google's shoulders no matter where the
 bug is: Google Groups is their responsibility, gmail is their
 responsibility, and the browser I was using was Chrome, which is guess
 whose responsibility? So, does anyone know what caused this and how to
 make sure it never, ever, ever, ever, ever happens again? I do NOT
 want to be in the middle of reading ANY page and suddenly have my
 browser deciding, on its own initiative, to navigate itself to some
 other page. EVER. It's MY browser. It goes where *I* tell it to, when
 *I* tell it to, and NOT BEFORE, and I wish to know how to actually
 enforce that -- which I shouldn't even have to, as that should be its
 natural behavior anyway!

 And don't tell me to ditch Chrome and use Firefox. Recent versions of
 Firefox have a very similar and inexplicable behavior that can strike
 on any page and that happens much more frequently: if anything at all
 slows down the computer, such as something else paging or
 wool-gathering, Firefox 4 and above will blank the page you were in
 the middle of reading and hide the tab bar and show a spinning-wheel
 mouse cursor for a while. Or sometimes, inexplicably, jump to the last
 YouTube page visited (why YouTube?), render it shoddily (usually with
 most of the page elements surrounding the media player missing), and
 sit there unresponsive for a while. Then eventually jump back.

 I'd take anything else, including a temporarily-nonresponsive browser
 frozen displaying the same page I was on (which I can at least
 continue to read until I hit the bottom of the screen!), over that.

 --
 Protege: What is this seething mass of parentheses?!
 Master: Your father's Lisp REPL. This is the language of a true
 hacker. Not as clumsy or random as C++; a language for a more
 civilized age.

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

Reflection warning on protected methods

2011-07-18 Thread Dave Ray
Hi,

I work on a project that's heavy on the Java interop. I've been
working through it trying to eliminate reflection (I'd like to build
unsigned applets). Anyway, I haven't been able to eliminate the
reflection warning on paintComponent in this example:

(set! *warn-on-reflection* true)
(proxy [javax.swing.JPanel] []
  (paintComponent [#^java.awt.Graphics g]
(proxy-super paintComponent g)
(.fillRect g 100 100 10 10)))

It's also been brought up on StackOverflow here:
http://stackoverflow.com/questions/1524614/how-do-i-typehint-away-this-reflection-warning

I've tried it on Clojure 1.2.0 and 1.3.0-beta1.

Is there any non-AOT way to do this? Is this considered a bug or a feature? :)

Thanks!

Dave

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Anthony Grimes
Check out http://github.com/daveray/seesaw. It might help ease some of that 
Swing pain.

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

Threading operator generalisation

2011-07-18 Thread Andreas Kostler
Maybe you might find this useful

(defmacro -
([x] x)
([x form] (if (seq? form)
  (with-meta (replace {:? x} form) (meta form))
  (list form x)))
([x form  more] `(- (- ~x ~form) ~@more)))

This allows for a more flexible threading operation:

user (- c
  (third-param a b :? d)
  println)
first a second b third c fourth d
nil

Cheers
Andreas


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: Construct map without associng nil values..

2011-07-18 Thread Sean Corfield
On Mon, Jul 18, 2011 at 3:23 PM, Ken Wesson kwess...@gmail.com wrote:
 On Mon, Jul 18, 2011 at 6:09 PM, Andreas Liljeqvist bon...@gmail.com wrote:
 Thanks, but I still feel that it's a little verbose though.
 Is there some sort of thrush that returns nil if any steps are nil?
 One might do something like this:
 (-- e .getComments (hashmap :comments))

 There's -? in, I think, contrib somewhere.

Yup, in [org.clojure/core.incubator 0.1.0] if you want to use the
new contrib library.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.com/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)

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


Re: Error running Clojure 1.3 in Eclipse

2011-07-18 Thread Sean Corfield
The stack trace shows:

Caused by: java.lang.UnsupportedOperationException: Cannot recur
across try
   at clojure.lang.Compiler$RecurExpr$Parser.parse(Compiler.java:6045)

This looks like an incompatibility between your code (or something
you're using) and Clojure 1.3.0. You can't have recur inside try - see
http://dev.clojure.org/jira/browse/CLJ-31 - sounds like it was allowed
in 1.2 but didn't work properly so now it's been disallowed?

I notice that your project file refers to old contrib 1.2.0 - that
won't run on Clojure 1.3.0 as far as I can tell (I had to update
CongoMongo because of 1.3.0 compatibility problems that seemed to stem
from contrib 1.2.0). You might try:

[org.clojure.contrib/standalone 1.3.0-SNAPSHOT]

instead but at this point you might need to start looking at the new
contrib libraries and migrating to those:

http://dev.clojure.org/display/design/Contrib+Library+Names

HTH,
Sean

On Mon, Jul 18, 2011 at 4:01 PM, ron peterson peterson.ron...@gmail.com wrote:
 I've upgraded my projects in Eclipse 3.7  to use Clojure 1.3 beta1
 release, however when I try running it in Eclipse the REPL console
 throws the following exception. Other versions of Clojure 1.3 alpha
 gave the same exception: (but clojure 1.2.1 works fine)

...
 Exception in thread main java.lang.UnsupportedOperationException:
 Cannot recur across try, compiling:(clojure/tools/nrepl.clj:107)
...
 Caused by: java.lang.UnsupportedOperationException: Cannot recur
 across try

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

2011-07-18 Thread Sean Corfield
Requests for a more general threading macro are usually met with a
link to the thread where Rich says this is not needed and we should
not encourage functions that need threading anywhere except the first
or last position. I don't have the link handy (sorry).

The usual objection centers around the fact that whatever symbol is
used for the binding position then becomes a varying thing within
the expression:

(-newthread- x
 (str y :? z)
 (str a :? b)
 println)

Here :? means two different things which seems counter to how Clojure
works elsewhere...

Sean

On Mon, Jul 18, 2011 at 5:10 PM, Andreas Kostler
andreas.koestler.le...@gmail.com wrote:
 Maybe you might find this useful

 (defmacro -
        ([x] x)
        ([x form] (if (seq? form)
                      (with-meta (replace {:? x} form) (meta form))
                      (list form x)))
        ([x form  more] `(- (- ~x ~form) ~@more)))

 This allows for a more flexible threading operation:

 user (- c
              (third-param a b :? d)
              println)
 first a second b third c fourth d
 nil

 Cheers
 Andreas

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

2011-07-18 Thread Andreas Kostler
Ups, I'm not aware of that thread...I just found a more general threading 
operator handy sometimes.
I do kinda agree that we shouldn't necessarily encourage threading in arbitrary 
positions.
However, I can't quite follow your second argument.
While it does mean two different things, I don't see the problem with that.
We could use _ instead of :? to indicate we don't care about the 'meaning'.

Anyway, I'll delete this evil hack from my repository ;)


On 19/07/2011, at 10:33 AM, Sean Corfield wrote:

 Requests for a more general threading macro are usually met with a
 link to the thread where Rich says this is not needed and we should
 not encourage functions that need threading anywhere except the first
 or last position. I don't have the link handy (sorry).
 
 The usual objection centers around the fact that whatever symbol is
 used for the binding position then becomes a varying thing within
 the expression:
 
 (-newthread- x
 (str y :? z)
 (str a :? b)
 println)
 
 Here :? means two different things which seems counter to how Clojure
 works elsewhere...
 
 Sean
 
 On Mon, Jul 18, 2011 at 5:10 PM, Andreas Kostler
 andreas.koestler.le...@gmail.com wrote:
 Maybe you might find this useful
 
 (defmacro -
([x] x)
([x form] (if (seq? form)
  (with-meta (replace {:? x} form) (meta form))
  (list form x)))
([x form  more] `(- (- ~x ~form) ~@more)))
 
 This allows for a more flexible threading operation:
 
 user (- c
  (third-param a b :? d)
  println)
 first a second b third c fourth d
 nil
 
 Cheers
 Andreas
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from 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: Threading operator generalisation

2011-07-18 Thread Sean Corfield
On Mon, Jul 18, 2011 at 5:41 PM, Andreas Kostler
andreas.koestler.le...@gmail.com wrote:
 Ups, I'm not aware of that thread...I just found a more general threading 
 operator handy sometimes.
 I do kinda agree that we shouldn't necessarily encourage threading in 
 arbitrary positions.
 However, I can't quite follow your second argument.
 While it does mean two different things, I don't see the problem with that.
 We could use _ instead of :? to indicate we don't care about the 'meaning'.

But _ means don't care by convention in Clojure, for values that are
ignored...

The issue is about bindings and immutability: foo should mean the same
value throughout an expression - that's kind of fundamental to Clojure
(IMO). With your macro (and the previous examples introduced by
others), some arbitrary symbol changes its meaning in each consecutive
form without any marker for lexical or dynamic binding... so it's
behaving like a mutable iterator or loop variable :(

With only a couple more characters you can already do what you need
without a new macro:

(- x
(#(str y % z))
(#(str a % b))
println)

There's also the possibility of mixing - and - to splice in first
arg / last arg threading. There was a great blog post about this
recently but I can't find it (- and - are remarkably hard to search
for on Google!)...
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.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: Threading operator generalisation

2011-07-18 Thread Andreas Kostler

On 19/07/2011, at 11:47 AM, Sean Corfield wrote:

 On Mon, Jul 18, 2011 at 5:41 PM, Andreas Kostler
 andreas.koestler.le...@gmail.com wrote:
 Ups, I'm not aware of that thread...I just found a more general threading 
 operator handy sometimes.
 I do kinda agree that we shouldn't necessarily encourage threading in 
 arbitrary positions.
 However, I can't quite follow your second argument.
 While it does mean two different things, I don't see the problem with that.
 We could use _ instead of :? to indicate we don't care about the 'meaning'.
 
 But _ means don't care by convention in Clojure, for values that are
 ignored...
 
 The issue is about bindings and immutability: foo should mean the same
 value throughout an expression - that's kind of fundamental to Clojure
 (IMO). With your macro (and the previous examples introduced by
 others), some arbitrary symbol changes its meaning in each consecutive
 form without any marker for lexical or dynamic binding... so it's
 behaving like a mutable iterator or loop variable :(
I agree with that, however, :? or _ or whatever doesn't bind to anything. It 
merely gets replaced.
- already does this in a hidden way...e.g. there's no symbol but the meaning 
of 'first argument' changes
in each consecutive form. 
 
 With only a couple more characters you can already do what you need
 without a new macro:
 
 (- x
(#(str y % z))
(#(str a % b))
println)
Here, the meaning of % changes?!?

 
 There's also the possibility of mixing - and - to splice in first
 arg / last arg threading. There was a great blog post about this
 recently but I can't find it (- and - are remarkably hard to search
 for on Google!)...
I agree :) 
 -- 
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/
 Railo Technologies, Inc. -- http://www.getrailo.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

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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 running Clojure 1.3 in Eclipse

2011-07-18 Thread OGINO Masanori
Hello.

 Warning: *print-detail-on-error* not declared dynamic and thus is not
 dynamically rebindable, but its name suggests otherwise. Please either
 indicate ^:dynamic *print-detail-on-error* or change the name.

Since 1.3, the default behavior of vars is non-dynamic/un-rebindable.

So, when you (or its developers if it comes from libraries) define a
dynamic var, you have to write:

(def ^{:dynamic true} *print-detail-on-error* default value?)
[1.2-compatible form]

(def ^:dynamic *print-detail-on-error* default value?)
[simplified form for 1.3 and latter]

... change the name means that the name *foo* suggests it's dynamic
by convention, so if you added stars for emphasis, you should remove
them.

Thanks.

-- 
Name:  OGINO Masanori (荻野 雅紀)
E-mail: masanori.og...@gmail.com

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


Re: [meta] Google Groups/gmail support?

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 7:14 PM, Joop Kiefte iko...@gmail.com wrote:
 Google is introducing Google+-like feedback buttons now.

I don't see anything like that yet in gmail in Chrome ...

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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

2011-07-18 Thread Chas Emerick
Just as a general comment: just because any of our idiosyncratic functions and 
macros aren't accepted for inclusion in Clojure proper does _not_ mean that 
they can't find a full and vigorous life in their own libraries.  Clojure is 
readily extended and improved without adding bits to the language itself, and 
Clojure development benefits from a very capable dependency management 
infrastructure; take advantage of it!

In this particular case, I'll bet that someone has an arbitrary threading macro 
in a library somewhere you can use…or, you can create such a library.  Given 
the number of times this has come up, I'm certain it would find some love.

- Chas

On Jul 18, 2011, at 8:41 PM, Andreas Kostler wrote:

 Ups, I'm not aware of that thread...I just found a more general threading 
 operator handy sometimes.
 I do kinda agree that we shouldn't necessarily encourage threading in 
 arbitrary positions.
 However, I can't quite follow your second argument.
 While it does mean two different things, I don't see the problem with that.
 We could use _ instead of :? to indicate we don't care about the 'meaning'.
 
 Anyway, I'll delete this evil hack from my repository ;)
 
 
 On 19/07/2011, at 10:33 AM, Sean Corfield wrote:
 
 Requests for a more general threading macro are usually met with a
 link to the thread where Rich says this is not needed and we should
 not encourage functions that need threading anywhere except the first
 or last position. I don't have the link handy (sorry).
 
 The usual objection centers around the fact that whatever symbol is
 used for the binding position then becomes a varying thing within
 the expression:
 
 (-newthread- x
(str y :? z)
(str a :? b)
println)
 
 Here :? means two different things which seems counter to how Clojure
 works elsewhere...
 
 Sean
 
 On Mon, Jul 18, 2011 at 5:10 PM, Andreas Kostler
 andreas.koestler.le...@gmail.com wrote:
 Maybe you might find this useful
 
 (defmacro -
   ([x] x)
   ([x form] (if (seq? form)
 (with-meta (replace {:? x} form) (meta form))
 (list form x)))
   ([x form  more] `(- (- ~x ~form) ~@more)))
 
 This allows for a more flexible threading operation:
 
 user (- c
 (third-param a b :? d)
 println)
 first a second b third c fourth d
 nil
 
 Cheers
 Andreas
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from 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: [meta] Google Groups/gmail support?

2011-07-18 Thread Chas Emerick
Can we *please* refrain from posting such incredibly off-topic content to the 
list?  If one is even tempted to add a [meta] or [OT] to a subject line, just 
let it go.

Thanks,

- 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: Threading operator generalisation

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 10:04 PM, Chas Emerick cemer...@snowtide.com wrote:
 Just as a general comment: just because any of our idiosyncratic functions 
 and macros aren't accepted for inclusion in Clojure proper does _not_ mean 
 that they can't find a full and vigorous life in their own libraries.  
 Clojure is readily extended and improved without adding bits to the language 
 itself, and Clojure development benefits from a very capable dependency 
 management infrastructure; take advantage of it!

 In this particular case, I'll bet that someone has an arbitrary threading 
 macro in a library somewhere you can use…or, you can create such a library.  
 Given the number of times this has come up, I'm certain it would find some 
 love.

Given the number of times this has come up, I'd say it's evidence that
something similar really should be in core -- just this once.

I'd go for one that uses a normal symbol, e.g. (-x a (expr1) (foo a
3) (bar :k a 7) ...) where the symbol to be bound is explicitly
provided by the user.

It isn't desired that often, since collections tend to be the last
argument and maps tend to be the first, but there are some cases where
one changes type partway through (e.g. works on a collection, then
extracts an element and works on that) or a function takes an argument
in an awkward place (e.g. nth takes the collection first, not last).
And as we've noticed, it keeps getting reinvented regularly by new
people.

I actually rarely use any of the threading macros myself, mind.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 10:07 PM, Chas Emerick cemer...@snowtide.com wrote:
 Can we *please* refrain from posting such incredibly off-topic content to the 
 list?  If one is even tempted to add a [meta] or [OT] to a subject line, just 
 let it go.

If I'd known of *any*where else where I could report this experience
and it would have been more on topic, I'd have posted it there. But I
didn't, and I still don't. Indeed, mostly I was asking if any of you
knew of such a place. Google Groups used to have a postable support
forum but it seems to have mysteriously disappeared sometime in the
last year or so.

If you know of such a place, I am all ears.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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

2011-07-18 Thread Lars Nilsson
On Mon, Jul 18, 2011 at 10:21 PM, Ken Wesson kwess...@gmail.com wrote:
 If you know of such a place, I am all ears.

Maybe 
http://groups.google.com/support/bin/request.py?contact_type=contact_policy
?

Lars Nilsson

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

2011-07-18 Thread Steven Tomcavage
I double we'll ever see The Last Programming Language, because we're
all hackers and we all have a notion that things could be done better
if we just tweaked this or that a bit, and voila, you have a new
programming language.

On Mon, Jul 18, 2011 at 1:36 PM, TimDaly d...@axiom-developer.org wrote:
 Robert Martin argues that Clojure could be the seed of the last
 programming language.

 http://skillsmatter.com/podcast/agile-testing/bobs-last-language

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


Clojure Books

2011-07-18 Thread Teena Mathew
Hey!

Which are the recommended books for Clojure newbie?

Thanks!
Teena

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread cljneo
Arthur,
I can't thank you enough. Two great news in a week, that's awesome. I
am eagerly awaiting Wednesday.

But please, please, please DON'T ABANDON THIS PROJECT.

CLJ Hackers,
Please lend a hand. You have no excuse; it is written in Clojure. This
is what Clojure needs the most!

People shouldn't start programming the WRONG way (JAVA.COM) and then
come back to learn to think about their problems the RIGHT way
(www.clojure.org)! They should start with the Last Programming
language and CLOOJ is their first step.

Thinking~~:
- Maybe we need CLOOJ or something similar for .NET as well. David
Miller's work should be rewarded with a CLOOJ of it's own.
- A webstart version.
- I hope that we don't start to see hundreds of conflicting setup
instructions in blog posts (like those for Emacs).
- I wish that Swing was prettier on the eye. I love nice GUIs.

Thanks again

On Jul 18, 4:20 pm, Shantanu Kumar kumar.shant...@gmail.com wrote:
  All indentation uses spaces. I guess my fear is that users will find
  it annoying if the TAB key is devoted to smart indentation and space
  and delete are the only tools for adjusting the indentation manually.
  But maybe manual indentation is a rare enough that it is better to use
  TAB for smart indentation.

 Just wanted to highlight that both Emacs Clojure-mode and Eclipse/
 CounterClockWise use TAB to auto-indent the current line correctly.
 So, I guess the expectation would be likewise for the respective
 proportion of Clojure users. Though of course the key bindings should
 be re-mappable too IMHO.

 Regards,
 Shantanu

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread abp
Why is it necessary to press TAB at all? Couldn't auto-indent be the
default for a line and only manually reindented lines opt-out until
one opts in again using TAB or something?

On 18 Jul., 22:20, Shantanu Kumar kumar.shant...@gmail.com wrote:
  All indentation uses spaces. I guess my fear is that users will find
  it annoying if the TAB key is devoted to smart indentation and space
  and delete are the only tools for adjusting the indentation manually.
  But maybe manual indentation is a rare enough that it is better to use
  TAB for smart indentation.

 Just wanted to highlight that both Emacs Clojure-mode and Eclipse/
 CounterClockWise use TAB to auto-indent the current line correctly.
 So, I guess the expectation would be likewise for the respective
 proportion of Clojure users. Though of course the key bindings should
 be re-mappable too IMHO.

 Regards,
 Shantanu

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread cljneo
I can't thank you enough for this Arthur. But please please don't abandon 
this project. Clojure hackers have no excuse to lend you a hand since it is 
written in Clojure. 

A newbie IDE is what Clojure needs most. Scheme was used as a first language 
so why shouldn't people be able to start with The Last Language. Why should 
people start with a broken model to think about their problems when they can 
start with the correct 
onehttp://www.infoq.com/presentations/An-Introduction-to-Clojure-Time-Model? 
An 
IDE such as CLOOJ is essential towards this goal.

~~Wish list~~:
- A more memorable name would be CLIDE.
- Java Web Start
- Swing doesn't make nice UIs.
- CLOOJ for ClojureCLR. David Miller's huge efforts were not rewarded with a 
similar IDE (vsClojure was abandoned).

Thanks again

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

2011-07-18 Thread Felix Filozov
Clojure in Action - http://www.manning.com/rathore/
Programming Clojure - http://pragprog.com/book/shcloj/programming-clojure
Practical Clojure - http://www.apress.com/9781430272311
Joy of Clojure (not for beginners) - http://joyofclojure.com/

On Mon, Jul 18, 2011 at 1:59 PM, Teena Mathew mathewteen...@gmail.comwrote:

 Hey!

 Which are the recommended books for Clojure newbie?

 Thanks!
 Teena

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from 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: clooj, a lightweight IDE for clojure

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 5:14 PM, abp abp...@googlemail.com wrote:
 Why is it necessary to press TAB at all? Couldn't auto-indent be the
 default for a line and only manually reindented lines opt-out until
 one opts in again using TAB or something?

This is an interesting thought. On the other hand, when lines are
merged or split, where does this status go? I'm thinking when a line
is split the second of the two resulting lines should start out
indented correctly relative to the first, and inherit the first's
status; when two lines are merged, the status of the first of the two
becomes the status of the merged line. This is consistent with the
status being an invisible metacharacter at the start of the line that
is deleted with the immediately preceding newline and cloned if enter
is hit in the middle of that line.

What about multi-line pastes? If the paste is of material cut or
copied from inside clooj, the status of each line that was cut or
copied would be stored OOB somewhere and used for the paste. (Actually
using funny extra characters inline in the copied material has
problems if material is copied from clooj and pasted into something
else, such as a post to this list.) From outside clooj? Some sensible
default, such as autoindent off (keep paste's formatting) or on
(auto-fix to context). Maybe let the user choose either in an options
screen.

Saving the state across sessions also seems to need to be OOB. Putting
it in the .clj file at the start of each line would gum up other
tools, and adding clooj-internal comments to source files isn't much
better. A clooj.dat file in the project root?

Alternatively, avoid the mess and just always maintain
structure-determined indent of all lines at all times. Does anyone
really want fully user-controlled indenting outside of comments
anyway? Spaces and tabs in the indent can just jump you to the start
of the forms on the line, and self-insert normally in string literals
and in ; comments, and single spaces normally anywhere (maybe turn
tabs into spaces and tab or space next to a space just moves you to
the right of the space).

Or, the traditional thing: full control, but tab or something will
reindent the current line, or all lines intersecting the selection if
any, to structurally-correct positions based on all of the code above,
if tab is hit outside a string literal or ; comment.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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

2011-07-18 Thread Lars Nilsson
On Mon, Jul 18, 2011 at 10:52 PM, Ken Wesson kwess...@gmail.com wrote:
 Eh. The problem seems more likely to be in either Chrome or gmail. And
 that looks like a bit-buckety sort of place anyway, where reports may
 well fall on deaf ears. A forum whose posts, and answered-or-not
 status, are visible to other users would be ideal but I can't find one
 now.

http://mail.google.com/support/
http://www.google.com/support/forum/p/gmail?hl=enutm_source=HCutm_medium=leftnavutm_campaign=gmail

http://www.google.com/support/chrome/
http://www.google.com/support/forum/p/Chrome?hl=enutm_source=HCutm_medium=leftnavutm_campaign=chrome

Lars Nilsson

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Brent Millare
Please give the time when it is ready. I want to be on IRC when this
happens. Chat + livestreaming is always good.

On Jul 18, 12:15 pm, Baishampayan Ghose b.gh...@gmail.com wrote:
 Yoohoo!  Thanks a bunch, Stu  co.

 Regards,
 BG

 ---
 Sent from phone. Please excuse brevity.
 On Jul 18, 2011 9:28 PM, Stuart Halloway stuart.hallo...@gmail.com
 wrote: Several people have asked about access to Rich's upcoming talk this

 Wednesday night [1]. In order to make information available for those who
 are not present in NYC, we are planning to do the following:

  During the talk:

  * We will be live streaming the talk at [2]. This is our first time live

 streaming from the facility, so cross your fingers.

  * We will be covering the talk live in the Clojure IRC.

  After the talk:

  * Video will be posted online. Once the editing is complete, I will post a

 link here with details.









  * The slides will be posted online.

  Cheers,
  Stu

  [1]http://www.meetup.com/Clojure-NYC/events/16166953/
  [2]http://www.ustream.tv/channel/clojurenyc

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

2011-07-18 Thread Brent Millare
Nice, I'll be sure to go through it.

On Jul 18, 10:56 am, David Nolen dnolen.li...@gmail.com wrote:
 I highly recommend checking this out if you're curious about 
 core.logic,https://github.com/frenchy64/Logic-Starter/wiki

 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: following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Vivek Khurana
On Mon, Jul 18, 2011 at 9:28 PM, Stuart Halloway
stuart.hallo...@gmail.com wrote:
 Several people have asked about access to Rich's upcoming talk this
 Wednesday night [1]. In order to make information available for those who
 are not present in NYC, we are planning to do the following:

Please post the timing along with timezone info :)

regards
Vivek

-- 
The hidden harmony is better than the obvious!!

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

2011-07-18 Thread Devin Walters
Thanks David! (And French64 of course)

-- 
Devin Walters


On Monday, July 18, 2011 at 10:33 PM, Brent Millare wrote:

 Nice, I'll be sure to go through it.
 
 On Jul 18, 10:56 am, David Nolen dnolen.li (http://dnolen.li)...@gmail.com 
 (http://gmail.com) wrote:
  I highly recommend checking this out if you're curious about 
  core.logic,https://github.com/frenchy64/Logic-Starter/wiki
  
  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 
 (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


converting a string into a set

2011-07-18 Thread Tuba Lambanog
Hello,
My apologies for this newbie question. I couldn't find a way to
convert a string to a set, thus:

abc = #{a b c}

Thanks.
tuba

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Sunil S Nandihalli
awesome!! looking forward to the talk.. like everybody else, I think it will
be great to have the time and time-zone info posted..

Sunil.

On Mon, Jul 18, 2011 at 9:28 PM, Stuart Halloway
stuart.hallo...@gmail.comwrote:

 Several people have asked about access to Rich's upcoming talk this
 Wednesday night [1]. In order to make information available for those who
 are not present in NYC, we are planning to do the following:

 During the talk:

 * We will be live streaming the talk at [2]. This is our first time live
 streaming from the facility, so cross your fingers.

 * We will be covering the talk live in the Clojure IRC.

 After the talk:

 * Video will be posted online. Once the editing is complete, I will post a
 link here with details.

 * The slides will be posted online.

 Cheers,
 Stu

 [1] http://www.meetup.com/Clojure-NYC/events/16166953/
 [2] http://www.ustream.tv/channel/clojurenyc

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

2011-07-18 Thread Ambrose Bonnaire-Sergeant
(I'm frenchy64)

More cool stuff to come, watch this space http://twitter.com/#!/ambrosebs

Ambrose

On Tue, Jul 19, 2011 at 11:50 AM, Devin Walters dev...@gmail.com wrote:

 Thanks David! (And French64 of course)

 --
 Devin Walters


 On Monday, July 18, 2011 at 10:33 PM, Brent Millare wrote:

  Nice, I'll be sure to go through it.
 
  On Jul 18, 10:56 am, David Nolen dnolen.li (http://dnolen.li)...@
 gmail.com (http://gmail.com) wrote:
   I highly recommend checking this out if you're curious about
 core.logic,https://github.com/frenchy64/Logic-Starter/wiki
  
   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 (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


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Sunil S Nandihalli
(set abc) will do it...

On Tue, Jul 19, 2011 at 9:20 AM, Tuba Lambanog tuba.lamba...@gmail.comwrote:

 Hello,
 My apologies for this newbie question. I couldn't find a way to
 convert a string to a set, thus:

 abc = #{a b c}

 Thanks.
 tuba

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

2011-07-18 Thread Ken Wesson
On Mon, Jul 18, 2011 at 11:20 PM, Lars Nilsson chamael...@gmail.com wrote:
 On Mon, Jul 18, 2011 at 10:52 PM, Ken Wesson kwess...@gmail.com wrote:
 Eh. The problem seems more likely to be in either Chrome or gmail. And
 that looks like a bit-buckety sort of place anyway, where reports may
 well fall on deaf ears. A forum whose posts, and answered-or-not
 status, are visible to other users would be ideal but I can't find one
 now.

 http://mail.google.com/support/
 http://www.google.com/support/forum/p/gmail?hl=enutm_source=HCutm_medium=leftnavutm_campaign=gmail

Thanks. Their web form is somewhat wonky but it looks like other
people will see this and not just people working in the bowels of
Google (or, perhaps, nobody but robots).

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Tuba Lambanog
Hi,
(set abc)
gives me #{\a \b \c}.
I'm expecting instead: #{a b c}
But thanks,
Tuba

On Mon, Jul 18, 2011 at 9:50 PM, Tuba Lambanog tuba.lamba...@gmail.comwrote:

 Hello,
 My apologies for this newbie question. I couldn't find a way to
 convert a string to a set, thus:

 abc = #{a b c}

 Thanks.
 tuba

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Sean Corfield
On Mon, Jul 18, 2011 at 9:17 PM, Tuba Lambanog tuba.lamba...@gmail.com wrote:
 (set abc)
 gives me #{\a \b \c}.
 I'm expecting instead: #{a b c}

(set (map abc))

(set (map str Tuba Lambanog))
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.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: converting a string into a set

2011-07-18 Thread Benjamin Esham
Tuba Lambanog wrote:

 Tuba Lambanog wrote:
 
  Hello, My apologies for this newbie question. I couldn't find a way to
  convert a string to a set, thus:
  
  abc = #{a b c}
 
 (set abc) gives me #{\a \b \c}.  I'm expecting instead: #{a b c}

Hi Tuba,

Are you quite sure that #{\a \b \c} is not what you want? In Clojure's
notation, a backslashed character [more or less] refers to a
single-character string--something akin to the char type from C. Hence \a is
the character a.  On the other hand #{a b c} is a set containing three
Clojure symbols, which is probably not what you want.

(If you want to be using a, b, and c as some kind of identifiers, take a
look at keywords.)

-- 
Benjamin D. Esham  |  bdes...@gmail.com  |  www.bdesham.info
How to Ask Questions the Smart Way, by Eric S. Raymond:
  http://catb.org/~esr/faqs/smart-questions.html

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Andreas Kostler

On 19/07/2011, at 2:29 PM, Sean Corfield wrote:

 On Mon, Jul 18, 2011 at 9:17 PM, Tuba Lambanog tuba.lamba...@gmail.com 
 wrote:
 (set abc)
 gives me #{\a \b \c}.
 I'm expecting instead: #{a b c}
 
 (set (map abc))
 
 (set (map str Tuba Lambanog))

This will produce #{a b c}

I think 
(set (map #(symbol (str %)) abc))
should do the trick

 -- 
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/
 Railo Technologies, Inc. -- http://www.getrailo.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
]

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Andreas Kostler
I'm with Benjamin despite my last post...
On 19/07/2011, at 2:31 PM, Benjamin Esham wrote:

 Tuba Lambanog wrote:
 
 Tuba Lambanog wrote:
 
 Hello, My apologies for this newbie question. I couldn't find a way to
 convert a string to a set, thus:
 
 abc = #{a b c}
 
 (set abc) gives me #{\a \b \c}.  I'm expecting instead: #{a b c}
 
 Hi Tuba,
 
 Are you quite sure that #{\a \b \c} is not what you want? In Clojure's
 notation, a backslashed character [more or less] refers to a
 single-character string--something akin to the char type from C. Hence \a is
 the character a.  On the other hand #{a b c} is a set containing three
 Clojure symbols, which is probably not what you want.
 
 (If you want to be using a, b, and c as some kind of identifiers, take a
 look at keywords.)
 
 -- 
 Benjamin D. Esham  |  bdes...@gmail.com  |  www.bdesham.info
 How to Ask Questions the Smart Way, by Eric S. Raymond:
  http://catb.org/~esr/faqs/smart-questions.html
 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from 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: converting a string into a set

2011-07-18 Thread Tuba Lambanog
(thank-you Sean A Corfield)

On Mon, Jul 18, 2011 at 10:29 PM, Sean Corfield seancorfi...@gmail.comwrote:

 On Mon, Jul 18, 2011 at 9:17 PM, Tuba Lambanog tuba.lamba...@gmail.com
 wrote:
  (set abc)
  gives me #{\a \b \c}.
  I'm expecting instead: #{a b c}

 (set (map abc))

 (set (map str Tuba Lambanog))
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/
 Railo Technologies, Inc. -- http://www.getrailo.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


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

2011-07-18 Thread Sean Corfield
On Mon, Jul 18, 2011 at 6:51 PM, Andreas Kostler
andreas.koestler.le...@gmail.com wrote:
 (- x
    (#(str y % z))
    (#(str a % b))
    println)
 Here, the meaning of % changes?!?

Not really, each #() is a scope for % as if it read:

(- x
((fn [x] (str y x z)))
((fn [c] (str a c b))
println)
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.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: Threading operator generalisation

2011-07-18 Thread Andreas Kostler
Oh yeah, fair enough. 
I'm not convinced though. I don't see :? changing as such, as well as I think 
the syntactical representation below is just as confusing...
I'll rest this case :) It's not all that useful anyway.

On 19/07/2011, at 2:38 PM, Sean Corfield wrote:

 On Mon, Jul 18, 2011 at 6:51 PM, Andreas Kostler
 andreas.koestler.le...@gmail.com wrote:
 (- x
(#(str y % z))
(#(str a % b))
println)
 Here, the meaning of % changes?!?
 
 Not really, each #() is a scope for % as if it read:
 
 (- x
((fn [x] (str y x z)))
((fn [c] (str a c b))
println)
 -- 
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/
 Railo Technologies, Inc. -- http://www.getrailo.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

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from 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: following Rich's talk at NYC Clojure this Wednesday

2011-07-18 Thread Benjamin Esham
Vivek Khurana wrote:

 Stuart Halloway wrote:
 
  Several people have asked about access to Rich's upcoming talk this
  Wednesday night [1]. In order to make information available for those
  who are not present in NYC, we are planning to do the following:
 
 Please post the timing along with timezone info :)

Just going from the link in Stuart's post...

http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110720T1845p1=179

Cheers,
-- 
Benjamin D. Esham  |  bdes...@gmail.com  |  www.bdesham.info
“Intelligence is like four-wheel drive.  It only allows you to
get stuck in more remote places.” — Garrison Keillor

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


  1   2   >