Re: Update
Why are Clojure features defined in terms of Java classes, instead of as bytecode primitives? For eg: Cons is a class containing two objects: first and rest. Is this only to achieve Java interoperability, or is there more to it? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
Well, why write it in primitives when there is a perfectly good compiler from java to primitives? I dont quite understand why you think there would be benefit from manually writing everything with java bytecode. The JVM works with classes, thats how its designed, Clojure itself is just a java library. On Tuesday, April 29, 2014 8:25:01 PM UTC+12, Divyansh Prakash wrote: Why are Clojure features defined in terms of Java classes, instead of as bytecode primitives? For eg: Cons is a class containing two objects: first and rest. Is this only to achieve Java interoperability, or is there more to it? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
The JVM is very class-oriented. It is basically designed for Java, and corresponds pretty much to the things you can do in Java. Code belongs to methods which belong to classes, and calls are made using java method calling conventions. Data has to be stored in primitives, arrays, or objects; and arrays aren't particularly to-the-metal in Java anyway. The Byte Code Verifier keeps what you do fairly simple - eg you can't just leave things in the stack and jump to another method. Even if you wanted to do anything a bit different, the performance of the JVM all comes from the assumptions made while executing the bytecodes at runtime. If you did anything very weird, you'd probably find that these optimizations didn't kick in. On Tue, Apr 29, 2014 at 9:25 AM, Divyansh Prakash divyanshprakas...@gmail.com wrote: Why are Clojure features defined in terms of Java classes, instead of as bytecode primitives? For eg: Cons is a class containing two objects: first and rest. Is this only to achieve Java interoperability, or is there more to it? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
how to convert current time to format i need?
How to convert the current date and time to the format i need ? for example i retrieve current time using (l/local-now) which outputs #DateTime 2014-04-29T11:16:02.420+02:00 i want the above output to be converted to format dd:MM: HH:mm:ss Should i define my own formatter like below (def custom-formatter (f/formatter dd:MM: HH:mm:ss)) But then how to convert it ? Any advice or help would be appreciated .!! -- 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/d/optout.
Re: how to convert current time to format i need?
Hi , I didn't verify if that particular formatter comes prepackaged ( I am assuming you are using clj-time since it is not mentioned..) Once you have created your custom formater all you have to do is unparse (clj-time.formatter/unparse date-time-object custom formatter ) . This is there in the readme.. may be you missed it. Sunil. On Tue, Apr 29, 2014 at 3:33 PM, sindhu hosamane sindh...@gmail.com wrote: How to convert the current date and time to the format i need ? for example i retrieve current time using (l/local-now) which outputs #DateTime 2014-04-29T11:16:02.420+02:00 i want the above output to be converted to format dd:MM: HH:mm:ss Should i define my own formatter like below (def custom-formatter (f/formatter dd:MM: HH:mm:ss)) But then how to convert it ? Any advice or help would be appreciated .!! -- 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/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
cursive plugin question
Hello, I installed intelij with the cursive plugin. Now I wonder if this can be done in some way. Suppose I have a file with 3 functions. Can I send one to REPL so I can test if it works as I expected. Roelof -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: cursive plugin question
Hi Roelof, I saw your message on the Cursive mailing list, I've replied over there. Cheers, Colin On 29 April 2014 23:04, Roelof Wobben rwob...@hotmail.com wrote: Hello, I installed intelij with the cursive plugin. Now I wonder if this can be done in some way. Suppose I have a file with 3 functions. Can I send one to REPL so I can test if it works as I expected. Roelof -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: core.logic with functions
It was! Thank you very much. Phil Jean Niklas L'orange jeann...@hypirion.com writes: If you want to say the goal g(x) shall succeed, for all x in this list, then use `everyg` from clojure.core.logic instead of map. I think it is exactly what you're looking for. On Monday, April 28, 2014 3:36:10 PM UTC+2, Phillip Lord wrote: I can do this with core.logic (yes, I know that match-list isn't doing anything much here) (defn match-list [member list] (membero member list)) (run* [q] (match-list 10 [1 10 100]) (== q worked)) For q to come back with any values then 10 has to be part of the list [1 10 100]. I want to do the same thing where the second argument is a list of lists. So something like: (defn match-lists [member lists] (map (fn [l] (membero member l)) lists)) (run* [q] (match-lists 10 [[1 10 100] [1 10 100]]) (== q worked)) which should also return worked. The point is that I don't know how many membero forms I need at compile time, only at runtime. My initial attempt above fails. java.lang.ClassCastException: clojure.lang.LazySeq cannot be cast to clojure.lang.IFn at clojure.core.logic.Substitutions.bind (logic.clj:410) logic_expts.what_i_want$eval7021$fn__7022$fn__7023$_inc__7024.invoke (form-init238773086654203315.clj:2) clojure.core.logic$eval5780$fn__5781$fn__5782.invoke (logic.clj:1109) Is there a way to do this with functions -- or do I need to macro it? Phil -- Phillip Lord, Phone: +44 (0) 191 222 7827 Lecturer in Bioinformatics, Email: phillip.l...@newcastle.ac.uk School of Computing Science, http://homepages.cs.ncl.ac.uk/phillip.lord Room 914 Claremont Tower, skype: russet_apples Newcastle University, twitter: phillord NE1 7RU -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: how to convert current time to format i need?
Ya i am using cji-time. Found a way . (def multi-parser (f/formatter (t/default-time-zone) dd:MM: HH:mm:ss -MM-dd HH:mm:ss)) (def currenttimestamp (f/unparse multi-parser (f/parse multi-parser (l/format-local-time ( l/local-now) :mysql))) ) (def custom-formatter (f/formatter dd:MM: HH:mm:ss)) (def subtractedtime (l/format-local-time (t/minus (f/parse custom-formatter currenttimestamp) (t/months 60) ):mysql)) (def required-timestamp (f/unparse multi-parser (f/parse multi-parser subtractedtime))) I retrieved currenttimestamp in format i need and then subtracted 5 years (60 months) to get the required-timestamp.This above code snippet works . But i know there is a redundancy in my code bcoz multi-parser and custom-formatter are intended to do same thing .Not sure how to optimise the above code. 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/d/optout.
Re: multiple browsers, live.js - repl
Hey, I haven't tried live.js. But these tools might be of interest. - Austin https://github.com/cemerick/austin/ has the ability to *Multiple concurrent browser-REPLs can be safely used from the same project* (though I haven't yet tried this feature). https://github.com/cemerick/austin/ - Also, perhaps less applicable, Sentehttps://github.com/ptaoussanis/sentegives *users connected with multiple clients and/or devices simultaneously*. Hth Tim Washington Interruptsoftware.com http://interruptsoftware.com On Tue, Apr 15, 2014 at 10:54 PM, t x txrev...@gmail.com wrote: Hi, Okay. I think I have finally reached the limits of live.js, and now want an interactive browser repl + being able to push portions of code (rather than reloading the entire page). I have a simple question though: * I'm developing a _distribued_ app * So I can't test it unless I have 2+ browsers running. * With brepl, when I modify my *.cljs files, is it possible to push the changes to _two_ browsers simultaneojsly? 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/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Clojure for web project? Talk me into it!
Hey guys, I need your help in choosing a web stack for a medium sized website project, which is going to take the better half of my time for the next year. I really want to use clojure, because of various reasons, but have never done web development with it before. Frankly, it’s quite hard to feel confident about such a decision, as there are so many libraries to choose from, many of which seem to be abandoned or with very little (public) momentum. These are the notable features I need on the server side: - Internationalization of content, with multilingual URLs - Authentication through username / password and through xing (oauth) and linkedin (oath2). - Image and PDF upload - A small (and pretty basic) CMS - Beautiful reports renderings - A basic admin backend First, I was thinking along the compojure/hiccup/friend stack. I like it for the simplicity, the flexibility and the abundance of documentation on the web. Unfortunately, I see myself reinventing the wheel a few times with this approach… Then there is caribou. I like that it’s very well documented and that it’s already being used in production. It appears to be the most feature complete solution for the time being. It handles images, has backend scaffolding and i18n. OTOH, authentication isn’t really built-in (other than basic auth, if I got that right) and, it’s very new, so adoption seems to be still low. Also, it is developed in-house, so there’s the risk of abandonment, too. Finally, I took a look at pedestal (services). I like its overall design and I especially welcome the URL generator, which is going to be a boon in larger projects. But all in all, it seems to be little more than a (powerful) routing engine (again, maybe I’m missing something) and lacks internationalization as well as authentication (although I read that the snapshot version of friend will work with it). Also, it is developed in-house and not declared production-ready yet. I don’t feel very comfortable with either choice and would appreciate the thoughts of seasoned clojure web devs on that topic. Please talk me into it! I don’t want to end up with scala and play… :-) Thanks for your thought! Bernhard -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure for web project? Talk me into it!
Hi 2014-04-29 10:22 GMT+02:00 Bernhard Mäder bernhard.mae...@gmail.com: Hey guys, I need your help in choosing a web stack for a medium sized website project, which is going to take the better half of my time for the next year. I really want to use clojure, because of various reasons, but have never done web development with it before. Frankly, it’s quite hard to feel confident about such a decision, as there are so many libraries to choose from, many of which seem to be abandoned or with very little (public) momentum. These are the notable features I need on the server side: - Internationalization of content, with multilingual URLs - Authentication through username / password and through xing (oauth) and linkedin (oath2). - Image and PDF upload - A small (and pretty basic) CMS - Beautiful reports renderings - A basic admin backend First, I was thinking along the compojure/hiccup/friend stack. I like it for the simplicity, the flexibility and the abundance of documentation on the web. Unfortunately, I see myself reinventing the wheel a few times with this approach… Then there is caribou. I like that it’s very well documented and that it’s already being used in production. It appears to be the most feature complete solution for the time being. It handles images, has backend scaffolding and i18n. OTOH, authentication isn’t really built-in (other than basic auth, if I got that right) and, it’s very new, so adoption seems to be still low. Also, it is developed in-house, so there’s the risk of abandonment, too. Finally, I took a look at pedestal (services). I like its overall design and I especially welcome the URL generator, which is going to be a boon in larger projects. But all in all, it seems to be little more than a (powerful) routing engine (again, maybe I’m missing something) and lacks internationalization as well as authentication (although I read that the snapshot version of friend will work with it). Also, it is developed in-house and not declared production-ready yet. I don’t feel very comfortable with either choice and would appreciate the thoughts of seasoned clojure web devs on that topic. Please talk me into it! I don’t want to end up with scala and play… :-) For authentication and authorization I'm using buddy ( http://niwibe.github.io/buddy/) what has slightly different approach that friend, Liberator for backend code and angularjs for frontend. It works very well for my purposes. For your purposes the best choice is my opinion is caribou with some external lib for authentication like buddy or friend. Sorry for not being much help. Thanks for your thought! Bernhard Greetings. Andrey -- Andrey Antukh - Андрей Антух - andrei.anto...@kaleidos.net / n...@niwi.be http://www.niwi.be http://www.niwi.be/page/about/ https://github.com/niwibe -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure for web project? Talk me into it!
One of the biggest value propositions of Pedestal has always been that it's the only Clojure web server library to support end-to-end async operations. You can do things like have a handler return a core.async channel, or pause/resume the entire web stack multiple times during a single request. Other libraries may support async or streaming responses, but none allow that level of control, so if you need that feature Pedestal is there. Pedestal's routing stack is also data based, that's a pretty big deal if you're used to debugging nested ring handlers that are instances of functions. Data over code...that's the way I like it. But yes, as a whole the entire Clojure ecosystem is built around small composable libraries instead of a monolithic framework. Pick and choose and build your own stack. Timothy On Tue, Apr 29, 2014 at 2:22 AM, Bernhard Mäder bernhard.mae...@gmail.comwrote: Hey guys, I need your help in choosing a web stack for a medium sized website project, which is going to take the better half of my time for the next year. I really want to use clojure, because of various reasons, but have never done web development with it before. Frankly, it’s quite hard to feel confident about such a decision, as there are so many libraries to choose from, many of which seem to be abandoned or with very little (public) momentum. These are the notable features I need on the server side: - Internationalization of content, with multilingual URLs - Authentication through username / password and through xing (oauth) and linkedin (oath2). - Image and PDF upload - A small (and pretty basic) CMS - Beautiful reports renderings - A basic admin backend First, I was thinking along the compojure/hiccup/friend stack. I like it for the simplicity, the flexibility and the abundance of documentation on the web. Unfortunately, I see myself reinventing the wheel a few times with this approach… Then there is caribou. I like that it’s very well documented and that it’s already being used in production. It appears to be the most feature complete solution for the time being. It handles images, has backend scaffolding and i18n. OTOH, authentication isn’t really built-in (other than basic auth, if I got that right) and, it’s very new, so adoption seems to be still low. Also, it is developed in-house, so there’s the risk of abandonment, too. Finally, I took a look at pedestal (services). I like its overall design and I especially welcome the URL generator, which is going to be a boon in larger projects. But all in all, it seems to be little more than a (powerful) routing engine (again, maybe I’m missing something) and lacks internationalization as well as authentication (although I read that the snapshot version of friend will work with it). Also, it is developed in-house and not declared production-ready yet. I don’t feel very comfortable with either choice and would appreciate the thoughts of seasoned clojure web devs on that topic. Please talk me into it! I don’t want to end up with scala and play… :-) Thanks for your thought! Bernhard -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- “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/d/optout.
Re: Update
Thank you for the explanation. What if I target a non-OO-centric VM (like Parrot or LLVM)? I've noticed that most Lisp implementations define lambda calculus primitives, and then use those as the core. I wonder what would be if we had bytecode primitives, and defined everything else on top of that. I don't know to what end, this is just an exercise. Do you know if this has been done before? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
I looked into a port of Clojure to Parrot, and it basically does the same thinghttps://github.com/ayardley/ClojurePVM/blob/master/src/c/lisp/microlisp/lisp.c . -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
Why not emit bytecode directly from the language? Couldn't this potentially lead to tons of specialized optimizing macros? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
The hard part with other runtimes will be details around things like garbage collection for the implementation of persistent data structures. Clojurescript is a better example of how this is done since most of the impls are implemented in the language itself, different from clojure-proper. Granted, printed-text compiler output sucks, but it all seems to work. Here's the javascript emission stage: https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/compiler.clj#L206 It's been ported to gambit-scheme: https://github.com/takeoutweight/clojure-scheme/blob/rewrite/src/clj/cljscm/compiler.clj On Tue, Apr 29, 2014 at 10:45 AM, Divyansh Prakash divyanshprakas...@gmail.com wrote: I looked into a port of Clojure to Parrot, and it basically does the same thinghttps://github.com/ayardley/ClojurePVM/blob/master/src/c/lisp/microlisp/lisp.c . -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: core.async and Joy of Clojure
Thank you Timothy, I did watch that talk! In fact, it was one of the videos that really piqued my enthusiasm in core.async. I had no idea that the code was available on github. Good news. I am thinking now about how I could use core.async to do useful/fun things: web-service or browser game, simulation, etc. It will be exciting to see how things develop in the next couple of years. Do you think you might put out a book about some of the stuff you've been working on? Jesse On Tuesday, April 29, 2014 12:23:14 AM UTC+9, tbc++ wrote: I'm not sure if you have watched it yet, but my Clojure/Conj talk includes quite a few examples: https://www.youtube.com/watch?v=enwIIGzhahw The code from all the examples is available here: https://github.com/halgari/clojure-conj-2013-core.async-examples Timothy On Mon, Apr 28, 2014 at 8:42 AM, gamma235 jesus.d...@gmail.comjavascript: wrote: Hey guys, I have studied the sample code snippets on the github page, read through several tutorials and watched many talks on core.async, but am still unable to effectively implement this library in my programs. I am trying to level up here with this subject, but feel like the existing documentation is kind of lacking in the middle. Are there any good resources out there that can bridge the gap between code snippets and show how the concepts of this library pertain to system design? I heard that Joy of Clojure would be adding a lot in the 2nd edition, including a section on core.logic; is core.async also on that list? J -- 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 the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/d/optout. -- “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/d/optout.
Re: Clojure for web project? Talk me into it!
On Tuesday, April 29, 2014 3:25:45 PM UTC+2, Andrey Antukh wrote: For authentication and authorization I'm using buddy ( http://niwibe.github.io/buddy/) what has slightly different approach that friend, Liberator for backend code and angularjs for frontend. It works very well for my purposes. For your purposes the best choice is my opinion is caribou with some external lib for authentication like buddy or friend. Sorry for not being much help. Ah nice, I didn't know about buddy. I will take a good look at it. Thanks for pointing it out! Bernhard -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: core.async and Joy of Clojure
Thanks for the recommendation. This book looks awesome. Why haven't I heard of it?! Jesse On Tuesday, April 29, 2014 12:16:20 AM UTC+9, Alex Ott wrote: The Seven Concurrency Models in Seven Weeks: When Threads Unravel ( http://pragprog.com/book/pb7con/seven-concurrency-models-in-seven-weeks) has the description of the core.async in the CSP chapter... On Mon, Apr 28, 2014 at 4:42 PM, gamma235 jesus.d...@gmail.comjavascript: wrote: Hey guys, I have studied the sample code snippets on the github page, read through several tutorials and watched many talks on core.async, but am still unable to effectively implement this library in my programs. I am trying to level up here with this subject, but feel like the existing documentation is kind of lacking in the middle. Are there any good resources out there that can bridge the gap between code snippets and show how the concepts of this library pertain to system design? I heard that Joy of Clojure would be adding a lot in the 2nd edition, including a section on core.logic; is core.async also on that list? J -- 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 the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com javascript:. For more options, visit https://groups.google.com/d/optout. -- With best wishes,Alex Ott http://alexott.net/ Twitter: alexott_en (English), alexott (Russian) Skype: alex.ott -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure for web project? Talk me into it!
On Tuesday, April 29, 2014 3:29:26 PM UTC+2, tbc++ wrote: One of the biggest value propositions of Pedestal has always been that it's the only Clojure web server library to support end-to-end async operations. You can do things like have a handler return a core.async channel, or pause/resume the entire web stack multiple times during a single request. Other libraries may support async or streaming responses, but none allow that level of control, so if you need that feature Pedestal is there. Yes, it's a really cool feature. Unfortunately, I'm not going to need it! :-) Pedestal's routing stack is also data based, that's a pretty big deal if you're used to debugging nested ring handlers that are instances of functions. Data over code...that's the way I like it. Yeah, that's what I thought as well. I also like that aproach much better. But yes, as a whole the entire Clojure ecosystem is built around small composable libraries instead of a monolithic framework. Pick and choose and build your own stack. That's what I'm trying to right now Did you use pedestal in a productive environment? Thanks, Bernhard -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure for web project? Talk me into it!
Pedestal was developed by Cognitect and I would assume they use it on many of their consulting projects. Since future support appears be a major concern for you (rightly so), Pedestal probably fulfills that requirement better than anything else out there right now. Even if you don't need all the features it offers, it's worth considering building your server-side stack around it for that reason alone. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Update
Check out my previous reply. The parrot vm provides gc and everything, But still the author defines lambda primitives in c, and then builds over it. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[ANN] Tawny-OWL 1.1.0
I am please to announce the second full release of Tawny-OWL, my library for fully programmatic development of OWL ontologies. The library now has a fairly large feature set: ** Complete support for OWL2 ** Integrated support for reasoning with HermiT or ELK ** Profile checking ** Fixtures and support macros for unit testing ** Use of external ontologies available only as OWL files ** Rendering of OWL API objects to Tawny code. ** Support for generating and using ontologies with numeric IDs. ** Support for multilingual labels. ** Protege Integration Changes for 1.1.0: - Added a variety of new methods, including a newer syntax for individuals. - Type-hints have been added to all namespaces, which gives 2x or 5x speedups, depending on the namespace. Breaking Changes: This includes a number of small breaking changes, and deprecation of :subclass and :subproperty frames. Full details release documentation: https://github.com/phillord/tawny-owl/blob/master/docs/releases.md The library is now available from Clojars (https://clojars.org/uk.org.russet/tawny-owl) or on github (https://github.com/phillord/tawny-owl). Latest blogposts: http://www.russet.org.uk/blog/category/all/professional/tech/tawny-owl Feedback is welcome at tawny-...@googlegroups.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/d/optout.
Re: multiple browsers, live.js - repl
It's possible, if 'possible' includes the possibility of writing some extensions to austin to eval across multiple sessions :-). On Tue, Apr 29, 2014 at 8:43 AM, Timothy Washington twash...@gmail.comwrote: Hey, I haven't tried live.js. But these tools might be of interest. - Austin https://github.com/cemerick/austin/ has the ability to *Multiple concurrent browser-REPLs can be safely used from the same project* (though I haven't yet tried this feature). https://github.com/cemerick/austin/ - Also, perhaps less applicable, Sentehttps://github.com/ptaoussanis/sentegives *users connected with multiple clients and/or devices simultaneously*. Hth Tim Washington Interruptsoftware.com http://interruptsoftware.com On Tue, Apr 15, 2014 at 10:54 PM, t x txrev...@gmail.com wrote: Hi, Okay. I think I have finally reached the limits of live.js, and now want an interactive browser repl + being able to push portions of code (rather than reloading the entire page). I have a simple question though: * I'm developing a _distribued_ app * So I can't test it unless I have 2+ browsers running. * With brepl, when I modify my *.cljs files, is it possible to push the changes to _two_ browsers simultaneojsly? 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/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] nginx-clojure v0.2.0 -- Let MySQL JDBC Driver Apache HttpClient Fly With Epoll/Kqueue on Nginx
This is excellent! I definitely think there is a lot of opportunity for fusion between Clojure and Nginx. Clojure's model already supports the cooperating threads model that can simplify Nginx's complex event model, as you have demonstrated. Work has already been done that proves this idea can result in productivity and scale gains (nginx + Lua) It can also greatly simplify architectures by cutting out load-balancers making less to patch for security/stability issues. I look forward to using this on my upcoming web projects. On Friday, April 25, 2014 11:51:41 PM UTC-4, Xfeep Zhang wrote: nginx-clojure v0.2.0 includes new features: 1. non-blocking socket based on coroutine and compatible with largely existing java library such as apache http client, mysql jdbc drivers 2. asynchronous callback API of socket for some advanced usage 3. run initialization clojure code when nginx worker starting 4. provide a build-in tool to make setting of coroutine based socket easier 5. support Linux 32bit x86 now 6. publish [binary release compiled with lastes stable nginx 1.6.0]( https://sourceforge.net/projects/nginx-clojure/files/) about Linux x64, Linux i586, Win32 MacOS X. If the http service should do some slow I/O operations such as access external http service, database, etc. nginx worker will be blocked by those operations and the new user request even static file request will be blocked. It really sucks! Before v0.2.0 the only choice is using thread pool but now we have three choice Now: 1. Coroutine based Socket -- Let MySQL JDBC Driver Apache HttpClient Fly With Epoll/Kqueue on Nginx - Java Socket API Compatible and work well with largely existing java library such as apache http client, mysql jdbc drivers etc. - non-blocking, cheap, fast and let one java main thread be able to handle thousands of connections. - Your old code **_need not be changed_** and those plain and old java socket based code such as Apache Http Client, MySQL mysql jdbc drivers etc. will be on the fly with epoll/kqueue on Linux/BSD! - You must do some steps to get the right class waving configuration file and set it in the nginx conf file. 2. Asynchronous Socket - More details here: https://github.com/nginx-clojure/nginx-clojure 3. Thread Pool - More details here : https://github.com/nginx-clojure/nginx-clojure More details please visit nginx-clojure github site : https://github.com/nginx-clojure/nginx-clojure -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure for web project? Talk me into it!
Not to make it more complicated for you, but have you looked at Hoplon too? http://hoplon.io/ I was *very* impressed by the author's presentations, the later of which is https://www.youtube.com/watch?v=wVXjExRiFy0 And podcast about it: http://thinkrelevance.com/blog/2014/03/18/alan-dipert-cognicast-episode-052 It's optimized around single-page web apps. I'm not saying that's what I'd necessarily use for your product; you may want to use all of it, or parts of it (it's modular) along something else. If this kind of approach isn't what you'd use on your front-end, make sure you look at Om, Reagent and Quiescent for that. And obviously, I'm forgetting a few other batteries-included frameworks I've seen (because there are a few, apart from Caribou). On Tuesday, April 29, 2014 4:22:58 AM UTC-4, Bernhard Mäder wrote: Hey guys, I need your help in choosing a web stack for a medium sized website project, which is going to take the better half of my time for the next year. I really want to use clojure, because of various reasons, but have never done web development with it before. Frankly, it’s quite hard to feel confident about such a decision, as there are so many libraries to choose from, many of which seem to be abandoned or with very little (public) momentum. These are the notable features I need on the server side: - Internationalization of content, with multilingual URLs - Authentication through username / password and through xing (oauth) and linkedin (oath2). - Image and PDF upload - A small (and pretty basic) CMS - Beautiful reports renderings - A basic admin backend First, I was thinking along the compojure/hiccup/friend stack. I like it for the simplicity, the flexibility and the abundance of documentation on the web. Unfortunately, I see myself reinventing the wheel a few times with this approach… Then there is caribou. I like that it’s very well documented and that it’s already being used in production. It appears to be the most feature complete solution for the time being. It handles images, has backend scaffolding and i18n. OTOH, authentication isn’t really built-in (other than basic auth, if I got that right) and, it’s very new, so adoption seems to be still low. Also, it is developed in-house, so there’s the risk of abandonment, too. Finally, I took a look at pedestal (services). I like its overall design and I especially welcome the URL generator, which is going to be a boon in larger projects. But all in all, it seems to be little more than a (powerful) routing engine (again, maybe I’m missing something) and lacks internationalization as well as authentication (although I read that the snapshot version of friend will work with it). Also, it is developed in-house and not declared production-ready yet. I don’t feel very comfortable with either choice and would appreciate the thoughts of seasoned clojure web devs on that topic. Please talk me into it! I don’t want to end up with scala and play… :-) Thanks for your thought! Bernhard -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
ANN Meltdown 1.0 is released
Meltdown is a Clojure interface to Reactor, an asynchronous programming, event passing and stream processing toolkit for the JVM. After several alphas and a dozen of betas, Meltdown is ready to go 1.0. If you're not sure what Meltdown is about, see the intro post: http://blog.clojurewerkz.org/blog/2013/09/04/introducing-meltdown/ Release notes: http://blog.clojurewerkz.org/blog/2014/04/29/meltdown-1-dot-0-0-is-released/ Documentation: https://github.com/clojurewerkz/meltdown#documentation 1. https://github.com/clojurewerkz/meltdown -- 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/d/optout.
[ANN] CongoMongo 0.4.4 (minor release)
What? Clojure wrapper for MongoDB Java driver Where? https://github.com/aboekhoff/congomongo News? The only change from 0.4.3 is updating the Java driver to 2.12.1. MongoDB say the driver update is recommended for all users. More? Details of 2.12.1 update: https://github.com/mongodb/mongo-java-driver/releases/tag/r2.12.1 Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) signature.asc Description: Message signed with OpenPGP using GPGMail
Re: Update
For the llvm based approach you can look at vmkit. On Wednesday, April 30, 2014 3:39:21 AM UTC+12, Divyansh Prakash wrote: Check out my previous reply. The parrot vm provides gc and everything, But still the author defines lambda primitives in c, and then builds over it. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: cursive plugin question
To do this i created a new run configuration with and in the run config dialog set it to local clojure repl, then you need to go to preferences and create keybindings for send current form to repl (I just used shift + enter). Then it should work no problem. On Tuesday, April 29, 2014 11:04:24 PM UTC+12, Roelof Wobben wrote: Hello, I installed intelij with the cursive plugin. Now I wonder if this can be done in some way. Suppose I have a file with 3 functions. Can I send one to REPL so I can test if it works as I expected. Roelof -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
The Box
Hi there Where is the class clojure.lang.Box used in Clojure? https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Box.java Regards Plínio -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: The Box
https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/PersistentHashMap.java#L141 On Tue, Apr 29, 2014 at 1:21 PM, Plínio Balduino pbaldu...@gmail.comwrote: Hi there Where is the class clojure.lang.Box used in Clojure? https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Box.java Regards Plínio -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- “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/d/optout.
Re: The Box
Sure, I didn't notice val as public member. https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/PersistentHashMap.java#L146 Thank you Plínio On Tue, Apr 29, 2014 at 4:44 PM, Timothy Baldridge tbaldri...@gmail.comwrote: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/PersistentHashMap.java#L141 On Tue, Apr 29, 2014 at 1:21 PM, Plínio Balduino pbaldu...@gmail.comwrote: Hi there Where is the class clojure.lang.Box used in Clojure? https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Box.java Regards Plínio -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- “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/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
lein cljsbuild auto ; hook to copy into directory post build
Hi, ## context: I am currently running lein cljsbuild auto It appears that each new compile _overwrites_ the old compile in place, say resources/out ## what I would prefer to happen: every time a new build is triggered, have it write to resources/tmp then, exec rm -rf resources/out; mv resources/tmp resources/out ## why I want this behaviour I'm also using live.js . It appears, that with longer compile times, live.js is pulling in _half completed_ builds from lein -- and giving me very weird errors. Thus, I would like lein to build somewhere else, then after a build is complete, in a single atomic operation, swap the two directories (which I can do via symlinks). Where can I setup a clojure/shell command to be executed every time lein cljsbuild auto successfully completes a build? 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/d/optout.
Congratulations to our GSoC 2014 students!
Hello, all, It's been over a week now since Google announced all of our GSoC students. I was on vacation, but here's the list of projects, students, and mentors: 1. Aleph, a BOT browser and introspector for Light Table, by Andrea Marchiori, mentored by Jamie Brandon and Chris Granger 2. Incanter and core.matrix integration, by Aleksandr Sorokoumov, mentored by Mike Andersion and Alex Ott 3. Lean Clojure/JVM runtime, by Alexander Yakushev, mentored by Daniel Solanoa Gómez and Timothy Baldridge 4. Lean Clojure: An agressive compiler for lighter weight Clojure programs, by Reid McKenzie, mentored by Timothy Baldridge and Daniel Solanoa Gómez 5. Linear Algebra for Clojure – Adding linear algebra tools to core.matrix, by Prasant Chidella, mentored by Mike Anderson 6. Quil on ClojureScript, by Maksim Karandashov, mentored by Nikita Beloglazov and Baishampayan “BG” Ghose 7. tools.analyzer extensions: cljs port, documentation, by Nicola Mometto, mentored by Aaron Cohen, Timothy Baldridge, and Ambrose Bonnaire-Sergeant 8. Typed Clojure: Heterogeneous operations Dotted Polymorphism, by Di Xu, mentored by Ambrose Bonnaire-Sergeant 9. Typed ClojureScript Library Annotations, by Minori Yamashita, mentored by Zack Maril and Ambrose Bonnaire-Sergeant Congratulations to all of the students. I am looking forward to seeing the great things they will create this summer. Also, a big thanks to Alex Miller and Ambrose Bonnaire-Sergeant for helping serve as adminstrators for Clojure’s GSoC effort. Lastly, there is a new Clojure/GSoC blog [1] and twitter account (@ClojureGSoC) that you can use to follow our students' progress. Sincerely, Daniel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: *** Congratulations to our GSoC 2014 students!
And a hearty cheer for Daniel (and his helpers) for their efforts! -r -- http://www.cfcl.com/rdm Rich Morin r...@cfcl.com http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA +1 650-873-7841 Software system design, development, and documentation -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure Office Hours
This is awesome, thank you Leif! I just set up an office hours account to help anyone who might be interested in organizing a Clojure tech conference or event, Meetup, etc. I chose some random office times, so ping me if you have a special timing request outside of the listed hours. https://lynn.youcanbook.me/ Cheers! Lynn Grogan (Cognitect, Events Manager) On Monday, April 28, 2014 5:31:04 AM UTC-5, Ulises wrote: Thanks for the pointer Jakob. I've updated the form accordingly. Cheers, On 28 April 2014 10:56, Jakub Holy jakub...@iterate.no javascript:wrote: I too have booked a session with Ulises and am excited about it :-) @Ulises It would be nice if the timezone of the session was mentioned on the booking page (your [BST] 9-10am is mine [CEST] 10-11, I believe). 2014-04-28 11:09 GMT+02:00 Rudi Engelbrecht rudi.eng...@gmail.comjavascript: : Hi Ulises Just finished our session - wow! I have learned a lot by watching how you approach solving the problem I suggested. Looking forward to our next session and thanks a lot for sharing your knowledge. Kind regards Rudi Engelbrecht On 18/04/2014, at 7:41 PM, Ulises ulises@gmail.com javascript: wrote: Yikes! Got my first booking for Monday. That was quick! one thing I forgot to mention is that I have no preferred way to do this. I personally have emacs+cider set up, but I'm happy to work with your own set up. In the past I've used ScreenHero (not available for Linux unfortunately) for screen sharing, as well as Google hangouts. Once you've booked an appointment with me please email me privately to arrange the pairing set up so that I can be ready for you :) Cheers On 18 April 2014 10:35, Ulises ulises@gmail.com javascript:wrote: Inspired by Leif's offer, I've decided to offer Clojure office hours as well. I'm based in the UK so I reckon the times will be more amenable to those in Europe (not sure the times will be good for those in Asia unfortunately.) Sadly the offer is limited to 1h a day, but hopefully it'll still be useful. You can book me at https://ucb.youcanbook.me/ Cheers! On 18 April 2014 03:03, Leif leif.p...@gmail.com javascript: wrote: @Miguel: There are somewhat subtle arrows on the sides for navigation. Thursday, April 24 is still open. I will give a slot to you if you want one, just email me if the 24th is full when you check again. @all: But yes, this round of office hours is almost over. I will be in transit for at least a couple weeks in the beginning of May, but I will probably book some more hours when I become stationary again. It will probably be more like 4 or 5 hours a week, though, not 8. @all: Several poor souls from Europe are going to stay up until 2 a.m. for this, and people further east are probably just silent because the time difference is so large; So, I definitely think some European / African / Asian / Australian clojure devs' office hours would be popular. It's fun, and you might find some people to hire, if that's your thing! --Leif On Thursday, April 17, 2014 10:43:50 AM UTC-4, Miguel Ping wrote: Hey, the schedule's full! :\ On Wednesday, April 16, 2014 2:57:49 AM UTC+1, Marcus Blankenship wrote: Leif, thanks for the great session today. Not only did I get a jump start on my next 4Clojure problems, but I learned some emacs as well! Very enjoyable, and I look forward to next week’s session. THANK YOU! All, if you’re trying to get a jumpstart on Clojure, I highly recommend Leif’s office hours. -Marcus On Apr 15, 2014, at 6:50 PM, Leif leif.p...@gmail.com wrote: @Jakub: Thanks for your kind words. I'm definitely no industry hero, but I hope Clojure devs of all levels start having more pair programming fun. @Tim: Clojurescript UI programming being *way* out of my comfort zone, I learned quite a lot from you yesterday. So thank *you*. @Everyone: To clarify / reiterate: You do *not* need a plan, a project, or a specific problem. If you want to work through Project Euler, 4clojure, clojure-koans, the ClojureBridge materials, some other clojure tutorial, or just play it by ear, I am happy to try it out. --Leif On Tuesday, April 15, 2014 8:00:17 AM UTC-4, frye wrote: I just came from an office hours session, yesterday with Leif. This is good stuff guys, and a great way to learn and meet with other developers. Highly recommended. Thanks Leif Tim Washington Interruptsoftware.com http://interruptsoftware.com/ On Tue, Apr 15, 2014 at 5:12 AM, Jakub Holy jakub...@iterate.nowrote: Hi Leif, This is a great activity, thank you for contributing to the community this way! Do not be surprise and discouraged by the fact that the interest seems low. I have a similar experience - in my company we can consult with an industry hero yet people use the opportunity seldom, presumably because of multiple factors: they
Re: lein cljsbuild auto ; hook to copy into directory post build
Correct answer: https://github.com/emezeske/lein-cljsbuild/blob/master/sample.project.clj#L73 :-) On Tue, Apr 29, 2014 at 2:29 PM, t x txrev...@gmail.com wrote: Hi, ## context: I am currently running lein cljsbuild auto It appears that each new compile _overwrites_ the old compile in place, say resources/out ## what I would prefer to happen: every time a new build is triggered, have it write to resources/tmp then, exec rm -rf resources/out; mv resources/tmp resources/out ## why I want this behaviour I'm also using live.js . It appears, that with longer compile times, live.js is pulling in _half completed_ builds from lein -- and giving me very weird errors. Thus, I would like lein to build somewhere else, then after a build is complete, in a single atomic operation, swap the two directories (which I can do via symlinks). Where can I setup a clojure/shell command to be executed every time lein cljsbuild auto successfully completes a build? 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/d/optout.
Re: [ANN] data.avl 0.0.12 -- sorted collections with slice, nth, transient support
Here's a round of benchmarks for the new functions (avl/{nearest,subrange,split-at,split-key}), with a lookup benchmark included as a point of reference. Cheers, Michał (let [m (apply avl/sorted-map (interleave (range 10) (range 10)))] (c/bench (get m 9)) (c/bench (avl/nearest m 10)) (c/bench (avl/subrange m = 1 75000)) (c/bench (avl/split-at 3 m)) (c/bench (avl/split-key 3 m))) WARNING: Final GC required 4.244287716089524 % of runtime Evaluation count : 213693000 in 60 samples of 3561550 calls. Execution time mean : 278.027014 ns Execution time std-deviation : 4.284738 ns Execution time lower quantile : 273.830485 ns ( 2.5%) Execution time upper quantile : 287.103701 ns (97.5%) Overhead used : 2.289159 ns Found 10 outliers in 60 samples (16.6667 %) low-severe 9 (15. %) low-mild 1 (1.6667 %) Variance from outliers : 1.6389 % Variance is slightly inflated by outliers Evaluation count : 168881400 in 60 samples of 2814690 calls. Execution time mean : 352.393290 ns Execution time std-deviation : 5.226142 ns Execution time lower quantile : 346.698762 ns ( 2.5%) Execution time upper quantile : 364.246208 ns (97.5%) Overhead used : 2.289159 ns Found 4 outliers in 60 samples (6.6667 %) low-severe 4 (6.6667 %) Variance from outliers : 1.6389 % Variance is slightly inflated by outliers Evaluation count : 1333200 in 60 samples of 0 calls. Execution time mean : 45.605490 µs Execution time std-deviation : 682.937868 ns Execution time lower quantile : 44.839275 µs ( 2.5%) Execution time upper quantile : 47.176367 µs (97.5%) Overhead used : 2.289159 ns Found 3 outliers in 60 samples (5. %) low-severe 3 (5. %) Variance from outliers : 1.6389 % Variance is slightly inflated by outliers Evaluation count : 2338740 in 60 samples of 38979 calls. Execution time mean : 25.715076 µs Execution time std-deviation : 366.924494 ns Execution time lower quantile : 25.249912 µs ( 2.5%) Execution time upper quantile : 26.592419 µs (97.5%) Overhead used : 2.289159 ns Found 2 outliers in 60 samples (3. %) low-severe 2 (3. %) Variance from outliers : 1.6389 % Variance is slightly inflated by outliers Evaluation count : 2596800 in 60 samples of 43280 calls. Execution time mean : 23.343989 µs Execution time std-deviation : 308.669720 ns Execution time lower quantile : 22.908707 µs ( 2.5%) Execution time upper quantile : 24.143221 µs (97.5%) Overhead used : 2.289159 ns Found 4 outliers in 60 samples (6.6667 %) low-severe 4 (6.6667 %) Variance from outliers : 1.6389 % Variance is slightly inflated by outliers On 24 April 2014 08:51, Michał Marczyk michal.marc...@gmail.com wrote: Cheers Alex! See below for the results of yesterday's run of my benchmark suite for the basic operations. (I'll post some benchmark results for the new functions in a separate message sometime soon.) In general, it's fair to expect (persistent) assoc/dissoc to be slower with data.avl maps, since AVL trees do more work to rebalance themselves than red-black trees. (That's on average, of course.) The upside is that lookups in AVL trees are faster on average, sometimes quite dramatically, due to the trees being shallower. It's worth pointing out that this really is on average -- individual timings depend on the path through the tree the lookup operation needs to traverse, and for nodes at exactly the same position in the tree the built-ins are slightly faster (23.9 ns vs. 25.5 ns for a lookup succeeding at the root node, see the (get % 131071) benchmark case below; as I recall, 0 happens to occupy the same position in both benchmark maps as well) -- but if we hit a deeper part of a red-black tree, data.avl is likely to win by a large margin, as in the case of the 311 ns (data.avl) vs. 588 ns (built-in) result for looking up 29 in the two benchmark maps. For longer chains of updates -- including construction of instances with more than a handful of elements -- data.avl wins thanks to its support for transients; in particular, inserting 30 entries in ascending order of keys took 197 ns with data.avl's sorted-map during my benchmark run yesterday vs. 317 ns with the built-in. ;;; the setup: (def ks (range 30)) (def ksks (interleave ks ks)) (def rb (apply sorted-map ksks)) (def avl (apply avl/sorted-map ksks)) ;;; the actual benchmark run Clojure 1.5.1 user= (all-benchmarks) (lookup-benchmarks) === (c/bench (get avl 0)) WARNING: Final GC required 17.95425214438086 % of runtime WARNING: Final GC required 1.44548564181991 % of runtime Evaluation count : 233348580 in 60 samples of 3889143 calls. Execution time mean : 257.269857 ns Execution time std-deviation : 2.083817 ns
Re: clojure.core.memoize dependency problem
What Leiningen plugins do you have installed? (Both in your project and in your user profile) I believe this is caused by a plugin forcing an earlier version of clojure.core.cache on you... On Saturday, April 26, 2014, Daniel Slutsky daniel.slut...@gmail.com wrote: added an issue at http://dev.clojure.org/jira/browse/CMEMOIZE-14 On Thursday, April 24, 2014 6:42:08 PM UTC+3, Daniel Slutsky wrote: Dear Clojure group, I am running into an interesting issue with clojure.core.memoize. I created a simple project depending on clojure.core.memoize. (defproject test-memoize 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} :dependencies [[org.clojure/clojure 1.5.1] [org.clojure/core.memoize 0.5.6]]) Trying to use it, I run into the following problem: $ lein repl nREPL server started on port 38522 on host 127.0.0.1 ... user= (require 'clojure.core.memoize) user= CompilerException java.lang.RuntimeException: No such var: clojure.core.cache/through, compiling:(clojure/core/memoize.clj:52:3) This pboblem has been recorded before: https://groups.google.com/forum/#!msg/light-table-discussion/f4kpZLFGBV8/ oyFPaJ4yvwwJ http://www.raynes.me/logs/irc.freenode.net/clojure/2013-09-11.txt https://github.com/LightTable/LightTable/issues/794 The suggested solution from the LightTable bug discussion [[org.clojure/core.cache 0.6.3] [org.clojure/core.memoize 0.5.6 :exclusions [org.clojure/core.cache]]] does not seem to work. Any ideas? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.comjavascript:_e(%7B%7D,'cvml','clojure@googlegroups.com'); Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comjavascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com'); For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.comjavascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com'); . For more options, visit https://groups.google.com/d/optout. -- 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/d/optout.
Re: *** Congratulations to our GSoC 2014 students!
Agreed! These all look really exciting. On Tuesday, April 29, 2014 5:42:29 PM UTC-4, Rich Morin wrote: And a hearty cheer for Daniel (and his helpers) for their efforts! -r -- http://www.cfcl.com/rdm Rich Morin r...@cfcl.comjavascript: http://www.cfcl.com/rdm/resumeSan Bruno, CA, USA +1 650-873-7841 Software system design, development, and documentation -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Saturday, April 26, 2014 9:21:26 PM UTC-7, Mars0i wrote: I like the general idea of the Valentin's proposal, but I don't understand every bit of it. It sounds complicated. Personally, I'd rather see something that's relatively simple, and good enough, than something that's perfect but unwieldy. If it's too difficult, people won't use it, or they'll waste time, or feel that the Clojure community expects them to spend too much time on something that detracts from what's important. Double-inc[1] on this. Clojure needs people who care about documentation far more than it needs another documentation system. Don't try to apply a technical solution to a social problem. -Phil [1] - or dinc, as I like to call it. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: *** Congratulations to our GSoC 2014 students!
Wow, lots of cool projects to look forward to. Congrats to all the GSoC students, and thank you to all their mentors. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Sliding Windows
Hi Guys, I was looking for a very simple stream processing lib. We have some in clojure (lamina, meltdown, esper, eep). The simplest one was clojure werkz eep, but they don't provide sliding windows. I ender up writing this: http://paulosuzart.github.io/blog/2014/04/27/sliding-window-events-with-clojure/ And publishing this very small implementation using meltdown. https://github.com/paulosuzart/sw . It is enough for a very simple use case I have to deal. If anyone knows any other sliding window impl please share. Regards -- Paulo Suzart @paulosuzart -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Kwargs vs explicit parameter map for APIs?
Having worked through this for java.jdbc (and to a lesser extent for CongoMongo), I think that I would approach it slightly differently in future: Provide two functions: one taking a map, one taking keyword arguments; the latter delegating to the former via {:as opts} and then internal calls can easily use the map-based argument approach. One of the additional complexities in java.jdbc (as it stands today) is that several functions accept an arbitrary number of arguments, followed by optional keyword arguments as well, so several functions have to parse their argument lists at runtime. Simplifying that to use a sequence (of current arguments) followed by a map (of options) would make several things easier inside the library, removing a lot of apply calls, as well as providing an API that is more amenable to dynamic call construction... I still think the keyword argument approach is far more readable to _users_ - and it's also what was recommended in the Clojure Library Guidelines right up until a few days ago: http://dev.clojure.org/pages/viewpage.action?pageId=9142444 Reid McKenzie changed it on April 24th, completely reversing the previous recommendation from Unroll optional named arguments to Don't unroll optional named arguments - compare version 6 (from Stuart Halloway) with Reid's edits in versions 7-11: http://dev.clojure.org/pages/diffpagesbyversion.action?pageId=1573132selectedPageVersions=11selectedPageVersions=6 Sean On Apr 25, 2014, at 3:41 PM, Colin Fleming colin.mailingl...@gmail.com wrote: Hi all, I'm working on an API at the moment, and I'm balancing whether to use inline keyword args which I would destructure in the functions, or whether to just pass an explicit params map as the last parameter. Comparison of the two options in case I'm not explaining myself well: Kwargs: (class/create-class :instancelist :description My description :implements (keys class-methods) :methods (calculate-my-methods)) Map: (class/create-class {:instancelist :description My description :implements (keys class-methods) :methods (calculate-my-methods)}) A lot of APIs I've seen have favoured kwargs, and it undeniably makes for some pretty code - Seesaw is the best example I've seen here, the API is a thing of beauty. However it seems to me to have some issues: If I want to delegate to another call from within an API function and use the same arguments, it's really awkward: (apply delegate (mapcat identity args)) or some similarly awful black juxt magic. Or of course writing out all the parameters again, but that's even worse. It's more difficult to make parameters optional based on some runtime criteria since the params are baked into the function call. I guess this is usually dealt with by making the calls handle nil for a particular parameter. Both of these are much easier when passing an explicit map. Any preferences here, from either writing or using APIs like this? Cheers, Colin -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) signature.asc Description: Message signed with OpenPGP using GPGMail
Re: Kwargs vs explicit parameter map for APIs?
On 30 April 2014 03:54, Sean Corfield s...@corfield.org wrote: I still think the keyword argument approach is far more readable to _users_ Really? It's only an omission of two braces. While readability is subjective, I'm not sure how that can be considered to be *far* more readable. From a purely practical perspective, explicit maps are generally a lot easier to work with. To my mind the disadvantages of keyword arguments often outweigh the small presentational benefits they have. - James -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
Phil, I like the general idea of the Valentin's proposal, but I don't understand every bit of it. It sounds complicated. Personally, I'd rather see something that's relatively simple, and good enough, than something that's perfect but unwieldy. If it's too difficult, people won't use it, or they'll waste time, or feel that the Clojure community expects them to spend too much time on something that detracts from what's important. Can I ask, quite seriously and not intending any sarcasm, what you mean by detracts from what's important? For me, what's important is to communicate ideas, designs, and details from one developer to another so that others can maintain, modify, and extend what exists. I've already held forth on what I think that implies so I won't bore you with it. What I don't understand is your criteria for what's important and how that translates to action. If we can agree on what's important then the technical details would have common criteria for simple and good enough vs something that's perfect but unwieldy. 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/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Tuesday, April 29, 2014 8:47:58 PM UTC-7, da...@axiom-developer.org wrote: Can I ask, quite seriously and not intending any sarcasm, what you mean by detracts from what's important? What's important is writing clear explanatory prose. This is really hard to do for a lot of reasons, but none of them are technical. Organizing your thoughts is hard. Thinking like a newcomer is very hard. Achieving clarity on any subject matter is hard. Knowing when to update is hard. Editing is hard. (And you can't effectively act as your own editor.) Putting words into a file on disk is easy, and rendering those words in a way that is convenient for others to read is very easy. -Phil ps. I hope that anyone who's interested in improving the documentation situation will look to Jacob Kaplan-Moss's articles on the topic, which do a better job of laying out the problem than I could do: http://jacobian.org/writing/what-to-write/ -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Tuesday, April 29, 2014 10:47:58 PM UTC-5, da...@axiom-developer.org wrote: Phil, I like the general idea of the Valentin's proposal, but I don't understand every bit of it. It sounds complicated. Personally, I'd rather see something that's relatively simple, and good enough, than something that's perfect but unwieldy. If it's too difficult, people won't use it, or they'll waste time, or feel that the Clojure community expects them to spend too much time on something that detracts from what's important. Can I ask, quite seriously and not intending any sarcasm, what you mean by detracts from what's important? For me, what's important is to communicate ideas, designs, and details from one developer to another so that others can maintain, modify, and extend what exists. I've already held forth on what I think that implies so I won't bore you with it. What I don't understand is your criteria for what's important and how that translates to action. If we can agree on what's important then the technical details would have common criteria for simple and good enough vs something that's perfect but unwieldy. Tim Daly We agree. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Tuesday, April 29, 2014 11:01:46 PM UTC-5, Mars0i wrote: On Tuesday, April 29, 2014 10:47:58 PM UTC-5, da...@axiom-developer.orgwrote: Phil, I like the general idea of the Valentin's proposal, but I don't understand every bit of it. It sounds complicated. Personally, I'd rather see something that's relatively simple, and good enough, than something that's perfect but unwieldy. If it's too difficult, people won't use it, or they'll waste time, or feel that the Clojure community expects them to spend too much time on something that detracts from what's important. Can I ask, quite seriously and not intending any sarcasm, what you mean by detracts from what's important? For me, what's important is to communicate ideas, designs, and details from one developer to another so that others can maintain, modify, and extend what exists. I've already held forth on what I think that implies so I won't bore you with it. What I don't understand is your criteria for what's important and how that translates to action. If we can agree on what's important then the technical details would have common criteria for simple and good enough vs something that's perfect but unwieldy. Tim Daly We agree. Oh, sorry--you also asked what I meant by detracts from what's important. If a documentation formatting/organizing/coding system required learning a lot, figuring out a lot, adding information that is unlikely to be helpful, but could easily be replaced with something that's trivial to use, produce output that's less pretty, and that might require using a search function more often, but nevertheless helps to support good, thorough documentation (maybe terse sometimes, but still, it gives you what you need) that helps other developers (or oneself, later) to understand code whose meaning isn't obvious, then I'd favor the latter. Maybe no one is proposing what the former. I didn't understand the proposal, so I didn't know. (Aside about obviousness: My own standard for obviousness is more restrictive--i.e. fewer things are obvious--than some programmers, I think.) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Tuesday, April 29, 2014 9:08:48 PM UTC-7, Mars0i wrote: Oh, sorry--you also asked what I meant by detracts from what's important. If a documentation formatting/organizing/coding system required learning a lot, figuring out a lot, adding information that is unlikely to be helpful Imagine you're reading through some documentation and you notice a problem. Maybe a typo, or something out of date, or something that's confusing that you could explain better. In one scenario there's a git clone link in the sidebar to a repository that contains a bunch of markdown files. In another scenario there's an HTML rendering generated from a literate programming project where the prose is intermixed with the code and requires a specific version of org-mode and the knowledge of how to untangle something in order to render it. Guess which one is going to get improved. -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/d/optout.
Re: Congratulations to our GSoC 2014 students!
Huge thanks to Daniel for ushering things up to this phase - he has done a ton of work behind the scenes (along with Ambrose and the other mentors) in working to connect the right people and projects and take care of all the paperwork so this happens. Alex On Tuesday, April 29, 2014 4:34:20 PM UTC-5, Daniel Solano Gómez wrote: Hello, all, It's been over a week now since Google announced all of our GSoC students. I was on vacation, but here's the list of projects, students, and mentors: 1. Aleph, a BOT browser and introspector for Light Table, by Andrea Marchiori, mentored by Jamie Brandon and Chris Granger 2. Incanter and core.matrix integration, by Aleksandr Sorokoumov, mentored by Mike Andersion and Alex Ott 3. Lean Clojure/JVM runtime, by Alexander Yakushev, mentored by Daniel Solanoa Gómez and Timothy Baldridge 4. Lean Clojure: An agressive compiler for lighter weight Clojure programs, by Reid McKenzie, mentored by Timothy Baldridge and Daniel Solanoa Gómez 5. Linear Algebra for Clojure – Adding linear algebra tools to core.matrix, by Prasant Chidella, mentored by Mike Anderson 6. Quil on ClojureScript, by Maksim Karandashov, mentored by Nikita Beloglazov and Baishampayan “BG” Ghose 7. tools.analyzer extensions: cljs port, documentation, by Nicola Mometto, mentored by Aaron Cohen, Timothy Baldridge, and Ambrose Bonnaire-Sergeant 8. Typed Clojure: Heterogeneous operations Dotted Polymorphism, by Di Xu, mentored by Ambrose Bonnaire-Sergeant 9. Typed ClojureScript Library Annotations, by Minori Yamashita, mentored by Zack Maril and Ambrose Bonnaire-Sergeant Congratulations to all of the students. I am looking forward to seeing the great things they will create this summer. Also, a big thanks to Alex Miller and Ambrose Bonnaire-Sergeant for helping serve as adminstrators for Clojure’s GSoC effort. Lastly, there is a new Clojure/GSoC blog [1] and twitter account (@ClojureGSoC) that you can use to follow our students' progress. Sincerely, Daniel -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Proposing a new Clojure documentation system (in Clojure)
On Wed, Apr 30, 2014 at 4:18 AM, Phil Hagelberg p...@hagelb.org wrote: On Tuesday, April 29, 2014 9:08:48 PM UTC-7, Mars0i wrote: Oh, sorry--you also asked what I meant by detracts from what's important. If a documentation formatting/organizing/coding system required learning a lot, figuring out a lot, adding information that is unlikely to be helpful Imagine you're reading through some documentation and you notice a problem. Maybe a typo, or something out of date, or something that's confusing that you could explain better. In one scenario there's a git clone link in the sidebar to a repository that contains a bunch of markdown files. In another scenario there's an HTML rendering generated from a literate programming project where the prose is intermixed with the code and requires a specific version of org-mode and the knowledge of how to untangle something in order to render it. Guess which one is going to get improved. The answer is not immediately obvious to me. Since I don't use emacs, I would probably have found the former easier. Having said that, perhaps everybody else who are capable of contributing are already comfortable with the literal programming tool. Or perhaps I would find out it doesn't take too much effort to contribute once I learn the basics. And perhaps this kind of documentation is works much better for this specific project, seeing the code and the docs side by side. I'm going to risk saying, perhaps there is an inversely proportional relationship between markdown proficiency/preference and contributed value in a technical community. I'm not saying documentation as a bunch of markdown files sucks. I'm just not sure if it would shown to be objectively superior to the less accessible literate programming, in the context of the quality of contributions and perhaps the health of the project. -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/d/optout. -- Kind Regards, Atamert Ölçgen -+- --+ +++ www.muhuk.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/d/optout.
Re: Kwargs vs explicit parameter map for APIs?
I'm extremely internally torn regarding kwargs. I use them a lot; I know they hinder composability; but every time I go back to straight maps for these kinds of things I really don't like all the extra noise characters and go back to kwargs. I feel like I really should be using regular maps for all the good reasons listed, but in practice I don't. Honestly, I don't usually run into the composability issues too often, so I'm getting by ok with my indulgence in kwargs, I suppose. I especially dislike that my non-kwarg fns no-longer can elegantly accept no options. Let me illustrate: (defn foo [ {:keys [a b]}] [a b]) (foo :a 1 :b 2) (foo) (defn foo [{:keys [a b]}] [a b]) (foo {:a 1 :b 1}) (foo {}) ;; -- unpleasant to my eyes, let me reimplement foo (defn foo This is also pretty gross ([] (foo {})) ([{:keys [a b]}] [a b])) So, yeah, I'm pretty torn. I like the option of having kwargs for the outer API shell, and explicit option maps internally. I've played with that a little as well at work to some ok success. Alex On Tue, Apr 29, 2014 at 8:41 PM, James Reeves ja...@booleanknot.com wrote: On 30 April 2014 03:54, Sean Corfield s...@corfield.org wrote: I still think the keyword argument approach is far more readable to _users_ Really? It's only an omission of two braces. While readability is subjective, I'm not sure how that can be considered to be *far* more readable. From a purely practical perspective, explicit maps are generally a lot easier to work with. To my mind the disadvantages of keyword arguments often outweigh the small presentational benefits they have. - James -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Kwargs vs explicit parameter map for APIs?
On 30 April 2014 06:07, Alex Baranosky alexander.barano...@gmail.comwrote: I especially dislike that my non-kwarg fns no-longer can elegantly accept no options. Let me illustrate: (defn foo [ {:keys [a b]}] [a b]) (foo :a 1 :b 2) (foo) You could write: (defn foo [ [{:keys [a b]}]] [a b]) (foo {:a 1 :b 2}) (foo) - James -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.