Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread Glen Mailer
This doesn't really answer your question directly, but is there a reason you 
need to keep this in clojure, or are you just aiming to establish why this is 
happening?

My understanding was that for performance critical code the general advice is 
to drop down to raw java?

Glen

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread Jason Wolfe
Thanks for your response.  I attempted to answer this in my clarification, 
but our goal is to attack this 'general advice' and make it possible to get 
the same speed for array handling in natural-seeming Clojure without 
writing Java.  In particular, we want to create macros that make it easy to 
achieve maximum performance by putting *your code* for manipulating array 
elements in the middle of an optimized loop, and this can't be done easily 
at the library level (as far as I can see) by dropping to Java, since in 
Java your code would always have to be wrapped in a method invocation with 
corresponding performance implications.  

Our previous version of this library (developed for Clojure 1.2, IIRC) was 
able to get within 0-30% or so of raw Java speed while providing a clean 
Clojure interface, and we're trying to get back to this point with Clojure 
1.5 so we can release it as open-source for everyone to use.

-Jason

On Friday, June 14, 2013 12:04:12 AM UTC-7, Glen Mailer wrote:
>
> This doesn't really answer your question directly, but is there a reason 
> you need to keep this in clojure, or are you just aiming to establish why 
> this is happening?
>
> My understanding was that for performance critical code the general advice 
> is to drop down to raw java?
>
> Glen
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread David Nolen
Maybe this is an unintended side effect of the changes around unboxed
support in loop/recur?


On Thu, Jun 13, 2013 at 10:50 PM, Jason Wolfe  wrote:

