Re: [ANN] gg4clj 0.1.0 - ggplot2 in Clojure and Gorilla REPL

2014-12-27 Thread Daniel Slutsky
Wonderful, gg4clj is really nice! 


Regarding ggvis, it might be worth knowing that it can generate not only 
interactive htmls, but also a static JSONs in Vega format (which is of 
course fun to edit from Clojure). 

For example:
capture.output(data.frame(x=c(1,2)) %>% ggvis(x=~x) %>% show_spec);

Therefore, from Gorilla point of view, ggvis may be considered a powerful 
DSL for generating Vega plots (which can then be edited for Gorilla needs).



On Friday, December 26, 2014 11:28:30 PM UTC+2, Jony Hudson wrote:
>
> Thanks :-)
>
> And thanks for the pointer to ggvis. I've been shying away from 
> interactive plots in Gorilla, since I haven't really seen or thought of a 
> way to do it that seems satisfactory - and I'm not sure ggvis is there yet. 
> But definitely will keep an eye on it though ...
>
>
> Jony
>
> On Friday, 26 December 2014 19:43:59 UTC, adriaan...@gmail.com wrote:
>>
>> Looks beautifull :) Good work
>>
>> I don't know if you're also aware of ggvis. The ggplot2 reincarnation 
>> from the same developer. It has some extra niceties like interactivity. It 
>> also renders it output in vega. So it should ouput render also nicely in 
>> gorrila (I guess)
>> http://ggvis.rstudio.com/
>>
>> Greetz
>>
>> Op vrijdag 26 december 2014 16:36:42 UTC+1 schreef Jony Hudson:
>>>
>>> Hi all,
>>>
>>>  from the README:
>>>
>>> gg4clj is a lightweight wrapper to make it easy to use R's ggplot2 
 library from Clojure. It provides a straightforward way to express R code 
 in Clojure, including easy mapping between Clojure data and R's 
 data.frame, 
 and some plumbing to send this code to R and recover the rendered 
 graphics. 
 It also provides a Gorilla REPL renderer plugin to allow rendered plots to 
 be displayed inline in Gorilla worksheets. It is not a Clojure rewrite of 
 ggplot2 - it calls R, which must be installed on your system (see below), 
 to render the plots. You'll need to be familiar with R and ggplot2, or 
 else 
 the commands will seem fairly cryptic.
>>>
>>>
>>> Demo worksheet, showing it in action here: 
>>> http://viewer.gorilla-repl.org/view.html?source=github&user=JonyEpsilon&repo=gg4clj&path=ws/demo.clj
>>> Source here: https://github.com/JonyEpsilon/gg4clj
>>>
>>> Works better than I thought it would!
>>>
>>>
>>> Jony
>>>
>>

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


ANN: Sparse matrix support for Clojure with vectorz-clj 0.28.0

2014-12-27 Thread Mike Anderson
Here is a little belated Christmas present for Clojure data aficionados:

;; setup
(use 'clojure.core.matrix)
(set-current-implementation :vectorz)

;; create a big sparse matrix with a trillion elements (initially zero)
(def A (new-sparse-array [100 100]))

;; we are hopefully smart enough to avoid printing the whole array!
A
=> #

;; mutable setter operations supported so that you can set individual 
sparse elements
(dotimes [i 1000]
 (mset! A (rand-int 100) (rand-int 100) (rand-int 100)))

;; all standard core.matrix operations supported
(esum A)
=> 50479.0

;; efficient addition
(time (add A A))
=> "Elapsed time: 12.849859 msecs"

;; matrix multiplication / inner products actually complete in sensible time
;; (i.e. much faster than than the usual O(n^3) which might take a few 
thousand years)
(time (mmul A (transpose A)))
=> "Elapsed time: 2673.085171 msecs"


Some nice things to note about the implementation:
- Everything goes through the core.matrix API, so your code won't have to 
change to use sparse matrices :-)
- Sparse matrices are 100% interoperable with non-sparse (dense) matrices
- Sparse arrays are fully mutable. Management of storage / indexing happens 
automatically
- It isn't just matrices - you can have sparse vectors, N-dimensional 
arrays etc.
- Code is pure JVM - no native dependencies to worry about

This is all still very much alpha - so any comments / patches / more 
rigorous testing much appreciated!



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


Re: parsing and chunking large xyz files

