Re: too circular?

2013-08-26 Thread Sean Corfield
If you want the sequence itself, so you can take various prefixes of it:

(def fib (cons 1 (cons 1 (map + fib (rest fib)

(take 5 fib)
(take 10 fib)

Has the advantage of not recalculating any part of it - and the
disadvantage of holding onto the head - so it depends what you want to
do with it.


On Mon, Aug 26, 2013 at 2:40 PM, Dennis Haupt d.haup...@gmail.com wrote:
 (defn fib-n [n]
   (let [fib (fn [a b] (cons a (lazy-seq (fib b (+ b a)]
 (take n (fib 1 1

 can't i do a recursion here? how can i achieve this without doing an outer
 defn?

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: How to send GET http request with range header, using clj-http or http-kit?

2013-08-24 Thread Sean Corfield
Can't you just do (get ... {:headers {..}}) and pass the range
header that way?

On Sat, Aug 24, 2013 at 8:12 PM, Seven Hong sir.seven.h...@gmail.com wrote:
 Hi all:

 I am trying to grab down a segment of a file on a http server, so
 technically I should send a GET message with a range header specifying the
 range of bytes I wanna get. But how do I exactly do that with clj-http? Or
 is it possible to do this with clj-http? I looked up their documentation and
 it didn't look like they support range header along with get function
 though.

 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: Two Way DOM binding in clojurescript

2013-08-22 Thread Sean Corfield
flapjax seems to be abandonware? Last source update a year ago, last
website update two years ago. Or is it just one of those rare
completely stable, needs no enhancements libraries?

On Thu, Aug 22, 2013 at 1:09 AM,  ewen.grosj...@free.fr wrote:
 Hi, you might be interested in flapjax-cljs, a clojurescript wrapper for
 flapjax.

 Ewen.

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: Two Way DOM binding in clojurescript

2013-08-22 Thread Sean Corfield
On Thu, Aug 22, 2013 at 2:41 PM,  ewen.grosj...@free.fr wrote:
 I don't know. My guess would be that it is some kind of an academic project
 that evolve mostly when a student decides to work on it during a project
 (thus not often).
 The mailing list is still active though.

Good to know, thanx. I've seen flapjax mentioned several times on
various lists and on Twitter but the staleness of the site and source
code made me wary of investing time in it...
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.2 released

2013-08-21 Thread Sean Corfield
It doesn't seem related to either of those. It seems to be an SSL
certificate issue, perhaps #1287? (which Phil closed saying build it
from source instead). I guess I'm surprised the JAR cannot simply be
downloaded via a browser - that would seem the easiest way for Windows
users to get Leiningen upgraded, in the absence of wget / curl.

Phil mentioned something (in IRC? in the last thread about SSL
problems?) about self-install not respecting HTTP_CLIENT early enough
in the process and that was fixed (post-2.1.3) but I can't find a
related issue for that.

If what I'm seeing is related to that latter problem, then this should
already be fixed and shouldn't be a problem with future upgrades - I
just wanted to try to get confirmation of that before opening a new
issue.

Sean

On Tue, Aug 20, 2013 at 11:31 PM, Shantanu Kumar
kumar.shant...@gmail.com wrote:
 Hi Sean,

 Lein 2.3.2 fixed #1150 and #1292 on Windows, tested on Windows 7 and Windows
 XP. Is there any particular issue# your use case relates to? Please
 mention/file the issues -- I will see if I can find a fix.

 Shantanu


 On Wednesday, 21 August 2013 10:43:36 UTC+5:30, Sean Corfield wrote:

 Upgrading on Mac/Linux was painless as usual - and everything here
 seems to run fine with 2.3.2 - but Windows continues to be a pain in
 the rear...

 You can't lein upgrade so I updated the version string in lein.bat and
 tried lein self-install:

 C:\Users\Seanlein self-install
 Downloading Leiningen now...
 SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
 syswgetrc = C:\gow/etc/wgetrc
 --2013-08-20 22:01:41--

 https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar
 Resolving cloud.github.com... 54.240.188.252, 54.230.71.6, 54.230.70.21,
 ...
 Connecting to cloud.github.com|54.240.188.252|:443... connected.
 WARNING: cannot verify cloud.github.com's certificate, issued by
 `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance
 CA-3':
   Self-signed certificate encountered.
 WARNING: certificate common name `*.cloudfront.net' doesn't match
 requested host name `cloud.github.com'.
 HTTP request sent, awaiting response... 403 Forbidden
 2013-08-20 22:01:41 ERROR 403: Forbidden.

 Failed to download

 https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar

 You can't download that file via a browser either:

 This XML file does not appear to have any style information associated
 with it. The document tree is shown below.
 Error
 CodeAccessDenied/Code
 MessageAccess Denied/Message
 RequestIdBBF8809DA1520371/RequestId
 HostId
 Laq6Bi6lZlah+zalsro6LbnHl2hKt0fDsZO1Tvu6spiEjq8CghIMHLDSwk7XTm+k
 /HostId
 /Error

 I have HTTP_CLIENT set to wget --no-check-certificate -O as a global
 environment variable.

 Is this just a problem upgrading from 2.1.3 that is - finally - going
 to be a thing of the past from now on, or is there still work to do?

 Sean


 On Tue, Aug 20, 2013 at 3:11 PM, Phil Hagelberg ph...@hagelb.org wrote:
 
  Hello everybody.
 
  I'm happy to announce the release of Leiningen 2.3.2, a minor bugfix
  release over 2.3.1. Changes include the following:
 
  * Write `.nrepl-port` file for better tool interoperability. (Phil
  Hagelberg)
  * Support targeted upgrades in `lein.bat`. (Shantanu Kumar)
  * Warn when projects rely on implicit AOT of `:main`. (Phil Hagelberg)
  * Fix a bug where implicit AOT of `:main` was disabled. (Phil Hagelberg)
  * Disable profile isolation by default. Will be back in 3.x. (Phil
  Hagelberg)
 
  The biggest change here the disabling of profile isolation (a new by
  default due to incompatibilities with certain projects that hard-code
  paths. Profile isolation was a new feature in 2.3.0 described in the
  FAQ:
 
  Leiningen supports isolating different profiles by their target
  directory. Simply specify `:target-path target/%s` in order to have
  each profile set use a different directory for generated files. Then
  you
  can put your `:aot` settings in the `:uberjar` profiles, and the .class
  files created from the AOT process will not affect normal development
  use. You can specify the profile-isolated `:target-path` in your
  `:user`
  profile if you want it applied across all the projects you work on.
 
  I still recommend using profile isolation since it helps avoid a number
  of subtle gotchas around stale AOT files and user-level dependencies
  being visible with downstream consumers, but you now have to opt-in to
  this feature by setting :target-path as described above.
 
  We've also fixed a bug where setting :main without setting :aot would no
  longer implicitly compile the :main namespace. It's still recommended to
  be explicit about what :aot you need, (in the :uberjar profile if
  applicable) but the old behaviour has been restored.
 
  You'll also want to add a .gitignore entry for the new .nrepl-port file
  which we're using for improved cross-tool compatibility; discussion of
  that feature is here:
  https://github.com

Re: [ANN] Leiningen 2.3.2 released

2013-08-21 Thread Sean Corfield
Does that work to upgrade an already installed version of Leiningen?

On Wed, Aug 21, 2013 at 9:50 AM, David Powell djpow...@djpowell.net wrote:
 Have you tried http://leiningen-win-installer.djpowell.net/ - it should
 work...

 --
 Dave



 On Wed, Aug 21, 2013 at 6:13 AM, Sean Corfield seancorfi...@gmail.com
 wrote:

 Upgrading on Mac/Linux was painless as usual - and everything here
 seems to run fine with 2.3.2 - but Windows continues to be a pain in
 the rear...

 You can't lein upgrade so I updated the version string in lein.bat and
 tried lein self-install:

 C:\Users\Seanlein self-install
 Downloading Leiningen now...
 SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
 syswgetrc = C:\gow/etc/wgetrc
 --2013-08-20 22:01:41--

 https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar
 Resolving cloud.github.com... 54.240.188.252, 54.230.71.6, 54.230.70.21,
 ...
 Connecting to cloud.github.com|54.240.188.252|:443... connected.
 WARNING: cannot verify cloud.github.com's certificate, issued by
 `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance
 CA-3':
   Self-signed certificate encountered.
 WARNING: certificate common name `*.cloudfront.net' doesn't match
 requested host name `cloud.github.com'.
 HTTP request sent, awaiting response... 403 Forbidden
 2013-08-20 22:01:41 ERROR 403: Forbidden.

 Failed to download

 https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar

 You can't download that file via a browser either:

 This XML file does not appear to have any style information associated
 with it. The document tree is shown below.
 Error
 CodeAccessDenied/Code
 MessageAccess Denied/Message
 RequestIdBBF8809DA1520371/RequestId
 HostId
 Laq6Bi6lZlah+zalsro6LbnHl2hKt0fDsZO1Tvu6spiEjq8CghIMHLDSwk7XTm+k
 /HostId
 /Error

 I have HTTP_CLIENT set to wget --no-check-certificate -O as a global
 environment variable.

 Is this just a problem upgrading from 2.1.3 that is - finally - going
 to be a thing of the past from now on, or is there still work to do?

 Sean


 On Tue, Aug 20, 2013 at 3:11 PM, Phil Hagelberg p...@hagelb.org wrote:
 
  Hello everybody.
 
  I'm happy to announce the release of Leiningen 2.3.2, a minor bugfix
  release over 2.3.1. Changes include the following:
 
  * Write `.nrepl-port` file for better tool interoperability. (Phil
  Hagelberg)
  * Support targeted upgrades in `lein.bat`. (Shantanu Kumar)
  * Warn when projects rely on implicit AOT of `:main`. (Phil Hagelberg)
  * Fix a bug where implicit AOT of `:main` was disabled. (Phil Hagelberg)
  * Disable profile isolation by default. Will be back in 3.x. (Phil
  Hagelberg)
 
  The biggest change here the disabling of profile isolation (a new by
  default due to incompatibilities with certain projects that hard-code
  paths. Profile isolation was a new feature in 2.3.0 described in the
  FAQ:
 
  Leiningen supports isolating different profiles by their target
  directory. Simply specify `:target-path target/%s` in order to have
  each profile set use a different directory for generated files. Then
  you
  can put your `:aot` settings in the `:uberjar` profiles, and the .class
  files created from the AOT process will not affect normal development
  use. You can specify the profile-isolated `:target-path` in your
  `:user`
  profile if you want it applied across all the projects you work on.
 
  I still recommend using profile isolation since it helps avoid a number
  of subtle gotchas around stale AOT files and user-level dependencies
  being visible with downstream consumers, but you now have to opt-in to
  this feature by setting :target-path as described above.
 
  We've also fixed a bug where setting :main without setting :aot would no
  longer implicitly compile the :main namespace. It's still recommended to
  be explicit about what :aot you need, (in the :uberjar profile if
  applicable) but the old behaviour has been restored.
 
  You'll also want to add a .gitignore entry for the new .nrepl-port file
  which we're using for improved cross-tool compatibility; discussion of
  that feature is here:
  https://github.com/technomancy/leiningen/issues/1296
 
  Thanks!
 
  -Phil



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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

Re: [ANN] Leiningen 2.3.2 released

2013-08-21 Thread Sean Corfield
I have a working Leiningen. I have wget and curl via GOW - Gnu On
Windows. I have HTTP_CLIENT set as a global environment variable to:
wget --no-check-certificate -O per Leiningen's instructions. I'll see
whether the upgrade process works when 2.3.3 is released. That will
determine whether the HTTP_CLIENT bug Phil mentioned was indeed fixed
in 2.3.2.

Good to know that your installer packages an appropriate ca file. If
my future upgrades don't go more smoothly, I'll switch to your
installer.

Sean

On Wed, Aug 21, 2013 at 10:23 AM, David Powell djpow...@djpowell.net wrote:

 On Wed, Aug 21, 2013 at 5:57 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 Does that work to upgrade an already installed version of Leiningen?


 Not really.  But if you took your existing leiningen off the path, and ran
 the installer it might get things up and running:
 It bundles a wget with an appropriate ca file, downloads the latest stable
 lein.bat, lets you select a JDK path from those available, and it ensures
 that lein.bat is on the path.

 --
 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.2 released

2013-08-21 Thread Sean Corfield
As I told Phil on IRC, the problem turned out to be an old lein.bat...

To test the theory of the old lein.bat, I fired up two of my VMs:
* Windows XP running Leiningen 1.6.1.1(!)
* Windows 8 running Leiningen 2.0.0-preview10

On both of these, running lein upgrade produced a message that upgrade
was not supported and the .bat file should be edited to have the
desired version of Leiningen, then run lein self-install. Phil
confirmed in IRC that is NOT the correct process and the lein.bat
script should not be printing that message!

On both, I downloaded the latest lein.bat directly from
http://leiningen.org and replaced the current version.

On Windows XP, I opened a cmd window and navigated to the folder that
contains curl.exe (previously installed - I never added it to my path)
and ran lein self-install

On Windows 8, I opened a cmd window and ran lein self-install (wget
and curl are already on my path due to GOW - Gnu On Windows - being
installed)

In both cases, the Leiningen upgrade completed smoothly and I was
running Leiningen 2.3.2 afterward.

So the moral here is:

* don't edit lein.bat to change the version - instead download the
latest version from leiningen.org!

I'll be interested to see what lein upgrade does next time on Windows,
now that I'm running the latest .bat file. If it suggests editing the
file, I'll open an issue :)

Sean




On Wed, Aug 21, 2013 at 10:46 AM, Sean Corfield seancorfi...@gmail.com wrote:
 I have a working Leiningen. I have wget and curl via GOW - Gnu On
 Windows. I have HTTP_CLIENT set as a global environment variable to:
 wget --no-check-certificate -O per Leiningen's instructions. I'll see
 whether the upgrade process works when 2.3.3 is released. That will
 determine whether the HTTP_CLIENT bug Phil mentioned was indeed fixed
 in 2.3.2.

 Good to know that your installer packages an appropriate ca file. If
 my future upgrades don't go more smoothly, I'll switch to your
 installer.

 Sean

 On Wed, Aug 21, 2013 at 10:23 AM, David Powell djpow...@djpowell.net wrote:

 On Wed, Aug 21, 2013 at 5:57 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 Does that work to upgrade an already installed version of Leiningen?


 Not really.  But if you took your existing leiningen off the path, and ran
 the installer it might get things up and running:
 It bundles a wget with an appropriate ca file, downloads the latest stable
 lein.bat, lets you select a JDK path from those available, and it ensures
 that lein.bat is on the path.

 --
 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.2 released

2013-08-21 Thread Sean Corfield
I went back to my Windows 8 laptop and updated lein.bat to the version
on leiningen.org and then tested the up/down-grades and they worked
perfectly - great to see the latest Windows batch file working so
well!

Sean

On Wed, Aug 21, 2013 at 3:21 PM, Sean Corfield seancorfi...@gmail.com wrote:
 As I told Phil on IRC, the problem turned out to be an old lein.bat...

 To test the theory of the old lein.bat, I fired up two of my VMs:
 * Windows XP running Leiningen 1.6.1.1(!)
 * Windows 8 running Leiningen 2.0.0-preview10

 On both of these, running lein upgrade produced a message that upgrade
 was not supported and the .bat file should be edited to have the
 desired version of Leiningen, then run lein self-install. Phil
 confirmed in IRC that is NOT the correct process and the lein.bat
 script should not be printing that message!

 On both, I downloaded the latest lein.bat directly from
 http://leiningen.org and replaced the current version.

 On Windows XP, I opened a cmd window and navigated to the folder that
 contains curl.exe (previously installed - I never added it to my path)
 and ran lein self-install

 On Windows 8, I opened a cmd window and ran lein self-install (wget
 and curl are already on my path due to GOW - Gnu On Windows - being
 installed)

 In both cases, the Leiningen upgrade completed smoothly and I was
 running Leiningen 2.3.2 afterward.

 So the moral here is:

 * don't edit lein.bat to change the version - instead download the
 latest version from leiningen.org!

 I'll be interested to see what lein upgrade does next time on Windows,
 now that I'm running the latest .bat file. If it suggests editing the
 file, I'll open an issue :)

 Sean




 On Wed, Aug 21, 2013 at 10:46 AM, Sean Corfield seancorfi...@gmail.com 
 wrote:
 I have a working Leiningen. I have wget and curl via GOW - Gnu On
 Windows. I have HTTP_CLIENT set as a global environment variable to:
 wget --no-check-certificate -O per Leiningen's instructions. I'll see
 whether the upgrade process works when 2.3.3 is released. That will
 determine whether the HTTP_CLIENT bug Phil mentioned was indeed fixed
 in 2.3.2.

 Good to know that your installer packages an appropriate ca file. If
 my future upgrades don't go more smoothly, I'll switch to your
 installer.

 Sean

 On Wed, Aug 21, 2013 at 10:23 AM, David Powell djpow...@djpowell.net wrote:

 On Wed, Aug 21, 2013 at 5:57 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 Does that work to upgrade an already installed version of Leiningen?


 Not really.  But if you took your existing leiningen off the path, and ran
 the installer it might get things up and running:
 It bundles a wget with an appropriate ca file, downloads the latest stable
 lein.bat, lets you select a JDK path from those available, and it ensures
 that lein.bat is on the path.

 --
 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Immutant 1.0.0 released

2013-08-20 Thread Sean Corfield
Nice! Thanx. More stuff for me to read / play with in my copious free time :)

Sean

On Tue, Aug 20, 2013 at 9:48 AM, Jim Crossley jcrossl...@gmail.com wrote:
 Here you go, Sean: http://immutant.org/news/2013/08/20/openshift-clustering/

 Feedback appreciated!

 Jim


 On Thursday, August 1, 2013 1:22:05 PM UTC-4, Sean Corfield wrote:

 Great news! Every conference I've been to lately, I've been bugging
 the OpenShift guys - I know they have been rewriting the cartridge
 spec so I'm glad to hear an Immutant cartridge is coming. Once that
 cartridge is available, I'll have a play with it (I don't have time
 right now to do anything that isn't standard / turn key).

 Sean

 On Thu, Aug 1, 2013 at 9:48 AM, Jim Crossley j...@crossleys.org wrote:
  Nice timing, Sean! :-)
 
  On Wednesday, I was able to finally get Immutant clustering successfully
  on
  OpenShift. Load-balanced messaging and web, failover for daemons and
  jobs,
  replication for caching, everything seems to work. This is with both
  HornetQ
  and Infinispan using JGroups so automatic peer discovery just works when
  I
  add a gear. I'm now working on the cartridge, though the quickstart will
  work (with a slight modification I need to push) if you want to play
  with it
  now.
 
  I'll blog about it soon.
 
  Jim
 
 
  On Thu, Aug 1, 2013 at 12:32 PM, Sean Corfield seanco...@gmail.com
  wrote:
 
  Excellent! I look forward to trying this!
 
  Any plans for a Clojure / Immutant cartridge for OpenShift?
 
  Sean
 
  On Wed, Jul 31, 2013 at 1:49 PM, Jim Crossley jcros...@gmail.com
  wrote:
   Today we finally released Immutant 1.0.0!
  
   Read about it here: http://bit.ly/imm100
  
   For those unfamiliar, Immutant is an application server for Clojure.
   It's an
   integrated platform providing web, messaging, caching, scheduling, XA
   transactions, clustering, and daemons built on JBoss AS7 that aims to
   reduce
   the incidental complexity found in real-world applications.
  
   Have fun!
   Jim
  
   --
   --
   You received this message because you are subscribed to the Google
   Groups Clojure group.
   To post to this group, send email to clo...@googlegroups.com
   Note that posts from new members are moderated - please be patient
   with
   your
   first post.
   To unsubscribe from this group, send email to
   clojure+u...@googlegroups.com
   For more options, visit this group at
   http://groups.google.com/group/clojure?hl=en
   ---
   You received this message because you are subscribed to the Google
   Groups
   Clojure group.
   To unsubscribe from this group and stop receiving emails from it,
   send
   an
   email to clojure+u...@googlegroups.com.
   For more options, visit https://groups.google.com/groups/opt_out.
  
  
 
 
 
  --
  Sean A Corfield -- (904) 302-SEAN
  An Architect's View -- http://corfield.org/
  World Singles, LLC. -- http://worldsingles.com/
 
  Perfection is the enemy of the good.
  -- Gustave Flaubert, French realist novelist (1821-1880)
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clo...@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+u...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+u...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clo...@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+u...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+u...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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

Re: Multiple Clojure contexts in the same JVM

2013-08-20 Thread Sean Corfield
Just FYI (and you probably already know this David), most of the
clojure.lang.RT class is considered an implementation detail and is
subject to change without notice. I believe 1.6 will bring a new API
that is intended to provide a supported way to embed Clojure into
JVM-based applications.

Based on posts I've seen on the mailing lists from Clojure/core folks,
I've restricted my use to just RT.var() and I load source files like
this:

RT.var( clojure.core, load ).invoke( filepath );

RT.var( my.namespace, my-fun ).invoke( 1, 2, 3 ); //
(my.namespace/my-fun 1 2 3)

RT.var( my.namespace, my-var ).deref(); // access
my.namespace/my-var directly
// same as (deref #'my.namespace/my-var)

I haven't pushed too much at the boundaries of classloaders tho' so
there may well be dragons there, but the above works for me for
embedding Clojure in an existing JVM-based web application.

Sean


On Tue, Aug 20, 2013 at 1:35 PM, David Pollak
feeder.of.the.be...@gmail.com wrote:
 Howdy,

 I have an application where I need multiple independent Clojure contexts
 running in the same JVM.

 I've played around with a custom classloader, but when I try to eval code
 (calling RT.eval.invoke via reflection), I wind up with:

 java.lang.ClassCastException: clojure.core$eval1 cannot be cast to
 clojure.lang.IFn


 It seems that someplace the clojure.lang.IFn interface is being loaded
 around my classloader.

 Can someone point me to a way to run multiple Clojure contexts in the same
 JVM?

 Thanks,

 David

 PS -- Interestingly, invoking RT.loadResourceScript via reflection works
 just fine... so my current workaround is to do that... but it's less than
 optimal.

 --
 Telegram, Simply Beautiful CMS https://telegr.am
 Lift, the simply functional web framework http://liftweb.net
 Follow me: http://twitter.com/dpp
 Blog: http://goodstuff.im

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: send agent inside doseq

2013-08-20 Thread Sean Corfield
Very likely Juan, as seen here:

(let [agents (map agent (range 30 35))]
  (doseq [a agents]
(send a + 100)
(println @a))
  (doseq [a agents]
(println @a)))

For me that prints:

30
31
32
33
34
130
131
132
133
134

but I suspect that's more luck that anything since there's no reason
the agent operations need to have finished before the second println.

Kuba, as a separate issue, why are you trying to intern all those
symbols? It's not very idiomatic.

Sean


On Tue, Aug 20, 2013 at 4:49 PM, juan.facorro juan.faco...@gmail.com wrote:
 If on the println you don't see the value updated, it's probably because the
 operation sent to the agent wasn't applied yet.

 Add a (Thread/sleep 500) in between the send and println expressions and
 you'll see the expected agents'.

 Cheers,

 JF


 On Wednesday, August 21, 2013 12:21:59 AM UTC+1, Kuba Roth wrote:

 Hi there,
 I've got a range of values and I'd like to run agents for each value per
 thread. For some reason I've got only one agents being updated.
 Not sure what's wrong here but I suspect  must be doing something terrible
 stupid...

 Thanks!

 (doseq [s (range 30 35)]
;(println (format _%s s))
(intern *ns* (symbol (format _%s s) ) (agent s)) ;; set
 initial value
(send @(intern *ns* (symbol (format _%s s))) + 100)  ;; send
 agent and update value
(println @(intern *ns* (symbol (format _%s s)) ));; deref
  )

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: as- macro enhancement request?

2013-08-20 Thread Sean Corfield
Your example could be written:

(- foo
bar
(baz quuz)
blah)

But I suspect you meant something like this:

(- foo
bar
(as-  (baz whiz  quuz))
blah)

In other words, you use as- with - for just those cases where you
need something that isn't in the first or last argument position.

That's why it's (as- expr name  forms) with the expression in the
first argument position.

Sean



On Tue, Aug 20, 2013 at 6:52 PM, Ken Restivo k...@restivo.org wrote:
 I like the as- macro, mostly because it'd theoretically obviate the need to 
 include the Swiss Arrows library anymore.

 There's one reason why I keep going back to Swiss Arrows though: the ability 
 to include single-arg functions in the chain that do not have the explicit 
 token.

 i.e. in Swiss Arrows, I can do:

 (- foo
  bar
  (baz  quux)
  blah)

 Note, it's clean and simple, no need for a bunch of noise and 's where not 
 needed, only when calling functions with arity  1.

 But with as-, I have to do:

 (as-  foo
  (bar )
  (baz  quux)
  (blah ))

 And that just seems unnecessarily noisy to me.


 Would love it if as- allowed removing unnecessary characters, this way:

 (as-  foo
  bar
  (baz  quux)
  blah)


 Anyway, very minor quibble, just putting it out there.

 Thanks.

 -ken

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.2 released

2013-08-20 Thread Sean Corfield
Upgrading on Mac/Linux was painless as usual - and everything here
seems to run fine with 2.3.2 - but Windows continues to be a pain in
the rear...

You can't lein upgrade so I updated the version string in lein.bat and
tried lein self-install:

C:\Users\Seanlein self-install
Downloading Leiningen now...
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\gow/etc/wgetrc
--2013-08-20 22:01:41--
https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar
Resolving cloud.github.com... 54.240.188.252, 54.230.71.6, 54.230.70.21, ...
Connecting to cloud.github.com|54.240.188.252|:443... connected.
WARNING: cannot verify cloud.github.com's certificate, issued by
`/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance
CA-3':
  Self-signed certificate encountered.
WARNING: certificate common name `*.cloudfront.net' doesn't match
requested host name `cloud.github.com'.
HTTP request sent, awaiting response... 403 Forbidden
2013-08-20 22:01:41 ERROR 403: Forbidden.

Failed to download
https://cloud.github.com/downloads/technomancy/leiningen/leiningen-2.3.2-standalone.jar

You can't download that file via a browser either:

This XML file does not appear to have any style information associated
with it. The document tree is shown below.
Error
CodeAccessDenied/Code
MessageAccess Denied/Message
RequestIdBBF8809DA1520371/RequestId
HostId
Laq6Bi6lZlah+zalsro6LbnHl2hKt0fDsZO1Tvu6spiEjq8CghIMHLDSwk7XTm+k
/HostId
/Error

I have HTTP_CLIENT set to wget --no-check-certificate -O as a global
environment variable.

Is this just a problem upgrading from 2.1.3 that is - finally - going
to be a thing of the past from now on, or is there still work to do?

Sean


On Tue, Aug 20, 2013 at 3:11 PM, Phil Hagelberg p...@hagelb.org wrote:

 Hello everybody.

 I'm happy to announce the release of Leiningen 2.3.2, a minor bugfix
 release over 2.3.1. Changes include the following:

 * Write `.nrepl-port` file for better tool interoperability. (Phil Hagelberg)
 * Support targeted upgrades in `lein.bat`. (Shantanu Kumar)
 * Warn when projects rely on implicit AOT of `:main`. (Phil Hagelberg)
 * Fix a bug where implicit AOT of `:main` was disabled. (Phil Hagelberg)
 * Disable profile isolation by default. Will be back in 3.x. (Phil Hagelberg)

 The biggest change here the disabling of profile isolation (a new by
 default due to incompatibilities with certain projects that hard-code
 paths. Profile isolation was a new feature in 2.3.0 described in the FAQ:

 Leiningen supports isolating different profiles by their target
 directory. Simply specify `:target-path target/%s` in order to have
 each profile set use a different directory for generated files. Then you
 can put your `:aot` settings in the `:uberjar` profiles, and the .class
 files created from the AOT process will not affect normal development
 use. You can specify the profile-isolated `:target-path` in your `:user`
 profile if you want it applied across all the projects you work on.

 I still recommend using profile isolation since it helps avoid a number
 of subtle gotchas around stale AOT files and user-level dependencies
 being visible with downstream consumers, but you now have to opt-in to
 this feature by setting :target-path as described above.

 We've also fixed a bug where setting :main without setting :aot would no
 longer implicitly compile the :main namespace. It's still recommended to
 be explicit about what :aot you need, (in the :uberjar profile if
 applicable) but the old behaviour has been restored.

 You'll also want to add a .gitignore entry for the new .nrepl-port file
 which we're using for improved cross-tool compatibility; discussion of
 that feature is here: https://github.com/technomancy/leiningen/issues/1296

 Thanks!

 -Phil



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: send agent inside doseq

2013-08-20 Thread Sean Corfield
On Tue, Aug 20, 2013 at 9:31 PM, Kuba Roth kuba.r...@gmail.com wrote:
 The reason I looked into 'intern' can only be explained by totally lack of
 experience in Clojure and more general functional programming.

Ah, is your background OOP?

You'll find the functional world is pretty different. No variables
in the traditional sense, no uncontrolled mutation, no loops in the
traditional sense, no state in the OOP sense.

def and defn only create top-level definitions - bindings of values to
symbols - and intern is really an implementation detail that you want
to keep away from.

As you can see from my example, you can create a sequence of agents
easily enough as a data structure, and then you can perform operations
on that data structure. Agents provide controlled mutation in that
they start out with an initial value and you send them a series of
function invocations and they take on new values as each function
invocation is applied asynchronously.

I wonder what you might be trying to achieve? Or perhaps this is just
initial experimentation? One thing you'll find about Clojure is how
rarely you need mutation.

At World Singles we have about 18,000 lines of Clojure with just two
agents (used to provide measured asynchronous DB updates for a couple
of very specific situations) and 27 atoms, which are nearly all just
caches - only half a dozen of those are really mutable state (and
we're consolidating that).

Welcome to Clojure!
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


[ANN] FW/1 0.2.1 for Clojure released

2013-08-19 Thread Sean Corfield
What:
Framework One - a lightweight MVC framework for convention-based
Clojure web application development.

Where:
https://github.com/framework-one/fw1-clj

Usage:
Easiest way to get started:
lein new fw1 myapp  cd myapp  PORT= lein run
Now you have a minimal web application running on port  (via Jetty)

What's new?
0.2.1 Introduces support for the Selmer templating library
(previously FW/1 only supported Enlive). Selmer provides Django-style
HTML templates with {% code blocks %} and {{variable}} substitution.
Thank you Yogthos!

History:
FW/1 was originally created in 2009 and became one of the most
popular MVC frameworks for CFML so I ported it to Clojure in 2011 but
I haven't promoted it much yet. With Selmer support, FW/1 becomes much
easier to use so I'm hoping it can become a popular option for
Clojure!
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: Current state of the art in Web deployment?

2013-08-18 Thread Sean Corfield
On Sun, Aug 18, 2013 at 9:21 AM, John Jacobsen eigenhom...@gmail.com wrote:
 My main concern was just the need to ssh into the server and run leiningen in 
 the background, as opposed to setting up a real server which starts at boot 
 time.  I'm OK w/ wrapping 'lein ring server-headless' with Apache/Nginx, if 
 there are no known issues w/ that approach.

We have a number of processes that we kick off via lein-daemon. We
have a standard shell script that mimics standard 'service' operations
(start, stop, status, restart) and wraps 'lein daemon ...' commands,
and we just symlink it into /etc/init.d to create service files so our
processes launch at server startup, and we can stop/start them as
needed around deploys.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


[ANN] clj-time 0.6.0 released - some API deprecations

2013-08-18 Thread Sean Corfield
What:
A Clojure wrapper for Joda Time

Where:
https://github.com/clj-time/clj-time

Details:
An API cleanup that deprecates several inconsistent / abbreviated
names and introduces preferred replacements. Deprecated API will
remain under 0.7.0 so you will have plenty of time to update your
code.

Thanx:
https://github.com/michaelklishin/
https://github.com/bitemyapp/ aka callen on #clojure freenode
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: What's your preference, partial or closures?

2013-08-18 Thread Sean Corfield
You're crazy :)

On Sun, Aug 18, 2013 at 9:04 PM, Chris Allen callen.2...@gmail.com wrote:
 Am I crazy or does this scream macro?

 On Saturday, August 17, 2013 6:02:03 PM UTC-7, Sean Corfield wrote:

 On Sat, Aug 17, 2013 at 5:43 PM, yair yair...@gmail.com wrote:
  What do you mean by currying in this context?  Is there a way to do this
  in
  clojure apart from using partial?

 (defn some-func
   ([a b c] (process a b c))
   ([a b]   (fn [c] (some-func a b c)))
   ([a] (fn ([b] (fn [c] (some-func a b c)))
([b c] (some-func a b c)

 (some-func 1 2 3)
 ((some-func 1 2) 3)
 (((some-func 1) 2) 3)
 ((some-func 1) 2 3)
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: vec to map with consolidated vals

2013-08-17 Thread Sean Corfield
Ah, I misunderstood your requirements, but I'm glad it led you in the
right direction!

On Fri, Aug 16, 2013 at 10:40 PM, David Chelimsky dchelim...@gmail.com wrote:
 Thanks for the suggestions Sean and Ben. I learned new functions from both
 of you!

 Sean, your suggestion yields the following:

 (to-consolidated-map [[:a 1] [:b 2] [:a 3]])
 ; {:a (1 3) :b (2)}

 So it still needs to reduce the vals using +. That led me to this:

 (defn to-consolidated-map [parts]
   (apply merge-with + (map (fn [[k v]] {k v}) parts)))

 Which led me to this:

 (defn to-consolidated-map [parts]
   (apply merge-with + (map (partial apply hash-map) parts)))

 I like this one because it describes the solution the way I thought about it
 - I just didn't know about merge-with. It also has the benefit of using core
 fns rather than anonymous fns. WDYT?

 On Sat, Aug 17, 2013 at 7:23 AM, Sean Corfield seancorfi...@gmail.com
 wrote:

 How about this:

 (defn to-consolidated-map [parts]
   (apply merge-with concat
 (map (fn [[k v]] {k (list v)}) parts)))

 On Fri, Aug 16, 2013 at 9:57 PM, David Chelimsky dchelim...@gmail.com
 wrote:
  I've got a vector of 2-element vectors e.g. [[:a 1] [:b 2]] where the
  first
  val of any vec might appear in another vec e.g. [[:a 1] [:b 2] [:a 3]].
  I
  need a fn that will consolidate this into a hash-map with the vals
  consolidated e.g.
 
  (to-consolidated-map [[:a 1] [:b 2] [:a 3]])
  ; {:a 4 :b 2}
 
  I've got two candidate implementations and I'm curious which you like
  better
  and why, or if I'm missing a better way:
 
  (defn to-consolidated-map [parts]
(reduce (fn [h [k v]]
  (if (contains? h k)
(assoc h k (+ (k h) v))
(assoc h k v)))
{} parts))
 
  (defn to-consolidated-map [parts]
  (- parts
 (group-by first)
 (map (fn [[k v]] [k (- v (map last) (reduce +))]
 
  TIA,
  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
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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


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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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

Re: function creation, partial or #()

2013-08-17 Thread Sean Corfield
Gosh darn... yes, that is what I want. That must be the only
combination of things I didn't try! Thank you.

On Sat, Aug 17, 2013 at 4:18 AM, Jay Fields j...@jayfields.com wrote:
 Sean, it sounds like you want

 (swap! some-a update-in [:k1 :k2] (fnil conj []) id)

 But that's based on some pretty limited context.


 On Friday, August 16, 2013, Sean Corfield wrote:

 On Fri, Aug 16, 2013 at 4:32 PM, Timothy Baldridge tbaldri...@gmail.com
 wrote:
  I'm just going to throw this out there, but I almost always consider
  using
  #() instead of (fn []) to be bad practice.

 I still use #() for anonymous single argument functions that are
 small, single forms, but I've started switching to (fn [..] ..) for
 anything even slightly more complex because, like you, I find having a
 named argument to be worth the extra typing, even if it is just a
 single letter, suggestive of the argument type.

 Today I found myself writing (fnil #(conj % id) []) a couple of times
 because (fnil (fn [v] (conj v id)) []) doesn't seem any clearer - but
 suggestions for nicer code are always welcome. It's part of (swap!
 some-atom update-in [:path :to :item] ...) if that helps :)

 Sean

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

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: What's your preference, partial or closures?

2013-08-17 Thread Sean Corfield
On Sat, Aug 17, 2013 at 5:43 PM, yair yair@gmail.com wrote:
 What do you mean by currying in this context?  Is there a way to do this in
 clojure apart from using partial?

(defn some-func
  ([a b c] (process a b c))
  ([a b]   (fn [c] (some-func a b c)))
  ([a] (fn ([b] (fn [c] (some-func a b c)))
   ([b c] (some-func a b c)

(some-func 1 2 3)
((some-func 1 2) 3)
(((some-func 1) 2) 3)
((some-func 1) 2 3)
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Generating a Java bean via Clojure?

2013-08-16 Thread Sean Corfield
I was working with a Java library recently and needed to create a
Java bean to pass into it. It can be done via `gen-class` but it
seems kind of verbose having to explicitly write out all of the
getters and setters, and it seems you could also do it via `deftype`
but that's also rather painful (I started looking at that in the hope
of automating it via a macro but it seemed difficult to have
overloaded constructors and I needed both a no-arg constructor and one
that took all the bean attributes).

What do people do when they need a Java bean for interop when using
Clojure with a Java library? This seems like it should be common
enough that I would have expected it to be part of clojure.java.data
but it isn't...

Just a class name and a list of property names and (perhaps optional)
types should be all the ceremony we need to write... and I don't want
to reinvent the wheel if that is already out there somewhere?
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: What's your preference, partial or closures?

2013-08-16 Thread Sean Corfield
I went down the partial path for a long time but have moved more and
more toward currying and closures lately as it seems to produce
cleaner code - and this also seems to be the way Clojure/core have
moved with the reducers library and other places...?

Sean

On Fri, Aug 16, 2013 at 3:00 PM, Alan Shaw noden...@gmail.com wrote:
 (defn newgrid

   [m initialize qi qj]...


 and then (let [init (partial newgrid m initialize)]...


 Or else:


 (defn newgrid

   [m initialize]

   (fn [qi qj]...


 and then (let [init (newgrid m initialize)]...

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: function creation, partial or #()

2013-08-16 Thread Sean Corfield
On Fri, Aug 16, 2013 at 4:32 PM, Timothy Baldridge tbaldri...@gmail.com wrote:
 I'm just going to throw this out there, but I almost always consider using
 #() instead of (fn []) to be bad practice.

I still use #() for anonymous single argument functions that are
small, single forms, but I've started switching to (fn [..] ..) for
anything even slightly more complex because, like you, I find having a
named argument to be worth the extra typing, even if it is just a
single letter, suggestive of the argument type.

Today I found myself writing (fnil #(conj % id) []) a couple of times
because (fnil (fn [v] (conj v id)) []) doesn't seem any clearer - but
suggestions for nicer code are always welcome. It's part of (swap!
some-atom update-in [:path :to :item] ...) if that helps :)

Sean

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


Re: vec to map with consolidated vals

2013-08-16 Thread Sean Corfield
How about this:

(defn to-consolidated-map [parts]
  (apply merge-with concat
(map (fn [[k v]] {k (list v)}) parts)))

On Fri, Aug 16, 2013 at 9:57 PM, David Chelimsky dchelim...@gmail.com wrote:
 I've got a vector of 2-element vectors e.g. [[:a 1] [:b 2]] where the first
 val of any vec might appear in another vec e.g. [[:a 1] [:b 2] [:a 3]]. I
 need a fn that will consolidate this into a hash-map with the vals
 consolidated e.g.

 (to-consolidated-map [[:a 1] [:b 2] [:a 3]])
 ; {:a 4 :b 2}

 I've got two candidate implementations and I'm curious which you like better
 and why, or if I'm missing a better way:

 (defn to-consolidated-map [parts]
   (reduce (fn [h [k v]]
 (if (contains? h k)
   (assoc h k (+ (k h) v))
   (assoc h k v)))
   {} parts))

 (defn to-consolidated-map [parts]
 (- parts
(group-by first)
(map (fn [[k v]] [k (- v (map last) (reduce +))]

 TIA,
 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: clojure.java.jdbc, idiomatic way to use a connection

2013-08-14 Thread Sean Corfield
The `db-spec` can have a `:connection` member and all operations will
use that. You are responsible for closing it when you're done.
Something like (untested, off the top of my head):

(with-open [conn (get-connection db-spec)]
  (let [db (assoc db-spec :connection conn)]
...
(query db ...)
...
(insert! db ...)
...))

This sort of thing needs to be added to the (community-editable)
documentation since it's one of the most frequently asked questions:
http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html

For the most part, the way we use it at World Singles is to define a
pool datasource connection and use that as the db-spec (which _is_
documented at that URL for both c3p0 and BoneCP).

Sean


On Wed, Aug 14, 2013 at 8:02 PM, Kyle Cordes kyle.cor...@gmail.com wrote:
 Hello. I've coded quite a lot of JDBC usage in Java, and enough Clojure to
 know my way around pretty well; yet I've been unable to figure out the
 following by reading the source and docs for clojure.java.jdbc. I've read
 http://clojure.github.io/java.jdbc/ and many pages linked from there.

 The question is:

 How do I get a connection, then run a series of operations on that same
 connection? All the API I can find (except for the deprecated, pre-0.3 API)
 seems to work on a model of: give it a DB connection spec, it connects,
 runs, and disconnects. Great for playing with a command at a time, less so
 for doing a series of things that need to happen on the same connection.

 --
 Kyle Cordes
 http://kylecordes.com

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.1 released

2013-08-13 Thread Sean Corfield
Thank you!

I've upgraded our team to 2.3.1, as well as our QA system. So far, no problems.

Sean

On Tue, Aug 13, 2013 at 10:37 AM, Phil Hagelberg p...@hagelb.org wrote:

 Hello folks.

 With some help from Nelson Morris I've pushed out the 2.3.1 release of
 Leiningen. This fixes the self-install issues as well as the issue
 around AOT classes not being included in jar files. It also adds a new
 flag (:monkeypatch-clojure-test false) you can use to disable
 Leiningen's monkeypatch of the `clojure.test` library.

 As usual, if you installed manually you can upgrade with `lein
 upgrade`. If you need to back out for some reason, you can downgrade with
 `lein upgrade 2.2.0`.

 -Phil



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: calling java static member using string?

2013-08-13 Thread Sean Corfield
Perhaps clj-time might help you?

https://github.com/clj-time/clj-time

(ns time.core
  (:require [clj-time.core :as time]
[clj-time.local :as local]
[clj-time.predicates :as p]))

(p/monday? (time/now)) ;; false
(p/tuesday? (time/now)) ;; false
(p/wednesday? (time/now)) ;; true (for me in California since (time/now) is UTC)

(p/monday? (local/local-now)) ;; false
(p/tuesday? (local/local-now)) ;; true (for me)
(p/wednesday? (local/local-now)) ;; false (not yet in California)

Sean

On Tue, Aug 13, 2013 at 3:14 PM, Daniel Meneses Báez dap...@gmail.com wrote:
 Hi :)

 I really want to know if there is a way to do this:

 (ns ...
(:import [java.util Calendar]))

 (defsomething ;; if it is possible using a macro I'm ok with that
calendar-member
[member]
 (symbol (str Calendar/ member)))

 what I want to know if an instance of Calendar isMonday, isFriday
 isSunday etc...

 so I was thinking to write something like

 (defn- isss [day instant]
 (= (.get instant Calendar/DATE) (calendar-member day)))

 and then use it like (def is-friday (partial isss 'FRIDAY)) ;;

 am I being to crazy?

 btw I'm really loving the language.



 --
 Daniel Meneses Báez

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.0 released

2013-08-12 Thread Sean Corfield
On Sat, Aug 10, 2013 at 8:26 AM, Phil Hagelberg p...@hagelb.org wrote:
 None of these problems have had anything to do with SSL.

On Windows it definitely has been a problem in the past. I'm pretty
sure some users have run into problems with the S3 Amazon SSL
certificate in the past on non-Windows platforms too, but I'll defer
to you regarding the non-Windows experience.

 You can always back out of an upgrade by running `lein upgrade 2.1.3` or
 whatever; the upgrade command doesn't care which direction it's going.

Good to know that you can downgrade automatically without editing the script.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Leiningen 2.3.0 and uberjar

2013-08-12 Thread Sean Corfield
Or just:

lein do clean, compile, uberjar

On Sun, Aug 11, 2013 at 11:07 AM, Christian Sperandio
christian.speran...@gmail.com wrote:
 The workaround works fine, thanks for your help :)


 I give below the workaround, thus everybody can get it:

 $ lein clean  lein compile  lein uberjar

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.0 released

2013-08-12 Thread Sean Corfield
On Mon, Aug 12, 2013 at 9:39 AM, Phil Hagelberg p...@hagelb.org wrote:
 I recall issues around the certificate GitHub used, but I'm not aware of any
 troubles that have been reported with the Amazon certificates. We switched
 to Amazon when GitHub turned off its upload functionality at the end of
 2012, so everything from 2.0.0 onward has been on Amazon. Did the problems
 you're describing happen after the move?

I can't be certain, sorry. It did happen on my Win8 tablet but that
just means it happened something between mid-December 2012 and now, so
I don't know whether I caught the end of the Github issues there and
they just looked the same. Since Windows doesn't come with curl/wget
by default - and I'm using GOW (Gnu on Windows) rather than the
heavier Cygwin - the error message fallback isn't entirely helpful for
Windows users *smile*

 One simple thing that might help would be to include the URL and target
 location on disk in the error message so people can download by hand. The
 error message already includes instructions for how to disable certificate
 checking though, so I don't think a fallback location would help much.

See above. Those instructions assume curl or wget and a general UNIX-y
mindset...
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: IDE feature

2013-08-09 Thread Sean Corfield
On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com wrote:
 What does it do? (first time I encounter it)

DrRacket? It's the standard IDE for the Racket language (and all of
its teaching subsets etc).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] Leiningen 2.3.0 released

2013-08-09 Thread Sean Corfield
On Fri, Aug 9, 2013 at 12:14 AM, Phillip Lord
phillip.l...@newcastle.ac.uk wrote:
 Unfortunately, after upgrading the bash script, so it leaves a broken install.

I keep my lein script under Git so it was easy to revert, but we're
still on 2.1.3 because I ran into a number of problems with 2.2.0
(that I no longer remember but I did post notes about them here a
while back). I was just hoping to see if those problems were fixed in
2.3.0. I'll search the archives and see if I can find my post (and
then I'll look at the 2.3.0 release notes).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] Leiningen 2.3.0 released

2013-08-09 Thread Sean Corfield
Gmail search is defeating my efforts to locate what my problems with
2.2.0 were so I'll just wait until I can download 2.3.0 and re-run all
our tests anyway. Sigh.

On Fri, Aug 9, 2013 at 8:12 AM, Sean Corfield seancorfi...@gmail.com wrote:
 On Fri, Aug 9, 2013 at 12:14 AM, Phillip Lord
 phillip.l...@newcastle.ac.uk wrote:
 Unfortunately, after upgrading the bash script, so it leaves a broken 
 install.

 I keep my lein script under Git so it was easy to revert, but we're
 still on 2.1.3 because I ran into a number of problems with 2.2.0
 (that I no longer remember but I did post notes about them here a
 while back). I was just hoping to see if those problems were fixed in
 2.3.0. I'll search the archives and see if I can find my post (and
 then I'll look at the 2.3.0 release notes).
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: IDE feature

2013-08-09 Thread Sean Corfield
Ah, yes... it turns this ( | represents the cursor ):

(f a b (g c d |e f))

into this:

(g c d (f a b e f))

I find I use it most often when moving `let` forms around, but also
for other constructs occasionally.

Sean

On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant
abonnaireserge...@gmail.com wrote:
 I'll bet Laurent means paredit-convolute-sexpr :-)

 Ambrose


 On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com
 wrote:
  What does it do? (first time I encounter it)

 DrRacket? It's the standard IDE for the Racket language (and all of
 its teaching subsets etc).
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: IDE feature

2013-08-09 Thread Sean Corfield
Suppose I start out writing this:

(if some-expr
  (let [x (something y)]
(process x))
  (deal-with ...))

and I get to the ... and realize I need x in that expression as well.
I just place my cursor before (process x) and do M-x conv RET and I
get this code:

(let [x (something y)]
  (if some-expr
(process x)
(deal-with x)))

Similarly I can go from:

(let [x (something y)]
  (if some-expr
(process x)
(deal-with y)))

to:

(if some-expr
  (let [x (something y)]
(process x))
  (deal-with y))

with a convolute (cursor in front of (process x) again) followed by a
forward barf C-} after moving the cursor down two lines - convolute
leaves it in front of (if ...).

Sean

On Fri, Aug 9, 2013 at 8:49 AM, Laurent PETIT laurent.pe...@gmail.com wrote:


 Le vendredi 9 août 2013, Sean Corfield a écrit :

 Ah, yes... it turns this ( | represents the cursor ):


 (f a b (g c d |e f))

 into this:

 (g c d (f a b e f))

 I find I use it most often when moving `let` forms around, but also
 for other constructs occasionally.


 Sorry, maybe it's just me, but I still fail to see how to use it to help
 with moving let.
 Could you elaborate a little example with let ?


 Sean

 On Fri, Aug 9, 2013 at 8:15 AM, Ambrose Bonnaire-Sergeant
 abonnaireserge...@gmail.com wrote:
  I'll bet Laurent means paredit-convolute-sexpr :-)
 
  Ambrose
 
 
  On Fri, Aug 9, 2013 at 11:09 PM, Sean Corfield seancorfi...@gmail.com
  wrote:
 
  On Fri, Aug 9, 2013 at 6:58 AM, Laurent PETIT laurent.pe...@gmail.com
  wrote:
   What does it do? (first time I encounter it)
 
  DrRacket? It's the standard IDE for the Racket language (and all of
  its teaching subsets etc).
  --
  Sean A Corfield -- (904) 302-SEAN
  An Architect's View -- http://corfield.org/
  World Singles, LLC. -- http://worldsingles.com/
 
  Perfection is the enemy of the good.
  -- Gustave Flaubert, French realist novelist (1821-1880)
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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

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



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email

Re: [ANN] Leiningen 2.3.0 released

2013-08-09 Thread Sean Corfield
Yup, this killed my whole team for half a day today since I'd pushed
the 2.3.0 script to our repo after the upgrade worked for me, and then
hit the road for So. Cal. and everyone else then had a broken build
for the rest of the day because the upgrade process broke due to this
403 forbidden issue again. I've just reverted us to 2.1.3 again.

Can we _please_ get the Leiningen artifacts placed somewhere that
doesn't cause all sorts of SSL problems? This has been a repeated
problem over the last several releases. Mac and Windows users have
been s.o.l. each time until it is resolved.

Perhaps put Leiningen JARs on Clojars instead of this flaky custom location?

Sean

On Fri, Aug 9, 2013 at 6:32 PM, John Jacobsen eigenhom...@gmail.com wrote:
 Hi Phil, all,

 I'm still seeing the error which (I think) others have been reporting here:

 vagrant@precise32:/tmp$ lein upgrade
 Downloading Leiningen to
 /home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar now...
 /home/vagrant/bin/lein: line 57:
 /home/vagrant/.lein/self-installs/leiningen-2.3.0-standalone.jar.pending: No
 such file or directory
 /home/vagrant/bin/lein: line 63: download_failed_message: command not found
 vagrant@precise32:/tmp$

 please advise?  Thanks!

 John


 On Friday, August 9, 2013 3:17:58 PM UTC-5, Phil Hagelberg wrote:

 Hey everyone; sorry for the chaos around this release. The upload process
 is now fully automated[1] to reduce manual error, and I'm going to make sure
 a few other people have access to the S3 bucket so if something like this
 happens again it can be fixed when I'm not around.

 There's been one bug found in this release[2] that you might want to be
 aware of if you produce regular jars with AOT. (uberjars are not affected)
 The issue comments contain a workaround, but we'll be cutting a 2.3.1
 release in a few days.

 -Phil

 [1] -
 https://github.com/technomancy/leiningen/commit/9d93cdd19eaf2cd5f73242bc75c3115181326287

 [2] - https://github.com/technomancy/leiningen/issues/1283

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: IDE feature

2013-08-08 Thread Sean Corfield
On Thu, Aug 8, 2013 at 5:00 PM, Mark Engelberg mark.engelb...@gmail.com wrote:
 Getting back to the point of the original post, one of the nice features of
 DrRacket is that when you type `]`, it automatically puts either ']' or ')'

Having used DrRacket quite a bit lately, I do not find its handling of
parens to be particularly good. Regardless of whether I set it to
auto-close each opening paren or not, I constantly find myself with a
missing paren or an extra paren, or an incorrect mix of closing ))]))]
somewhere. It's not a problem I ever have in Emacs working on Clojure
- with paredit.

 this is like closing off a thought.  Paren matching is currently more
 arduous in Clojure, because you really do have to pay attention to which
 kind of delimiter you're closing off and type the right one, so I would love

Well, that's why folks advocate paredit - that problem simply goes away.

Yes, paredit is a bit of a pain to get used to at first, but it really
does remove a whole slew of issues around parentheses in code, and it
really does make you a lot more productive, especially once you learn
the structural editing commands (I am surprised at how many times I
use paredit-convolute-sexpr to help reorganize code - I'm almost at
the point of binding it to a key sequence!).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.0 released

2013-08-08 Thread Sean Corfield
It failed for me on Mac OS X 10.8.4 - this has also been a problem on
Windows for me (which doesn't have curl / wget anyway). Can we please
get the Leiningen JAR posted somewhere that is not prone to this sort
of SSL problem?

(! 536)- lein upgrade
The script at /Developer/workspace/worldsingles/build/bin/lein2 will
be upgraded to the latest stable version.
Do you want to continue [Y/n]? y

Upgrading...
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100   126  100   1260 0261  0 --:--:-- --:--:-- --:--:--   336
100 11353  100 113530 0  11459  0 --:--:-- --:--:-- --:--:--  101k

Manual self-install is deprecated; it will run automatically when necessary.
Downloading Leiningen to
/Users/sean/.lein/self-installs/leiningen-2.3.0-standalone.jar now...
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
  0 00 00 0  0  0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 403
Failed to download
https://leiningen.s3.amazonaws.com/downloads/leiningen-2.3.0-standalone.jar
It's possible your HTTP client's certificate store does not have the
correct certificate authority needed. This is often caused by an
out-of-date version of libssl. Either upgrade it or set HTTP_CLIENT
to turn off certificate checks:
  export HTTP_CLIENT=wget --no-check-certificate -O # or
  export HTTP_CLIENT=curl --insecure -f -L -o
It's also possible that you're behind a firewall haven't yet
set HTTP_PROXY and HTTPS_PROXY.

Thu Aug 08 21:10:48
(sean)-(jobs:0)-(/Developer/workspace/worldsingles)
(! 537)- HTTP_CLIENT=curl --insecure -f -L -o lein upgrade
Downloading Leiningen to
/Users/sean/.lein/self-installs/leiningen-2.3.0-standalone.jar now...
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
  0 00 00 0  0  0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 403
/usr/bin/lein: line 63: download_failed_message: command not found

Thu Aug 08 21:11:19
(sean)-(jobs:0)-(/Developer/workspace/worldsingles)

On Thu, Aug 8, 2013 at 8:28 PM, Phil Hagelberg p...@hagelb.org wrote:

 Hello everyone.

 I'm happy to announce the release of Leiningen version 2.3.0. This
 version contains mostly minor fixes, but some highlights include faster
 test runs when using selectors (by skipping fixtures), better support
 for detecting ambiguous version resolutions via :pedantic, and fixes to
 better isolate different profiles in different :target-paths.

 * Add `:eval-in :pprint` for debugging. (Phil Hagelberg)
 * Support cleaning extra dirs with `:clean-targets`. (Yoshinori Kohyama)
 * Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
 * Place licenses and readmes into jars. (Phil Hagelberg)
 * Include LICENSE as separate file in templates. (Wolodja Wentland)
 * Allow aborting on ambiguous version resolution with `:pedantic`. (Nelson 
 Morris, Phil Hagelberg)
 * Scope `:compile-path` and `:native-path` under profile-specific target dir. 
 (Phil Hagelberg)
 * Fix bug where uberjar filename would include provided profile. (Phil 
 Hagelberg)
 * Deprecate explicit `self-install` command. (Phil Hagelberg)
 * Fix bugs around long lines in jar manifests. (Leon Barrett)
 * Support nested checkout dependencies. (Phil Hagelberg)
 * Fix bugs around `:filespecs`. (Jean Niklas L'orange)

 As usual, you can get the latest version by running `lein upgrade`.

 Thanks to all the contributors who helped make this happen.

 happy hacking,
 Phil



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [ANN] Leiningen 2.3.0 released

2013-08-08 Thread Sean Corfield
I'm still getting the 403 forbidden error. Mac and Windows.

On Thu, Aug 8, 2013 at 10:06 PM, Phil Hagelberg p...@hagelb.org wrote:
 On Thursday, August 8, 2013 8:52:47 PM UTC-7, Frank Hale wrote:
 Looks like I was way too fast. Upgrading just worked for me. Thank you!


 I got the ACL wrong on the initial upload but fixed it a few minutes after
 the email went out.

 -Phil

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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


Re: [Proposal] Simplified 'ns' declaration

2013-08-06 Thread Sean Corfield
On Tue, Aug 6, 2013 at 7:51 AM, Greg g...@kinostudios.com wrote:
 (ns one.fresh-server
   (:refer-clojure :exclude [ancestors printf])
   (:use core.matrix
 [ring.adapter.jetty :only (run-jetty)]

Except most code I've seen uses (nested) vectors not lists.

 [ring.middleware.file :only (wrap-file)]
 [ring.middleware.file-info :only (wrap-file-info)]
 [ring.middleware.stacktrace :only (wrap-stacktrace)]
 [ring.util.response :only (file-response)])
   (:require [one.reload :as reload]
 [one.middleware :as middleware]
 [net.cgrand.enlive-html :as html])
   (:import (org.apache.maven.artifact.resolver ArtifactResolver)
(java.io File


 New School:

 (ns two.namespace
   [clojure [core :except (ancestors printf)]]
   [core [matrix math bs]] ; same as (:use (core matrix math bs))
   [[some-ns]] ; same as (:use some-ns)
   [ring.adapter.jetty (run-jetty :as jetty)]
   [ring.middleware.file (warp-*)] ; refers all functions beginning with
 wrap-
 ; regex not supported because too
 confusing
   [ring.middleware.file-info (wrap-file-info)]
   [ring.middleware.stacktrace (wrap-stacktrace)]
   [ring.util.response (file-response)]
   [one reload middleware]
   [net.cgrand enlive-html :as html]
   [org.apache.maven.artifact.resolver ArtifactResolver]
   [java.io File InputStream])

Why the arbitrary change from commonly used nested vectors to nested lists?

Given Timothy's protocol example, do you agree that Clojure
namespaces/vars and Java packages/classes need to be treated
differently?

Personally I think your syntax is far more cryptic than the status quo.

In my production code base (~14kloc + 4kloc for tests), we have just
one instance of :refer-clojure so I'd consider that to be a special
edge case that should _not_ be merged into another syntax. We have
four :use's at the moment, all in legacy test code. Everything else is
either :require or :import (and we only have a dozen of those). We use
(:require [... [...]]) and (:import (...)) consistently. It's clear
and easy to understand.

Deprecating (not removing) :use from ns seems reasonable but I really
don't see any value in a new unified syntax - esp. since it would have
to support the legacy syntax for several releases alongside (and then
you'd have to consider whether mixed syntax should be supported -
ugh!).
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: core.async: throwing an exception into the channel

2013-08-01 Thread Sean Corfield
My first thought was:

Since channels can have arbitrary values, how would you distinguish
your magical thrown exception value from an exception value put into
a channel for normal delivery? And no matter how you annotate that,
it'll still just be a regular value. So the only way you could have
the behavior you want would be to add special logic into every get
operation (and put operation, probably) so everyone would pay for a
feature that few will likely use...

(my second thought was Why don't get operations just get updated to
throw if they get an exception value from the channel anyway? but I
quickly realized this was the exact same problem!)

Sean

On Thu, Aug 1, 2013 at 3:19 AM, Alice dofflt...@gmail.com wrote:
 throw! is an explicit operation, and there's no special channel states
 involved. It's passing an exception like other data that just automatically
 throws it when taken. So it won't hurt anybody. You can use it when you need
 it, you can ignore it if you don't need it. Yet, it makes using async
 functions look almost identical to the sync functions.


 On Thursday, August 1, 2013 3:37:51 AM UTC+9, tbc++ wrote:

 The position of core.async is to not specify how exceptions should be done
 (instead leaving it up to the user). So if that method works well for you,
 write some macros and use it!

 Other methods may be the use of supervisor channels. In this model, go
 blocks that die would enqueue the exception into a global (or shared)
 channel and the go block would then be re-started by a monitor process.

 Both methods (and may more) are supported by core.async...it simply
 doesn't care how you handle exceptions, but it is up to you to specify how
 they are handled.

 Timothy


 On Wed, Jul 31, 2013 at 11:49 AM, Alice doff...@gmail.com wrote:

 It would be nice to have a function throw! that puts an exception into
 the channel and throws it when taken, so that I can write

 (let [c (chan)]
   (go (throw! c (Exception.)))
   (go (try
 (prn (! c))
 (catch Throwable t
   (prn exception)

 instead of

 (let [c (chan)]
   (go (! c (Exception.)))
   (go (try
 (let [res (! c)]
   (if (instance? Throwable res)
 (throw res)
 (prn res)))
 (catch Throwable t
   (prn exception)

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.com

 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com

 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+u...@googlegroups.com.

 For more options, visit https://groups.google.com/groups/opt_out.






 --
 “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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] Immutant 1.0.0 released

2013-08-01 Thread Sean Corfield
Excellent! I look forward to trying this!

Any plans for a Clojure / Immutant cartridge for OpenShift?

Sean

On Wed, Jul 31, 2013 at 1:49 PM, Jim Crossley jcrossl...@gmail.com wrote:
 Today we finally released Immutant 1.0.0!

 Read about it here: http://bit.ly/imm100

 For those unfamiliar, Immutant is an application server for Clojure. It's an
 integrated platform providing web, messaging, caching, scheduling, XA
 transactions, clustering, and daemons built on JBoss AS7 that aims to reduce
 the incidental complexity found in real-world applications.

 Have fun!
 Jim

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] Immutant 1.0.0 released

2013-08-01 Thread Sean Corfield
Great news! Every conference I've been to lately, I've been bugging
the OpenShift guys - I know they have been rewriting the cartridge
spec so I'm glad to hear an Immutant cartridge is coming. Once that
cartridge is available, I'll have a play with it (I don't have time
right now to do anything that isn't standard / turn key).

Sean

On Thu, Aug 1, 2013 at 9:48 AM, Jim Crossley j...@crossleys.org wrote:
 Nice timing, Sean! :-)

 On Wednesday, I was able to finally get Immutant clustering successfully on
 OpenShift. Load-balanced messaging and web, failover for daemons and jobs,
 replication for caching, everything seems to work. This is with both HornetQ
 and Infinispan using JGroups so automatic peer discovery just works when I
 add a gear. I'm now working on the cartridge, though the quickstart will
 work (with a slight modification I need to push) if you want to play with it
 now.

 I'll blog about it soon.

 Jim


 On Thu, Aug 1, 2013 at 12:32 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 Excellent! I look forward to trying this!

 Any plans for a Clojure / Immutant cartridge for OpenShift?

 Sean

 On Wed, Jul 31, 2013 at 1:49 PM, Jim Crossley jcrossl...@gmail.com
 wrote:
  Today we finally released Immutant 1.0.0!
 
  Read about it here: http://bit.ly/imm100
 
  For those unfamiliar, Immutant is an application server for Clojure.
  It's an
  integrated platform providing web, messaging, caching, scheduling, XA
  transactions, clustering, and daemons built on JBoss AS7 that aims to
  reduce
  the incidental complexity found in real-world applications.
 
  Have fun!
  Jim
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: core.async: async java.jdbc

2013-07-31 Thread Sean Corfield
On Wed, Jul 31, 2013 at 10:29 AM, Alice dofflt...@gmail.com wrote:
 (go
   (jdbc/db-transaction [t-con db-spec]
 (! (insert-async! t-con :fruit {:name apple}

Does this work:

(jdbc/db-transaction [t-con db-spec]
  (go
 (! (insert-async! t-con :fruit {:name apple}

-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: core.async: async java.jdbc

2013-07-31 Thread Sean Corfield
On Wed, Jul 31, 2013 at 10:58 AM, Alice dofflt...@gmail.com wrote:
 It doesn't produce a compile time error but I think it's not the correct
 code because the transaction can be committed while insert-async! is still
 executing.

Right. I was just showing how to avoid the compile error (because you
need ! in the context of the go block.

Timothy provided a good solution I think.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: how to get use clojure.contrib.import-static

2013-07-31 Thread Sean Corfield
Sounds like you're looking at a very old example - monolithic
clojure.contrib was deprecated when Clojure 1.3 came out. Some modules
had active maintainers and migrated to new modular contrib libraries.
Looking at:

http://dev.clojure.org/display/community/Where+Did+Clojure.Contrib+Go

I don't even see clojure.contrib.import-static listed which suggests
it disappeared in the Clojure 1.2 timeframe (or earlier) - so it no
longer exists in any form that you're likely to find / use with modern
releases of Clojure.

I think if you have something like: (import-static java.lang.Math PI
sqrt) and code that uses PI and sqrt directly, you can (import
java.lang.Math) and use Math/PI and Math/sqrt instead.

Sean


On Wed, Jul 31, 2013 at 4:40 PM, jayvandal jayvan...@gmail.com wrote:
 I am trying to run the snake program . I don't know how to fin this use
 clojure.contrib.import-static ?
 Any help will be appreciated!
 Thanks, jvandal

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Idiomatic use of records?

2013-07-25 Thread Sean Corfield
I tend to use plain ol' maps for data structures but was showing
someone defrecord the other day and had some questions about idiomatic
usage:

Given:

(defrecord Point [x y])

Which constructor form is considered more idiomatic:

(Point. 10 10) or (-Point 10 10)

Which accessor form is considered more idiomatic (assume pt is a Point record):

(.x pt) or (:x pt)

Are there (other) things regarding records for which idiomatic usage
would not look just like maps?
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: is intellij idea a good ide for clojure development?

2013-07-25 Thread Sean Corfield
On Thu, Jul 25, 2013 at 12:05 PM, Greg g...@kinostudios.com wrote:
 1. On IntelliJ
 2. On Emacs and Emacs Live
 3. On Light Table
 4. On Sublime Text (ST)
 5. Conclusion

I've tried IntelliJ several times and just can't on with the way it
operates. Clearly a very personal thing. I used to use Eclipse a lot -
a background in languages where Eclipse support was typically better
than other IDEs at the time I got started with them - but it is really
bloated and trying to use it on a low-powered Ubuntu netbook was the
final straw for me, which is a shame because I think Counter ClockWise
is an excellent plugin and Eclipse overall fitted my workflow better
than anything else (a few years back).

I used Emacs a lot in the 17/18/19 days (I caught the tail end of 17,
all of 18, and stopped using it just after 19 appeared). Back then, it
was the business (I was mostly a C developer back then). More on
Emacs below.

LightTable is indeed very, very interesting. I am trying to use it
exclusively one day a week for all that day's work, but the lack of
Git integration drives me bonkers (I know there will be a plugin for
it in time). I also haven't quite figured out my REPL-based workflow
in LT.

When I started doing Clojure, I used TextMate so it was an obvious
choice to try Sublime Text 2. I tried it on Mac, Windows, and Linux
and it drove me insane with its quirks, bugs, inconsistencies across
platforms and (at the time) very poor REPL integration. I know it's
gotten better but I just found it clunky and the workflow felt hacked
together. That said, three of my team love ST2.

In October 2011, I decided to give Emacs another chance - specifically
for Clojure development - and that's what I use day-in, day-out. I
have a slightly customized setup but it really doesn't have much
beyond the starter kit, rainbow delimiters and autocompletion added.
It has a huge learning curve (nay, a _cliff_!) but it is hands down
the best Clojure environment (in my opinion - and about 70% of all
Clojure developers surveyed, according to Chas's surveys).

Coming back to Emacs after about a 20 year break(!), I was surprised
to see it had only advanced to version 24 (in fact, back in October
2011, 24 was only a preview build), and it took a fair bit of getting
used to (again). Since then, two of my team have also switched
full-time from ST2 to Emacs. The third does a lot of front end web dev
and finds ST2 easier to work with - but I suspect when she starts
doing Clojure / ClojureScript work, she'll switch too.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: clojure.java.jdbc - jdbc metadata support?

2013-07-24 Thread Sean Corfield
That's great and would be a worthwhile addition but don't forget to
get your CA signed and sent in, otherwise your contributions cannot be
accepted. See http://clojure.org/contributing for more details.

Sean

On Wed, Jul 24, 2013 at 4:03 PM, Mark markaddle...@gmail.com wrote:
 I'm pretty interested in getting at least a subset of jdbc metadata support
 into clojure.java.jdbc.  I've forked the repo and will start crafting the
 API if there is no else has a similar effort going on.  I'm mostly
 interested in result set metadata.  My first thought is to extend the query
 function to support an optional metadata? key.  If true, the query
 function would attach a the data structure equivalent of the
 ResultSetMetadata structure as metadata to the returned map.

 Thoughts?

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: clojure.java.jdbc - jdbc metadata support?

2013-07-24 Thread Sean Corfield
I'll reply off-list. There's a lot of stuff in that code to digest.
I'll say straight off that I think a regex replace would make the
clojurize-java-accessor code much simpler. I suspect there are
reflection warnings in several places that will need to be addressed
and definitely some refactoring to do...

Sean

On Wed, Jul 24, 2013 at 6:47 PM, Mark markaddle...@gmail.com wrote:
 re Signing the CA:  Definitely.  I'll get that sent in ASAP.

 In the meantime, can you take a look at
 https://github.com/markaddleman/java.jdbc/commit/27a246dee7c0a06c888d827e0699bc6966725b58
 ?  I'm still a Clojure noob so I'm not sure if the approach is correct.  All
 feedback welcome.




 On Wednesday, July 24, 2013 4:21:56 PM UTC-7, Sean Corfield wrote:

 That's great and would be a worthwhile addition but don't forget to
 get your CA signed and sent in, otherwise your contributions cannot be
 accepted. See http://clojure.org/contributing for more details.

 Sean

 On Wed, Jul 24, 2013 at 4:03 PM, Mark markad...@gmail.com wrote:
  I'm pretty interested in getting at least a subset of jdbc metadata
  support
  into clojure.java.jdbc.  I've forked the repo and will start crafting
  the
  API if there is no else has a similar effort going on.  I'm mostly
  interested in result set metadata.  My first thought is to extend the
  query
  function to support an optional metadata? key.  If true, the query
  function would attach a the data structure equivalent of the
  ResultSetMetadata structure as metadata to the returned map.
 
  Thoughts?
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clo...@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+u...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+u...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: clojure.java.jdbc - jdbc metadata support?

2013-07-24 Thread Sean Corfield
Cool. I'll take a look at that and email you (hopefully tomorrow,
depending on workload!).

Sean

On Wed, Jul 24, 2013 at 10:15 PM, Mark markaddle...@gmail.com wrote:
 Thanks, Sean.  Not sure through what channel you want to communicate.

 I have pushed some changes that significantly clean up the code:

 Use reg ex as you suggest
 Eliminated reflection warnings
 Learned me a zipmap for great success


 On Wednesday, July 24, 2013 7:09:27 PM UTC-7, Sean Corfield wrote:

 I'll reply off-list. There's a lot of stuff in that code to digest.
 I'll say straight off that I think a regex replace would make the
 clojurize-java-accessor code much simpler. I suspect there are
 reflection warnings in several places that will need to be addressed
 and definitely some refactoring to do...

 Sean

 On Wed, Jul 24, 2013 at 6:47 PM, Mark markad...@gmail.com wrote:
  re Signing the CA:  Definitely.  I'll get that sent in ASAP.
 
  In the meantime, can you take a look at
 
  https://github.com/markaddleman/java.jdbc/commit/27a246dee7c0a06c888d827e0699bc6966725b58
  ?  I'm still a Clojure noob so I'm not sure if the approach is correct.
  All
  feedback welcome.
 
 
 
 
  On Wednesday, July 24, 2013 4:21:56 PM UTC-7, Sean Corfield wrote:
 
  That's great and would be a worthwhile addition but don't forget to
  get your CA signed and sent in, otherwise your contributions cannot be
  accepted. See http://clojure.org/contributing for more details.
 
  Sean
 
  On Wed, Jul 24, 2013 at 4:03 PM, Mark markad...@gmail.com wrote:
   I'm pretty interested in getting at least a subset of jdbc metadata
   support
   into clojure.java.jdbc.  I've forked the repo and will start crafting
   the
   API if there is no else has a similar effort going on.  I'm mostly
   interested in result set metadata.  My first thought is to extend the
   query
   function to support an optional metadata? key.  If true, the query
   function would attach a the data structure equivalent of the
   ResultSetMetadata structure as metadata to the returned map.
  
   Thoughts?
  
   --
   --
   You received this message because you are subscribed to the Google
   Groups Clojure group.
   To post to this group, send email to clo...@googlegroups.com
   Note that posts from new members are moderated - please be patient
   with
   your
   first post.
   To unsubscribe from this group, send email to
   clojure+u...@googlegroups.com
   For more options, visit this group at
   http://groups.google.com/group/clojure?hl=en
   ---
   You received this message because you are subscribed to the Google
   Groups
   Clojure group.
   To unsubscribe from this group and stop receiving emails from it,
   send
   an
   email to clojure+u...@googlegroups.com.
   For more options, visit https://groups.google.com/groups/opt_out.
  
  
 
 
 
  --
  Sean A Corfield -- (904) 302-SEAN
  An Architect's View -- http://corfield.org/
  World Singles, LLC. -- http://worldsingles.com/
 
  Perfection is the enemy of the good.
  -- Gustave Flaubert, French realist novelist (1821-1880)
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clo...@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your
  first post.
  To unsubscribe from this group, send email to
  clojure+u...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an
  email to clojure+u...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

-- 
-- 
You received this message because you

Re: Can we please deprecate the :use directive ?

2013-07-23 Thread Sean Corfield
We only have :use in a couple of legacy tests and two scratch
projects. We've switched from :use to :require .. :refer :all for
situations where :use used to make sense (primarily in a test ns where
we want to just refer in all of the ns being tested). We have a
handful of places where we :refer :all elsewhere because the code
reads better without ns aliases all over the place and we bring in a
lot of functions.

Certainly in blogs and documentation, :require .. :as short alias
seems a better approach for teaching / explaining things but I'm sure
I'm guilty of :use in earlier blog posts about Clojure (... checking
... yup, three blog posts from early 2012 contain :use, mostly with
:only, so those should be updated to use :require / :refer instead).

Sean

On Tue, Jul 23, 2013 at 11:27 AM, Gary Trakhman gary.trakh...@gmail.com wrote:
 We should scour clojuresphere for uses of 'use' and automatically post
 github issues to the projects of interest, and redefine the ns macro to
 issue a warning with use.

 Does anyone actually like 'use'?

 Require is always more evident.


 On Tue, Jul 23, 2013 at 2:17 PM, Jozef Wagner jozef.wag...@gmail.com
 wrote:

 +1, :use is IMO an antipattern.

 I hate it mainly in blogs, where they explain some new API. They :use like
 3 namespaces and you have to guess which fn is from which ns :)

 JW


 On Tuesday, July 23, 2013 5:50:50 PM UTC+2, Greg Slepak wrote:

 I think I read somewhere that :use is no longer encouraged, but I could
 be mistaken.

 From what I've read, it seems like most people agree that Clojure has too
 many ways of including/importing/referencing/requiring/using things:


 http://blog.8thlight.com/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html

 The above gives a very nice explanation of all the various difference,
 but it also acknowledges their complexity.

 Since :use uses :require, and since :require can do everything that :use
 can, can we simplify Clojure programming a bit for newcomers by deprecating
 the use of :use? The situation in ClojureScript is even worse because it
 adds :require-macros on top of all the other ways of including files.

 Ideally, it would be awesome if there was just a single directive for
 everything, but perhaps there's some complicated low-level reason why that's
 not possible. :-\

 Thoughts?

 Thanks,
 Greg

 P.S. If this has already been brought up you have my sincere apologies.

 --
 Please do not email me anything that you are not comfortable also sharing
 with the NSA.

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




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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Can we please deprecate the :use directive ?

2013-07-23 Thread Sean Corfield
On Tue, Jul 23, 2013 at 12:57 PM, Lee Spector lspec...@hampshire.edu wrote:
 I'm sure I'm coming from a minority perspective on this, but for the kind of 
 work I do it's often more important to be able to quickly sketch out and test 
 ideas, without any ceremony about which functions come from where, than it is 
 to ensure safety in a production environment which is really just me 
 running it right now.

 In fact I'd sometimes like to go the other way and use everything in a whole 
 directory subtree, or even to get rid of using altogether and have the 
 runtime system find the function wherever it can (within reason :-) and let 
 me know if it can't or if there's a conflict.

 I do understand that there are a great many programming contexts in which it 
 would be foolish and dangerous to manage references so loosely and implicitly 
 and dynamically. In fact it's a bad idea in some of my work too, so I'm 
 slightly more disciplined than this some of the time.

 But my point is just that different users will have different priorities, and 
 from where I sit, at least, it'd be nice to keep :use.

Well, you can always use (require '[some.ns :refer :all]) instead of
(use 'some.ns) but I recognize the former is a lot more typing.

Certainly in the REPL, working in the user ns, I can see a good
argument for (use 'some.ns) while you're evolving a solution, but I
think :use in the ns macro should be deprecated (i.e., :use should at
some point go away but perhaps the use function should stay for
REPL-based exploration?).

Tightening up the ns macro so it issues warning for undocumented
constructs would also be a good idea:

(ns some.ns
  (require [foo.bar :as f])) ;; supported and works, but really should
be :require instead!
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Can we please deprecate the :use directive ?

2013-07-23 Thread Sean Corfield
On Tue, Jul 23, 2013 at 1:53 PM, Ben Wolfson wolf...@gmail.com wrote:
 On Tue, Jul 23, 2013 at 1:50 PM, Stefan Kamphausen ska2...@gmail.com
 wrote:
 It complects require and refer ;-)
 How so?

Because use = require + refer (essentially).
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Can we please deprecate the :use directive ?

2013-07-23 Thread Sean Corfield
On Tue, Jul 23, 2013 at 2:13 PM, Ben Wolfson wolf...@gmail.com wrote:
 If that's all that's required for one thing to complect two others,
 clojure's rife with the stuff. if-let complects if and let. Destructuring
 assignment complects assignment and getting values from a data structure (as
 the macroexpansion of (let [[a b] x]) demonstrates.

Those examples provide an overall simplification for common
constructs. As the 'use' docstring says, it is Like 'require, but
also refers to each lib's namespace using clojure.core/refer. so it
explicitly combines two already somewhat complex operations.

When we added :refer to 'require' we also complected things but we
improved expressiveness and we allowed the overall 'ns' construct to
be more uniform and consistent so I think, on balance, that was a win
(and I certainly like having one construct - :require - in my ns
declarations rather than a mix of :use and :require). We probably
should have taken that opportunity to deprecate :use at the same time
but as I recall, :refer was added very late in the cycle and arguing
over deprecating :use would have detracted from the discussion of the
utility of adding :refer to :require in the first place.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Socket.IO and Clojure?

2013-07-17 Thread Sean Corfield
Just to clarify, we don't _want_ to use Socket.IO on Node.js but
combined with the client-side library it has a lot of benefits
(multiple transports, automatic fallback, good cross-browser support,
namespaces and rooms match our problem domain). The server component
is sufficiently complex that we don't want to replicate all of that
functionality ourselves.

We don't need huge scalability (at least, not in foreseeable future)
so the in-memory aspect of Node.js's implementation isn't really a
concern if we have to fallback on it and expose our services via REST
to it. We'd rather have the whole server side on the JVM however.

We can't use direct WebSockets because browser support is not good
enough (and won't be for our target market for a long time I suspect).

That's why we are looking at netty-socketio since it seems to support
the Socket.IO client out of the box and is reasonably easy to use
from Clojure.

The reasons stated above are also why we can't just use http-kit
(which was my first thought) - we need more machinery than just
WebSockets.

I had found this by Chris Granger -
https://github.com/ibdknox/clj-socketio - but it's outdated and when I
reached out to him, he confirmed the first point above - that the
server side of Socket.IO is too complex to warrant trying to replicate
ourselves (and that Socket.IO had evolved sufficiently that his
project wouldn't be a useful starting point either).

Sean

On Wed, Jul 17, 2013 at 4:37 PM, Anand Prakash anand.prak...@gmail.com wrote:
 Hi Sean,
 We are in process for going with a similar solution on clojure. Lets keep
 sharing notes.

 We were on heroku till last week. Websockets wont work on heroku. Lack of
 sticky session caused other issues. So we moved to elabstic beanstalk.
 However elastic beanstalk doesn't support jetty and I do not like tomcat.
 Plus on elastic beanstalk whenever you push code they have a down time upto
 5 minutes.
 So over the past 2 days, we moved things to chef on ec2 which I am really
 happy with. Now we have a system as easy to use as heroku, with much more
 control. I am mentioning these because you or others might go through the
 same steps.

 Coming to your main point about Socket.IO. We spent around a week exploring
 Socket.IO. It was super easy to hack up a demo, however we ended up leaving
 it for couple of reasons:
 1. Though the community looks very active in terms of forks etc, the
 development on Socket.IO is completely stopped. The dev team is focussed on
 engine.IO and they are very opaque. When you post on socket.io google group,
 posts do not have get approved. If you propose to help, you do not get any
 response.
 2. The library has lot of features - like rooms etc. However they are not
 built to scale. I looked at the code and was very disappointed. User-Room
 mapping, Room-User mapping were stored in memory which will make it not
 scale beyond a point. Bad coding (e.g. using lists traversal where hash maps
 should be used) is very common in nodejs community and I am very wary of
 developing on that platform.
 3. There was a memory leak in Socket.IO which would cause memory to increase
 linearly with usage. Given that most projects using nodejs dont move beyond
 prototypes these kind of issues do not get highlighted. I used to manage the
 mobile server at LinkedIn and we had to deal with a lot of memory leaks with
 node.js.
 4. Javascript

 So finally, if you really have to use Socket.IO, I would recommend using
 https://github.com/einaros/ws for just websocket and built everything else
 yourselves.

 I am not a big fan of keeping two different setups at the stage of our
 product. We are fine with long-poll for now. So we will start there and
 eventually get to web sockets. We are considering http://http-kit.org/ for
 that. For communication between message generators and open client sockets
 we are exploring some pub sub solution.

 Hope this helps.

 Thanks
 Anand


 On Tuesday, July 16, 2013 10:07:34 PM UTC-7, Sean Corfield wrote:

 At work we're starting down the path of building a new piece of
 functionality based on WebSockets and the external team we're working
 with is a Node.js shop so their go to solution is Socket.IO and
 they've produced a very nice front end in CoffeeScript and a prototype
 back end on Node.js.

 I'd really like to have our back end on the JVM, of course, and so I'd
 like to find a JVM-based Socket.IO solution that I use from/with
 Clojure...

 This seems like a reasonable option:

 https://github.com/mrniko/netty-socketio

 A little bit of experimentation with lein-try (Thank you Ryan!) shows
 that it's pretty easy to get a basic server up and running in the REPL
 - and I was able to get several of their demos running unchanged
 against Clojure, instead of their Java applications, so that was
 promising.

 Are there other folks out there doing Socket.IO stuff with Clojure?
 What approaches have you taken?

 Obviously, we could run Node.js and have it hit a Clojure-based REST

Re: Request for clojure help

2013-07-16 Thread Sean Corfield
On Tue, Jul 16, 2013 at 2:16 PM, Keith Maynard kpmayn...@gmail.com wrote:
 (defn perms
   ( [] [[]])

This is not pattern matching in Clojure. It defines an alternative
arity version of the function so that (perms) would return [[]].

   ([xs]

   (for [x xs p (perms (removeFirst x xs))] (cons x p))  )

 )

You need something like this:

(defn perms
  [xs]
  (if (seq xs)
(for [x xs p (perms (removeFirst x xs))] (cons x p))
[[]]))

--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Request for clojure help

2013-07-16 Thread Sean Corfield
NP. Many of us are only too happy to help folks new to Clojure get
over these humps and become productive! :)

On Tue, Jul 16, 2013 at 6:57 PM, Keith Maynard kpmayn...@gmail.com wrote:
 Wow Awesome Sean, I dropped your code in and it worked immediately

 It's quite a challenge figuring out the various idioms in all these amazing
 languages. Thanks for clearing up my attempt at a multimethod :)

 Regards,

 Keith

 On Tuesday, July 16, 2013 6:03:14 PM UTC-4, Sean Corfield wrote:

 On Tue, Jul 16, 2013 at 2:16 PM, Keith Maynard kpma...@gmail.com wrote:
  (defn perms
( [] [[]])

 This is not pattern matching in Clojure. It defines an alternative
 arity version of the function so that (perms) would return [[]].

([xs]
 
(for [x xs p (perms (removeFirst x xs))] (cons x p))  )
 
  )

 You need something like this:

 (defn perms
   [xs]
   (if (seq xs)
 (for [x xs p (perms (removeFirst x xs))] (cons x p))
 [[]]))

 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Socket.IO and Clojure?

2013-07-16 Thread Sean Corfield
At work we're starting down the path of building a new piece of
functionality based on WebSockets and the external team we're working
with is a Node.js shop so their go to solution is Socket.IO and
they've produced a very nice front end in CoffeeScript and a prototype
back end on Node.js.

I'd really like to have our back end on the JVM, of course, and so I'd
like to find a JVM-based Socket.IO solution that I use from/with
Clojure...

This seems like a reasonable option:

https://github.com/mrniko/netty-socketio

A little bit of experimentation with lein-try (Thank you Ryan!) shows
that it's pretty easy to get a basic server up and running in the REPL
- and I was able to get several of their demos running unchanged
against Clojure, instead of their Java applications, so that was
promising.

Are there other folks out there doing Socket.IO stuff with Clojure?
What approaches have you taken?

Obviously, we could run Node.js and have it hit a Clojure-based REST
API to do the integration, and that might be less pain long term
but...
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: An example app using core.async and tools.namespace

2013-07-15 Thread Sean Corfield
This is a great example of both Stuart Sierra's suggested workflow
(from his talk at Clojure/West) and of using core.async to simplify
concurrent, collaborating processes! Thanks for sharing!

Sean

On Mon, Jul 15, 2013 at 11:10 AM, mybuddymichael
michael.b.han...@gmail.com wrote:
 I recently rewrote my team's IRC bot to use tools.namespace and
 core.async. You can check out the source on GitHub at
 https://github.com/mybuddymichael/pgbot.

 To explain briefly, the bot is basically several loops communicating
 over channels. The primary processes are two async/threads, reading
 lines from the socket and printing lines to it. A few subsystems running
 in async/go blocks can each give a few channels to the connection loops.
 The two connection threads are continuously !-ing or alts!!-ing with
 those channels to distribute and gather messages.

 Even though the app is small, using channels is very nice for decoupling
 the subsystems from the connection object and its message loops. And
 using tools.namespace has been a dream for development. I can make
 changes and have a new IRC bot running with the new code in
 milliseconds. Totally dreamy stuff. My interaction with tools.namespace
 all happens through the user namespace, which is excluded from jars via
 Leiningen's profiles feature.

 Our bot is now running in production internally without any hiccups.
 Much thanks to Rich, Stuart, and the rest of the gang for building such
 cool libraries. And suggestions for improvements to the system or
 workflow are always welcome.

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN]: Introducing lein-try

2013-07-14 Thread Sean Corfield
https://github.com/rkneufeld/lein-try/issues/3

Let me know if I can help with testing or provide any additional information.

Sean

On Sun, Jul 14, 2013 at 7:42 AM, Ryan Neufeld r...@thinkrelevance.com wrote:
 Can you pop that in an issue on the project. In the mean time I'll see if I
 reproduce that problem.

 On Jul 13, 2013 11:30 PM, Sean Corfield seancorfi...@gmail.com wrote:

 It doesn't work when I spell it correctly either (and I had done
 several tests - but of course the results of misspelling it look the
 same as it not working - and it's indicative of my day that I pasted
 the result of a bad test! :)

 C:\Users\Sean\clojurelein new five
 ...
 C:\Users\Sean\clojurecd five
 C:\Users\Sean\clojure\fivelein try hiccup 1.0.2
 Retrieving lein-try/lein-try/0.1.1/lein-try-0.1.1.pom from clojars
 Retrieving lein-try/lein-try/0.1.1/lein-try-0.1.1.jar from clojars
 Retrieving org/clojure/clojure/1.2.1/clojure-1.2.1.jar from central
 nREPL server started on port 51113
 REPL-y 0.2.0
 Clojure 1.5.1
 Docs: (doc function-name-here)
   (find-doc part-of-name-here)
   Source: (source function-name-here)
  Javadoc: (javadoc java-object-or-class-here)
 Exit: Control+D or (exit) or (quit)
 user= (use 'hiccup.core)
 FileNotFoundException Could not locate hiccup/core__init.class or
 hiccup/core.clj on classpath:   clojure.lang.RT.load (RT.java:443)
 user= ^D
 Bye for now!

 C:\Users\Sean\clojure\fivecd ..
 C:\Users\Sean\clojurelein try hiccup 1.0.2
 nREPL server started on port 51183
 REPL-y 0.2.0
 Clojure 1.5.1
 Docs: (doc function-name-here)
   (find-doc part-of-name-here)
   Source: (source function-name-here)
  Javadoc: (javadoc java-object-or-class-here)
 Exit: Control+D or (exit) or (quit)
 user= (use 'hiccup.core)
 nil
 user= ^D
 Bye for now!
 C:\Users\Sean\clojure

 (and that's just to show it failing the same way on Windows 8 (with
 GNU on Windows) as it does on Mac!)

 Sean

 On Sat, Jul 13, 2013 at 9:26 PM, Ryan Neufeld r...@thinkrelevance.com
 wrote:
  It looks like you tried to use hiccup.ocre instead of core
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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

 For more options, visit https://groups.google.com/groups/opt_out.


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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members

Re: [ANN]: Introducing lein-try

2013-07-13 Thread Sean Corfield
This seems to work beautifully outside a project - and it's very
useful! I will no longer need to create a million scratch projects to
try stuff out - thank you!

However, inside a project, I can't get it to work.

(! 501)- cd clojure
(! 502)- lein try hiccup 1.0.2
nREPL server started on port 59442
...
user= (use 'hiccup.core)
nil
user= (html [:p It works!])
pIt works!/p
user= Bye for now!

(! 503)- lein new testproject
Generating a project called testproject based on the 'default' template.
To see other templates (app, lein plugin, etc), try `lein help new`.
(! 504)- cd testproject
(! 505)- lein try hiccup 1.0.2
nREPL server started on port 59477
...
user= (use 'hiccup.ocre)
FileNotFoundException Could not locate hiccup/ocre__init.class or
hiccup/ocre.clj on classpath:   clojure.lang.RT.load (RT.java:443)

user=

Inside a project, it only seems to pick up the project's deps, not add
to them. Am I doing something wrong?

Sean


On Sat, Jul 13, 2013 at 6:56 AM, Ryan Neufeld r...@thinkrelevance.com wrote:
 Hey folks,

 Don't you hate it when someone releases a cool new library and you have to go 
 into a project and add an unwanted dependency just to try it out? Worse, 
 maybe you decide to 'lein new delete-me' and add it there.

 No more! Stop this madness. Use lein-try to quickly launch a REPL with new 
 dependencies download automatically - inside of a project, or out.

 Once you've dropped [lein-try 0.1.1] in your ~/.lein/profiles.clj's :user 
 :plugins key, simply copy-paste the leiningen-style dependency after lein 
 try. For example:

 $ lein try [io.rkn/core.async 0.1.0-SNAPSHOT]
 nREPL server started on port 50472
 REPL-y 0.2.0
 Clojure 1.5.1
 Docs: (doc function-name-here)
   (find-doc part-of-name-here)
   Source: (source function-name-here)
  Javadoc: (javadoc java-object-or-class-here)
 Exit: Control+D or (exit) or (quit)

 user= (require '[clojure.core.async :as async :refer [timeout go !]])
 nil
 user= (go (! (timeout 1000)) (println Now we're cooking with 
 channels.))
 #ManyToManyChannel 
 clojure.core.async.impl.channels.ManyToManyChannel@3b43b598
 user=

 # one second later...

 Now we're cooking with channels.

 Wow, that's cool!

 Find out more or contribute at https://github.com/rkneufeld/lein-try

 -Ryan

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN]: Introducing lein-try

2013-07-13 Thread Sean Corfield
It doesn't work when I spell it correctly either (and I had done
several tests - but of course the results of misspelling it look the
same as it not working - and it's indicative of my day that I pasted
the result of a bad test! :)

C:\Users\Sean\clojurelein new five
...
C:\Users\Sean\clojurecd five
C:\Users\Sean\clojure\fivelein try hiccup 1.0.2
Retrieving lein-try/lein-try/0.1.1/lein-try-0.1.1.pom from clojars
Retrieving lein-try/lein-try/0.1.1/lein-try-0.1.1.jar from clojars
Retrieving org/clojure/clojure/1.2.1/clojure-1.2.1.jar from central
nREPL server started on port 51113
REPL-y 0.2.0
Clojure 1.5.1
Docs: (doc function-name-here)
  (find-doc part-of-name-here)
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
user= (use 'hiccup.core)
FileNotFoundException Could not locate hiccup/core__init.class or
hiccup/core.clj on classpath:   clojure.lang.RT.load (RT.java:443)
user= ^D
Bye for now!

C:\Users\Sean\clojure\fivecd ..
C:\Users\Sean\clojurelein try hiccup 1.0.2
nREPL server started on port 51183
REPL-y 0.2.0
Clojure 1.5.1
Docs: (doc function-name-here)
  (find-doc part-of-name-here)
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
user= (use 'hiccup.core)
nil
user= ^D
Bye for now!
C:\Users\Sean\clojure

(and that's just to show it failing the same way on Windows 8 (with
GNU on Windows) as it does on Mac!)

Sean

On Sat, Jul 13, 2013 at 9:26 PM, Ryan Neufeld r...@thinkrelevance.com wrote:
 It looks like you tried to use hiccup.ocre instead of core

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Multiple REPLs in Emacs? (was: test run startup time

2013-07-11 Thread Sean Corfield
On Wed, Jul 10, 2013 at 10:53 AM, Jay Fields j...@jayfields.com wrote:
 I work in emacs with 2 repls running - 1 for running my app and 1 for
 running my tests.

What is the magic to get this working and how does Emacs / nrepl.el
know which REPL to send commands to?

I've often wanted multiple active REPLs (usually for working with
multiple projects) but have never figured out how to get it working...
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: ClassCastException in APersistentVector.doEquiv with custom implementation of IPersistentVector

2013-07-11 Thread Sean Corfield
On Wed, Jul 10, 2013 at 11:00 AM, Vincent vhenneb...@gmail.com wrote:
 I guess I can proxy APersistentVector, but the Clojure docs [1] advise to
 use reify in favour to proxy whenever possible. My goal is to have my byte
 stream behave like a standard Clojure vector.

Given the definition of IPersistentVector, I would expect you to need
to provide several more method definitions?

https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/IPersistentVector.java
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Multiple REPLs in Emacs? (was: test run startup time

2013-07-11 Thread Sean Corfield
Thanx Jay. For whatever reason, multiple nREPL buffers has never
worked for me before but on reading that I suspect I may just have had
incorrect assumptions about how it was actually supposed to work...

Sean

On Thu, Jul 11, 2013 at 3:10 PM, Jay Fields j...@jayfields.com wrote:



 On Thu, Jul 11, 2013 at 5:53 PM, Sean Corfield seancorfi...@gmail.com
 wrote:

 On Wed, Jul 10, 2013 at 10:53 AM, Jay Fields j...@jayfields.com wrote:
  I work in emacs with 2 repls running - 1 for running my app and 1 for
  running my tests.

 What is the magic to get this working and how does Emacs / nrepl.el
 know which REPL to send commands to?


 I don't remember how I ended up with my current config, but I'm pretty sure
 I started here:
 https://github.com/kingtim/nrepl.el#managing-multiple-sessions

 After that, it was as easy as configuring my emacs to push compiles to both
 repls, and defaulting to 1 repl for running the app.

 https://github.com/jaycfields/unplugged-pack/blob/master/init.el#L15-L16 
 https://github.com/jaycfields/unplugged-pack/blob/master/init.el#L29-L43

 If you want multi repls for different projects, you'll probably want
 slightly different behavior.

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




[ANN] java.jdbc documentation has moved!

2013-07-09 Thread Sean Corfield
Extended documentation on java.jdbc is now available on clojure-doc.org:

http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html

This opens up contributions to the community at large so I hope to see
plenty of activity as folks send PRs for their favorite hints, tips,
and tricks with this library. I seeded that new section with updated
versions of what was previously in java.jdbc's Github repo and have
already expanded some sections. Lots more documentation will follow in
due (I promise!).

The files in the docs folder of java.jdbc's Github repo have been
removed to avoid confusion since they will be out of date going
forward.

Q for Tom Faulhaber: is there a standard autodoc way to add a URL for
related documentation to the ns in a library? I've added the new URL
as text in the ns docstring but if there's a way to generate a proper
hyperlink on clojure.github.com/java.jdbc that would seem preferable.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: how to create in-memory hsqldb database via java.jdbc

2013-07-09 Thread Sean Corfield
Feel free to submit PRs to improve the documentation at:

http://clojure-doc.org/articles/ecosystem/java_jdbc/home.html

On Mon, Jul 8, 2013 at 9:22 AM, Colin Yates colin.ya...@gmail.com wrote:
 Found it - typically - messed around for hours, then post, the find it.

 The answer is to use something like 'mem:XYZ' for the subname.

 The clue was checking in
 https://github.com/clojure/java.jdbc/blob/dd3c05b940b9a9c7a739247e2508ea6a5d55df65/src/main/clojure/clojure/java/jdbc.clj#L416
 and seeing how it actually constructs the URL then checking the expected URL
 in http://hsqldb.org/doc/guide/ch01.html#N101CA.

 To be explicit, clojure java.jdbc wasn't doing anything wrong it was my
 mistake in thinking 'mem' was enough for hsqldb.

 Sorry for the noise and hopes this help the next clueless newb :)


 On Monday, 8 July 2013 15:16:44 UTC+1, Colin Yates wrote:

 Hi,

 I am using clojure.java.jdbc with HSQLDB, but I cannot figure out how to
 create an in-memory database.  Whatever I try defaults to a file based
 instance, so:

 (def hsql-db {:classname org.hsqldb.jdbcDriver :subprotocol hsqldb
 :subname memory}) creates a file called memory.log etc. in my current
 working directory.  Whatever I put in the :subname is used as the filename.
 I have tried mem with the same effect.

 Any pointers?  Google and the java.jdbc documentation aren't helping...

 Thanks,

 Col

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: java.jdbc - (sql/where ...) with multiple values (i.e. 'x in (1,2,3')

2013-07-09 Thread Sean Corfield
clojure.java.jdbc.sql is a deliberately minimal DSL - Justin Kramer's
HoneySQL is what I recommend for more expressive SQL construction
(that's the official recommendation based on discussions Justin and
I had about java.jdbc and HoneySQL at Clojure/conj 2012).

Sean

On Mon, Jul 8, 2013 at 5:47 PM, Jeremy Heiler jeremyhei...@gmail.com wrote:
 On July 8, 2013 at 5:28:13 PM, Colin Yates (colin.ya...@gmail.com) wrote:

 Using the latest release of java.jdbc, does anybody know how I can construct
 a where clause when I want to check if the value is one of many values?

 For example, if I have a filter {:age [1 2 3 4]} then (sql/where filter)
 causes an error: Wrong data type: java.lang.NumberFormatException: For
 input string: [1 2 3 4].

 Any idea how to do this in clojure.java.jdbc?

 It doesn't look like `where` supports OR or IN at the moment.

 https://github.com/clojure/java.jdbc/blob/f9ecadd03c1c2e01f107155b03061ac0b20f976c/src/main/clojure/clojure/java/jdbc/sql.clj#L292

 Perhaps you can look at honeysql for a more sophisticated DSL?

 https://github.com/jkk/honeysql

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] clojure-sql 0.1.0: relational algebra in clojure

2013-07-06 Thread Sean Corfield
On Fri, Jul 5, 2013 at 8:53 PM, Carlo Zancanaro
carlozancan...@gmail.com wrote:
 Is there a
 reason you don't use the database's table/column name quoting? It means that
 keywords like :first-name cannot be used as table names without a fair bit
 of trouble.

The DSL in java.jdbc supports :entities and :identifiers to deal with
quoting. Sounds like a reasonable enhancement to extend that
functionality to third-party libraries as well... feel free to create
issues in JIRA.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] clojure-sql 0.1.0: relational algebra in clojure

2013-07-05 Thread Sean Corfield
And there's HoneySQL:

https://github.com/jkk/honeysql

(that's the one java.jdbc will recommend going forward since I worked
with the author, Justin Kramer, on compatibility and direction for
java.jdbc and HoneySQL at Clojure/conj last year)

On Fri, Jul 5, 2013 at 3:59 AM, r0man roman.sche...@burningswell.com wrote:
 Hi Carlo,

 if you'are looking for generating more complex SQL there's also:

 https://github.com/r0man/sqlingvo

 Roman.

 On Wednesday, July 3, 2013 10:48:07 AM UTC+2, Carlo wrote:

 Hey guys!

 I've been working on a small library to make writing SQL queries a little
 bit easier. It's along the same lines as ClojureQL, but takes a different
 approach and compiles into quite different SQL in the end.

 At the moment it's quite immature, but it should be able to support any
 queries which can be expressed in relational algebra. There will be some SQL
 queries which can't be expressed in clojure-sql, but hopefully there won't
 be too many of those. A greater limitation is that at the moment the SQL
 generation is specific to the PostgresSQL database (although any
 contributions for other databases are welcome!).

 Dependency vector: [clojure-sql 0.1.0]
 Repository: https://bitbucket.org/czan/clojure-sql
 Clojars link: https://clojars.org/clojure-sql

 Let me know what you think!

 Carlo

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: core.async

2013-06-30 Thread Sean Corfield
On Sun, Jun 30, 2013 at 4:42 PM, David Pollak dpollak...@gmail.com wrote:
 Looking forward to it
 being published (even as SNAPSHOT) in a Maven repo.

It's accessible like this:

(defproject async 0.1.0-SNAPSHOT
  :description FIXME: write description
  :url http://example.com/FIXME;
  :license {:name Eclipse Public License
:url http://www.eclipse.org/legal/epl-v10.html}
  :repositories {sonatype-oss-public
https://oss.sonatype.org/content/groups/public/}
  :dependencies [[org.clojure/clojure 1.5.1]
 [org.clojure/core.async 0.1.0-SNAPSHOT]])
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Offline Clojure docs

2013-06-30 Thread Sean Corfield
There are a couple of iPhone apps with Clojure docs:

https://itunes.apple.com/us/app/clojuredoc/id401479442?mt=8 -- free,
hasn't been updated for ages, but this is what I use anyway

https://itunes.apple.com/us/app/clojure-bee-api-documentation/id524862532?mt=8
-- $0.99, hasn't been updated in a year, no idea about this one

Sean

On Sun, Jun 30, 2013 at 4:44 PM, David Pollak dpollak...@gmail.com wrote:
 Folks,

 Is there an offline package of Clojure docs (the full core.* api docs, cheat
 sheets, etc.)?

 I'm traveling with intermittent Internet connectivity (I'm in China now and
 it's marginal but I'm going to the UP in Michigan where there's no Internet
 within 15 miles of where I'm staying).

 With all the travel and flying and such, it'd be great to have all the docs
 without having to clone all the various source repositories.

 Thanks for your help.

 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: putting 2-element colls into a map: works with vectors, but not with lists?

2013-06-24 Thread Sean Corfield
On Mon, Jun 24, 2013 at 8:49 AM, John Gabriele jmg3...@gmail.com wrote:
 Why does `into` fail when the 2-element collections are lists and not
 vectors? :

Because the implementation special cases vectors :)

It's the one place where a two element vector is treated like a
Map$Entry so that you are not forced to somehow create Map$Entry
instances for the key/value pairs.

There are some other quirks around that special casing - for example:

user= (conj {} {:a 1 :b 2})
{:b 2, :a 1}
user= (conj {} '([:a 1] [:b 2]))
ClassCastException clojure.lang.PersistentVector cannot be cast to
java.util.Map$Entry  clojure.lang.APersistentMap.cons
(APersistentMap.java:42)

So conj on a map acts like a map-preserving concat since the second
argument can be a map, not just a new key/value pair to add, yet you
cannot conj a sequence of two-element vectors onto a map.

You can see here that maps contain MapEntry elements, not actual two
element vectors:

user= (first {:a 1})
[:a 1]
user= (type (first {:a 1}))
clojure.lang.MapEntry
user= (type [:a 1])
clojure.lang.PersistentVector

Things can get even stranger if you start doing interop between
Clojure and other languages that have slightly different map
implementations...
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: database wrapper lib

2013-06-21 Thread Sean Corfield
On Fri, Jun 21, 2013 at 8:56 AM, Michael Klishin
michael.s.klis...@gmail.com wrote:
 Relational databases: https://github.com/clojure/java.jdbc (this one is not
 very extensively documented but is also small compared to Korma)

FYI, Korma is built on top of java.jdbc and if you want a different
DSL on top of java.jdbc, I highly recommend HoneySQL.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Multiple args: opts map vs inline arguments

2013-06-18 Thread Sean Corfield
What I tend to do when I run into this situation is to split my function in
two and provide:

1. an API function that accepts the key/value pairs as named arguments -
per the library coding guidelines

2. an implementation function that accepts a map of args as its last
argument (and destructures it)

then the API function delegates to the implementation function:

(defn foo* Do something [a b {:keys [c d] :or {c 1 d two}}] ...)

(defn foo Do something {:arglists '([a b :c 1 :d two])} [a b  args]
(foo* a b args))

Internal functions call whichever version is easiest to use. The arglists
metadata on foo assists users of the library:

user= (doc foo)
-
user/foo
([a b :c 1 :d two])
  Do something

Sean


On Tue, Jun 18, 2013 at 3:52 AM, James Reeves ja...@booleanknot.com wrote:

 I somewhat disagree with the coding standards in certain cases. If you
 have a large number of options, you may find yourself creating the option
 map programmatically. In which case:

 (release-sharks 2 options)

 Is preferable to:

 (apply release-sharks 2 (apply concat options))

 - James


 On 18 June 2013 06:32, dmirylenka daniilmirile...@gmail.com wrote:

 According, to the library coding standards, the first is better:

   (release-sharks 2 :laser-beams true); good
  (release-sharks 2 {:laser-beams true})  ; bad

 http://dev.clojure.org/display/design/Library+Coding+Standards


 On Tuesday, June 18, 2013 5:26:15 PM UTC+12, Omer Iqbal wrote:

 Hey folks,

 What'c considered more idiomatic when having multiple, optional
 arguments?

 (defn foo1 [a b  args]
   (let [opts (apply hash-map args]
 ...))

 or

 (defn foo2 [a b opts]
   ...)


 Cheers,
 Omer


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




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






-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Clojure in production

2013-06-18 Thread Sean Corfield
It's the dog's b*ll*cks! :)

(since we're doing cultural slang, let's get some Britishness in there!)

Sean

On Tue, Jun 18, 2013 at 9:04 PM, Russell Whitaker
russell.whita...@gmail.com wrote:
 But... is it also the bee's knees?

 Russell Whitaker
 Sent from my iPhone

 On Jun 13, 2013, at 5:38 PM, Travis Vachon travis.vac...@gmail.com wrote:

 We've used Clojure at Copious (http://copious.com) to build our
 activity feed (http://www.youtube.com/watch?v=0l7Va3-wXeI) and a
 number of backend services.

 We're definitely looking to use it even more in the future: it's the
 cat's pajamas.

 On Thu, Jun 13, 2013 at 2:07 PM, Deepak Giridharagopal
 dee...@puppetlabs.com wrote:
 On Monday, June 10, 2013 3:47:25 PM UTC-6, Plinio Balduino wrote:

 Hi there

 I'm writing a talk about Clojure in the real world and I would like to
 know, if possible, which companies are using Clojure for production or
 to make internal tools.


 Puppet Labs (http://puppetlabs.com) uses Clojure in some of our internal
 tools, commercial projects, and open source stuff. I gave a talk on PuppetDB
 (https://github.com/puppetlabs/puppetdb) at Clojure/West a few months ago.
 It's currently in production at ~10k installations across the planet.



 Thank you

 Plínio Balduino

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

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



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Newbie dependency loading issue

2013-06-17 Thread Sean Corfield
What did you put in your project.clj file?


On Mon, Jun 17, 2013 at 6:30 PM, P Martin prof.pmarti...@gmail.com wrote:
 Hi,

 I want to get the clojure.math.numeric-tower namespace into my code using:


 (require '[clojure.math.numeric-tower :as math])


 I also follow the directions on the github for the library to add a lein
 dependency in Eclipse. Unfortunately, the code does not find the library,
 even though the lein project pulls in the required jar.


 FileNotFoundException Could not locate
 clojure/math/numeric_tower__init.class or clojure/math/numeric_tower.clj on
 classpath:   clojure.lang.RT.load


 What am I doing wrong? I am using Eclipse Juno and the CCW plugin.


 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
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Clojure in production

2013-06-11 Thread Sean Corfield
The latest data from World Singles llc (which is listed on that
Success Stories page):

Clojure source 76 files 13178 total loc, 1064 fns, 554 of which are
private, 152 vars, 2 macros, 17 atoms
Clojure tests 37 files 3016 total loc
Clojure WebDriver tests 11 files 371 total loc

We're on Clojure 1.5.1 in production now. We started with 1.3.0 Alpha
7 (or 8?) and have upgraded pretty much immediately as each final
build has become available (we skipped 1.5.0 due to the memory leak
that was identified - and fixed in 1.5.1).

We generally do multi-version testing so we can easily migrate to each
version as it is released.

Sean


On Mon, Jun 10, 2013 at 3:17 PM, Plínio Balduino pbaldu...@gmail.com wrote:
 Thanks. I went there before ask here =)

 Plínio

 On Jun 10, 2013 6:58 PM, Softaddicts lprefonta...@softaddicts.ca wrote:

 Look at this:

 http://dev.clojure.org/display/community/Clojure+Success+Stories

 Luc


  Hi there
   I'm writing a talk about Clojure in the real world and I would like to
  know, if possible, which companies are using Clojure for production or
  to make internal tools.
   Thank you
   Plínio Balduino
   --  --  You received this message because you are subscribed to the
   Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send
  an email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
--
 Softaddictslprefonta...@softaddicts.ca sent by ibisMail from my ipad!

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


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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: expectations documentation

2013-06-11 Thread Sean Corfield
This is very helpful Jay, thank you!

We switched from clojure.test to Expectations after Clojure/West 2012
and we've been very happy with the framework. Centralized
documentation will certainly make life easier for my team!

Sean

On Tue, Jun 11, 2013 at 11:39 AM, Jay Fields j...@jayfields.com wrote:
 expectations* has always had a decent amount of documentation; however, it's
 traditionally been in the form of blog entries.

 I spent a bit of time and converted those entries into the following site:
 http://jayfields.com/expectations/index.html

 If you've never looked at expectations and you'd like an alternative to
 clojure.test, you might want to look at the 10 second example. If the 10
 second example looks interesting, take 2 minutes to read the introduction -
 that should give you an idea of whether or not you should invest more in
 expectations.

 Cheers, Jay

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [pre-ANN] test2, the last Clojure testing framework

2013-06-11 Thread Sean Corfield
That was what I was suggesting the other day... I see more value in
providing a standardizing test result format and better reporting
tools / integration with IDEs etc than in YATF (Yet Another testing
Framework).

On Tue, Jun 11, 2013 at 1:18 PM, Brandon Bloom
brandon.d.bl...@gmail.com wrote:
 Maybe it makes sense to separate out the 'common testing interop' effort
 from the 'another test framework' effort, so it can can get off the ground?

 I agree with this. It's easier to solve fewer problems at once. Maybe
 you should reduce the scope to just the common result reporting
 schema? At least for the first try at this.

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Best IDE

2013-06-10 Thread Sean Corfield
We have an admin option to start ( stop) a repl server inside our
application so we can nrepl from Emacs into any live running instance
and evaluate code in that live context - great for debugging only
happens on production issues as well as making interactive
development and debugging locally much easier.

We use code like this:

(ns ...
  (:require ...
[clojure.tools.nrepl.server :refer [start-server stop-server]]))

(def ^:private nrepl-server (atom nil))

(defn start-nrepl
  If a nrepl port is defined for this environment, attempt to start a
   nrepl server on that port. Will throw an exception if it's already
   running on that port etc.
  ([]
 (start-nrepl (:nrepl-port @my-settings)))
  ([port]
 (reset! nrepl-server (start-server :port port

(defn stop-nrepl
  Attempt to stop the currently active nrepl server.
  []
  (stop-server @nrepl-server))

On Mon, Jun 10, 2013 at 4:49 AM, Antonio Terreno
antonio.terr...@gmail.com wrote:
 Not sure how it's obvious or granted as I am pretty new to the clojure
 world but I am really loving having a repl namespace in our projects,
 compiling the repl file kicks in the (web) application in the same way
 it gets kicked in from the -main.

 Server goes up, any time we C-x X-s a file we also compile it and
 changes are picked up.

 As Jay said, anything special - it just works: something I missed in
 most of the IDEs I've used in the past.

 On Mon, Jun 10, 2013 at 12:32 PM, Jay Fields j...@jayfields.com wrote:
 2013/6/8 Jay Fields j...@jayfields.com

 My favorite recent addition - I can run my app from within emacs,
 allowing me to change my app with a simple C-x C-e and see my changes
 immediately in the running app (no restart, refresh or reload necessary).


 Would you mind to extend on that ?

 How is this done, exactly ?


 Sure. I assume you have some top level function that you call to 'start'
 your application. If you ever use 'lein run', then I'm probably talking
 about the -main function in whatever namespace you specify as your main
 namespace (e.g.
 https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L130)

 Let's pretend your main namespace is my-main.

 First I start a new nrepl. M-x nrepl-jack-in
 Then I open my-main in a new buffer. C-x C-f my_main.clj
 (If there isn't one already) I put a comment at the bottom of the namespace.
 c-tab
 In the comment, I put (-main) and, after the parenthesis, I C-x C-e to
 evaluate the previous form.

 At that point my app is running from within Emacs. Now I can go to any form
 in the codebase and C-x C-e, which will evaluate the form in my running
 nrepl, which is also running my app. Let's say I have some function that's
 being called every minute and printing the time via println. I can go to
 that function and change the format of the output, C-x C-e the entire
 function, and the next println will be in my new format. There are a few
 gotchas (it's problematic to redef a defmulti, once you've passed a f in as
 a parameter you can't redef it), but for the 95% case I don't need to do
 anything special - it just works.

 Cheers, Jay

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



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient 

Re: [pre-ANN] test2, the last Clojure testing framework

2013-06-09 Thread Sean Corfield
On Sun, Jun 9, 2013 at 11:07 AM, Steven Degutis sbdegu...@gmail.com wrote:
 We realized we can't change clojure.test because (1) this would break
 backwards compatibility, and (2) clojure.test is really slow-moving since it
 lives inside Clojure.

Are there any JIRA tickets open against clojure.test? That would seem
to be a good place to start.

There seem to be just three against clojure.test:

CLJ-840 Add a way to access the current test var in :each fixtures for
clojure.test
CLJ-866 Provide a clojure.test function to run a single test case with fixtures
CLJ-1209 Teach clojure.test reporting about ex-info/ex-data

Sounds like CLJ-866 was covered in the discussions around test2 - not
sure about the others?

If someone (with a signed CA on file) wants to step up and maintain
clojure.test, even tho' it's part of core Clojure right now, I expect
a way to move forward with that could be found? Perhaps adding
test.core as a new contrib library as a copy of clojure.test and
deprecating clojure.test?

But there is of course the basic question of whether a testing
framework should be part of Clojure itself (as it is now) vs a contrib
library (as test.generative is now) vs a third party library (as
Midje, Expectations, Conjecture and others are right now).

 This is when we realized that, if done right, test2 could be flexible enough
 where Midje/Speclj/Expectations could be re-written as extensions to test2.

I don't know whether a core testing library would offer enough
commonality that those frameworks' authors would consider a rewrite to
depend on a separate testing library worthwhile? Perhaps if it was a
Clojure contrib library they might?

 You're suggesting we should have started with your lib and proposed changes.

I don't think that's what Jay is saying. I certainly didn't interpret
his post that way. I think all he was saying - and I think all Brian
is saying about Midje - is that people aren't asking them for the kind
of extension points etc that you seem to want for test2. Personally, I
think Midje is too complicated for my needs - but it's certainly very
slick - so although I've looked at it a couple of times, I've never
felt like adopting it. At World Singles, we started out with
clojure.test by default and just over a year ago converted our entire
test suite to Expectations instead because it's simpler and cleaner
and much, much easier to read than clojure.test. We since wrote a
whole bunch of tests based on clj-webdriver to replace some Selenium
(HTML-based) tests and clojure.test is a better fit there so we've
started using it again, just for that. [specifically, our webdriver
tests tend to be do a bunch of browser stuff, assert some
conditions with `is`, do more browser stuff, assert more stuff,
click around some more, assert some more, etc]

Is there room for another testing framework? Certainly. Could
clojure.test be improved? Definitely. Is there some standalone
infrastructure that all testing frameworks could be based on? Maybe.
Is that compelling enough that other testing framework authors would
rewrite their libraries in terms of some common infrastructure? Given
their existing libraries work just fine - and there are Emacs modes
and auto runners for them already - I'm very skeptical.

On the other hand, there are definitely compelling tools that would
benefit from a common data structure for test run reports: displaying
results / failures to the console, feeding to JUnit HTML report
formatters (where current frameworks are pretty weak), supporting a
standard way to display red/green results in editors and IDEs (again,
existing frameworks are weak here).

My point is that folks either use clojure.test (and may grumble a bit
about its shortcomings - but not much based on how few JIRA tickets
exist) or they switch to a third party framework they prefer - but
across the board tooling is the weak spot (IMO). So I wouldn't spend
much time on the test machinery itself and the API that test2 exposes
since that's all very subjective - but I think the test result SPEC is
potentially very fruitful and could benefit all the frameworks...
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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

Re: [pre-ANN] test2, the last Clojure testing framework

2013-06-09 Thread Sean Corfield
FWIW, about the only thing about clojure.test that I miss occasionally
when using Expectations is 'each' fixtures for a subset of tests but
the work involved in wrapping an expression in a try/finally with the
resource setup and tear down I need is usually so minimal that's it's
not even worth writing a macro to standardize the boilerplate (at
least, it hasn't annoyed me sufficiently to make it worth doing yet).

Sean

On Sun, Jun 9, 2013 at 4:57 PM, Steven Degutis sbdegu...@gmail.com wrote:
 I agree, we should survey users of existing tools. The thing is, we *are*
 those users. The aforementioned brainstorming session was just what you're
 suggesting. That's what I'm suggesting this mailing list thread be.

 For example, I never use Midje's a = b outside of a macro. I always wrap
 fact around it like (fact a = b). Firstly because it's clearer to skim
 for assertions this way. Secondly it works much better with paredit. Now you
 know how I feel about Midje. If more people chime in with thoughts like
 this, then we'll have pretty good data to start with.

 -Steven

 On Sunday, June 9, 2013 6:11:38 PM UTC-5, Brian Marick wrote:


 On Jun 9, 2013, at 1:07 PM, Steven Degutis sbde...@gmail.com wrote:
  I think we all agree that it's extremely important to discuss the SPEC
  as a community. In fact, since this is a pre-ANN, let's consider this 
  thread
  the perfect place for such a discussion.

 I suggest that surveying users of the various existing tools for how they
 use them and what they want is a more important first step than worrying
 about a data model.

 For example, it would be good to know what parts of Midje that I
 personally obsess about are in fact unimportant to the typical user.

 Although open source projects (Midje, certainly) are about one's own itch,
 it also helps to see where the users are scratching.

 
 Latest book: /Functional Programming for the Object-Oriented Programmer/
 https://leanpub.com/fp-oo

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [pre-ANN] test2, the last Clojure testing framework

2013-06-09 Thread Sean Corfield
On Sun, Jun 9, 2013 at 5:50 PM, Steven Degutis sbdegu...@gmail.com wrote:
 Changing clojure.test seems like the wrong way to go. Being attached to a CA
 makes it hard to contribute to.

It's a one-off action. Sign it, send it in. Then you can contribute to
Clojure or any of its contrib libraries from then on. Not exactly
hard.

 Being attached to Clojure makes it too slow-moving.

Not true. Go look at the contrib libraries and see how they have
evolved. Nothing holds them back. The number of contributors - and the
number of libraries - is growing all the time.

 I think everyone involved in the IRC discussion agreed that clojure.test
 should be deprecated it in favor of a backward-compatible, faster-moving
 successor. I'm certainly all for it.

A backward-compatible, faster-moving successor is certainly possible
within the contrib system. It is more likely to be used as a
dependency by other libraries and it is more discoverable.

 But maybe being a contrib-lib isn't a bad idea. I really
 don't know much about them and how they work.

Don't dismiss it until you know more about them and the process
involved. If clojure.test was replaced within the contrib context, I'd
be far more likely to contribute to it than to some random third-party
library.

 But that's what I meant, that he's proposing we start with his lib and add
 extensibility in the places we want it. So my response to that still
 applies.

Your response was to a point he didn't make.

 In my experience, when a tool comes out that people think is genuinely
 better, these things work themselves out. See how nrepl.el replaced swank.
 How leiningen replaced cake. How ring+compojure placed webjure and others.
 How Clojure replaced Ruby and CL and Python for a lot of us.

True, but none of those were part of Clojure or contrib - and
tools.nrepl IS part of contrib now.

 The low number of JIRA tickets probably says more about JIRA than
 clojure.test. You said those 3 tickets were the only ones against
 clojure.test, but in the discussion there were many more complaints.

Yes, people tend to complain but don't actually do anything about it -
they don't open tickets - so nothing gets done :)
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [pre-ANN] test2, the last Clojure testing framework

2013-06-09 Thread Sean Corfield
No. Read http://dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go

On Sun, Jun 9, 2013 at 6:41 PM, Steven Degutis sbdegu...@gmail.com wrote:
 Is this still current? http://clojure.github.io/clojure-contrib/

 On Sunday, June 9, 2013 8:19:15 PM UTC-5, Sean Corfield wrote:

 On Sun, Jun 9, 2013 at 5:50 PM, Steven Degutis sbde...@gmail.com wrote:
  Changing clojure.test seems like the wrong way to go. Being attached to
  a CA
  makes it hard to contribute to.

 It's a one-off action. Sign it, send it in. Then you can contribute to
 Clojure or any of its contrib libraries from then on. Not exactly
 hard.

  Being attached to Clojure makes it too slow-moving.

 Not true. Go look at the contrib libraries and see how they have
 evolved. Nothing holds them back. The number of contributors - and the
 number of libraries - is growing all the time.

  I think everyone involved in the IRC discussion agreed that clojure.test
  should be deprecated it in favor of a backward-compatible, faster-moving
  successor. I'm certainly all for it.

 A backward-compatible, faster-moving successor is certainly possible
 within the contrib system. It is more likely to be used as a
 dependency by other libraries and it is more discoverable.

  But maybe being a contrib-lib isn't a bad idea. I really
  don't know much about them and how they work.

 Don't dismiss it until you know more about them and the process
 involved. If clojure.test was replaced within the contrib context, I'd
 be far more likely to contribute to it than to some random third-party
 library.

  But that's what I meant, that he's proposing we start with his lib and
  add
  extensibility in the places we want it. So my response to that still
  applies.

 Your response was to a point he didn't make.

  In my experience, when a tool comes out that people think is genuinely
  better, these things work themselves out. See how nrepl.el replaced
  swank.
  How leiningen replaced cake. How ring+compojure placed webjure and
  others.
  How Clojure replaced Ruby and CL and Python for a lot of us.

 True, but none of those were part of Clojure or contrib - and
 tools.nrepl IS part of contrib now.

  The low number of JIRA tickets probably says more about JIRA than
  clojure.test. You said those 3 tickets were the only ones against
  clojure.test, but in the discussion there were many more complaints.

 Yes, people tend to complain but don't actually do anything about it -
 they don't open tickets - so nothing gets done :)
 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] core.rrb-vector -- RRB-Tree-based confluently persistent vectors

2013-06-02 Thread Sean Corfield
Guidelines for contrib READMEs can be found here:
http://dev.clojure.org/display/design/Contrib+Library+READMEs

On Sat, Jun 1, 2013 at 10:58 PM, Michael Klishin
michael.s.klis...@gmail.com wrote:

 2013/6/2 Michał Marczyk michal.marc...@gmail.com

 For anybody interested in even more background, here are two additional
 links:

 1. The paper itself:

 http://infoscience.epfl.ch/record/169879/files/RMTrees.pdf


 For people who are not sure where to find the project as opposed to the
 paper it implements, here it is:
 https://github.com/clojure/core.rrb-vector

 Unfortunately, the README currently includes no dependency information.
 Beginners
 won't be able to use your project, Michal.
 --
 MK

 http://github.com/michaelklishin
 http://twitter.com/michaelklishin

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Use of io!

2013-05-30 Thread Sean Corfield
On Thu, May 30, 2013 at 1:10 AM, Alex Baranosky
alexander.barano...@gmail.com wrote:
 Do any of you ever use io! ?  I've never used it, but could see using it if
 I had a transaction-heavy application.

 On Wed, May 29, 2013 at 11:43 PM, Michael Klishin
 michael.s.klis...@gmail.com wrote:
 The point is to mark side-effecting code so that you can't accidentally
 use it in a transaction.

I gather the intent is for *all* side-effecting code to be wrapped in
io! so that you can't accidentally use it with STM transactions?

The only places in Clojure and its contribs that use this are:
* await - clojure.core
* await-for - clojure.core
* transaction - java.jdbc (deprecated)
* db-transaction - java.jdbc

It sounds like all inserts and updates in java.jdbc should also be
wrapped in io! and I would expect io! to be needed in a lot of other
places in Clojure libraries across the board...?
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: realizing a lazy line-seq inside with-open

2013-05-28 Thread Sean Corfield
On Mon, May 27, 2013 at 9:50 PM, Kevin Downey redc...@gmail.com wrote:
 doall doesn't recurse, so you are not realizing the lazy-seq, you want
 something like [msg (doall sig-strs)]

Thank you Kevin! When Elango said my suggestion didn't work, I was
puzzled. Now it makes sense!
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: I don't feel the absence of a debugger, because I've learnt enough that I don't ever need a debugger.

2013-05-28 Thread Sean Corfield
On Tue, May 28, 2013 at 1:35 PM, Softaddicts
lprefonta...@softaddicts.ca wrote:
 I came to the same conclusion as Stuart after 30+ years of coding in various
 languages/assemblers and architectures.

Interesting thread and I find myself in agreement with Luc here. I've
been programming commercially for about 30 years and I used a step
debugger back in the day with C and later C++ code but found myself
relying on it less and less over the years. I've used the step
debugger maybe three times with Clojure in the last three years, and
two of those occasions were more to see where the state of the art was
at, out of curiosity. I've hardly used step debuggers at all for the
last 15 years, since I moved to the JVM. Every now and then, I've
found a debugger to be very useful, but with the complexity of a lot
of software workflows these days, trying to hit the right breakpoints,
and step thru just the critical parts of the system, has become
increasingly difficult, compared to just adding tracing or logging at
various points.

Mark's original point is well-made: the biggest bang for our buck is
likely to come from exceptions being able to capture and automatically
display all of the in-scope vars at the point of failure. Even with a
step debugger, you still have to reproduce the failure, often
repeatedly, slowly zeroing in on the correct breakpoints in order to
analyze what caused it. The Ritz debugger, with the ability to break
on exception and display locals (if you've disabled locals clearing),
can be very helpful here but you still have to repro the failure -
which as several folks have said, is not at all easy in a complex
and/or non-deterministic system.

Worse, if the failure arises from bad data - or the failure is simply
incorrect results - then breaking on an exception won't help you
anyway, and you're back to painstakingly tracking thru code to find
where data went bad. Hammock time, careful human analysis, and
selective logging and tracing is more likely to yield results quicker
for less effort, in my opinion.

As is a comprehensive test suite :)
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: ClassNotfound Exception while loading JAR files in Clojure 1.2

2013-05-22 Thread Sean Corfield
You'll need to provide more details about exactly which Clojure JARs
you use and the stack trace for the exception (at least telling us
which class is not found and enough of the stack trace for us to see
where the reference is coming from).

My suspicion is you're using the Clojure 1.2 contrib library and
something in there refers to a now defunct class from HTMLUnit? It's
worth noting that the monolithic contrib library is no longer
maintained so you won't get any updates to that. Instead, as part of
the move to Clojure 1.3 (a couple of years back), the parts of contrib
that actually had maintainers were moved into new libraries, updated
individually. Many of them are still compatible with Clojure 1.2 but a
lot of the parts of the original contrib were abandoned for a number
of reasons.

Sean


On Tue, May 21, 2013 at 11:25 PM,  vcoman...@gmail.com wrote:

  Hi,

We have built a web application using grails framework and we use Groovy,
 Java and Clojure programming languages. We use
Clojure 1.2. The clojure files include classes from HTMLUnit. Recently
 HTMLUnit released a new version of JAR file and we were
trying to migrate the web app to new version of HTMLUnit.

   When we deploy the web app under Jetty (comes with Grails), during the
 deployment the Clojure code which uses HTMLUnit fails with ClassNotFound
 Exception.

   What is the reason for this error and any help or pointers to solve this
 issue is greatly appreciated.

Looking forward to your reply.

 Regards
  Vasu

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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: How to: reduce boolean operations?

2013-05-22 Thread Sean Corfield
On Wed, May 22, 2013 at 9:32 AM, Peter Mancini peter.manc...@gmail.com wrote:
 (defn all-true?
   [coll]
   (every? (fn [x] (= x true)) coll))

(defn all-true?
  [coll]
  (every? true? coll))
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: seancorfield /clj-soap

2013-05-20 Thread Sean Corfield
I had to revert to Axis 1.x for compatibility with some 3rd party code
I don't control that has to run in the same servlet container as our
Clojure code. The Axis 2.x wrapper looked much nicer but we couldn't
use it.

Sean

On Sat, May 18, 2013 at 5:32 PM, Marc Boschma marc.bosc...@gmail.com wrote:
 Well understood Sean!

 If I work out away to up lift the code I'll contribute that back.

 I was just checking to see if anyone else had tried.

 If, like you, I need to find another way is Axis 1.x an easier platform than 
 2.x ?The Java SOAP landscape seems overly complex.

 Marc

 I really wish the service I need to integrate with was REST based…

 On 19/05/2013, at 12:43 AM, Sean Corfield seancorfi...@gmail.com wrote:

 Since my name was invoked via mention of this repo, I figured it was a
 good chance to post from the readme:

 Note however that I am not actively maintaining this library and
 would welcome someone taking it over. I updated Tetsuya's code to use
 a more modern Clojure environment purely to test it for a problem I
 was working on - it didn't really do what I needed so I took a
 different approach (using Axis 1.x libraries at a much lower level for
 one specific web service).

 Sean

 On Fri, May 17, 2013 at 11:29 PM, marc marc.bosc...@gmail.com wrote:
 Hoping someone has already explored this. Has anyone ever used clj-soap as a
 client and managed to pass in Basic authentication credentials?

 I tried putting them into the URL to the WSDL but that did seem to work…

 Off to read up on Axis 2…



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



 --
 Sean A Corfield -- (904) 302-SEAN
 An Architect's View -- http://corfield.org/
 World Singles, LLC. -- http://worldsingles.com/

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

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



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: seancorfield /clj-soap

2013-05-18 Thread Sean Corfield
Since my name was invoked via mention of this repo, I figured it was a
good chance to post from the readme:

Note however that I am not actively maintaining this library and
would welcome someone taking it over. I updated Tetsuya's code to use
a more modern Clojure environment purely to test it for a problem I
was working on - it didn't really do what I needed so I took a
different approach (using Axis 1.x libraries at a much lower level for
one specific web service).

Sean

On Fri, May 17, 2013 at 11:29 PM, marc marc.bosc...@gmail.com wrote:
 Hoping someone has already explored this. Has anyone ever used clj-soap as a
 client and managed to pass in Basic authentication credentials?

 I tried putting them into the URL to the WSDL but that did seem to work…

 Off to read up on Axis 2…



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





--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: Why is using (not (empty? coll)) not idiomatic?

2013-05-13 Thread Sean Corfield
On Mon, May 13, 2013 at 7:08 AM, Meikel Brandmeyer (kotarak)
m...@kotka.de wrote:
 You misunderstood my argument. cycle returns a sequence = use seq. count is
 the wrong thing to call here. And calling seq without using its return value
 (with a name) is a smell. count should not be called in sequences. (In fact
 I believe that count should be O(1).)

So you think (count (map inc [1 2 3])) should be illegal?

(I'm just trying to understand your logic here)
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




[ANN] clojure.java.jdbc 0.3.0 alpha 4

2013-05-13 Thread Sean Corfield
Latest alpha build of the upcoming 0.3.0 release of Clojure's JDBC
wrapper contrib library.

TL;DR: Extensive code changes around connection handling that I'd like
to see get tested in the real world...

http://corfield.org/blog/post.cfm/clojure-java-jdbc-0-3-0-alpha-4
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: [ANN] clojure.java.jdbc 0.3.0 alpha 4

2013-05-13 Thread Sean Corfield
On Mon, May 13, 2013 at 3:01 PM, Gary Deer gdee...@gmail.com wrote:
 What are your plans for documentation beyond the doc strings?

There are some additional documentation pages, based on the doc folder
in the Github repo here:
https://github.com/clojure/java.jdbc/tree/master/doc/clojure/java/jdbc

http://clojure.github.io/java.jdbc/doc/clojure/java/jdbc/UsingSQL.html
http://clojure.github.io/java.jdbc/doc/clojure/java/jdbc/UsingDDL.html
http://clojure.github.io/java.jdbc/doc/clojure/java/jdbc/NameMapping.html
http://clojure.github.io/java.jdbc/doc/clojure/java/jdbc/ConnectionPooling.html

I'm open to suggestions :)

I think in-depth documentation for using java.jdbc probably belongs
somewhere like http://clojure-doc.org - (but I'm not quite sure where
it belongs on that site) - i.e., separate from the core/contrib
reference documentation.

 I've been
 trying to keep track of how I'm using the library and documenting my own use
 cases as much as possible.  I've also dusted off some old database
 programming books to convert some basic java examples to Clojure.  I wish I
 could help out with the effort more, but I'm not as intimate with the code
 base, so at best I can document simple things and at worst document bad
 examples.

http://clojure-doc.org is easy to contribute to so with a bit of
guidance from that team, perhaps we can start a section there for
java.jdbc documentation? And maybe move the four pieces of
documentation above from the contrib repo to the clojure-doc repo?
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

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




Re: unusual question: how do you get morale?(or moral support)

2013-05-12 Thread Sean Corfield
+100 :)

I write code because I have to. If my job doesn't have me doing much
programming, I spin up OSS projects in my spare time. When my job has
me doing hardcore programming all the time, my urges are satisfied and
my OSS projects don't get as much love. If my wife's away for the
weekend, to fill the emptiness, I write code.

My wife has several friends who are writers and artists and they all
say the same thing: they write (or paint / draw) not because they want
to, but because they have to - they're driven by some overwhelming
need or desire.

Like Tim tho', I know a lot of programmers who are not like that.
For them, it's a job. When they go home, they don't think about it,
they don't read technical books for fun, they don't write OSS. I'm
just glad people are willing to pay me for something I'd have to do
anyway to stay sane...

Sean


On Sun, May 12, 2013 at 4:03 PM, u1204 d...@axiom-developer.org wrote:
Hi. I've been meaning to ask (all of)you, how do you get moral support? How
do you put yourself into that mood so that you're happy/willing to program?
What motivates you to do it? Is it the people you surround yourself with or
the financial support? Are they enough to subconsciously motivate you? What
if you had no friends/contacts but you had time?

 Unusual question for this ML, I know, so I won't expect (m)any answers.

 I can't answer for anyone else but, for me, it is simple.
 I don't program. I AM a programmer. It is a lot like being an artist,
 I guess. You see, think, and express in painting. Or a dancer.
 See Ken Robinson's TED talk and his story about the dancer's education.
 I see, think, and express myself in programs.

 I want a program that speaks the key letter when I hit a key because
 it is hard to type while driving. I want it to tell me what letter I
 just hit so I don't have to look. Driving wastes time.

 It is Sunday @ 6pm here and I've been coding since I woke up. Prior
 to that I coded just before I went to sleep (@5am this morning).
 I program because I breathe?

 I have a LONG list of programming projects I want to do and not enough
 time to do them. I'd like to have a group of people who would work with
 me on them. I've often joked that I'm in the market for a dozen
 foreign brides so I could teach them to program and help. Local laws
 seem to frown on multiple marriages of convenience unfortunately.

 I know a lot of people who program but I know very few programmers.
 They are easy to spot though. Just look for people who get fired up when
 the watch Rich Hickey's Are We There Yet video. Look for someone who
 thinks McDonalds is the canonical example of an operating system.

 We live in the first 60 years of a new science. Think big thoughts.
 Try to throw yourself at a problem that will consume the rest of your
 life. Think about your craft, understand where it has flaws, and try
 to convince people there is a better way. Clojure is one example.
 We won't mention literate programming.

 Rich is trying to make the language he needs to cleanly express what
 he wants to do and, as a side effect, he's changing the world around
 him. You can do that too.

 Grab the Firefox sources, strip out Javascript, replace it with
 Clojure. That would completely eliminate the need for ClojureScript and
 put you dead center in the pantheon of Clojure-ites. If we could open a
 new browser tab, type Clojure in it, and then use it to drive the GPU
 graphics hardware to present a new web page... that would be cool. We
 want to open a Clojure tab and have a REPL.  We want to drag-and-drop
 the Clojure Ants demo into a tab and see it run immediately, locally,
 and natively in the browser. Now we have Clojure everywhere on anything
 using everything. Big win. Now we can socket connect your browser to my
 browser and the whole world now is a Clojure supercomputer. Bigger win.
 Who needs servers? It could change the world. (Hmm, where can I find
 that signup sheet for foreign brides... it's around here somewhere.)

 Tim Daly



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





-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

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

-- 
-- 
You received this message 

<    4   5   6   7   8   9   10   11   12   13   >