Re: [ANN] Clojure Videos (with options for Linux users)
I tried to open this link (https://tbaldridge.pivotshare.com). Its not working. Can you check and let me know. On Friday, September 19, 2014 6:21:46 AM UTC+5:30, tbc++ wrote: Just wanted to throw this out there, but I've been making steady progress on my Clojure Tutorial Videos (https://tbaldridge.pivotshare.com). We're up to 43 videos with new episodes added at a rate of about 2-3 a week. Some users have expressed a desire for the raw MP4 files for use on Linux, or other platforms where flash is not optimal, so I'm also happy to announce that the videos are available via Dropbox. There's a link on the site, the price is the same, but the process is manual so there is a processing delay of 1-2 days. Thanks to everyone who's offered encouragement and feedback. And yes...transducer videos will be up *soon*. They're recorded, but you should really start by watching the video of Rich's Strange Loop talk, that he'll be giving tomorrow. /sameless ad -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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.
Use Require and Import
I am new to clojure can any one give me a good example answer to differentiate between Use, Require and Import. Specially I am getting confused with Require and Import. Hoping to get answer soon. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Use Require and Import
On 19 September 2014 at 10:53:32, Gomzee (gettingerr...@gmail.com) wrote: I am new to clojure can any one give me a good example answer to differentiate between Use, Require and Import. Specially I am getting confused with Require and Import. require loads and compiles Clojure namespaces. Import allows you to avoid using fully-qualified Java class names (the same as import in Java). See http://clojure-doc.org/articles/language/namespaces.html and http://clojure-doc.org/articles/language/interop.html. -- @michaelklishin, github.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.
Re: Use Require and Import
Thanks for your reply let me get it more clear by taking an example. Suppose I am having 2 file a.clj and b.clj a.clj code is as follows (ns com.gettingerror.a) (defn Getting ..) (defn Error ..) b.clj code is as follows (ns com.gettingerror.b (:require [com.gettingerror.a] ) :import [com.gettingerror.a Getting Error])) So, can you please tell me when I load b.clj in REPL then what happens and What difference comes between these Require and Import. On Fri, Sep 19, 2014 at 12:25 PM, Michael Klishin michael.s.klis...@gmail.com wrote: On 19 September 2014 at 10:53:32, Gomzee (gettingerr...@gmail.com) wrote: I am new to clojure can any one give me a good example answer to differentiate between Use, Require and Import. Specially I am getting confused with Require and Import. require loads and compiles Clojure namespaces. Import allows you to avoid using fully-qualified Java class names (the same as import in Java). See http://clojure-doc.org/articles/language/namespaces.html and http://clojure-doc.org/articles/language/interop.html. -- @michaelklishin, github.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.
Re: Use Require and Import
On 19 September 2014 at 11:04:50, Hemant Gautam (gettingerr...@gmail.com) wrote: So, can you please tell me when I load b.clj in REPL then what happens and What difference comes between these Require and Import. You do not import functions. That's what :refer, an option on require, is for. Only Java classes are imported. If you do not need to instantiate or otherwise use Java classes, don't use import. When Clojure compiler compiles b.clj, it will notice that you require com.gettingerror.a (in this example) and will compile that first, then make it available in b as com.gettingerror.a. This is explained in more depth with examples in the guides I've linked to. -- @michaelklishin, github.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.
Re: [ANN] Nginx-Clojure v0.2.5 released!
1. You should configure JVM memory in nginx.conf, not in project.clj. 2. Nginx worker process JVM instance are in the same process but the java heap memory is managed by JVM instance itself. On Thursday, September 18, 2014 2:21:23 PM UTC+8, larry google groups wrote: JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory This is a stupid question on my part, but how does Nginx manage memory for a JVM instance? If my app has a line in project.clj such as: :jvm-opts [-Xms100m -Xmx1000m -XX:-UseCompressedOops]) then the memory is hardcoded, yes? Does Nginx have a way to ignore this and manage the memory without regard to Xmx settings? On Sunday, September 7, 2014 12:52:17 PM UTC-4, Xfeep wrote: Sorry I don't use Immutant + Wildfly and know little about it. The simple benchmarks including Immutant Nginx-Clojure can be found from HERE https://github.com/ptaoussanis/clojure-web-server-benchmarks . From Nginx-Clojure the most attractive things to us is : 1. Nginx's architecture is Master + Worker processes, Nginx-Clojure embed one JVM in per Worker process. So if any of worker process crashes, the other JVM instances can still work and the Master will recreate a new Worker process embedding with a new JVM instance. 2. Nginx's perfect performance when handle even over 10 thousand connections 3. Coroutine based socket let old Java Socket API based app/libraries won't lock a thread anymore 4. IO (Coroutine based socket, Asynchronous socket Channel) are on top of Nginx IO API which is more worldly-wise than Java NIO on huge scalar server application. 5. JVMs are not goot at huge memory management. Configurable multiple JVM instances (is the same number of Nginx Worker processes) will manage less memory. e.g. we have ten Nginx Worker processes in one Nginx instance every JVM instance will only manage 1/10 memory 6. Nginx already has many modules / features such as rate limit , spdy , pages cache, image filter etc. Most of them maybe are difficult or less effective to be implemented in pure Java world. Xfeep On Sun, Sep 7, 2014 at 11:27 PM, gvim gvi...@gmail.com wrote: On 07/09/2014 13:45, Yuexiang Zhang wrote: 0.2.5 (2014-09-07) 1. New Feature: Reference variables in jvm_options different jvm debug ports for jvm processes (issue #42) 2. New Feature: Server Sent Events(SSE) Long polling (issue #41, issue #36) 3. New Feature: Supports 64-bit JDK on 64-bit Windows (issue #40) 4. New Feature: Coroutine based socket supports JDK8 (issue #39) 5. New Feature: More easier to archive Sub/Pub services with Broadcast Events to all Nginx workers (issue #39) 6. New Feature: Asynchronous Channel a wrapper of asynchronous socket to make the usage easier (issue #37) 7. Enhancement: Fix--On Windows a little many write events happen and these events seem useless (issue #35) What are the trade-offs, if any, compared with Immutant + Wildfly (on CentOS 6)? Memory usage is of particular interest. gvim -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to a topic in the Google Groups Clojure group. To unsubscribe from this topic, visit https://groups.google.com/d/ topic/clojure/baqWfrei8CE/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+u...@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] tools.analyzer[.jvm] 0.6.0 release, pass scheduler
Congratulations Nicola, that looks really excellent! On 19 September 2014 07:06, Nicola Mometto brobro...@gmail.com wrote: Today I released version 0.6.0 of the tools.analyzer[1] and tools.analyzer.jvm[2] contrib libraries. With this release comes a new feature I'm really excited about and that I believe will help users of this library significantly: a pass scheduler. Previous to this release, tools.analyzer passes had to be combined manually, requiring deep knowledge of the implementation of those passes, whose dependencies were not explicit. That usually resulted in users copy-pasting the tools.analyzer.jvm run-passes function using that as a template. With the new scheduler, all of this is no longer necessary as all it takes care of automatically pulling in dependencies and composing the passes in the required and most efficient order, composing together passes whenever possible, to minimize the overhead of a full tree traversal. To get a sense of how that has improved, here's run-passes from 0.5.6: https://github.com/clojure/tools.analyzer.jvm/blob/be55b4e32371060932ac8d4094eb5b1b77fe4349/src/main/clojure/clojure/tools/analyzer/jvm.clj#L430-L477 and here it is from 0.6.0, using the pass scheduler: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/jvm.clj#L397-L427 Exposing the default-passes set, users who want to add a pass to the default passes run by t.a.jvm need only to bind run-passes to `(schedule (conj default-passes #'my-pass))`, or dissoc a default pass if not needed. To get started with the pass scheduler, here's its extensive docstring: https://github.com/clojure/tools.analyzer/blob/7a8cba9b26689675debdaabc83f20e485003bf5a/src/main/clojure/clojure/tools/analyzer/passes.clj#L137-L168 and here is a comprehensive example of a pass configuration via :pass-info: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/passes/jvm/validate_loop_locals.clj#L150 Nicola [1]https://github.com/clojure/tools.analyzer [2]https://github.com/clojure/tools.analyzer.jvm -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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] tools.analyzer[.jvm] 0.6.0 release, pass scheduler
Hi Nicola, why do you pass a set of vars to schedule rather than a set of functions? I'm just interested. It's unusual to see #' Dave On Friday, 19 September 2014 05:07:08 UTC+10, Nicola Mometto wrote: Today I released version 0.6.0 of the tools.analyzer[1] and tools.analyzer.jvm[2] contrib libraries. With this release comes a new feature I'm really excited about and that I believe will help users of this library significantly: a pass scheduler. Previous to this release, tools.analyzer passes had to be combined manually, requiring deep knowledge of the implementation of those passes, whose dependencies were not explicit. That usually resulted in users copy-pasting the tools.analyzer.jvm run-passes function using that as a template. With the new scheduler, all of this is no longer necessary as all it takes care of automatically pulling in dependencies and composing the passes in the required and most efficient order, composing together passes whenever possible, to minimize the overhead of a full tree traversal. To get a sense of how that has improved, here's run-passes from 0.5.6: https://github.com/clojure/tools.analyzer.jvm/blob/be55b4e32371060932ac8d4094eb5b1b77fe4349/src/main/clojure/clojure/tools/analyzer/jvm.clj#L430-L477 and here it is from 0.6.0, using the pass scheduler: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/jvm.clj#L397-L427 Exposing the default-passes set, users who want to add a pass to the default passes run by t.a.jvm need only to bind run-passes to `(schedule (conj default-passes #'my-pass))`, or dissoc a default pass if not needed. To get started with the pass scheduler, here's its extensive docstring: https://github.com/clojure/tools.analyzer/blob/7a8cba9b26689675debdaabc83f20e485003bf5a/src/main/clojure/clojure/tools/analyzer/passes.clj#L137-L168 and here is a comprehensive example of a pass configuration via :pass-info: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/passes/jvm/validate_loop_locals.clj#L150 Nicola [1]https://github.com/clojure/tools.analyzer [2]https://github.com/clojure/tools.analyzer.jvm -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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.
Programming Clojure in the large: libraries, frameworks, oh my
Hello, Clojurians! We all know that Clojure is *awesome* in the small — it's a pleasure to develop stuff with it on the level of a function or namespace. However, what still evades me is how to program in Clojure in the large: how to structure, say, web service in general; how should you manage threads; how to keep/reload configs; how component dependencies should be described and so on. It's all nice and clean when we have a cute little demo application for Liberator or fnhouse, but at least my code gets messy fast when different threads/threadpools, configs and start/stop logic are thrown in. Of course there is a bunch of attempts to provide libraries for this problem, here are a few that I'm aware of: — https://github.com/stuartsierra/component — it's widely used and is a cornerstone of many other libraries. Not really a complete solution, but a useful part of the puzzle. — https://github.com/RedBrainLabs/system-graph — combines component and Prismatic's plumbing. Looks nice, but last commit was made half a year ago. — https://github.com/juxt/jig — component plus configs plus bells-and-whistles. Looks a bit too big for me. — http://puppetlabs.com/blog/clojure-nerds-puppet-labs-application-services — full-blown application services framework. Looks interesting and maintained. — yet-unreleased Graph-based Prismatic framework that they've mentioned a few times. Am I missing something? What do you use? What do you think about your own code? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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.
Simultaneous Java + Clojure development: Cider without Leiningen?
I've posted this to SO http://stackoverflow.com/questions/25930222/simultaneous-java-clojure-development-cider-without-leiningen but maybe it's a better fit here. Here's the scenario: I am working on a project for a class that requires a Java solution: in particular, the key function receives an AI problem and returns an answer String. My intended approach is to receive the problem and, in turn, send it to a Clojure function that solves it and returns the solution String to the key function which, in turn, submits it. My question is one of work-flow. As an avid emacs user (though new to Clojure) I'd like to get the benefits of using Cider. However, as both the Clojure and the Java portions of this project are under development, starting a new project in Leiningen doesn't seem feasible or necessary. At the moment I have built into the Java a class which deals AI problems to Clojure upon a call and I then fire up a REPL from the command-line (non-Cider) and get to work on it, saving progress in a .clj. Once I have the AI solver worked out this way, I plan to wean myself off the custom problem dealer class (not valid in the final submission) and simply pass problems from the key Java function to a primary Clojure function and get the answer String back. *My final submission files MUST include:* KeyFunction.java *My final submission files can also include:* myClojureFile (JAR or other Java-callable format) So, how can I approach this while gaining the benefits of Cider (which has instructions always including a Leiningen project) when my Project is really in Java, in terms of final submission? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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] tools.analyzer[.jvm] 0.6.0 release, pass scheduler
The :pass-info metadata needed to resolve the pass dependency order is attached to the Vars, not to the functions. Even though we could attach that meta to the functions rather than to the Vars, leaving aside that it would be less pleasant, multimethods can't have metadata attached as they are not AFunctions so that would require wrapping each pass in a fn even when unnecessary. Given all this, using a set of Vars is perfectly reasonable. Nicola Dave Sann writes: Hi Nicola, why do you pass a set of vars to schedule rather than a set of functions? I'm just interested. It's unusual to see #' Dave On Friday, 19 September 2014 05:07:08 UTC+10, Nicola Mometto wrote: Today I released version 0.6.0 of the tools.analyzer[1] and tools.analyzer.jvm[2] contrib libraries. With this release comes a new feature I'm really excited about and that I believe will help users of this library significantly: a pass scheduler. Previous to this release, tools.analyzer passes had to be combined manually, requiring deep knowledge of the implementation of those passes, whose dependencies were not explicit. That usually resulted in users copy-pasting the tools.analyzer.jvm run-passes function using that as a template. With the new scheduler, all of this is no longer necessary as all it takes care of automatically pulling in dependencies and composing the passes in the required and most efficient order, composing together passes whenever possible, to minimize the overhead of a full tree traversal. To get a sense of how that has improved, here's run-passes from 0.5.6: https://github.com/clojure/tools.analyzer.jvm/blob/be55b4e32371060932ac8d4094eb5b1b77fe4349/src/main/clojure/clojure/tools/analyzer/jvm.clj#L430-L477 and here it is from 0.6.0, using the pass scheduler: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/jvm.clj#L397-L427 Exposing the default-passes set, users who want to add a pass to the default passes run by t.a.jvm need only to bind run-passes to `(schedule (conj default-passes #'my-pass))`, or dissoc a default pass if not needed. To get started with the pass scheduler, here's its extensive docstring: https://github.com/clojure/tools.analyzer/blob/7a8cba9b26689675debdaabc83f20e485003bf5a/src/main/clojure/clojure/tools/analyzer/passes.clj#L137-L168 and here is a comprehensive example of a pass configuration via :pass-info: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/passes/jvm/validate_loop_locals.clj#L150 Nicola [1]https://github.com/clojure/tools.analyzer [2]https://github.com/clojure/tools.analyzer.jvm -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Use Require and Import
On Friday, September 19, 2014 2:53:24 AM UTC-4, Gomzee wrote: I am new to clojure can any one give me a good example answer to differentiate between Use, Require and Import. Specially I am getting confused with Require and Import. To quote Craig Andera, require is load; see http://www.infoq.com/presentations/Clojure-Namespaces-Vars-Symbols. It's for loading Clojure libraries. `import` is for making unqualified Java names available. It's for Java interop. Don't use `use`. :) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Use Require and Import
On Sep 19, 2014, at 11:26 AM, John Gabriele jmg3...@gmail.com wrote: Don't use `use`. :) Since the OP is new here I'll point out that that :) is probably a nod to the fact that there's a long history of controversy on the utility/evils of use. Some (like me) think there are programming contexts in which it is appropriate and importantly helpful. Others think it should be abolished. A lot more discussion can be found in the archives if you're really interested. -Lee -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: ClojureScript 0.0-2341, Improved Analysis Transducers
Here is a bookmarklet that turns /CLJS-\d+/ text into link: https://dl.dropboxusercontent.com/u/12379861/cljsjira.html Thanks for the release! Especially CLJS-855 :-) Alan On Thursday, September 18, 2014 9:46:42 PM UTC-4, bob wrote: It would be better that the jira issues have links. On Thursday, September 18, 2014 8:23:45 PM UTC+8, David Nolen wrote:ClojureScript, the Clojure compiler that emits JavaScript source code. README and source code: https://github.com/clojure/clojurescript New release version: 0.0-2341 Leiningen dependency information: [org.clojure/clojurescript 0.0-2341] This releases comes with considerably better analysis. Vars from other namespaces are finally also verified. Protocols previously saw very little analysis support. Protocol method implementations are now checked for validity against the declared protocol. Transducers are also now in sync with Clojure 1.7.0-alpha2 Feedback welcome! ### Enhancements * transducers ### Fixes * CLJS-704: warn if protocol extended to type multiple times in extend-type * CLJS-702: warn if protocol doesn't match declared * CLJS-859: use https for the bootstrap script * CLJS-855: combinatorial code generation under advanced * CLJS-858: resolve-existing var does not check vars outside current ns * CLJS-852: same group-by as Clojure * CLJS-847: Safari toString fix * CLJS-846: preserve namespace metadata -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: ClojureScript 0.0-2341, Improved Analysis Transducers
Thank you for the release. --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Fri, Sep 19, 2014 at 12:49 PM, Alan Dipert a...@dipert.org wrote: Here is a bookmarklet that turns /CLJS-\d+/ text into link: https://dl.dropboxusercontent.com/u/12379861/cljsjira.html Thanks for the release! Especially CLJS-855 :-) Alan On Thursday, September 18, 2014 9:46:42 PM UTC-4, bob wrote: It would be better that the jira issues have links. On Thursday, September 18, 2014 8:23:45 PM UTC+8, David Nolen wrote:ClojureScript, the Clojure compiler that emits JavaScript source code. README and source code: https://github.com/clojure/clojurescript New release version: 0.0-2341 Leiningen dependency information: [org.clojure/clojurescript 0.0-2341] This releases comes with considerably better analysis. Vars from other namespaces are finally also verified. Protocols previously saw very little analysis support. Protocol method implementations are now checked for validity against the declared protocol. Transducers are also now in sync with Clojure 1.7.0-alpha2 Feedback welcome! ### Enhancements * transducers ### Fixes * CLJS-704: warn if protocol extended to type multiple times in extend-type * CLJS-702: warn if protocol doesn't match declared * CLJS-859: use https for the bootstrap script * CLJS-855: combinatorial code generation under advanced * CLJS-858: resolve-existing var does not check vars outside current ns * CLJS-852: same group-by as Clojure * CLJS-847: Safari toString fix * CLJS-846: preserve namespace metadata -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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] Clojure Videos (with options for Linux users)
Nice, started watching yesterday, they are awesome. Thank you very much. --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Fri, Sep 19, 2014 at 3:49 AM, Gomzee gettingerr...@gmail.com wrote: I tried to open this link (https://tbaldridge.pivotshare.com). Its not working. Can you check and let me know. On Friday, September 19, 2014 6:21:46 AM UTC+5:30, tbc++ wrote: Just wanted to throw this out there, but I've been making steady progress on my Clojure Tutorial Videos (https://tbaldridge.pivotshare.com). We're up to 43 videos with new episodes added at a rate of about 2-3 a week. Some users have expressed a desire for the raw MP4 files for use on Linux, or other platforms where flash is not optimal, so I'm also happy to announce that the videos are available via Dropbox. There's a link on the site, the price is the same, but the process is manual so there is a processing delay of 1-2 days. Thanks to everyone who's offered encouragement and feedback. And yes...transducer videos will be up *soon*. They're recorded, but you should really start by watching the video of Rich's Strange Loop talk, that he'll be giving tomorrow. /sameless ad -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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] www.core-async.info: a new web resource for core.async
One suggestion, on the menus, like on this page: http://www.core-async.info/reference Set the cursor for pointer on those root menu elements, so the users know that it's supposed to be clickable, I took a few to realize because of the missing pointer arrow, hehe. Also, I find it a kind hard to navigate, on the first page you have to go all the way on a small link to continue to the next step, would be nice to have a general full index (like a book) and consistent buttons to navigate back/forward. Besides that, nice job, thanks for taking the effort to make it :) --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Thu, Sep 18, 2014 at 5:22 PM, Daniel Solano Gómez cloj...@sattvik.com wrote: On Thu Sep 18 12:14 2014, Ashton Kemerling wrote: That looks really nice! My only feedback is that it doesn't load at all on my iPhone. Thanks for the information. I haven't yet taken the time to make it entirely mobile-friendly, but it is however on my list of things to do. Sincerely, Daniel On Thu, Sep 18, 2014 at 1:01 PM, Daniel Solano Gómez cloj...@sattvik.com wrote: Hello, all, Over the past few months I have been working on creating some resources to help people learn to use core.async. My goal is make this the best resource available to help people get started with core.async and to document best practices for composing applications with core.async. It is still a work in progress, but it currently includes the following: 1. An introduction to channels, buffers, and basic channel operations 2. A tutorial/workshop that introduces core.async using both Clojure and ClojureScript 3. A reference section of the core.async API, including both the Clojure and ClojureScript sources Please check it out at www.core-async.info. I will continue to add more reference and tutorial material in the future. Please let me know if there is anything you would think would be useful to add. Thanks, 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. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Anyone willing to do a tutorial on minecraft modding in clojure?
On Thursday, September 18, 2014 4:31:05 PM UTC-4, Jeb wrote: Is Bukkit an option? I've used https://github.com/CmdrDats/clj-minecraft. Active project, fun and easy to use. On Thu, Sep 18, 2014 at 4:30 AM, Hi-tech Robert hitech...@gmail.com javascript: wrote: Hi, I am looking for tutorial on modding minecraft 1.7.4 in clojure. There are plenty of tutorial that use java e.g. http://www.youtube.com/watch?v=e6v5egIkThk but I want to use clojure instead as Java is too verbose. The closest i managed to find is this http://metaphysicaldeveloper.wordpress.com/2012/04/20/conjcraft-a-minecraft-mod-implemented-in-clojure/ , however it is too outdated to be useful as minecraft modding is mainly done with minecraft forge, a third party library these days. Forge uses a custom gradle build script to build the mods and I have no idea how to get it to work with clojure. Help would be appreciated. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.com javascript: 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 --- Thanks for posting this question and for posting that response as a suggestion, this has been an interest of mine too. I'm not a big fan of the game, but my kids adore it and I'm hoping to use this as the gateway into getting them genuinely interested in software development. While I'm on this topic, if you haven't seen it there is a project to teach kids software development using graphical widgets and optionally Javascript: http://www.learntomod.com/ I am not affiliated with the project in any way, I just thought it was noteworthy. -Mike -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Programming Clojure in the large: libraries, frameworks, oh my
I think you’ve missed Immutant: http://immutant.org . I’ve used it on multiple projects for serving HTTP requests, coordinating background jobs, caching, and inter-app communication. It’s also fairly easy to get set up with a clustered configuration. On Friday, September 19, 2014 at 15:52, Dmitry Groshev wrote: Hello, Clojurians! We all know that Clojure is *awesome* in the small — it's a pleasure to develop stuff with it on the level of a function or namespace. However, what still evades me is how to program in Clojure in the large: how to structure, say, web service in general; how should you manage threads; how to keep/reload configs; how component dependencies should be described and so on. It's all nice and clean when we have a cute little demo application for Liberator or fnhouse, but at least my code gets messy fast when different threads/threadpools, configs and start/stop logic are thrown in. Of course there is a bunch of attempts to provide libraries for this problem, here are a few that I'm aware of: — https://github.com/stuartsierra/component — it's widely used and is a cornerstone of many other libraries. Not really a complete solution, but a useful part of the puzzle. — https://github.com/RedBrainLabs/system-graph — combines component and Prismatic's plumbing. Looks nice, but last commit was made half a year ago. — https://github.com/juxt/jig — component plus configs plus bells-and-whistles. Looks a bit too big for me. — http://puppetlabs.com/blog/clojure-nerds-puppet-labs-application-services — full-blown application services framework. Looks interesting and maintained. — yet-unreleased Graph-based Prismatic framework that they've mentioned a few times. Am I missing something? What do you use? What do you think about your own code? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com (mailto:clojure@googlegroups.com) Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com (mailto:clojure+unsubscr...@googlegroups.com) For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com (mailto: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.
Programming Clojure in the large: libraries, frameworks, oh my
Just a note - juxt/jig isn't being maintained, and has been replaced by juxt/modular. Modular is based on Stuart Sierra's component library, and mainly consists of several pre-built components and some nice helpers for wiring and configuring components. It also plays well with juxt/ceylon, which provides a growing collection of pre-built security components and looks very promising. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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.
Rich Hickey's Transducers talk from Strange Loop
For your enjoyment... https://www.youtube.com/watch?v=6mTbuzafcII -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Rich Hickey's Transducers talk from Strange Loop
Alex, Thanks for getting the videos up so quickly! cheers, Bruce On Fri, Sep 19, 2014 at 9:31 PM, Alex Miller a...@puredanger.com wrote: For your enjoyment... https://www.youtube.com/watch?v=6mTbuzafcII -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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. -- @otfrom | CTO co-founder @MastodonC | mastodonc.com See recent coverage of us in the Economist http://econ.st/WeTd2i and the Financial Times http://on.ft.com/T154BA -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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] tools.analyzer[.jvm] 0.6.0 release, pass scheduler
thanks On Friday, 19 September 2014 23:08:35 UTC+10, Nicola Mometto wrote: The :pass-info metadata needed to resolve the pass dependency order is attached to the Vars, not to the functions. Even though we could attach that meta to the functions rather than to the Vars, leaving aside that it would be less pleasant, multimethods can't have metadata attached as they are not AFunctions so that would require wrapping each pass in a fn even when unnecessary. Given all this, using a set of Vars is perfectly reasonable. Nicola Dave Sann writes: Hi Nicola, why do you pass a set of vars to schedule rather than a set of functions? I'm just interested. It's unusual to see #' Dave On Friday, 19 September 2014 05:07:08 UTC+10, Nicola Mometto wrote: Today I released version 0.6.0 of the tools.analyzer[1] and tools.analyzer.jvm[2] contrib libraries. With this release comes a new feature I'm really excited about and that I believe will help users of this library significantly: a pass scheduler. Previous to this release, tools.analyzer passes had to be combined manually, requiring deep knowledge of the implementation of those passes, whose dependencies were not explicit. That usually resulted in users copy-pasting the tools.analyzer.jvm run-passes function using that as a template. With the new scheduler, all of this is no longer necessary as all it takes care of automatically pulling in dependencies and composing the passes in the required and most efficient order, composing together passes whenever possible, to minimize the overhead of a full tree traversal. To get a sense of how that has improved, here's run-passes from 0.5.6: https://github.com/clojure/tools.analyzer.jvm/blob/be55b4e32371060932ac8d4094eb5b1b77fe4349/src/main/clojure/clojure/tools/analyzer/jvm.clj#L430-L477 and here it is from 0.6.0, using the pass scheduler: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/jvm.clj#L397-L427 Exposing the default-passes set, users who want to add a pass to the default passes run by t.a.jvm need only to bind run-passes to `(schedule (conj default-passes #'my-pass))`, or dissoc a default pass if not needed. To get started with the pass scheduler, here's its extensive docstring: https://github.com/clojure/tools.analyzer/blob/7a8cba9b26689675debdaabc83f20e485003bf5a/src/main/clojure/clojure/tools/analyzer/passes.clj#L137-L168 and here is a comprehensive example of a pass configuration via :pass-info: https://github.com/clojure/tools.analyzer.jvm/blob/1757871eb828c419f8de1cf177f125897f653829/src/main/clojure/clojure/tools/analyzer/passes/jvm/validate_loop_locals.clj#L150 Nicola [1]https://github.com/clojure/tools.analyzer [2]https://github.com/clojure/tools.analyzer.jvm -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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: Rich Hickey's Transducers talk from Strange Loop
Awesome! Thank you very much! --- Wilker Lúcio http://about.me/wilkerlucio/bio Woboinc Consultant +55 81 82556600 On Fri, Sep 19, 2014 at 5:33 PM, Bruce Durling b...@otfrom.com wrote: Alex, Thanks for getting the videos up so quickly! cheers, Bruce On Fri, Sep 19, 2014 at 9:31 PM, Alex Miller a...@puredanger.com wrote: For your enjoyment... https://www.youtube.com/watch?v=6mTbuzafcII -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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. -- @otfrom | CTO co-founder @MastodonC | mastodonc.com See recent coverage of us in the Economist http://econ.st/WeTd2i and the Financial Times http://on.ft.com/T154BA -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from 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.