Re: [ANN] Clojure Videos (with options for Linux users)

2014-09-19 Thread Gomzee
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

2014-09-19 Thread Gomzee
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

2014-09-19 Thread Michael Klishin
 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

2014-09-19 Thread Hemant Gautam
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

2014-09-19 Thread Michael Klishin
 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!

2014-09-19 Thread Xfeep
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

2014-09-19 Thread Colin Fleming
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

2014-09-19 Thread Dave Sann
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

2014-09-19 Thread Dmitry Groshev
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?

2014-09-19 Thread Tory S. Anderson
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

2014-09-19 Thread Nicola Mometto

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

2014-09-19 Thread John Gabriele
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

2014-09-19 Thread Lee Spector


 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

2014-09-19 Thread Alan Dipert
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

2014-09-19 Thread Wilker
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)

2014-09-19 Thread Wilker
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

2014-09-19 Thread Wilker
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?

2014-09-19 Thread Michael Swierczek
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

2014-09-19 Thread Joshua Ballanco
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

2014-09-19 Thread Mike Haney
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

2014-09-19 Thread Alex Miller
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

2014-09-19 Thread Bruce Durling
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

2014-09-19 Thread Dave Sann
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

2014-09-19 Thread Wilker
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.