2014-12-27 Thread cej38
I just noticed that there was an extra line of code (which doesn't work) in 
my original post.  Sorry.  I edited it out below.



In molecular dynamics a popular format for writing out the positions of the 
atoms in a system is the xyz file format (see: 
http://en.wikipedia.org/wiki/XYZ_file_format and/or 
http://www.ks.uiuc.edu/Research/vmd/plugins/molfile/xyzplugin.html).  The 
format allows for storing the positions of the atoms at different snapshots 
in time (aka "time step").  You may have a few to millions of atoms in your 
system and you may have thousands of time steps represented in the file. 
 It is easy to end up with a single file that is many GB in size.  Here is 
a shell command that will create a very simple, and very small, test file 
(note that the positions of the atoms are completely unrealistic-they are 
all sitting on top of each other)

perl -e 'open(F, ">>test1.xyz"); for( $t= 1; $t < 11; $t = $t +1){print F 
"10\n\n"; for( $a = 1; $a < 11; $a = $a + 1 ){print F "C  0.000 0.000 
0.\n";}}; close(F);'


Here is a shell command that will produce a more complicated file structure 
(note that depending on who wrote the code that output the file there may 
be other columns of data at the end of each row, also the number of decimal 
places kept and the type of spacing between elements may change), this file 
has a different number of atoms with each time step :

perl -e 'open(F, ">>test2.xyz"); for( $t= 1; $t < 5; $t = $t +1){my $s= $t 
+ 10; print F "$s \n"; my $color  = substr ("abcd efghij klmno pqrs tuv 
wxyz", int(rand(10)), int(rand(10))); print F $color; print F "\n" ;for( $a 
= 1; $a < (11 +$t); $a = $a + 1 ){print F "C10.00   10.0   
10.0   $a\n";}}; close(F);'


Ok, that is the background to get to my question.  I need a way to parse 
these files and group the lines into time steps.  I currently have 
something that works but only in cases where the file size is relatively 
small-it reads the whole file into memory.  I would like to use something 
like iota that will allow me lazily parse the file and run reducers on the 
data.  Any help would be really appreciated.

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


Re: how do you name your protocols?

2014-12-27 Thread Matching Socks
In the interest of thoroughness, it should be noted here that a protocol *named 
"InTimeUnitProtocol" *appears in the ChangeLog referenced in the recent 
announcement of clj-time 
.  

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


Re: how do you name your protocols?

2014-12-27 Thread Jozef Wagner
clj-time seems to be naming protocols inconsistently. It uses ISomething,
Something and SomethingProtocol naming.

On Sat, Dec 27, 2014 at 4:20 PM, Matching Socks 
wrote:

> In the interest of thoroughness, it should be noted here that a protocol 
> *named
> "InTimeUnitProtocol" *appears in the ChangeLog referenced in the recent
> announcement of clj-time <
> https://groups.google.com/forum/#!topic/clojure/rKKOkj-qKvc>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: how do you name your protocols?

2014-12-27 Thread Michael Klishin
On 27 December 2014 at 19:10:38, Jozef Wagner (jozef.wag...@gmail.com) wrote:
> clj-time seems to be naming protocols inconsistently. It uses  
> ISomething, Something and SomethingProtocol naming.

I suspect it is because it has 60 contributors and most users never have to
extend the protocols.

Feel free to submit a PR that standardises all names on Something. 
--  
@michaelklishin, github.com/michaelklishin

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


Re: how do you name your protocols?

2014-12-27 Thread Ashton Kemerling
Changing old protocol names should trigger a major revision change in the 
minimum because it breaks backwards compatibility. 

--Ashton

Sent from my iPhone

> On Dec 27, 2014, at 11:18 AM, Michael Klishin  
> wrote:
> 
>> On 27 December 2014 at 19:10:38, Jozef Wagner (jozef.wag...@gmail.com) wrote:
>> clj-time seems to be naming protocols inconsistently. It uses  
>> ISomething, Something and SomethingProtocol naming.
> 
> I suspect it is because it has 60 contributors and most users never have to
> extend the protocols.
> 
> Feel free to submit a PR that standardises all names on Something. 
> --  
> @michaelklishin, github.com/michaelklishin
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

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


ANN Quartzite 2.0 is released

2014-12-27 Thread Michael Klishin
Quartzite [1] is a scheduling library built on top of Quartz scheduler.

Release notes:
http://blog.clojurewerkz.org/blog/2014/12/27/quartzite-2-dot-0-is-released/

1. http://clojurequartz.info 
--  
@michaelklishin, github.com/michaelklishin

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


How to get a list of changes in Datomic

2014-12-27 Thread rogergl
I would like to replay all changes since a specific timestamp.  It seems as 
if I can get all transactions with 

(q '[:find ?t :where 
 [_ :db/txInstant ?t]
 ] (db conn))

Using as-of would allow me to replay the state at a given point in time. 
But that would replay the complete state and not just the changes.

Is it possbile to get just the changes for a specific transaction ?

I tried 

  (q '[:find ?c ?n  :where 
 [?tx :db/txInstant g]
 [?c :db/txInstant ?n ?tx]] (db conn))

to test if I can get back a result for a specific transaction. That did not 
work although 

 g 
was a value from the first query.

Regards
  Roger

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


Re: How to get a list of changes in Datomic

2014-12-27 Thread Ashton Kemerling
I think this conj video covered that. 

http://m.youtube.com/watch?v=7lm3K8zVOdY

--Ashton

Sent from my iPhone

> On Dec 27, 2014, at 1:57 PM, rogergl  wrote:
> 
> I would like to replay all changes since a specific timestamp.  It seems as 
> if I can get all transactions with 
> 
> (q '[:find ?t :where 
>  [_ :db/txInstant ?t]
>  ] (db conn))
> 
> Using as-of would allow me to replay the state at a given point in time. But 
> that would replay the complete state and not just the changes.
> 
> Is it possbile to get just the changes for a specific transaction ?
> 
> I tried 
> 
>   (q '[:find ?c ?n  :where 
>  [?tx :db/txInstant g]
>  [?c :db/txInstant ?n ?tx]] (db conn))
> 
> to test if I can get back a result for a specific transaction. That did not 
> work although g was a value from the first query.
> 
> Regards
>   Roger
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

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