> Taking a step back, the core problem we're trying to solve is just to sum
> an array's values as quickly as in Java. (We really want to write a fancier
> macro that allows arbitrary computations beyond summing that can't be
> achieved by just calling into Java, but this simpler task gets at the crux
> of our performance issues).
>
> This Java code:
>
>   public static double asum_noop_indexed(double[] arr) {
> double s = 0;
> for (int i = 0; i < arr.length; i++) {
>   s += arr[i];
> }
> return s;
>   }
>
> can run on an array with 10k elements in about 8 microseconds. In
> contrast, this Clojure code (which I believe used to be as fast as the Java
> in a previous Clojure version):
>
> (defn asum-identity [^doubles a]
>   (let [len (long (alength a))]
> (loop [sum 0.0
>idx 0]
>   (if (< idx len)
> (let [ai (aget a idx)]
>   (recur (+ sum ai) (unchecked-inc idx)))
> sum
>
> executes on the same array in about 40 microseconds normally, or 14
> microseconds with *unchecked-math* set to true.  (We weren't using
> unchecked-math properly until today, which is why we were doing the hacky
> interface stuff above, please disregard that -- but I think the core point
> about an extra cast is still correct).
>
> For reference, (areduce a1 i r 0.0 (+ (aget a1 i) r)) takes about 23 ms to
> do the same computation (with unchecked-math true).
>
> Does anyone have ideas for how to achieve parity with Java on this task?
>  They'd be much appreciated!
>
> Thanks, Jason
>
> On Thursday, June 13, 2013 12:02:56 PM UTC-7, Leon Barrett wrote:
>>
>> Hi. I've been working with people at Prismatic to optimize some simple
>> math code in Clojure. However, it seems that Clojure generates an
>> unnecessary type check that slows our (otherwise-optimized) code by 50%. Is
>> there a good way to avoid this, is it a bug in Clojure 1.5.1, or something
>> else? What should I do to work around this?
>>
>> Here's my example. The aget seems to generate an unnecessary 
>> checkcastbytecode. I used Jasper and Jasmin to decompile and recompile 
>> Bar.class
>> into Bar_EDITED.class, without that bytecode. The edited version takes
>> about 2/3 the time.
>>
>> (ns demo
>>   (:import demo.Bar_EDITED))
>>
>> (definterface Foo
>>   (arraysum ^double [^doubles a ^int i ^int asize ^double sum]))
>>
>> (deftype Bar []
>>   Foo
>>   (arraysum ^double [this ^doubles a ^int i ^int asize ^double sum]
>> (if (< i asize)
>>   (recur a (unchecked-inc-int i) asize (+ sum (aget a i)))
>>   sum)))
>>
>> (defn -main [& args]
>>   (let [bar (Bar.)
>> bar-edited (Bar_EDITED.)
>> asize 1
>> a (double-array asize)
>> i 0
>> ntimes 1]
>> (time
>>
>>   (dotimes [iter ntimes]
>> (.arraysum bar a i asize 0)))
>> (time
>>   (dotimes [iter ntimes]
>> (.arraysum bar-edited a i asize 0)
>>
>>
>> ;; $ lein2 run -m demo
>> ;; Compiling demo
>> ;; "Elapsed time: 191.015885 msecs"
>> ;; "Elapsed time: 129.332 msecs"
>>
>>
>> Here's the bytecode for Bar.arraysum:
>>
>>   public java.lang.Object arraysum(double[], int, int, double);
>> Code:
>>0: iload_2
>>1: i2l
>>2: iload_3
>>3: i2l
>>4: lcmp
>>5: ifge  39
>>8: aload_1
>>9: iload_2
>>   10: iconst_1
>>   11: iadd
>>   12: iload_3
>>   13: dload 4
>>   15: aload_1
>>   16: aconst_null
>>   17: astore_1
>>   18: checkcast #60 // class "[D"
>>   21: iload_2
>>   22: invokestatic  #64 // Method
>> clojure/lang/RT.intCast:(I)I
>>   25: daload
>>   26: dadd
>>   27: dstore4
>>   29: istore_3
>>   30: istore_2
>>   31: astore_1
>>   32: goto  0
>>   35: goto  44
>>   38: pop
>>   39: dload 4
>>   41: invokestatic  #70 // Method
>> java/lang/Double.valueOf:(D)**Ljava/lang/Double;
>>   44: areturn
>>
>>
>> As far as I can tell, Clojure generated a checkcast opcode that tests on
>> every loop to make sure the double array is really a double array. When I
>> remove that checkcast, I get a 1/3 speedup (meaning it's a 50% overhead).
>>
>> Can someone help me figure out how to avoid this overhead?
>>
>> Thanks.
>>
>> - Leon Barrett
>>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received t

Re: End user applications

2013-06-14 Thread Phillip Lord


Wolodja Wentland  writes:
> On 13 Jun 2013 15:31, "Aaron Cohen"  wrote:
>>
>> What about Overtone? http://overtone.github.io/
>
> Overtone is certainly great, but I would rather classify it as a library as
> you still have to write programs to use it. There might be an independent
> UI these days that I am unfamiliar with though.


The problem that you have here is that the definition of "end-user".
Overtone allows people with both musical and programming skills to use
both to make noise. These are end-users, albeit a rather narrow
selection.

I'm building a library for the construction of ontologies with a similar
aim. Non-programmers should be able to use it to build ontologies;
programming ontologists should be able to use it to build ontologies
more easily.

End-user? Well, it's not designed for programmers (only), nor for anyone
who cares about clojure. Ironically, when I did the last release, people
here complained about the documentation -- it made the assumption that
the reader knew what an ontology was; a bad assumption for people here.

So, it depends what you mean by "end-user". If you mean "with a GUI",
that's a nice and simple definition.

Phil

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




possible side-effect/problem in http://clojure.org/concurrent_programming

2013-06-14 Thread Amir Wasim
I was using the first example to make a process executing parallely


(defn test-stm [nitems nthreads niters]
  (let [refs  (map ref (repeat nitems 0))
pool  (Executors/newFixedThreadPool nthreads)
tasks (map (fn [t]
  (fn []
(dotimes [n niters]
  (dosync
(doseq [r refs]
  (alter r + 1 t))
   (range nthreads))]
(doseq [future (.invokeAll pool tasks)]
  (.get future))
(.shutdown pool)
(map deref refs)))

 

i was generating taks just like above as follows

   tasks (map #(test-fn % 1 5) deliveries)

But only one task was active at a time, although Executors was configured 
with 4 threads. It occurred to me that map itself is lazy and it is 
realized in doseq one at a time. A possible fix is to use for instead of 
map to generate tasks

I tried with the following

   tasks (for [delivery_ deliveries] #(test-fn delivery_ 1 5))

and it works and 4 threads are active during execution.



-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: possible side-effect/problem in http://clojure.org/concurrent_programming

2013-06-14 Thread Amir Wasim
complete example

(ns wm.test
  (import [java.util.concurrent Executors])  
)

(def deliveries (map char (range 65 90)))

(defn- test-fn
  [delivery another param]
  (println "in test sleeping" delivery another param)
  (let[sleep-for (rand-int 1)]
(println "sleeping for " sleep-for)
(Thread/sleep sleep-for)
)
  (println "finished sleeping" delivery)
  )

(defn- deliver-parallely
  [nthreads deliveries]
  (let[pool  (Executors/newFixedThreadPool nthreads)
   tasks (for [delivery_ deliveries] #(test-fn delivery_ 1 5))
   futures (.invokeAll pool tasks)
   ]
(println "max " (.getMaximumPoolSize pool))
(for [ftr futures]
  (.get ftr))
(.shutdown pool)
)
  )

(deliver-parallely2 4 deliveries)

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread Mikera
Hi Jason,

Have you guys taken a look at core.matrix for any of this stuff? We're also 
shooting for near-Java-parity for all of the core operations on large 
double arrays. 

(use 'clojure.core.matrix)
(require '[criterium.core :as c])

(let [a (double-array (range 1))]
   (c/quick-bench (esum a)))

WARNING: Final GC required 69.30384798936066 % of runtime
Evaluation count : 45924 in 6 samples of 7654 calls.
 Execution time mean : 12.967112 µs
Execution time std-deviation : 326.480900 ns
   Execution time lower quantile : 12.629252 µs ( 2.5%)
   Execution time upper quantile : 13.348527 µs (97.5%)
   Overhead used : 3.622005 ns

All the core.matrix functions get dispatched via protocols, so they work on 
any kind of multi-dimensional matrix (not just Java arrays). This adds a 
tiny amount of overhead (about 10-15ns), but it is negligible when dealing 
with medium-to-large vectors/matrices/arrays.

I'm interested in feedback and hopefully we can collaborate: I'm keen to 
get the best optimised numerical functions we can in Clojure. Also, I think 
you may find the core.matrix facilities very helpful when moving to higher 
level abstractions (i.e. 2D matrices and higher order multi-dimensional 
arrays)


On Thursday, 13 June 2013 21:50:48 UTC+1, Jason Wolfe wrote:
>
> Taking a step back, the core problem we're trying to solve is just to sum 
> an array's values as quickly as in Java. (We really want to write a fancier 
> macro that allows arbitrary computations beyond summing that can't be 
> achieved by just calling into Java, but this simpler task gets at the crux 
> of our performance issues).
>
> This Java code:
>
>   public static double asum_noop_indexed(double[] arr) {
> double s = 0;
> for (int i = 0; i < arr.length; i++) {
>   s += arr[i];
> }
> return s;
>   }
>
> can run on an array with 10k elements in about 8 microseconds. In 
> contrast, this Clojure code (which I believe used to be as fast as the Java 
> in a previous Clojure version):
>
> (defn asum-identity [^doubles a]
>   (let [len (long (alength a))]
> (loop [sum 0.0
>idx 0]
>   (if (< idx len)
> (let [ai (aget a idx)]
>   (recur (+ sum ai) (unchecked-inc idx)))
> sum
>
> executes on the same array in about 40 microseconds normally, or 14 
> microseconds with *unchecked-math* set to true.  (We weren't using 
> unchecked-math properly until today, which is why we were doing the hacky 
> interface stuff above, please disregard that -- but I think the core point 
> about an extra cast is still correct).  
>
> For reference, (areduce a1 i r 0.0 (+ (aget a1 i) r)) takes about 23 ms to 
> do the same computation (with unchecked-math true).
>
> Does anyone have ideas for how to achieve parity with Java on this task? 
>  They'd be much appreciated! 
>
> Thanks, Jason
>
> On Thursday, June 13, 2013 12:02:56 PM UTC-7, Leon Barrett wrote:
>>
>> Hi. I've been working with people at Prismatic to optimize some simple 
>> math code in Clojure. However, it seems that Clojure generates an 
>> unnecessary type check that slows our (otherwise-optimized) code by 50%. Is 
>> there a good way to avoid this, is it a bug in Clojure 1.5.1, or something 
>> else? What should I do to work around this?
>>
>> Here's my example. The aget seems to generate an unnecessary 
>> checkcastbytecode. I used Jasper and Jasmin to decompile and recompile 
>> Bar.class 
>> into Bar_EDITED.class, without that bytecode. The edited version takes 
>> about 2/3 the time.
>>
>> (ns demo
>>   (:import demo.Bar_EDITED))
>>
>> (definterface Foo
>>   (arraysum ^double [^doubles a ^int i ^int asize ^double sum]))
>>
>> (deftype Bar []
>>   Foo
>>   (arraysum ^double [this ^doubles a ^int i ^int asize ^double sum]
>> (if (< i asize)
>>   (recur a (unchecked-inc-int i) asize (+ sum (aget a i)))
>>   sum)))
>>
>> (defn -main [& args]
>>   (let [bar (Bar.)
>> bar-edited (Bar_EDITED.)
>> asize 1
>> a (double-array asize)
>> i 0
>> ntimes 1]
>> (time
>>
>>   (dotimes [iter ntimes]
>> (.arraysum bar a i asize 0)))
>> (time
>>   (dotimes [iter ntimes]
>> (.arraysum bar-edited a i asize 0)
>>
>>
>> ;; $ lein2 run -m demo
>> ;; Compiling demo
>> ;; "Elapsed time: 191.015885 msecs"
>> ;; "Elapsed time: 129.332 msecs"
>>
>>
>> Here's the bytecode for Bar.arraysum:
>>
>>   public java.lang.Object arraysum(double[], int, int, double);
>> Code:
>>0: iload_2   
>>1: i2l   
>>2: iload_3   
>>3: i2l   
>>4: lcmp  
>>5: ifge  39
>>8: aload_1   
>>9: iload_2   
>>   10: iconst_1  
>>   11: iadd  
>>   12: iload_3   
>>   13: dload 4
>>   15: aload_1   
>>   16: aconst_null   
>>   17: astore_1  
>>   18: checkcast #60

Re: possible side-effect/problem in http://clojure.org/concurrent_programming

2013-06-14 Thread Raoul Duke
> But only one task was active at a time, although Executors was configured
> with 4 threads. It occurred to me that map itself is lazy and it is realized
> in doseq one at a time. A possible fix is to use for instead of map to
> generate tasks


almost makes me wish there were types (er, sorry, metadata) associated
with functions that told us if they were single-threaded or not, so
one could more quickly find such blocks. :-)

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




In what OS do you code?

2013-06-14 Thread Erlis Vidal
Hi,

I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux,
Windows? Why is that? Because the tools? The environment?

Thanks!

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Joseph Smith
I write code in OSX. 

---
Joseph Smith
@solussd

On Jun 14, 2013, at 8:46 AM, Erlis Vidal  wrote:

> Hi, 
> 
> I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux, 
> Windows? Why is that? Because the tools? The environment? 
> 
> Thanks!
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Denis Labaye
Linux everywhere:
- Natively @ work
- Natively @ home
- In a VirtualBox VM in a MacBook air in the tube

Reasons:
- Free and Open source
- "Standard" (Learn once use everywhere)
- Rock solid


On Fri, Jun 14, 2013 at 3:46 PM, Erlis Vidal  wrote:

> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Gary Trakhman
Linux.  I started making the investment 12 years ago with RedHat 6.2 and
Slackware, so the extra fuss-time tradeoff is worth it for me, since I can
minimize it by now.

I can have a working clojure system from scratch in 20 minutes, which I've
demonstrated here:
http://gtrak.wordpress.com/2012/12/19/clojure-environment-state-of-the-union-install-speedrun-screencast/

OSX is a huge step backwards from what I know how to do there, and Windows
is a necessary evil that I try to minimize.


On Fri, Jun 14, 2013 at 9:46 AM, Erlis Vidal  wrote:

> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Erlis Vidal
Gary, thanks for the link!




On Fri, Jun 14, 2013 at 9:52 AM, Gary Trakhman wrote:

> Linux.  I started making the investment 12 years ago with RedHat 6.2 and
> Slackware, so the extra fuss-time tradeoff is worth it for me, since I can
> minimize it by now.
>
> I can have a working clojure system from scratch in 20 minutes, which I've
> demonstrated here:
> http://gtrak.wordpress.com/2012/12/19/clojure-environment-state-of-the-union-install-speedrun-screencast/
>
> OSX is a huge step backwards from what I know how to do there, and Windows
> is a necessary evil that I try to minimize.
>
>
> On Fri, Jun 14, 2013 at 9:46 AM, Erlis Vidal  wrote:
>
>> Hi,
>>
>> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
>> Linux, Windows? Why is that? Because the tools? The environment?
>>
>> Thanks!
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Denis Labaye
On Fri, Jun 14, 2013 at 3:52 PM, Gary Trakhman wrote:

> Linux.  I started making the investment 12 years ago with RedHat 6.2 and
> Slackware, so the extra fuss-time tradeoff is worth it for me, since I can
> minimize it by now.
>
> I can have a working clojure system from scratch in 20 minutes, which I've
> demonstrated here:
> http://gtrak.wordpress.com/2012/12/19/clojure-environment-state-of-the-union-install-speedrun-screencast/
>

"20mn from scratch"
You mean installing the OS too ?
Because with an already installed Linux (with a good internet connexion)
you could do it in less than 5 minutes


>
>
> OSX is a huge step backwards from what I know how to do there, and Windows
> is a necessary evil that I try to minimize.
>
>
> On Fri, Jun 14, 2013 at 9:46 AM, Erlis Vidal  wrote:
>
>> Hi,
>>
>> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
>> Linux, Windows? Why is that? Because the tools? The environment?
>>
>> Thanks!
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Gary Trakhman
Yes, I installed the OS, too, that includes emacs, auto-complete, ac-nrepl
(I had some problem and had to look stuff up, I can do it faster now).


On Fri, Jun 14, 2013 at 9:54 AM, Denis Labaye wrote:

>
>
>
> On Fri, Jun 14, 2013 at 3:52 PM, Gary Trakhman wrote:
>
>> Linux.  I started making the investment 12 years ago with RedHat 6.2 and
>> Slackware, so the extra fuss-time tradeoff is worth it for me, since I can
>> minimize it by now.
>>
>> I can have a working clojure system from scratch in 20 minutes, which
>> I've demonstrated here:
>> http://gtrak.wordpress.com/2012/12/19/clojure-environment-state-of-the-union-install-speedrun-screencast/
>>
>
> "20mn from scratch"
> You mean installing the OS too ?
> Because with an already installed Linux (with a good internet connexion)
> you could do it in less than 5 minutes
>
>
>>
>>
>> OSX is a huge step backwards from what I know how to do there, and
>> Windows is a necessary evil that I try to minimize.
>>
>>
>> On Fri, Jun 14, 2013 at 9:46 AM, Erlis Vidal wrote:
>>
>>> Hi,
>>>
>>> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
>>> Linux, Windows? Why is that? Because the tools? The environment?
>>>
>>> Thanks!
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Steven Degutis
OS X on an MBP.

The only thing I liked about linux was xmonad. So I wrote a window manager
for OS X called AppGrid  (download
the zip)
that does everything I want a window manager to do on OS X. And then I made
it customizable via CoffeeScript, and renamed it to
Zephyros.
Now I use it with this CS
configto
do exactly what AppGrid does (with some fun additions).


On Fri, Jun 14, 2013 at 8:46 AM, Erlis Vidal  wrote:

> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[ANN] core.incubator 0.1.3

2013-06-14 Thread Chas Emerick
FYI, [org.clojure/core.incubator "0.1.3"] has been released:

https://github.com/clojure/core.incubator/

The only change was to note that two of the macros it provides (-?> and -?>>) 
are now deprecated, having been effectively "promoted" into Clojure itself in 
v1.5.0 (as some-> and some->>, respectively).

Cheers,

- Chas

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Laurent PETIT
Linux at work, OS X at home.

But this makes no big difference, since my toolchain is java end to
end: Eclipse, Maven.

2013/6/14 Erlis Vidal :
> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux,
> Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Clinton Dreisbach
I'm the opposite of Laurent (OS X at work and Linux at home) but I agree
with him. My toolchain is Java, Clojure, and Emacs, so I notice very little
difference between the two. My biggest pain point is differences in shell
scripts, mainly because OS X ships with BSD sed instead of GNU sed, which
is quite different.

-- Clinton


On Fri, Jun 14, 2013 at 10:45 AM, Laurent PETIT wrote:

> Linux at work, OS X at home.
>
> But this makes no big difference, since my toolchain is java end to
> end: Eclipse, Maven.
>
> 2013/6/14 Erlis Vidal :
> > Hi,
> >
> > I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux,
> > Windows? Why is that? Because the tools? The environment?
> >
> > Thanks!
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> your
> > first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Giacomo Cosenza
personally, I code on mac os x. in my company anyone is free to choose the 
preferred OS (most of our devs are using linux, few of them windows). 
mimmo


On Jun 14, 2013, at 3:46 PM, Erlis Vidal wrote:

> Hi, 
> 
> I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux, 
> Windows? Why is that? Because the tools? The environment? 
> 
> Thanks!
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Mayank Jain
Linux/Mac both at work and home.


On Fri, Jun 14, 2013 at 8:29 PM, Giacomo Cosenza wrote:

> personally, I code on mac os x. in my company anyone is free to choose the
> preferred OS (most of our devs are using linux, few of them windows).
> mimmo
>
>
> On Jun 14, 2013, at 3:46 PM, Erlis Vidal wrote:
>
> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



-- 
Regards,
Mayank.

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Javapocalypse

2013-06-14 Thread JeremyS
Hi guys, 

I just stumbled on this video . I'm sure many of you 
have found it on hacker news, but for those who haven't 
here is a bit of fun with our dear jvm.

Cheers,

Jeremys.

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Yves S. Garret
Well, you can't really code in iOS last time I checked.  But most of
the time it's Linux.  Preferably natively.

Why?  Because the tools that I need (VI, Erlang, grep, etc.) are all
there and I don't have to sit there and think about how to tie them
together (not even Cygwin gets rid of this problem.)


On Fri, Jun 14, 2013 at 9:46 AM, Erlis Vidal  wrote:

> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Database migrations

2013-06-14 Thread Reginald Choudari
Hello all,

I am trying to implement database migrations with Clojure. So far I have 
been looking at Drift (https://github.com/macourtney/drift) as a candidate 
for implementing this. My question is, does anyone have a database 
migration workflow that they use and would like to share? One problem I 
have been thinking is how to tackle database credentials/db name 
configuration. I know in Rails its common to use a YAML to provide this 
info, wondering if there was something more idiosyncratic to clojure?

Thanks in advance

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Steven Degutis
Phil uses this really cool trick:
https://github.com/technomancy/syme/blob/master/src/syme/db.clj#L66-L119

The benefit is that your migrations are just Clojure functions. No messing
around with files or timestamps or whatever. Dead simple.

I hope someone extracts it into a lib with tests around it. He won't on
principle, saying "copy/pasting it emphasizes just how simply this problem
can be solved". But there's something to be said for using a tested lib in
production code.


On Fri, Jun 14, 2013 at 11:24 AM, Reginald Choudari <
adnanchowdhur...@gmail.com> wrote:

> Hello all,
>
> I am trying to implement database migrations with Clojure. So far I have
> been looking at Drift (https://github.com/macourtney/drift) as a
> candidate for implementing this. My question is, does anyone have a
> database migration workflow that they use and would like to share? One
> problem I have been thinking is how to tackle database credentials/db name
> configuration. I know in Rails its common to use a YAML to provide this
> info, wondering if there was something more idiosyncratic to clojure?
>
> Thanks in advance
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: possible side-effect/problem in http://clojure.org/concurrent_programming

2013-06-14 Thread Alan Malloy
The laziness of map is irrelevant here, because .invokeAll is treating it 
as a collection and realizing it all immediately. Your version with for is 
just as lazy. What's actually changed is that your map and for produce 
entirely different outputs: the version with map calls test-fn, and the 
version with for produces a function which, when invoked, will call 
test-fn. Since the latter is what the original code you copied from does, 
of course only that version works. You could change your map to (map #(fn 
[] (test-fn % 1 5)) deliveries) as an easy fix, though personally I 
wouldn't use the #() syntax here; its closeness to a (fn) form is a little 
confusing. (map (fn [i] (fn [] (test-fn i 1 5))) deliveries) is equivalent, 
of course. Personally I prefer the version with the for-comprehension.

On Friday, June 14, 2013 2:30:04 AM UTC-7, Amir Wasim wrote:
>
> I was using the first example to make a process executing parallely
>
>
> (defn test-stm [nitems nthreads niters]
>   (let [refs  (map ref (repeat nitems 0))
> pool  (Executors/newFixedThreadPool nthreads)
> tasks (map (fn [t]
>   (fn []
> (dotimes [n niters]
>   (dosync
> (doseq [r refs]
>   (alter r + 1 t))
>(range nthreads))]
> (doseq [future (.invokeAll pool tasks)]
>   (.get future))
> (.shutdown pool)
> (map deref refs)))
>
>  
>
> i was generating taks just like above as follows
>
>tasks (map #(test-fn % 1 5) deliveries)
>
> But only one task was active at a time, although Executors was configured 
> with 4 threads. It occurred to me that map itself is lazy and it is 
> realized in doseq one at a time. A possible fix is to use for instead of 
> map to generate tasks
>
> I tried with the following
>
>tasks (for [delivery_ deliveries] #(test-fn delivery_ 1 5))
>
> and it works and 4 threads are active during execution.
>
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread Jason Wolfe
Hey Mikera,

I did look at core.matrix awhile ago, but I'll take another look.

Right now, flop is just trying to make it easy to write *arbitrary*
array operations compactly, while minimizing  the chance of getting
worse-than-Java performance.  This used to be very tricky to get right
when flop was developed (against Clojure 1.2); the situation has
clearly improved since then, but there still seem to be some
subtleties in going fast with arrays in 1.5.1 that we are trying to
understand and then automate.

As I understand it, core.matrix has a much more ambitious goal of
abstracting over all matrix types.  This is a great goal, but I'm not
sure if the protocol-based implementation can give users any help
writing new core operations efficiently (say, making a new array with
c[i] = a[i] + b[i]^2 / 2) -- unless there's some clever way of
combining protocols with macros (hmmm).

I just benchmarked core.matrix/esum, and on my machine in Clojure
1.5.1 it's 2.69x slower than the Java version above, and 1.62x slower
than our current best Clojure version.

A collaboration sounds interesting -- although right now it seems like
our goals are somewhat orthogonal.  What do you think?

-Jason

On Fri, Jun 14, 2013 at 2:58 AM, Mikera  wrote:
> Hi Jason,
>
> Have you guys taken a look at core.matrix for any of this stuff? We're also
> shooting for near-Java-parity for all of the core operations on large double
> arrays.
>
> (use 'clojure.core.matrix)
> (require '[criterium.core :as c])
>
> (let [a (double-array (range 1))]
>(c/quick-bench (esum a)))
>
> WARNING: Final GC required 69.30384798936066 % of runtime
> Evaluation count : 45924 in 6 samples of 7654 calls.
>  Execution time mean : 12.967112 µs
> Execution time std-deviation : 326.480900 ns
>Execution time lower quantile : 12.629252 µs ( 2.5%)
>Execution time upper quantile : 13.348527 µs (97.5%)
>Overhead used : 3.622005 ns
>
> All the core.matrix functions get dispatched via protocols, so they work on
> any kind of multi-dimensional matrix (not just Java arrays). This adds a
> tiny amount of overhead (about 10-15ns), but it is negligible when dealing
> with medium-to-large vectors/matrices/arrays.
>
> I'm interested in feedback and hopefully we can collaborate: I'm keen to get
> the best optimised numerical functions we can in Clojure. Also, I think you
> may find the core.matrix facilities very helpful when moving to higher level
> abstractions (i.e. 2D matrices and higher order multi-dimensional arrays)
>
>
> On Thursday, 13 June 2013 21:50:48 UTC+1, Jason Wolfe wrote:
>>
>> Taking a step back, the core problem we're trying to solve is just to sum
>> an array's values as quickly as in Java. (We really want to write a fancier
>> macro that allows arbitrary computations beyond summing that can't be
>> achieved by just calling into Java, but this simpler task gets at the crux
>> of our performance issues).
>>
>> This Java code:
>>
>>   public static double asum_noop_indexed(double[] arr) {
>> double s = 0;
>> for (int i = 0; i < arr.length; i++) {
>>   s += arr[i];
>> }
>> return s;
>>   }
>>
>> can run on an array with 10k elements in about 8 microseconds. In
>> contrast, this Clojure code (which I believe used to be as fast as the Java
>> in a previous Clojure version):
>>
>> (defn asum-identity [^doubles a]
>>   (let [len (long (alength a))]
>> (loop [sum 0.0
>>idx 0]
>>   (if (< idx len)
>> (let [ai (aget a idx)]
>>   (recur (+ sum ai) (unchecked-inc idx)))
>> sum
>>
>> executes on the same array in about 40 microseconds normally, or 14
>> microseconds with *unchecked-math* set to true.  (We weren't using
>> unchecked-math properly until today, which is why we were doing the hacky
>> interface stuff above, please disregard that -- but I think the core point
>> about an extra cast is still correct).
>>
>> For reference, (areduce a1 i r 0.0 (+ (aget a1 i) r)) takes about 23 ms to
>> do the same computation (with unchecked-math true).
>>
>> Does anyone have ideas for how to achieve parity with Java on this task?
>> They'd be much appreciated!
>>
>> Thanks, Jason
>>
>> On Thursday, June 13, 2013 12:02:56 PM UTC-7, Leon Barrett wrote:
>>>
>>> Hi. I've been working with people at Prismatic to optimize some simple
>>> math code in Clojure. However, it seems that Clojure generates an
>>> unnecessary type check that slows our (otherwise-optimized) code by 50%. Is
>>> there a good way to avoid this, is it a bug in Clojure 1.5.1, or something
>>> else? What should I do to work around this?
>>>
>>> Here's my example. The aget seems to generate an unnecessary checkcast
>>> bytecode. I used Jasper and Jasmin to decompile and recompile Bar.class into
>>> Bar_EDITED.class, without that bytecode. The edited version takes about 2/3
>>> the time.
>>>
>>> (ns demo
>>>   (:import demo.Bar_EDITED))
>>>
>>> (definterface Foo
>>>   (arraysum ^double [^doubles a 

Re: In what OS do you code?

2013-06-14 Thread Mikhail Kryshen
I use GNU/Linux (specifically, Fedora at home and openSUSE, which I don't
like much compared to other distros, at work):
- I do not trust proprietary software vendors,
- I avoid supporting Microsoft and Apple out of ethical issues,
- I prefer the software distribution model where software comes from a
few trusted sources — repositories with packages verified, compiled and
signed by the distribution's maintainers.

Erlis Vidal  writes:

> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux,
> Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
Mikhail


pgpc00_Ovn61Z.pgp
Description: PGP signature


Re: In what OS do you code?

2013-06-14 Thread Jim - FooBar();
I use GNU/Linux exclusively as well...no other OS makes me feel in 
control :)


Jim


On 14/06/13 18:57, Mikhail Kryshen wrote:

I use GNU/Linux (specifically, Fedora at home and openSUSE, which I don't
like much compared to other distros, at work):
- I do not trust proprietary software vendors,
- I avoid supporting Microsoft and Apple out of ethical issues,
- I prefer the software distribution model where software comes from a
few trusted sources — repositories with packages verified, compiled and
signed by the distribution's maintainers.

Erlis Vidal  writes:


Hi,

I'm a bit curious to know in what OS do you code. Do you prefer iOS, Linux,
Windows? Why is that? Because the tools? The environment?

Thanks!

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups "Clojure" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Erlis Vidal
Hi guys!

Thanks for all the responses, it looks like Linux is the predominant OS in
the Clojure community.




On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar(); wrote:

> I use GNU/Linux exclusively as well...no other OS makes me feel in control
> :)
>
> Jim
>
>
>
> On 14/06/13 18:57, Mikhail Kryshen wrote:
>
>> I use GNU/Linux (specifically, Fedora at home and openSUSE, which I don't
>> like much compared to other distros, at work):
>> - I do not trust proprietary software vendors,
>> - I avoid supporting Microsoft and Apple out of ethical issues,
>> - I prefer the software distribution model where software comes from a
>> few trusted sources — repositories with packages verified, compiled and
>> signed by the distribution's maintainers.
>>
>> Erlis Vidal  writes:
>>
>>  Hi,
>>>
>>> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
>>> Linux,
>>> Windows? Why is that? Because the tools? The environment?
>>>
>>> Thanks!
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscribe@**googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/**group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to 
>>> clojure+unsubscribe@**googlegroups.com
>>> .
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out
>>> .
>>>
>>>
>>>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscribe@**googlegroups.com
> For more options, visit this group at
> http://groups.google.com/**group/clojure?hl=en
> --- You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to 
> clojure+unsubscribe@**googlegroups.com
> .
> For more options, visit 
> https://groups.google.com/**groups/opt_out
> .
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Raoul Duke
> Thanks for all the responses, it looks like Linux is the predominant OS in
> the Clojure community.


er, wow. that's a bit of a leap, isn't it?

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Marcus Lindner

I for example use Windows 8 and Windows 7.

Am 14.06.2013 20:15, schrieb Raoul Duke:

Thanks for all the responses, it looks like Linux is the predominant OS in
the Clojure community.


er, wow. that's a bit of a leap, isn't it?



--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups "Clojure" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Nico Balestra
What company do you work for Mimmo? Can I send my CV? :)
On 14 Jun 2013 15:59, "Giacomo Cosenza"  wrote:

> personally, I code on mac os x. in my company anyone is free to choose the
> preferred OS (most of our devs are using linux, few of them windows).
> mimmo
>
>
> On Jun 14, 2013, at 3:46 PM, Erlis Vidal wrote:
>
> Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux, Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Clinton Dreisbach
I think that's more like "Linux is the predominant OS among people who love
to talk about their OS." In my experience, there's a lot more Mac users
than any other group.


On Fri, Jun 14, 2013 at 2:11 PM, Erlis Vidal  wrote:

> Hi guys!
>
> Thanks for all the responses, it looks like Linux is the predominant OS in
> the Clojure community.
>
>
>
>
> On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar(); wrote:
>
>> I use GNU/Linux exclusively as well...no other OS makes me feel in
>> control :)
>>
>> Jim
>>
>>
>>
>> On 14/06/13 18:57, Mikhail Kryshen wrote:
>>
>>> I use GNU/Linux (specifically, Fedora at home and openSUSE, which I don't
>>> like much compared to other distros, at work):
>>> - I do not trust proprietary software vendors,
>>> - I avoid supporting Microsoft and Apple out of ethical issues,
>>> - I prefer the software distribution model where software comes from a
>>> few trusted sources — repositories with packages verified, compiled and
>>> signed by the distribution's maintainers.
>>>
>>> Erlis Vidal  writes:
>>>
>>>  Hi,

 I'm a bit curious to know in what OS do you code. Do you prefer iOS,
 Linux,
 Windows? Why is that? Because the tools? The environment?

 Thanks!

 --
 --
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscribe@**googlegroups.com
 For more options, visit this group at
 http://groups.google.com/**group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to 
 clojure+unsubscribe@**googlegroups.com
 .
 For more options, visit 
 https://groups.google.com/**groups/opt_out
 .



>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscribe@**googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/**group/clojure?hl=en
>> --- You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to 
>> clojure+unsubscribe@**googlegroups.com
>> .
>> For more options, visit 
>> https://groups.google.com/**groups/opt_out
>> .
>>
>>
>>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Russell Whitaker
Erlis, that's a bit of a leap, you can't make that conclusion from
your sampling.
Among other faults, your dataset suffers greatly from selection bias. Several
_layers_ of selection bias, in fact.

My own setup, while I'm here:
- OS X on the desk/laptop;
- Unbuntu as the deployment target.

Russell

On Fri, Jun 14, 2013 at 11:11 AM, Erlis Vidal  wrote:
> Hi guys!
>
> Thanks for all the responses, it looks like Linux is the predominant OS in
> the Clojure community.
>
>
>
>
> On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar(); 
> wrote:
>>
>> I use GNU/Linux exclusively as well...no other OS makes me feel in control
>> :)
>>
>> Jim
>>
>>
>>
>> On 14/06/13 18:57, Mikhail Kryshen wrote:
>>>
>>> I use GNU/Linux (specifically, Fedora at home and openSUSE, which I don't
>>> like much compared to other distros, at work):
>>> - I do not trust proprietary software vendors,
>>> - I avoid supporting Microsoft and Apple out of ethical issues,
>>> - I prefer the software distribution model where software comes from a
>>> few trusted sources — repositories with packages verified, compiled and
>>> signed by the distribution's maintainers.
>>>
>>> Erlis Vidal  writes:
>>>
 Hi,

 I'm a bit curious to know in what OS do you code. Do you prefer iOS,
 Linux,
 Windows? Why is that? Because the tools? The environment?

 Thanks!

 --
 --
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.


>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
Russell Whitaker
http://twitter.com/OrthoNormalRuss / http://orthonormalruss.blogspot.com/
http://www.linkedin.com/pub/russell-whitaker/0/b86/329

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Jim - FooBar();
hehe :) does this mean that apple is the new Microsoft ? this can't be 
good...


Jim




On 14/06/13 19:18, Clinton Dreisbach wrote:
I think that's more like "Linux is the predominant OS among people who 
love to talk about their OS." In my experience, there's a lot more Mac 
users than any other group.



On Fri, Jun 14, 2013 at 2:11 PM, Erlis Vidal > wrote:


Hi guys!

Thanks for all the responses, it looks like Linux is the
predominant OS in the Clojure community.




On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar();
mailto:jimpil1...@gmail.com>> wrote:

I use GNU/Linux exclusively as well...no other OS makes me
feel in control :)

Jim



On 14/06/13 18:57, Mikhail Kryshen wrote:

I use GNU/Linux (specifically, Fedora at home and
openSUSE, which I don't
like much compared to other distros, at work):
- I do not trust proprietary software vendors,
- I avoid supporting Microsoft and Apple out of ethical
issues,
- I prefer the software distribution model where software
comes from a
few trusted sources — repositories with packages verified,
compiled and
signed by the distribution's maintainers.

Erlis Vidal mailto:er...@erlisvidal.com>> writes:

Hi,

I'm a bit curious to know in what OS do you code. Do
you prefer iOS, Linux,
Windows? Why is that? Because the tools? The environment?

Thanks!

-- 
-- 
You received this message because you are subscribed

to the Google
Groups "Clojure" group.
To post to this group, send email to
clojure@googlegroups.com 
Note that posts from new members are moderated -
please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com

For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed
to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving
emails from it, send an email to
clojure+unsubscr...@googlegroups.com
.
For more options, visit
https://groups.google.com/groups/opt_out.



-- 
-- 
You received this message because you are subscribed to the Google

Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com

Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com

For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- You received this message because you are subscribed to
the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to clojure+unsubscr...@googlegroups.com
.
For more options, visit https://groups.google.com/groups/opt_out.



-- 
-- 
You received this message because you are subscribed to the Google

Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com

Note that posts from new members are moderated - please be patient
with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com

For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to clojure+unsubscr...@googlegroups.com
.
For more options, visit https://groups.google.com/groups/opt_out.



--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient 
with your first post.

To unsubscribe from this group, send 

[ANN] Pedestal 0.1.9 has been released

2013-06-14 Thread Ryan Neufeld
Hey Folks,

We've just released the 0.1.9 versions of the Pedestal libraries.

This release is mostly bug fixes and usability improvements. Notable 
changes include better change reporting for nil/falsy values in 
pedestal-app dataflow and unification of what command starts a pedestal app 
or service (hint: it's 'start'.)

You'll find the full changelog for this and other changes here: 
http://git.io/dHCnJQ.

- Ryan and the rest of the Pedestal team

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Geraldo Lopes de Souza
Are you married with a database ? If so, make migrations with your database 
sql language.

http://mybatis.org/migrations/

If that is the case Idiomatic migrations adds no value imho.


On Friday, June 14, 2013 1:24:39 PM UTC-3, Reginald Choudari wrote:
>
> Hello all,
>
> I am trying to implement database migrations with Clojure. So far I have 
> been looking at Drift (https://github.com/macourtney/drift) as a 
> candidate for implementing this. My question is, does anyone have a 
> database migration workflow that they use and would like to share? One 
> problem I have been thinking is how to tackle database credentials/db name 
> configuration. I know in Rails its common to use a YAML to provide this 
> info, wondering if there was something more idiosyncratic to clojure?
>
> Thanks in advance
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Reginald Choudari
That is a good point. But another reason I wanted to do migrations through 
the application code was to automagically run migrations when the app was 
initially run, i.e. do a lein ring server-headless and it will 
automatically run migrations in order to start the web-app.

On Friday, June 14, 2013 3:22:28 PM UTC-4, Geraldo Lopes de Souza wrote:
>
> Are you married with a database ? If so, make migrations with your 
> database sql language.
>
> http://mybatis.org/migrations/
>
> If that is the case Idiomatic migrations adds no value imho.
>
>
> On Friday, June 14, 2013 1:24:39 PM UTC-3, Reginald Choudari wrote:
>>
>> Hello all,
>>
>> I am trying to implement database migrations with Clojure. So far I have 
>> been looking at Drift (https://github.com/macourtney/drift) as a 
>> candidate for implementing this. My question is, does anyone have a 
>> database migration workflow that they use and would like to share? One 
>> problem I have been thinking is how to tackle database credentials/db name 
>> configuration. I know in Rails its common to use a YAML to provide this 
>> info, wondering if there was something more idiosyncratic to clojure?
>>
>> Thanks in advance
>>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Yves S. Garret
Truthfully, they're not shy when it comes to things such as DRM, closing off
previous more open standards/software and just don't really give back to the
OSS community as much as they take.

I own a Mac mini and I'm so-so satisfied with it.  In Ubuntu, I love it in
comparison.


On Fri, Jun 14, 2013 at 2:23 PM, Jim - FooBar(); wrote:

>  hehe :) does this mean that apple is the new Microsoft ? this can't be
> good...
>
> Jim
>
>
>
>
> On 14/06/13 19:18, Clinton Dreisbach wrote:
>
> I think that's more like "Linux is the predominant OS among people who
> love to talk about their OS." In my experience, there's a lot more Mac
> users than any other group.
>
>
> On Fri, Jun 14, 2013 at 2:11 PM, Erlis Vidal  wrote:
>
>> Hi guys!
>>
>> Thanks for all the responses, it looks like Linux is the predominant OS
>> in the Clojure community.
>>
>>
>>
>>
>>  On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar(); 
>> wrote:
>>
>>> I use GNU/Linux exclusively as well...no other OS makes me feel in
>>> control :)
>>>
>>> Jim
>>>
>>>
>>>
>>> On 14/06/13 18:57, Mikhail Kryshen wrote:
>>>
 I use GNU/Linux (specifically, Fedora at home and openSUSE, which I
 don't
 like much compared to other distros, at work):
 - I do not trust proprietary software vendors,
 - I avoid supporting Microsoft and Apple out of ethical issues,
 - I prefer the software distribution model where software comes from a
 few trusted sources — repositories with packages verified, compiled and
 signed by the distribution's maintainers.

 Erlis Vidal  writes:

  Hi,
>
> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
> Linux,
> Windows? Why is that? Because the tools? The environment?
>
> Thanks!
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient
> with your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> --- You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to c

[GSOC] Constructing Algebraic Expressions - User api

2013-06-14 Thread Maik Schünemann
Hi,
I discussed general design issues for expresso before, but the (for you) 
most important part - the user api - was left out.
I have written a blog 
post
 about 
what is the most seamless way to use expresso and discussed a few different 
ideas.
I would like to know which approach is your favourite, or if you can think 
of an other, better way of using it.

There is also the interesting idea of making it an implementation of 
core.matrix, so that it can be trivially used on any 
core.matrix expression.

kind regards
Maik 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Colin Fleming
I use OSX for everything, and have for a long time. I could see myself
switching to Linux for work (although collaboration tools e.g. Skype etc
are still more difficult than on OSX, maybe hangouts helps here) but at
home it's a non-starter since I use my machine for watching movies etc, and
that's all more difficult or impossible on Linux. But for development I
agree with the above, there's very little difference.


On 15 June 2013 08:31, Yves S. Garret  wrote:

> Truthfully, they're not shy when it comes to things such as DRM, closing
> off
> previous more open standards/software and just don't really give back to
> the
> OSS community as much as they take.
>
> I own a Mac mini and I'm so-so satisfied with it.  In Ubuntu, I love it in
> comparison.
>
>
>
> On Fri, Jun 14, 2013 at 2:23 PM, Jim - FooBar(); wrote:
>
>>  hehe :) does this mean that apple is the new Microsoft ? this can't be
>> good...
>>
>> Jim
>>
>>
>>
>>
>> On 14/06/13 19:18, Clinton Dreisbach wrote:
>>
>> I think that's more like "Linux is the predominant OS among people who
>> love to talk about their OS." In my experience, there's a lot more Mac
>> users than any other group.
>>
>>
>> On Fri, Jun 14, 2013 at 2:11 PM, Erlis Vidal wrote:
>>
>>> Hi guys!
>>>
>>> Thanks for all the responses, it looks like Linux is the predominant OS
>>> in the Clojure community.
>>>
>>>
>>>
>>>
>>>  On Fri, Jun 14, 2013 at 2:06 PM, Jim - FooBar(); 
>>> wrote:
>>>
 I use GNU/Linux exclusively as well...no other OS makes me feel in
 control :)

 Jim



 On 14/06/13 18:57, Mikhail Kryshen wrote:

> I use GNU/Linux (specifically, Fedora at home and openSUSE, which I
> don't
> like much compared to other distros, at work):
> - I do not trust proprietary software vendors,
> - I avoid supporting Microsoft and Apple out of ethical issues,
> - I prefer the software distribution model where software comes from a
> few trusted sources — repositories with packages verified, compiled and
> signed by the distribution's maintainers.
>
> Erlis Vidal  writes:
>
>  Hi,
>>
>> I'm a bit curious to know in what OS do you code. Do you prefer iOS,
>> Linux,
>> Windows? Why is that? Because the tools? The environment?
>>
>> Thanks!
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient
>> with your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it,
>> send an email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
 --
 --
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



>>>  --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsub

Re: In what OS do you code?

2013-06-14 Thread Mikhail Kryshen
"Yves S. Garret"  writes:

> Truthfully, they're not shy when it comes to things such as DRM, closing off
> previous more open standards/software and just don't really give back to the
> OSS community as much as they take.

I think it would be naive to expect ethical behaviour from any large
corporation. Even though very nice people may work there, a large
corporation as a whole is a heartless machine that do whatever it can to
make more money. And what makes money depends on what consumers are
willing to accept. So, in the end, it's the consumer's responsibility
not to support evil.

-- 
Mikhail


pgp0wmSwDTndv.pgp
Description: PGP signature


Re: Database migrations

2013-06-14 Thread Juha Syrjälä
There are also following libraries to handle migrations:

Ragtime: https://github.com/weavejester/ragtime
Lobos: https://github.com/budu/lobos

Lobos has its own DSL to implement database manipulation. Ragtime uses 
normal Clojure functions instead. 

On Friday, June 14, 2013 7:24:39 PM UTC+3, Reginald Choudari wrote:
>
> Hello all,
>
> I am trying to implement database migrations with Clojure. So far I have 
> been looking at Drift (https://github.com/macourtney/drift) as a 
> candidate for implementing this. My question is, does anyone have a 
> database migration workflow that they use and would like to share? One 
> problem I have been thinking is how to tackle database credentials/db name 
> configuration. I know in Rails its common to use a YAML to provide this 
> info, wondering if there was something more idiosyncratic to clojure?
>
> Thanks in advance
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Alex Baranosky
Inspired by Technomancy's suggestion to try a simpler approach to
migrations on IRC, I came up with this tiny library based heavily on code
from the clojars repo, that Phil pointed me to.  Personally, I thought
Ragtime and Lobos, were overkill.

https://github.com/runa-dev/kits/blob/master/src/kits/db_migrator.clj

On Fri, Jun 14, 2013 at 3:32 PM, Juha Syrjälä wrote:

> There are also following libraries to handle migrations:
>
> Ragtime: https://github.com/weavejester/ragtime
> Lobos: https://github.com/budu/lobos
>
> Lobos has its own DSL to implement database manipulation. Ragtime uses
> normal Clojure functions instead.
>
>
> On Friday, June 14, 2013 7:24:39 PM UTC+3, Reginald Choudari wrote:
>>
>> Hello all,
>>
>> I am trying to implement database migrations with Clojure. So far I have
>> been looking at Drift 
>> (https://github.com/**macourtney/drift)
>> as a candidate for implementing this. My question is, does anyone have a
>> database migration workflow that they use and would like to share? One
>> problem I have been thinking is how to tackle database credentials/db name
>> configuration. I know in Rails its common to use a YAML to provide this
>> info, wondering if there was something more idiosyncratic to clojure?
>>
>> Thanks in advance
>>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure generates unnecessary and slow type-checks

2013-06-14 Thread Mikhail Kryshen
JIT will probably remove unnecessary checkcast instructions. What looks
suspicious to me is that i and asize are converted to longs (notice i2l
opcodes). I noticed earlier that loops with long counters are measurably
slower for the same number of iterations (probably, HotSpot does not
apply some optimizations in this case).

Leon Barrett  writes:

> Hi. I've been working with people at Prismatic to optimize some simple math 
> code in Clojure. However, it seems that Clojure generates an unnecessary 
> type check that slows our (otherwise-optimized) code by 50%. Is there a 
> good way to avoid this, is it a bug in Clojure 1.5.1, or something else? 
> What should I do to work around this?
>
> Here's my example. The aget seems to generate an unnecessary 
> checkcastbytecode. I used Jasper and Jasmin to decompile and recompile 
> Bar.class 
> into Bar_EDITED.class, without that bytecode. The edited version takes 
> about 2/3 the time.
>
> (ns demo
>   (:import demo.Bar_EDITED))
>
> (definterface Foo
>   (arraysum ^double [^doubles a ^int i ^int asize ^double sum]))
>
> (deftype Bar []
>   Foo
>   (arraysum ^double [this ^doubles a ^int i ^int asize ^double sum]
> (if (< i asize)
>   (recur a (unchecked-inc-int i) asize (+ sum (aget a i)))
>   sum)))
>
> (defn -main [& args]
>   (let [bar (Bar.)
> bar-edited (Bar_EDITED.)
> asize 1
> a (double-array asize)
> i 0
> ntimes 1]
> (time
>
>   (dotimes [iter ntimes]
> (.arraysum bar a i asize 0)))
> (time
>   (dotimes [iter ntimes]
> (.arraysum bar-edited a i asize 0)
>
>
> ;; $ lein2 run -m demo
> ;; Compiling demo
> ;; "Elapsed time: 191.015885 msecs"
> ;; "Elapsed time: 129.332 msecs"
>
>
> Here's the bytecode for Bar.arraysum:
>
>   public java.lang.Object arraysum(double[], int, int, double);
> Code:
>0: iload_2   
>1: i2l   
>2: iload_3   
>3: i2l   
>4: lcmp  
>5: ifge  39
>8: aload_1   
>9: iload_2   
>   10: iconst_1  
>   11: iadd  
>   12: iload_3   
>   13: dload 4
>   15: aload_1   
>   16: aconst_null   
>   17: astore_1  
>   18: checkcast #60 // class "[D"
>   21: iload_2   
>   22: invokestatic  #64 // Method 
> clojure/lang/RT.intCast:(I)I
>   25: daload
>   26: dadd  
>   27: dstore4
>   29: istore_3  
>   30: istore_2  
>   31: astore_1  
>   32: goto  0
>   35: goto  44
>   38: pop   
>   39: dload 4
>   41: invokestatic  #70 // Method 
> java/lang/Double.valueOf:(D)Ljava/lang/Double;
>   44: areturn   
>
>
> As far as I can tell, Clojure generated a checkcast opcode that tests on 
> every loop to make sure the double array is really a double array. When I 
> remove that checkcast, I get a 1/3 speedup (meaning it's a 50% overhead).
>
> Can someone help me figure out how to avoid this overhead?
>
> Thanks.
>
> - Leon Barrett
>
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
Mikhail


pgpHYSTT9m844.pgp
Description: PGP signature


Re: Database migrations

2013-06-14 Thread Korny Sietsma
We used drift for a while, but found it didn't add much over plain sql, and
was forcing us to write "down"  migrations, which imho are a mistake.

We ended up moving to Flyway, a very straightforward Java migration
library, with a thin clojure wrapper. This has the advantages of using
plain sql files for migrations, and having a command-line migration tool
that is very handy for running migrations on prod.

- Korny
On 15 Jun 2013 09:41, "Alex Baranosky" 
wrote:

> Inspired by Technomancy's suggestion to try a simpler approach to
> migrations on IRC, I came up with this tiny library based heavily on code
> from the clojars repo, that Phil pointed me to.  Personally, I thought
> Ragtime and Lobos, were overkill.
>
> https://github.com/runa-dev/kits/blob/master/src/kits/db_migrator.clj
>
> On Fri, Jun 14, 2013 at 3:32 PM, Juha Syrjälä wrote:
>
>> There are also following libraries to handle migrations:
>>
>> Ragtime: https://github.com/weavejester/ragtime
>> Lobos: https://github.com/budu/lobos
>>
>> Lobos has its own DSL to implement database manipulation. Ragtime uses
>> normal Clojure functions instead.
>>
>>
>> On Friday, June 14, 2013 7:24:39 PM UTC+3, Reginald Choudari wrote:
>>>
>>> Hello all,
>>>
>>> I am trying to implement database migrations with Clojure. So far I have
>>> been looking at Drift 
>>> (https://github.com/**macourtney/drift)
>>> as a candidate for implementing this. My question is, does anyone have a
>>> database migration workflow that they use and would like to share? One
>>> problem I have been thinking is how to tackle database credentials/db name
>>> configuration. I know in Rails its common to use a YAML to provide this
>>> info, wondering if there was something more idiosyncratic to clojure?
>>>
>>> Thanks in advance
>>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: In what OS do you code?

2013-06-14 Thread Yves S. Garret
Mikhail, you do have a point there.


On Fri, Jun 14, 2013 at 6:48 PM, Mikhail Kryshen wrote:

> "Yves S. Garret"  writes:
>
> > Truthfully, they're not shy when it comes to things such as DRM, closing
> off
> > previous more open standards/software and just don't really give back to
> the
> > OSS community as much as they take.
>
> I think it would be naive to expect ethical behaviour from any large
> corporation. Even though very nice people may work there, a large
> corporation as a whole is a heartless machine that do whatever it can to
> make more money. And what makes money depends on what consumers are
> willing to accept. So, in the end, it's the consumer's responsibility
> not to support evil.
>
> --
> Mikhail
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[ANN] Pedestal 0.1.9 has been released

2013-06-14 Thread Daniel
Awesome, thanks for the hard work. I imagine this will require some updates to 
the getting started page.

I'm in the process of learning how to use pedestal right now.  Besides the 
website and sample projects on github, are there any other good resources for 
learning?

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Ken Restivo
Migratus seems to be pretty similar to this, is a nice small library. I've used 
it and it works well.

https://github.com/pjstadig/migratus

-ken
--

On Fri, Jun 14, 2013 at 11:44:08AM -0500, Steven Degutis wrote:
> Phil uses this really cool trick:
> https://github.com/technomancy/syme/blob/master/src/syme/db.clj#L66-L119
> 
> The benefit is that your migrations are just Clojure functions. No messing
> around with files or timestamps or whatever. Dead simple.
> 
> I hope someone extracts it into a lib with tests around it. He won't on
> principle, saying "copy/pasting it emphasizes just how simply this problem
> can be solved". But there's something to be said for using a tested lib in
> production code.
> 
> 
> On Fri, Jun 14, 2013 at 11:24 AM, Reginald Choudari <
> adnanchowdhur...@gmail.com> wrote:
> 
> > Hello all,
> >
> > I am trying to implement database migrations with Clojure. So far I have
> > been looking at Drift (https://github.com/macourtney/drift) as a
> > candidate for implementing this. My question is, does anyone have a
> > database migration workflow that they use and would like to share? One
> > problem I have been thinking is how to tackle database credentials/db name
> > configuration. I know in Rails its common to use a YAML to provide this
> > info, wondering if there was something more idiosyncratic to clojure?
> >
> > Thanks in advance
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
> >
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Database migrations

2013-06-14 Thread Dave Della Costa
Coming from the Rails world, for a while I searched for a way to do
this, and at this point I've come to the conclusion that

* "raw" SQL migrations are the way to go
* rollback/down migrations are problematic for environments other than test.

Regarding specific experiences, I used Lobos for a while, and while I
don't hate it, I quickly ran into situations where its DSL just didn't
cover the types or alterations I wanted to make, and it ended up causing
more issues than it solved.

My choice was to extend it or just use SQL directly.  In another project
I was using Flyway (http://flywaydb.org/), which does everything it
needs to reasonably well, explicitly doesn't support rollbacks, and uses
SQL which supports everything I need.  It's database schema table is
easy enough to understand that I can manually rollback during
testing/development or write some scripting to handle specific cases if
need be.  So I've started moving in that direction.

TL;DR straight SQL is the way to go, and what Korny said in another reply.

DD

(2013/06/15 1:24), Reginald Choudari wrote:
> Hello all,
> 
> I am trying to implement database migrations with Clojure. So far I have
> been looking at Drift (https://github.com/macourtney/drift) as a
> candidate for implementing this. My question is, does anyone have a
> database migration workflow that they use and would like to share? One
> problem I have been thinking is how to tackle database credentials/db
> name configuration. I know in Rails its common to use a YAML to provide
> this info, wondering if there was something more idiosyncratic to clojure?
> 
> Thanks in advance
> 
> -- 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Text editor plugins and REPL

2013-06-14 Thread JvJ

I'm currently writing an interactive application (game programming 
environment) that can be controlled by commands from the REPL.  However, 
I'm wondering what it would take to integrate commands into the text editor 
itself, or to allow the editor to be controlled to a certain extent by the 
application.

I usually use Emacs with SLIME, but have also used sublimetext with 
SublimeRepl.  My question is, for those of you with experience in this sort 
of thing, what would be the best approach to creating text editor plugins 
that can communicate with a running Clojure application, and which editor 
would be the easiest to 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/groups/opt_out.