Re: [ClojureScript] [ANN] cljs-start 0.0.5
do you think could be useful to have a similar lein-template with batteries included for a mixed cli/cljs project? cljs-start is aimed for cljs lib only. LMK My best mimmo On Nov 27, 2013, at 7:06 PM, test Comptetest un.compte.pour.tes...@gmail.com wrote: Indeed, with a fresh lein it now works. Thanks again, I'll be sure to use it with my students ! Cheers, B. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups ClojureScript group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescr...@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript. signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [ANN] Overtone 0.9.0 Released
On Wednesday, November 27, 2013 1:00:29 PM UTC-5, puzzler wrote: One point of confusion for me when installing overtone was that the docs say that the internal server doesn't work everywhere, without providing any info about what systems it is known to work on or known not to work on It does not work with 64 bit Java on Windows 7/8.1 64 bit. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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] projars.com
Hello, Clojure community. I have been following the Clojure path for nearly two years now, and have really great pleasure using it in my personal and job projects, watching the community delivering a lot of great things, most of that I have yet to taste. For some time I was incubating an idea of introducing the infrastructure which may help regular developers like myself and businesses make some income from what we are creating on daily basis, and improve the creations further. In short, on top of every open greatness, it is good to have options. The last thing I am willing to do is to build something no one needs, so I have decided to evaluate an idea. The idea is simple: introducing the commercial option to the great ecosystem we already have. Proposed http://projars.com concept is similar to well-organised clojars/leiningen/maven content delivery system but with commercial products in mind. I have put the small introduction on the site, please feel free to subscribe on site if you are interested, discuss, throw the stones in my direction etc. Again, the link is http://projars.com Any feedback will help a lot. Stanislav. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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] projars.com
Hi Stanislav, Stanislav Yurin jusk...@gmail.com writes: In short, on top of every open greatness, it is good to have options. Indeed. The last thing I am willing to do is to build something no one needs, so I have decided to evaluate an idea. The idea is simple: introducing the commercial option to the great ecosystem we already have. Proposed http://projars.com concept is similar to well-organised clojars/leiningen/maven content delivery system but with commercial products in mind. I've nothing against such a move, as long as it does not swallow some of the free software code out there. But I guess it won't. I'm working on a website where people will be able to ask donations more easily for their FLOSS achievements and future projects, I'd love to see both directions (more commercial options and more crowdfunded FLOSS libraries) encouraged at the same time. 2 cents, -- Bastien -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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] projars.com
as long as it does not swallow some of the free software code out there. I have the same fears. Josh On Thu, Nov 28, 2013 at 1:53 PM, Bastien bastiengue...@gmail.com wrote: Hi Stanislav, Stanislav Yurin jusk...@gmail.com writes: In short, on top of every open greatness, it is good to have options. Indeed. The last thing I am willing to do is to build something no one needs, so I have decided to evaluate an idea. The idea is simple: introducing the commercial option to the great ecosystem we already have. Proposed http://projars.com concept is similar to well-organised clojars/leiningen/maven content delivery system but with commercial products in mind. I've nothing against such a move, as long as it does not swallow some of the free software code out there. But I guess it won't. I'm working on a website where people will be able to ask donations more easily for their FLOSS achievements and future projects, I'd love to see both directions (more commercial options and more crowdfunded FLOSS libraries) encouraged at the same time. 2 cents, -- Bastien -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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.
Re: [ANN] projars.com
Hi, Thanks Bastien, Josh, I think we have yet to find an example of such kind of swallowing, if any exists. On contrary, we even have plenty of examples when commercial projects turned FOSS, not talking about peaceful coexistence of openness and alternative licensing schemes. And it is often a question of personal freedom for many, after all (let me begin with myself). On Thursday, November 28, 2013 12:53:22 PM UTC+2, Bastien Guerry wrote: Hi Stanislav, Stanislav Yurin jus...@gmail.com javascript: writes: In short, on top of every open greatness, it is good to have options. Indeed. The last thing I am willing to do is to build something no one needs, so I have decided to evaluate an idea. The idea is simple: introducing the commercial option to the great ecosystem we already have. Proposed http://projars.com concept is similar to well-organised clojars/leiningen/maven content delivery system but with commercial products in mind. I've nothing against such a move, as long as it does not swallow some of the free software code out there. But I guess it won't. I'm working on a website where people will be able to ask donations more easily for their FLOSS achievements and future projects, I'd love to see both directions (more commercial options and more crowdfunded FLOSS libraries) encouraged at the same time. 2 cents, -- Bastien -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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] Overtone 0.9.0 Released
It seems to me that as a music synthesis and composition system, overtone would be heavyweight for a normal app, that is one where the user doesn't compose music. For most circumstances, I think, it would make more sense to use overtone to make the music, record it, and then bundle the wav. FWIW, I found the installation documentation okay; overtone loads, readies itself and makes music (well, sounds anyway, but the difference is my fault I think), reasonably easily. There is rather a big gap between the getting started documentation and the rest. Phil Mark Engelberg mark.engelb...@gmail.com writes: A second point of confusion is that I can't determine from the docs what's involved with creating a deliverable executable app that uses overtone, as opposed to just installing it for oneself to play around with at the REPL. Do users of the app have to install supercollider separately? What about instruments like the sampled piano? Does the user have to wait several minutes for those samples to be downloaded the first time she runs the app, or is there a way to bundle all that with the app? Is there any way to get rid of the long pause when starting the server? Is overtone too heavyweight to use it embedded in an app to produce tones and/or music, and if so, is there a better way in Clojure? On Wed, Nov 27, 2013 at 9:45 AM, Samuel Aaron samaa...@gmail.com wrote: Hi Cedric, if you're interested in installing Overtone and understanding its dependencies, I highly recommend you take a look at the installation instructions on our Wiki: https://github.com/overtone/overtone/wiki/Installing-overtone If anything isn't clear or obvious - please do let me know. Happy Hacking! Sam --- http://sam.aaron.name On 27 Nov 2013, at 16:33, Cedric Greevey cgree...@gmail.com wrote: Ah, good. In the past I've been curious, but what little documentation I found seemed to imply* that there were a number of dependencies that sounded like external libraries or applications that were needed, and which (being not Java/Clojure components themselves) would not be installed automatically by Leiningen (and might not even be available for some hardware/OS combinations). Is that not the case, or else no longer the case, then? * Specifically, various software seemed to be named that I wasn't familiar with, but there was no explicit setup instructions or ingredients-needed list either. The general state of the documentation gave the impression of a pre-beta state without a well-organized setup procedure existing yet. Most other Clojure projects and libraries announced, by contrast, include such right in the announcement message -- and it's usually just add [some dependency vector] to your project.clj. If that's the case also for Overtone now, why was that not included in the announcement message? :) On Wed, Nov 27, 2013 at 2:12 AM, Samuel Aaron samaa...@gmail.com wrote: Hi Cedric, On 26 Nov 2013, at 16:45, Cedric Greevey cgree...@gmail.com wrote: Is there a turnkey download/install/play with version of this yet, or is that not until 1.0? For a Clojure developer, Overtone is already as 'turnkey' as it gets. Simply add overtone 0.9.1 to your dependencies in project.clj, start a REPL with Leiningen and then (use 'overtone.live) - your powerful music REPL awaits! Sam --- http://sam.aaron.name -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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
ANN Langohr 1.7.0 is released
Langohr [1] is a Clojure RabbitMQ client. 1.7.0 is primarily a bug fix release. Release notes: http://blog.clojurewerkz.org/blog/2013/11/28/langohr-1-dot-7-0-is-released/ 1. http://clojurerabbitmq.info -- 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.
Re: [ANN] projars.com
Hi Stanislav, just to clarify my position: I'm fine with diversity, and I don't expect any FLOSS clojure project to be swallowed. I just wanted to mention my hope of more donation-supported libraries. But that's a different issue and I don't want to hijack this thread (more than I already did... sorry!) Good luck, -- Bastien -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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 convert LISP to Java class
I would only add that from what I understand so far, it's pretty easy to use Clojure to define what Java would recognize as Java classes. (Is this wrong?) I find ABCL-Java interoperability to be workable but less pleasant. I think this has to do with the fact that ABCL takes an existing language with its own type system, etc., and allows translation to/from Java, whereas Clojure types are built on Java types from the start. On Thursday, November 28, 2013 1:10:09 AM UTC-6, Gary Verhaegen wrote: Clojure is a separate dialect of LISP that happens to run on the JVM. It is not a tool to magically turn existing LISP dialects into Java. That said, manually converting from Scheme or Common Lisp to Clojure could be relatively easy, if the LISP code is small. Clojure does not emit Java code, though, and for a more direct LISP to Java bytecode translation I would advise you to take a look at either Kawa Scheme or ABCL. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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 CLR versioning and binary downloads
On Sunday, November 24, 2013 6:56:07 AM UTC-6, Shantanu Kumar wrote: I am trying to run some tests (that worked fine with Mono+ClojureCLR 1.4.1) in Mono+ClojureCLR 1.5.0 from SourceForge and finding the below exception: $ # CLOJURE_LOAD_PATH is configured properly $ mono /path/to/clojure-clr-1.5.0-Release-4.0/Clojure.Main.exe -i /tmp/intermediate-file -e (use 'clojure.test) (run-tests 'sqlrat.template-test 'sqlrat.entity-test) FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Clojure.CljMain --- System.TypeInitializationException: An exception was thrown by the type initializer for clojure.lang.RT --- clojure.lang.Compiler+AssemblyInitializationException: Cannot find initializer for clojure.core.clj, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.clojure/core I forgot that there was some #if-conditionalized mono vs .net code introduced in 1.5.0. That would have necessitated separate DLLs for mono and .net. I just changed that for a runtime check for the platform. Sourceforge has new zips, nuget has a new package, github 1.5.0 branch and master branch updated. And confirmation from Kumar that it works. -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.
Re: .cljrc
the leinengen project has an example project.clj https://github.com/technomancy/leiningen/blob/master/sample.project.clj On Wednesday, November 27, 2013 4:53:02 PM UTC-8, Dave Tenny wrote: Thanks, I seem to have accomplished what I need for now. It was a bit frustrating to figure out exactly what I could do in profiles.clj. For example, I can't find any documentation on :injections, which was key to evaluating some code once I'd specified libraries as dependencies. Where are the full options of projects.clj and profiles.clj documented? I can't find it anywhere in the git tree except by way of example in the sample project.clj, and the tutorial. On Mon, Nov 25, 2013 at 5:49 PM, dgrnbrg dsg123...@gmail.comjavascript: wrote: Another great feature of Leiningen is the :injections key in project.clj. This lets you run arbitrary code on the Leiningen-managed JVM startup. I recommend this when using Spyscope, which is a debugging tool that only needs to be required before you can use it: https://github.com/dgrnbrg/spyscope#usage Using :injections is a powerful to customize the default referred vars, as well. On Monday, November 25, 2013 10:01:12 AM UTC-5, Moritz Ulrich wrote: Leiningen profiles in ~/.lein/profiles.clj will be merged into the current project.clj by leiningen. Also dumented in https://github.com/technomancy/leiningen/blob/stable/doc/PROFILES.mdhttps://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftechnomancy%2Fleiningen%2Fblob%2Fstable%2Fdoc%2FPROFILES.mdsa=Dsntz=1usg=AFQjCNGPecCbKEDAS5MWZP4qvsqXetVkTw On Mon, Nov 25, 2013 at 3:34 PM, Dave Tenny dave@gmail.com wrote: With all my attention on trying to learn things about clojure, I've either missed or forgotten how do to a simple thing. As I learn clojure I'm writing a few definitions that represent tools I like to use in development. What is the simplest way to have those tools present in arbitrary clojure REPLs started with lein repl, emacs cider-jack-in, etc., without putting them in project.clj files for every lein project I'm working on ? I just want to load some things into the user (or other default ns if my hypothetical .cljrc changes it) namespace and have it happen all the time, except when I'm doing release builds and such of a particular project. Suggestions? -- -- 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.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/7NWXyQsG3WU/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com javascript:. 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.
Re: How to store the results in a vector ?
I don't think you're accounting for leading and trailing whitespace. A field like: ; GasTurbine2103/01 ; Will produce a string like: GasTurbine2103/01 The only field that doesn't have leading and trailing whitespace is the timestamp, which works correctly. There's a standard Clojure function, clojure.string/trim, that will trim whitespace from a string. All we have to do it apply it in Cascalog: (?- (stdout) [?timestamp ?assembly ?category] (info-tap : ?timestamp ?assembly ?category) (clojure.string/trim ?category : ?trimmed-category) (= ?trimmed-category Warning)) See if that works. - James On 28 November 2013 20:36, sindhu hosamane sindh...@gmail.com wrote: Hi James , Thanks a lot for ur excellent reply . It really made me things clearer. But still one small problem . Below is my code : (ns sixthclojureproject.fourthcore (:use [cascalog.api] [cascalog.more-taps :only (hfs-delimited)]) (:gen-class)) (def info (hfs-delimited /Users/Harshabirur/Desktop/Screenshots/messages_new.txt :delimiter ; :outfields [?timestamp ?assembly ?category ?eventtext ?downtime ?tag ?process ?state] :skip-header? false)) (def info-tap (- [?timestamp ?assembly ?category ] ((select-fields info [?timestamp ?assembly ?category])?timestamp ?assembly ?category ))) (?- (stdout) [?timestamp ?assembly ?category ] (info-tap : ?timestamp ?assembly ?category ) (= ?timestamp 12.05.2010 06:03:15)) It produces the correct output like RESULTS --- 12.05.2010 06:03:15 GasTurbine2103/01Start Inhibit But when i have my predicate like (= ?category Warning) Also does not work for (= ?assembly GasTurbine2103/01) RESULTS --- --- I get empty result. But some results are expected , because ?category field has some Warning. But it seems like only ?timestamp field is processed in = predicate , but not other fields like ?category ?assembly or other . Just Wondering about the strange behaviour of my code . or where is it wrong? My data looks like timestamp; assembly ; category ; eventtext ; downtime ; tag ; process ; state 12.05.2010 00:38:29; GasTurbine2103/01 ; Warning ; LUB OIL SUPPLY TEMPERATURE HIGH [TC61] ;03:37:43; wng 27083 ;FALSCH; FOHs 12.05.2010 02:48:18; GasTurbine2103/01 ; Status ; INSTRUMENT AIR ASSIST PURGE IN PROGRESS ;03:37:46; sts 71000 ;FALSCH; FOHs 12.05.2010 02:48:18; GasTurbine2103/01 ; Status ;LIQUID BURNER FORWARD AIR PURGE IN PROGRESS ;03:37:49; sts 72000 ;FALSCH; FOHs 12.05.2010 02:52:19; GasTurbine2103/01 ; Start Inhibit ; Emergency Stop Loop Test In Progress ;; sti 6032 ;FALSCH; FOHs 12.05.2010 02:52:23; GasTurbine2103/01 ; Start Inhibit ; Emergency Stop Loop Test In Progress ;; sti 6032 ;FALSCH; FOHs (Attached is my datasource for reference ) sorry for my long post . Please help me to find where is it going wrong . -Sindhu -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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.
quick macro review
I wrote a macro last night and got the feeling I did what I did in a suboptimal way. I have have a migration function that I stole from technomancy that takes in the vars of migration functions: (migrate #'create-db #'add-users-table #'etc) It uses the name of the var from the metadata to record which migrations have been run. I wanted to try to make it so you didn't have to explicitly pass in the vars, and just have the migrate function call var for you. I've since decided this is a bad idea but I wrote the macro anyway just for fun. My first question is: could this be done without a macro? I didn't see how since if you write it as a function, all you recieve are the actual functions and not the vars, but I thought I'd ask to be sure. Assuming you did have to write a macro, does this implementation seem reasonable? I felt strange about using (into [] ...). https://www.refheap.com/21335 Basically I'm trying to get from (migrate f g h) to (migrate* (var f) (var g) (var h)), I'm not sure I'm doing it right. Thanks, Curtis. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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] projars.com
On Thursday, November 28, 2013 at 12:10, Stanislav Yurin wrote: Hello, Clojure community. I have been following the Clojure path for nearly two years now, and have really great pleasure using it in my personal and job projects, watching the community delivering a lot of great things, most of that I have yet to taste. For some time I was incubating an idea of introducing the infrastructure which may help regular developers like myself and businesses make some income from what we are creating on daily basis, and improve the creations further. In short, on top of every open greatness, it is good to have options. The last thing I am willing to do is to build something no one needs, so I have decided to evaluate an idea. The idea is simple: introducing the commercial option to the great ecosystem we already have. Proposed http://projars.com concept is similar to well-organised clojars/leiningen/maven content delivery system but with commercial products in mind. I have put the small introduction on the site, please feel free to subscribe on site if you are interested, discuss, throw the stones in my direction etc. Again, the link is http://projars.com Any feedback will help a lot. Hi Stanislav, It’s an interesting idea to be sure. I think that, as open source and software in general “eat the world”, there will definitely be room for interesting new ways for people to be able to contribute to the community while still putting a roof over their heads and food on their tables. Soliciting donations/tips is one model. Crowd funding is another. However, in both cases I think there is an outlier effect at play where a few people will do very well, but most will never reach sustainability. On the other hand, there are some models that I’ve seen work very well for different people: * Premium features: a project where a large chunk of the functionality is available as open source, but some critical piece (usually related to scale) is only available to paying customers. Successful projects I’ve seen work this model include Phusion Passenger, Riak, Sidekiq, and Datomic. The quite obvious difficulty with this model is that you need to have a pre-existing product, probably a fairly sizable one, before people are willing to pay for premium features. * Feature bounties: an open source project where financial backers may pay some sum to have their pet features prioritized over others. LuaJIT, famously, has been completely financed via this model. The difficulty with this model is that you probably need to have a fairly well established reputation and project before just anyone is willing to pay you for a feature (also known as: we can’t all be Mike Pall). * Commercial dual licensing: if you release an open source project under the GPL, many commercial organizations won’t use it. However, as the author of an open source project, you are free to sell these commercial organizations a copy of the software under different licensing terms. This way the open source community can benefit, and the corporate lawyers can be kept happy at the same time. This is probably best recognized as MySQL’s model, but I know of others (including Glencoe Software, my current employer) who have made this work. The difficulty here is that, since you’d be providing the same source to both the community and to commercial entities, there *could* be some amount of policing needed to ensure that commercial entities aren’t just taking the open source version and violating your license (though I think such behavior is rarer than most might think). * Early access: fairly self explanatory…if you pay you get upgrades/features/bug fixes before the community at large. The one project I can think of off the top of my head that has had great success here is PyMOL. This model is probably easiest for someone starting out, as you don’t have to worry *so* much about the source being leaked if it’ll be released generally in 6-12 months anyway. Obviously, I don’t expect that your endeavor would be suitable for all of these models. There’s also the model I left out: just sell commercial software. If you’re concerned about providing a way for people to make some money while still fostering the open source community, though, I think it would be interesting to see what you could do to provide support and/or tooling for one or more of these models. Best of luck with the endeavor regardless! Cheers, Josh -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed
Re: expand a form
thanks for your helpful suggestions. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
hash comparison
Hi, I heard Rich Hickey talking about how identity in clojure is synonymous with value-based tests of equality. To make this efficient he describes that objects store cached hashes that are used to speed up these tests of equality, so clojure isnt comparing every data member of a complex data structure. However, how does this actually work since a comparison of hashes doesn't guarantee that two objects are equal. How does clojure handle the case where two hashes are the same for two distinctly different values. Andy -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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: hash comparison
Presumably it then compares the objects element by element. If the common case is for the arguments to (= x y) to be unequal with unequal hashes, though, this is still considerably faster. On Thu, Nov 28, 2013 at 5:03 PM, Andy Smith the4thamig...@googlemail.comwrote: Hi, I heard Rich Hickey talking about how identity in clojure is synonymous with value-based tests of equality. To make this efficient he describes that objects store cached hashes that are used to speed up these tests of equality, so clojure isnt comparing every data member of a complex data structure. However, how does this actually work since a comparison of hashes doesn't guarantee that two objects are equal. How does clojure handle the case where two hashes are the same for two distinctly different values. Andy -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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.
Re: hash comparison
If two objects are identical (actually point to the same slot in memory), they can immediately be determined to be equal. There are also some ways to quickly determine that things are definitely not equal. For example, two vectors with different sizes are not equal. As you've pointed out, if the hashes of two objects are different, one can potentially quickly conclude that the two objects are not equal, but the Clojure code currently is somewhat inconsistent about applying this test. I think this inconsistency is because cached hashes are a relatively recent addition, and it hasn't quite percolated through to all the places that could take advantage of this. If the objects are different and the hashes are the same, you still have to compare the entire structures to be certain they are equal. On Thu, Nov 28, 2013 at 2:03 PM, Andy Smith the4thamig...@googlemail.comwrote: Hi, I heard Rich Hickey talking about how identity in clojure is synonymous with value-based tests of equality. To make this efficient he describes that objects store cached hashes that are used to speed up these tests of equality, so clojure isnt comparing every data member of a complex data structure. However, how does this actually work since a comparison of hashes doesn't guarantee that two objects are equal. How does clojure handle the case where two hashes are the same for two distinctly different values. Andy -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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.
Re: quick macro review
Hi Curtis, The *apply* is unnecessary if you use *unquote-splice* (*~@*), also instead of the *into* and *for* usage you could just *map* over the list of symbols. Here's how I would do it: (defmacro migrate [ syms] `(migrate* ~@(map (partial list 'var) syms))) (macroexpand-1 '(migrate a b c)) ;= (user/migrate* (var a) (var b) (var c)) Hope it helps, Juan On Friday, November 29, 2013 5:26:14 AM UTC+8, Curtis Gagliardi wrote: I wrote a macro last night and got the feeling I did what I did in a suboptimal way. I have have a migration function that I stole from technomancy that takes in the vars of migration functions: (migrate #'create-db #'add-users-table #'etc) It uses the name of the var from the metadata to record which migrations have been run. I wanted to try to make it so you didn't have to explicitly pass in the vars, and just have the migrate function call var for you. I've since decided this is a bad idea but I wrote the macro anyway just for fun. My first question is: could this be done without a macro? I didn't see how since if you write it as a function, all you recieve are the actual functions and not the vars, but I thought I'd ask to be sure. Assuming you did have to write a macro, does this implementation seem reasonable? I felt strange about using (into [] ...). https://www.refheap.com/21335 Basically I'm trying to get from (migrate f g h) to (migrate* (var f) (var g) (var h)), I'm not sure I'm doing it right. Thanks, Curtis. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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: quick macro review
This also works, I believe: (defmacro migrate [ migration-syms] (let [migration-vars (for [sym migration-syms] `(var ~sym))] `(migrate* ~@migration-vars))) On Thu, Nov 28, 2013 at 5:22 PM, juan.facorro juan.faco...@gmail.comwrote: Hi Curtis, The *apply* is unnecessary if you use *unquote-splice* (*~@*), also instead of the *into* and *for* usage you could just *map* over the list of symbols. Here's how I would do it: (defmacro migrate [ syms] `(migrate* ~@(map (partial list 'var) syms))) (macroexpand-1 '(migrate a b c)) ;= (user/migrate* (var a) (var b) (var c)) Hope it helps, Juan On Friday, November 29, 2013 5:26:14 AM UTC+8, Curtis Gagliardi wrote: I wrote a macro last night and got the feeling I did what I did in a suboptimal way. I have have a migration function that I stole from technomancy that takes in the vars of migration functions: (migrate #'create-db #'add-users-table #'etc) It uses the name of the var from the metadata to record which migrations have been run. I wanted to try to make it so you didn't have to explicitly pass in the vars, and just have the migrate function call var for you. I've since decided this is a bad idea but I wrote the macro anyway just for fun. My first question is: could this be done without a macro? I didn't see how since if you write it as a function, all you recieve are the actual functions and not the vars, but I thought I'd ask to be sure. Assuming you did have to write a macro, does this implementation seem reasonable? I felt strange about using (into [] ...). https://www.refheap.com/21335 Basically I'm trying to get from (migrate f g h) to (migrate* (var f) (var g) (var h)), I'm not sure I'm doing it right. Thanks, Curtis. -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and 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.