Re: [ANN] gg4clj 0.1.0 - ggplot2 in Clojure and Gorilla REPL

2014-12-27 Thread Christopher Small
Hahaha; Well, you beat me to it... But awesome!

I'd still love to work on a native clojure implementation, but also 
acknowledge that it might be a while before I'm able to given a shift in 
focus of late. In the mean time, this will be super useful when base 
gorilla-repl plotting functionality isn't enough. 

I haven't used ggvis, but I've heard good things about it from others. 
Would certainly be cool to see something in that direction.

Cheers!

Chris



On Saturday, December 27, 2014 1:53:22 AM UTC-7, Daniel Slutsky wrote:
>
> Wonderful, gg4clj is really nice! 
>
>
> Regarding ggvis, it might be worth knowing that it can generate not only 
> interactive htmls, but also a static JSONs in Vega format (which is of 
> course fun to edit from Clojure). 
>
> For example:
> capture.output(data.frame(x=c(1,2)) %>% ggvis(x=~x) %>% show_spec);
>
> Therefore, from Gorilla point of view, ggvis may be considered a powerful 
> DSL for generating Vega plots (which can then be edited for Gorilla needs).
>
>
>
> On Friday, December 26, 2014 11:28:30 PM UTC+2, Jony Hudson wrote:
>>
>> Thanks :-)
>>
>> And thanks for the pointer to ggvis. I've been shying away from 
>> interactive plots in Gorilla, since I haven't really seen or thought of a 
>> way to do it that seems satisfactory - and I'm not sure ggvis is there yet. 
>> But definitely will keep an eye on it though ...
>>
>>
>> Jony
>>
>> On Friday, 26 December 2014 19:43:59 UTC, adriaan...@gmail.com wrote:
>>>
>>> Looks beautifull :) Good work
>>>
>>> I don't know if you're also aware of ggvis. The ggplot2 reincarnation 
>>> from the same developer. It has some extra niceties like interactivity. It 
>>> also renders it output in vega. So it should ouput render also nicely in 
>>> gorrila (I guess)
>>> http://ggvis.rstudio.com/
>>>
>>> Greetz
>>>
>>> Op vrijdag 26 december 2014 16:36:42 UTC+1 schreef Jony Hudson:

 Hi all,

  from the README:

 gg4clj is a lightweight wrapper to make it easy to use R's ggplot2 
> library from Clojure. It provides a straightforward way to express R code 
> in Clojure, including easy mapping between Clojure data and R's 
> data.frame, 
> and some plumbing to send this code to R and recover the rendered 
> graphics. 
> It also provides a Gorilla REPL renderer plugin to allow rendered plots 
> to 
> be displayed inline in Gorilla worksheets. It is not a Clojure rewrite of 
> ggplot2 - it calls R, which must be installed on your system (see below), 
> to render the plots. You'll need to be familiar with R and ggplot2, or 
> else 
> the commands will seem fairly cryptic.


 Demo worksheet, showing it in action here: 
 http://viewer.gorilla-repl.org/view.html?source=github&user=JonyEpsilon&repo=gg4clj&path=ws/demo.clj
 Source here: https://github.com/JonyEpsilon/gg4clj

 Works better than I thought it would!


 Jony

>>>

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


Re: [ANN] gg4clj 0.1.0 - ggplot2 in Clojure and Gorilla REPL

2014-12-27 Thread Mikera
Very cool!

On the data representation front, would you be open to making it support 
the core.matrix Dataset protocols as well as regular Clojure maps? That 
would make it much easier to integrate with Incanter 2.0 etc., and 
potentially avoid some copying overhead.

