Re: too circular?
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?
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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?
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
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?
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
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 #()
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?
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?
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?
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 #()
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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?
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?
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?
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?
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 ?
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 ?
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 ?
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 ?
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?
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
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
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?
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
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
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
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
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
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
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
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!
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
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')
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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!
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
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.
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
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?
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
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
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?
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
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
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)
+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