It should be a simple change to the "data-frame" function, happy to send 
you a PR if that is a direction you want to go.

On Friday, 26 December 2014 23:36:42 UTC+8, Jony Hudson wrote:
>
> Hi all,
>
>  from the README:
>
> gg4clj is a lightweight wrapper to make it easy to use R's ggplot2 library 
>> from Clojure. It provides a straightforward way to express R code in 
>> Clojure, including easy mapping between Clojure data and R's data.frame, 
>> and some plumbing to send this code to R and recover the rendered graphics. 
>> It also provides a Gorilla REPL renderer plugin to allow rendered plots to 
>> be displayed inline in Gorilla worksheets. It is not a Clojure rewrite of 
>> ggplot2 - it calls R, which must be installed on your system (see below), 
>> to render the plots. You'll need to be familiar with R and ggplot2, or else 
>> the commands will seem fairly cryptic.
>
>
> Demo worksheet, showing it in action here: 
> http://viewer.gorilla-repl.org/view.html?source=github&user=JonyEpsilon&repo=gg4clj&path=ws/demo.clj
> Source here: https://github.com/JonyEpsilon/gg4clj
>
> Works better than I thought it would!
>
>
> Jony
>

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


Re: how do you name your protocols?

2014-12-27 Thread Mikera
That depends if the protocols are part of your user-facing API or not - a 
lot of the time I find that protocols are best hidden as implementation 
details rather than exposed to users.

In core.matrix, for example, users never see the protocols directly: only 
implementers of new matrix libraries need to care

On Sunday, 28 December 2014 02:32:44 UTC+8, Ashton Kemerling wrote:
>
> Changing old protocol names should trigger a major revision change in the 
> minimum because it breaks backwards compatibility. 
>
> --Ashton 
>
> Sent from my iPhone 
>
> > On Dec 27, 2014, at 11:18 AM, Michael Klishin  > wrote: 
> > 
> >> On 27 December 2014 at 19:10:38, Jozef Wagner (jozef@gmail.com 
> ) wrote: 
> >> clj-time seems to be naming protocols inconsistently. It uses   
> >> ISomething, Something and SomethingProtocol naming. 
> > 
> > I suspect it is because it has 60 contributors and most users never have 
> to 
> > extend the protocols. 
> > 
> > Feel free to submit a PR that standardises all names on Something. 
> > --   
> > @michaelklishin, github.com/michaelklishin 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Clojure" group. 
> > To post to this group, send email to clo...@googlegroups.com 
>  
> > Note that posts from new members are moderated - please be patient with 
> your first post. 
> > To unsubscribe from this group, send email to 
> > clojure+u...@googlegroups.com  
> > For more options, visit this group at 
> > http://groups.google.com/group/clojure?hl=en 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups "Clojure" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to clojure+u...@googlegroups.com . 
> > For more options, visit https://groups.google.com/d/optout. 
>

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


Re: how do you name your protocols?

2014-12-27 Thread Jozef Wagner
Protocols should never ever be part of public API. Protocols can be part of
the SPI, if custom extensions are to be supported. Otherwise they are an
implementation detail. See Rich's talk at 4:30 http://vimeo.com/100518968

Jozef

On Sun, Dec 28, 2014 at 8:11 AM, Mikera 
wrote:

> That depends if the protocols are part of your user-facing API or not - a
> lot of the time I find that protocols are best hidden as implementation
> details rather than exposed to users.
>
> In core.matrix, for example, users never see the protocols directly: only
> implementers of new matrix libraries need to care
>
> On Sunday, 28 December 2014 02:32:44 UTC+8, Ashton Kemerling wrote:
>>
>> Changing old protocol names should trigger a major revision change in the
>> minimum because it breaks backwards compatibility.
>>
>> --Ashton
>>
>> Sent from my iPhone
>>
>> > On Dec 27, 2014, at 11:18 AM, Michael Klishin 
>> wrote:
>> >
>> >> On 27 December 2014 at 19:10:38, Jozef Wagner (jozef@gmail.com)
>> wrote:
>> >> clj-time seems to be naming protocols inconsistently. It uses
>> >> ISomething, Something and SomethingProtocol naming.
>> >
>> > I suspect it is because it has 60 contributors and most users never
>> have to
>> > extend the protocols.
>> >
>> > Feel free to submit a PR that standardises all names on Something.
>> > --
>> > @michaelklishin, github.com/michaelklishin
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Clojure" group.
>> > To post to this group, send email to clo...@googlegroups.com
>> > Note that posts from new members are moderated - please be patient with
>> your first post.
>> > To unsubscribe from this group, send email to
>> > clojure+u...@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/clojure?hl=en
>> > ---
>> > You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to clojure+u...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>

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