Re: newbie seq question

2014-04-13 Thread François Rey


On 14/04/14 01:29, Stephen Feyrer wrote:
To be honest I am still not confident in what I'm doing but there are 
still avenues to explore.
The REPL is you best friend, keep experimenting, keep reading, and I'm 
sure it will all make sense at some point.


On 13/04/14 08:02, François Rey wrote:
There's also this chapter from an online beginner's book I recommend 
(you may want to read the stuff before):

http://www.braveclojure.com/read-and-eval/
To be more precise I should have written "you may want to read the 
preceding chapters before".

Enjoy!
François

--
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: cljs, websocket, autoreconnect

2014-04-13 Thread Johann Bestowrous
Google Closure implements an auto-reconnecting websocket.  

You can read docs on it 
here
 and 
see an example of it being imported 
here
 and 
used 
here

On Sunday, April 13, 2014 6:16:08 PM UTC-7, t x wrote:
>
> Hi, 
>
>   For building robust cljs web apps, I'd like to have a "uber 
> websocket" which does the following: 
>
>   * when disconnected, it auto reconnects 
>   * and re-sends any messages that were not received 
>
>   Before I hand-roll my own hacks, I was wondering -- is there any 
> existing cljs library which already does this? 
>
> Thanks! 
>

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


Re: Potential Intro clojure projects - libraries and ideas with wow factor

2014-04-13 Thread Mikera
On Monday, 14 April 2014 05:15:31 UTC+8, utel wrote:
>
> A handful of developers at the organisation I work at, want to encourage 
> interest in Clojure with the aim of using it in production amongst the 
> organisation's wider developer community (hundreds of developers). We 
> ourselves are Clojure hobbyists.
>
> We wanted to do this through a basic project (with few moving parts), so I 
> wanted to get feedback on a couple of aspects:
> 1. Examples of basic project ideas that would be compelling to fellow 
> developers not familiar with Clojure (e.g. something useful that you can do 
> easily with Clojure that's harder to do in more established languages such 
> as Java)
> 2. Particular libraries that again had a wow factor towards an objective 
> not easily achievable in more established languages (perhaps related to 
> data analysis, visualisation, or taking advantage of the benefit of lazy 
> evaluation in a novel way as examples).
>

Disclaimer: Slightly a plug for my own personal projects and interests :-)

There are a lot of great opportunities to get involved around the numerical 
computing space in Clojure, especially if you think that data analysis and 
visualisation counts as a "wow" factor. We welcome open source 
contributions from all perspectives.

In particular:
1. The core.matrix librray / API for array programming 
(see: https://github.com/mikera/core.matrix)
2. The Incanter environment for data science / statistical computing 
(see: http://incanter.org/)

If you are interested in exploring this area further, here are some useful 
links:
- The "Numerical Clojure" google 
group: https://groups.google.com/forum/#!forum/numerical-clojure
- My "Enter The Matrix" talk at the Clojure 
Conj: http://www.youtube.com/watch?v=_h9TLJtjSJo
- "Enter The Matrix" 
slides: http://www.slideshare.net/mikeranderson/2013-1114-enter-thematrix
- Clojure Dojo core.matrix 
repository: https://github.com/clojure-numerics/core.matrix.dojo

The last link includes some fun data analysis examples, using match results 
from the English Premier League hopefully some of these give you a 
taste of the "wow" factor in terms of rapid data processing and very 
efficient coding in an array-programming style.

-- 
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: Puppet Labs and Trapperkeeper

2014-04-13 Thread Walter Heck
As a non-clojure user, but a Puppet expert (ahum ;) ) I wrote a blog post 
about this announcement that might be interesting for some folks here. I'd 
also love to see comments on the post itself if I have drawn any wrong 
conclusions:
http://www.olindata.com/blog/2014/04/clojure-outsiders-investigation

On Sunday, 13 April 2014 16:24:28 UTC+2, Brendan Younger wrote:
>
> I just saw that there's a library called TrapperKeeper 
> https://github.com/puppetlabs/trapperkeeper from the folks at Puppet 
> Labs.  It looks to be a more opinionated and complete version of Stuart 
> Sierra's Component library https://github.com/stuartsierra/component, in 
> that it explicitly pays attention to things like logging configuration and 
> JBoss support.
>
> Brendan Younger
>

-- 
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: [Video] Game development in Clojure (with play-clj)

2014-04-13 Thread C K Kashyap
+1 nice video


On Mon, Apr 14, 2014 at 3:45 AM, Kris Calabio  wrote:

> Oh great! I guess I must have missed that :P
>
>
> On Sun, Apr 13, 2014 at 3:13 PM, James Trunk wrote:
>
>> There's a link to a gist of 
>> core.cljin the video's 
>> description.
>>
>> Cheers,
>> James
>>
>>
>> On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote:
>>
>>> Actually, I thought it would be even more helpful if you had the source
>>> code available (for searching/skimming). Is that somewhere online?
>>> -Kris
>>>
>>>
>>>  On Sun, Apr 13, 2014 at 2:47 PM, James Trunk wrote:
>>>
  Hi Kris,

 Thanks for your comment, and I'm very glad that you found the video
 helpful.

 I started doing screencasts because I realised that I learn a new
 concept fastest by watching someone else doing/explaining it - and I
 figured I might not be the only one. Saying that, I know screencasts aren't
 for everyone, and they have a few drawbacks compared to text (harder to
 search, skim, or repeat sections). So positive comment like yours remind me
 that I'm not the only auditory/visual learner around here, and inspire me
 to keep going. Thanks!

 James


 On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:
>
> Great video! I've looked through Zach's examples, and even started
> coding a game myself. But your screencast helped me have a better
> understanding of some of the concepts and code that I was having trouble
> understanding just by looking at the example games. Thanks!
> -Kris
>
> On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:
>>
>> Hi everyone,
>>
>> I thought some of you might be interested to watch my screencast
>> about game development in Clojure with 
>> play-clj
>> .
>>
>> Cheers,
>> James
>>
>  --
 You received this message because you are subscribed to the Google
 Groups "Clojure" group.
 To post to this group, send email to clo...@googlegroups.com

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

 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to a topic in the
 Google Groups "Clojure" group.
 To unsubscribe from this topic, visit https://groups.google.com/d/
 topic/clojure/mR1IBJ_OomY/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to
 clojure+u...@googlegroups.com.

 For more options, visit https://groups.google.com/d/optout.

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

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

Annotations on gen-class :state

2014-04-13 Thread Jon Seltzer
There are many Java APIs that expect client APIs to annotate fields but 
Clojure does not support annotations on fields.  Is there any plan to add 
support?

And one tangential question:  Is there any consideration of adding 
gen-class support for multiple fields instead of just one?

jbs

-- 
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: cljs, websocket, autoreconnect

2014-04-13 Thread Sean Corfield
Take a look at Sente (core.async over web socket / xhr) - and contribute 
anything additional you need to that.

On Apr 13, 2014, at 6:16 PM, t x  wrote:
>  For building robust cljs web apps, I'd like to have a "uber
> websocket" which does the following:
> 
>  * when disconnected, it auto reconnects
>  * and re-sends any messages that were not received
> 
>  Before I hand-roll my own hacks, I was wondering -- is there any
> existing cljs library which already does this?



signature.asc
Description: Message signed with OpenPGP using GPGMail


cljs, websocket, autoreconnect

2014-04-13 Thread t x
Hi,

  For building robust cljs web apps, I'd like to have a "uber
websocket" which does the following:

  * when disconnected, it auto reconnects
  * and re-sends any messages that were not received

  Before I hand-roll my own hacks, I was wondering -- is there any
existing cljs library which already does this?

Thanks!

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


Re: newbie seq question

2014-04-13 Thread Stephen Feyrer
Hi François,

Thank you.  I have read through each of the articles you've indicated and
will read in full the braveclojure book.

I am playing the syntax-quotes and will explore the io/resource package.


To be honest I am still not confident in what I'm doing but there are still
avenues to explore.  At this stage I just want to acknowledge your response
and let you know that it is very much appreciated.




--
Kind regards

Stephen.


On 13 April 2014 07:02, François Rey  wrote:

>  On 13/04/14 02:21, Stephen Feyrer wrote:
>
>
> // Get the java file io library
>  (import '(java.io File))
>
>  // Get some files
> (def f (File. "/My/files/"))
>
>  (def fs (file-seq f))
>
>  // Filters for suffixes ".mp3"
> (def get-mp3 (filter #(.endsWith (.getName %) ".mp3") fs))
>
>  // Get the path of one mp3
>  (println (take 1 get-mp3))
>
>  This code is gathered from various unrelated Clojure forum posts.  The
> resultant collection, I must admit defeats my understanding.
>
>
>  My first question is the println statement returns "(# /My/files/path/to/Some of/My Music Collection.mp3>)", would someone explain
> this data structure for me, bearing in mind that white spaces and commas
> are synonymous.
>
> It's not a data structure, it's just the way clojure prints out java
> object:
>
> user=> f
> #
>
>
> In the REPL Clojure tries to print out readable output, meaning something
> that can be read again by the reader as input:
>
> user=> (def a '(1 2 3))
> #'user/a
> user=> #'user/a
> #'user/a
> user=> (var a)
> #'user/a
> user=> map
> #
>
> In the case of object instances, it cannot be printed into such readable
> form, so it uses the #< to indicate this is unreadable:
>
> user=> #
>
> clojure.lang.LispReader$ReaderException: java.lang.RuntimeException:
> Unreadable form
>  java.lang.RuntimeException: Unreadable form
>
> See also the answer to this stackoverflow question:
>
> http://stackoverflow.com/questions/17263929/clojure-read-string-on-functions
>
> If you want to know more about reader macros:
> http://en.wikibooks.org/wiki/Learning_Clojure/Reader_Macros
>
> There's also this chapter from an online beginner's book I recommend (you
> may want to read the stuff before):
> http://www.braveclojure.com/read-and-eval/
>
>
>
>  Please note, while I have programmed a little in the past this does not
> prevent me from asking dumb questions.  Thus finally, if this is not the
> appropriate place for this sort question could you point me in the right
> direction?
>
> You're perfectly fine here, newbies welcome.
> In fact your question is about something that isn't much talked or written
> about in clojure.
>
> HTH
>  --
> 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] clj-cursor 0.0.1 - server-side cursor for clojure data structures (inspired by om)

2014-04-13 Thread rlewczuk

Also as I have relatively little experience with Clojure programming, any 
suggestions about style, non-idiomatic code etc. are also important for me. 


-- 
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] clj-cursor 0.0.1 - server-side cursor for clojure data structures (inspired by om)

2014-04-13 Thread rlewczuk
Hi,

https://github.com/rlewczuk/clj-cursor

This is my attempt at (properly) managing application state.  It is based 
on David Nolen's cursor
concept implemented in the om library. Cursor allows storing whole 
application state in a single 
structure, yet still be able to swap underlying application state and allow 
application components 
receiving changes without hassle (think online reconfiguration etc.).

Current implementation aims at solving server-side application state, it 
partially overlaps with what
Stuart Sierra work (presentations and accompanying Component 
framework/convention) aims at. 

Note that this is highly experimental stuff worth around two evenings of 
thinking/coding. Currently
it is dead simple wrapper for maps and vectors, in many respects incomplete 
(yet it's propably enough
for me to test it on some real world application). I'm announcing this very 
early version in order to 
spark some discussion about this topic as I haven't been fully happy with 
existing solutions 
for application state management (albeit Stuart's work did push things 
forward quite a lot). 

So, any suggestions will be welcome - especially I'm looking for more usage 
scenarios (in addition
to two scenarios I'm currently aware of: distributing config/state across 
application components 
and storing local caches of certain types of data (rather low rate of 
change, eg. dictionary data).

Regards,
rle

-- 
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: [Video] Game development in Clojure (with play-clj)

2014-04-13 Thread Kris Calabio
Oh great! I guess I must have missed that :P


On Sun, Apr 13, 2014 at 3:13 PM, James Trunk  wrote:

> There's a link to a gist of 
> core.cljin the video's 
> description.
>
> Cheers,
> James
>
>
> On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote:
>
>> Actually, I thought it would be even more helpful if you had the source
>> code available (for searching/skimming). Is that somewhere online?
>> -Kris
>>
>>
>> On Sun, Apr 13, 2014 at 2:47 PM, James Trunk  wrote:
>>
>>> Hi Kris,
>>>
>>> Thanks for your comment, and I'm very glad that you found the video
>>> helpful.
>>>
>>> I started doing screencasts because I realised that I learn a new
>>> concept fastest by watching someone else doing/explaining it - and I
>>> figured I might not be the only one. Saying that, I know screencasts aren't
>>> for everyone, and they have a few drawbacks compared to text (harder to
>>> search, skim, or repeat sections). So positive comment like yours remind me
>>> that I'm not the only auditory/visual learner around here, and inspire me
>>> to keep going. Thanks!
>>>
>>> James
>>>
>>>
>>> On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:

 Great video! I've looked through Zach's examples, and even started
 coding a game myself. But your screencast helped me have a better
 understanding of some of the concepts and code that I was having trouble
 understanding just by looking at the example games. Thanks!
 -Kris

 On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:
>
> Hi everyone,
>
> I thought some of you might be interested to watch my screencast about 
> game
> development in Clojure with 
> play-clj
> .
>
> Cheers,
> James
>
  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>>
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Clojure" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>> topic/clojure/mR1IBJ_OomY/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> clojure+u...@googlegroups.com.
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe.
> To unsubscribe from this group and all its topics, 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: [Video] Game development in Clojure (with play-clj)

2014-04-13 Thread James Trunk
There's a link to a gist of 
core.cljin the video's 
description.

Cheers, 
James

On Monday, April 14, 2014 12:08:16 AM UTC+2, Kris Calabio wrote:
>
> Actually, I thought it would be even more helpful if you had the source 
> code available (for searching/skimming). Is that somewhere online?
> -Kris
>
>
> On Sun, Apr 13, 2014 at 2:47 PM, James Trunk 
> > wrote:
>
>> Hi Kris,
>>
>> Thanks for your comment, and I'm very glad that you found the video 
>> helpful.
>>
>> I started doing screencasts because I realised that I learn a new concept 
>> fastest by watching someone else doing/explaining it - and I figured I 
>> might not be the only one. Saying that, I know screencasts aren't for 
>> everyone, and they have a few drawbacks compared to text (harder to search, 
>> skim, or repeat sections). So positive comment like yours remind me that 
>> I'm not the only auditory/visual learner around here, and inspire me to 
>> keep going. Thanks!
>>
>> James
>>
>>
>> On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:
>>>
>>> Great video! I've looked through Zach's examples, and even started 
>>> coding a game myself. But your screencast helped me have a better 
>>> understanding of some of the concepts and code that I was having trouble 
>>> understanding just by looking at the example games. Thanks!
>>> -Kris
>>>
>>> On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:

 Hi everyone,

 I thought some of you might be interested to watch my screencast about 
 game 
 development in Clojure with 
 play-clj
 .

 Cheers,
 James

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

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


Re: [Video] Game development in Clojure (with play-clj)

2014-04-13 Thread Kris Calabio
Actually, I thought it would be even more helpful if you had the source
code available (for searching/skimming). Is that somewhere online?
-Kris


On Sun, Apr 13, 2014 at 2:47 PM, James Trunk  wrote:

> Hi Kris,
>
> Thanks for your comment, and I'm very glad that you found the video
> helpful.
>
> I started doing screencasts because I realised that I learn a new concept
> fastest by watching someone else doing/explaining it - and I figured I
> might not be the only one. Saying that, I know screencasts aren't for
> everyone, and they have a few drawbacks compared to text (harder to search,
> skim, or repeat sections). So positive comment like yours remind me that
> I'm not the only auditory/visual learner around here, and inspire me to
> keep going. Thanks!
>
> James
>
>
> On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:
>>
>> Great video! I've looked through Zach's examples, and even started coding
>> a game myself. But your screencast helped me have a better understanding of
>> some of the concepts and code that I was having trouble understanding just
>> by looking at the example games. Thanks!
>> -Kris
>>
>> On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:
>>>
>>> Hi everyone,
>>>
>>> I thought some of you might be interested to watch my screencast about game
>>> development in Clojure with 
>>> play-clj
>>> .
>>>
>>> Cheers,
>>> James
>>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/mR1IBJ_OomY/unsubscribe.
> To unsubscribe from this group and all its topics, 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.


Potential Intro clojure projects - libraries and ideas with wow factor

2014-04-13 Thread utel
A handful of developers at the organisation I work at, want to encourage 
interest in Clojure with the aim of using it in production amongst the 
organisation's wider developer community (hundreds of developers). We 
ourselves are Clojure hobbyists.

We wanted to do this through a basic project (with few moving parts), so I 
wanted to get feedback on a couple of aspects:
1. Examples of basic project ideas that would be compelling to fellow 
developers not familiar with Clojure (e.g. something useful that you can do 
easily with Clojure that's harder to do in more established languages such 
as Java)
2. Particular libraries that again had a wow factor towards an objective 
not easily achievable in more established languages (perhaps related to 
data analysis, visualisation, or taking advantage of the benefit of lazy 
evaluation in a novel way as examples).

I realise these questions are somewhat open-ended, but just wanted to spark 
off some ideas for us through bouncing these questions off the google 
group's members.

Thanks for any leads!

-- 
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: [Video] Game development in Clojure (with play-clj)

2014-04-13 Thread James Trunk
Hi Kris,

Thanks for your comment, and I'm very glad that you found the video helpful.

I started doing screencasts because I realised that I learn a new concept 
fastest by watching someone else doing/explaining it - and I figured I 
might not be the only one. Saying that, I know screencasts aren't for 
everyone, and they have a few drawbacks compared to text (harder to search, 
skim, or repeat sections). So positive comment like yours remind me that 
I'm not the only auditory/visual learner around here, and inspire me to 
keep going. Thanks!

James

On Saturday, April 12, 2014 11:28:29 PM UTC+2, Kris Calabio wrote:
>
> Great video! I've looked through Zach's examples, and even started coding 
> a game myself. But your screencast helped me have a better understanding of 
> some of the concepts and code that I was having trouble understanding just 
> by looking at the example games. Thanks!
> -Kris
>
> On Thursday, March 27, 2014 10:07:21 AM UTC-7, James Trunk wrote:
>>
>> Hi everyone,
>>
>> I thought some of you might be interested to watch my screencast about game 
>> development in Clojure with 
>> play-clj
>> .
>>
>> Cheers,
>> James
>>
>

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


Re: Puppet Labs and Trapperkeeper

2014-04-13 Thread Dave Sann
related

http://puppetlabs.com/blog/new-era-application-services-puppet-labs

On Monday, 14 April 2014 00:24:28 UTC+10, Brendan Younger wrote:
>
> I just saw that there's a library called TrapperKeeper 
> https://github.com/puppetlabs/trapperkeeper from the folks at Puppet 
> Labs.  It looks to be a more opinionated and complete version of Stuart 
> Sierra's Component library https://github.com/stuartsierra/component, in 
> that it explicitly pays attention to things like logging configuration and 
> JBoss support.
>
> Brendan Younger
>

-- 
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] iroh 0.1.9 - class reflection and exploration

2014-04-13 Thread Chris Zheng
It's short because i hate typing... And it's meant to be 'intuitive' so that 
clojure users would find it relatively straight forward to pick up. The only 
unintuitive bit would be the .% and .%> for class information and class 
hierarchy. The thing is, when combined with the threading macro, all the 
functions are very powerful tools at the repl:

(.> 123 .%>) get class hierarchy
(.> 123 .?) get all methods
(.> 123 (.? :name)) get method name
(.> 123 .toString (.? :name)) get method names of (.toString 123)

Giveit a go! And if you have any suggestions for short names, please let me 
know.

On 14/04/2014, at 5:17, Moritz Ulrich  wrote:

> A simple repl-targeted library to introspect classes might prove
> useful, but is there any reason to use such a short syntax for
> everything? I'll surely have problems remembering the symbols.
> 
> On Fri, Apr 11, 2014 at 5:57 AM, zcaudate  wrote:
>> Please use 0.1.10 update. clojure 1.6 does not load clojure.walk and
>> clojure.set automatically anymore.
>> 
>> --
>> 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 a topic in the Google 
> Groups "Clojure" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/clojure/YEeEMYmjfPM/unsubscribe.
> To unsubscribe from this group and all its topics, 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: auto include a certain line in all *.cljs files

2014-04-13 Thread t x
What does 
https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L209-L211
mean ?

In particular, I'm confused about:

>> Forms to prepend to every form that is evaluated inside your project.

I only want to insert it right into the (ns ...) clause.

Thanks!


On Sun, Apr 13, 2014 at 10:49 AM, Kevin Ilchmann Jørgensen
 wrote:
> Look at  :injections in
> https://github.com/technomancy/leiningen/blob/master/sample.project.clj.
> Would that help you?
>
>
>
> On Sun, Apr 13, 2014 at 7:36 PM, t x  wrote:
>>
>> Hi,
>>
>>   Can I edit some user.clj/config.clj/project.clj file, so that it's as
>> if:
>>
>> (:require-macros [swiss.arrows :refer (-<>)])
>>
>>   is auto included in *every* cljs file ?
>>
>>   [I dislike the constant repetition]
>>
>> Thanks!
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

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


Re: [ANN] iroh 0.1.9 - class reflection and exploration

2014-04-13 Thread Moritz Ulrich
A simple repl-targeted library to introspect classes might prove
useful, but is there any reason to use such a short syntax for
everything? I'll surely have problems remembering the symbols.

On Fri, Apr 11, 2014 at 5:57 AM, zcaudate  wrote:
> Please use 0.1.10 update. clojure 1.6 does not load clojure.walk and
> clojure.set automatically anymore.
>
> --
> 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: auto include a certain line in all *.cljs files

2014-04-13 Thread Kevin Ilchmann Jørgensen
Look at  :injections in
https://github.com/technomancy/leiningen/blob/master/sample.project.clj.
Would that help you?



On Sun, Apr 13, 2014 at 7:36 PM, t x  wrote:

> Hi,
>
>   Can I edit some user.clj/config.clj/project.clj file, so that it's as if:
>
> (:require-macros [swiss.arrows :refer (-<>)])
>
>   is auto included in *every* cljs file ?
>
>   [I dislike the constant repetition]
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


auto include a certain line in all *.cljs files

2014-04-13 Thread t x
Hi,

  Can I edit some user.clj/config.clj/project.clj file, so that it's as if:

(:require-macros [swiss.arrows :refer (-<>)])

  is auto included in *every* cljs file ?

  [I dislike the constant repetition]

Thanks!

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


Re: My experiments with concurrent programming

2014-04-13 Thread Bob Hutchison
Hi Cecil,

On Apr 12, 2014, at 3:18 PM, Cecil Westerhof  wrote:

> 
> I just started playing with Clojure a few days ago, so I am a tabula rasa. I 
> attached what I have until now. If it can be improved, I like to know it.

I had a look at your code and it's not clear to me what you are trying to 
experiment with. Possibly benchmark using futures to run the do-sequential 
function concurrently. I'll assume that for the moment and make a couple of 
observations...

You are using atoms to store two values (max-diff and max-factor) that are used 
and changed in main-function. Did you really intend to share these across all 
the calculations? The code you've provided will have concurrency errors as a 
result. You might consider writing this as something like (the *completely* 
untested and so only good as a sketch):

(def max-diff (ref 0.0))
(def max-factor (ref 0.0))

(defn init [type]
  (give-message (format "Start %s" type))
  (dosync
(ref-set max-diff   0.0)
(ref-set max-factor 0.0)))
   
(defn main-function [i diff]
  (dosync
(ensure max-diff)
(ensure max-factor)
(when (> diff @max-diff)
   (give-message (format "Different for %12d (%e, %e)" i diff (/ diff i)))
   (alter max-diff max diff)
   (when (> (/ diff i) @max-factor)
 (alter max-factor max (/ diff i)

The 'ensures' are there because max-diff and max-factor aren't really 
independent and some interaction between concurrent threads in the outer when 
could lead to some strange situations (like testing for max-diff (or 
max-factor) then finding that some other thread ran and changed max-diff (or 
max-factor) out from under you.

Your concurrency will likely be restricted to (some subset) of your cores since 
there's no IO in there (you're dumping the actual logging off to an agent). 
This isn't a bug, just mentioning it, but there's something to think about 
below.

There's a problem in your calculation of diff... it's always 0.0 which means 
that there's nothing being done in main-function. I changed it to something 
arbitrary (and *completely* untested and so only good as a sketch):

  (let [v (int (Math/sqrt i))
diff (Math/abs (- (Math/pow v 2) i))]

No idea if that's reasonable, but at least main-function does something now.

With the hacked up calculation of diff, I was able to demonstrate the 
concurrency problem in main-function by simply running (the *completely* 
untested and so only good as a sketch):

(defn main-function [i diff]
  (swap! iterations0 inc)
  (when (> diff @max-diff)
(swap! iterations1 inc)
#_(give-message (format "Different for %12d (%e, %e)" i diff (/ diff i)))
(swap! max-diff max diff)
(when (> (/ diff i) @max-factor)
  (swap! iterations2 inc)
  (swap! max-factor max (/ diff i)

and printing the values of iterations* -- with your swap algorithm you get 
different values for iterations1 and sometimes iterations2 for successive run.

If you didn't intend to share max-diff and max-factor, then you'd likely be 
better off if do-sequential passed local values into main-function, something 
like (the *completely* untested and so only good as a sketch):

(defn main-function [[max-diff max-factor] i]
  (let [v (int (Math/sqrt i))
diff (Math/abs (- (Math/pow v 2) i))]
(if (> diff max-diff)
  (do
#_(give-message (format "Different for %12d (%e, %e)" i diff (/ diff 
i)))
[(max max-diff diff) (max max-factor (/ diff i))])
  [max-diff max-factor])))

(defn do-sequential [start stop step]
  (reduce main-function [0.0 0.0] (range start stop step)))


You've decided to use futures for concurrency. Maybe that's the whole point, 
but if you're just trying to get a feel for concurrency in Clojure then there 
are some options. I find I directly use futures and promises, at most, rarely 
(I can't remember ever using them directly, maybe in the very early days of 
Clojure). What I find handy for this sort of thing is something like pmap, and 
if you really want this asynchronous then have a look at core.async. Anyway, 
with pmap (the *completely* untested and so only good as a sketch):

(defn check-concurrent [number]
  (doall
(pmap #(do-sequential % check-until number) (range 1 (inc number)

The shutdown-agents call is likely not what you want, you don't need it.

You're using agents for the logging. This gets the IO out of your code being 
tested, but there's still a lot of formatting work happening there (not much of 
a problem). But you don't know the impact of the agent thread pool on your 
benchmark. It's possible that it acts as a throttle. You can avoid this easily 
by not logging anything in main-function (I've commented it out in the example 
above).

Benchmarking is tricky to do. It's a lot easier to use something like 
criterium, kind of like this (I added the *verbose* dynamic variable for fun to 
the *completely* untested and so only good as a sketch):

(def ^:dynamic *verbose* true)
(defn give-message [mes

Re: Data Literals: How to handle read "errors"?

2014-04-13 Thread Thomas Heller
Ah, didn't even think about the REPL causing trouble here.

Thanks.

On Sunday, April 13, 2014 5:30:09 PM UTC+2, squeegee wrote:
>
>
> On Apr 13, 2014, at 8:31 AM, Thomas Heller > 
> wrote:
>
> […] confusing error messages.
>
> user=> (pr-str #time/local-datetime [2014 4 1 0 0 2 999])
>
> […]
>
> RuntimeException Unmatched delimiter: ) 
>  clojure.lang.Util.runtimeException (Util.java:221)
>
>
> Using default #inst reader gives the same behavior.
>
> This is an artifact of how the repl currently works. Its input is a stream 
> of characters to which it applies the read, eval, and print operations in a 
> loop. There is prompt-handling code in the repl that makes it feel “turn” 
> oriented in most cases, but this case isn’t handled. It does not currently 
> implement “on exception in read, flush the rest of the pending user input 
> and re-prompt”.
>
> Here’s an example with a vanilla clojure 1.6.0 (java -jar  1.6.0.jar>) that may clarify what’s going on:
>
> user=> (println 1 2 3 #inst "4" 5 6 7 8 9)
> RuntimeException Unrecognized date/time syntax: 4 
>  clojure.instant/fn--6236/fn--6237 (instant.clj:118)
> 5
> 6
> 7
> 8
> 9
> RuntimeException Unmatched delimiter: ) 
>  clojure.lang.Util.runtimeException (Util.java:221)
>
> The start of the list "(println 1 2 3” reads fine, then the #inst read 
> throws an exception. After the exception, the repl starts working on the 
> remainder of the input characters as if it were fresh user input. It sees 
> integers and prints them. When it hits “)”, there’s no corresponding “(“ 
> pending, so it throws again.
>
> —Steve
>
>

-- 
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: Data Literals: How to handle read "errors"?

2014-04-13 Thread Stephen Gilardi

On Apr 13, 2014, at 8:31 AM, Thomas Heller  wrote:

> [...] confusing error messages.
> 
> user=> (pr-str #time/local-datetime [2014 4 1 0 0 2 999])
> 
> [...]
> RuntimeException Unmatched delimiter: )  clojure.lang.Util.runtimeException 
> (Util.java:221)

Using default #inst reader gives the same behavior.

This is an artifact of how the repl currently works. Its input is a stream of 
characters to which it applies the read, eval, and print operations in a loop. 
There is prompt-handling code in the repl that makes it feel "turn" oriented in 
most cases, but this case isn't handled. It does not currently implement "on 
exception in read, flush the rest of the pending user input and re-prompt".

Here's an example with a vanilla clojure 1.6.0 (java -jar ) that may clarify what's going on:

user=> (println 1 2 3 #inst "4" 5 6 7 8 9)
RuntimeException Unrecognized date/time syntax: 4  
clojure.instant/fn--6236/fn--6237 (instant.clj:118)
5
6
7
8
9
RuntimeException Unmatched delimiter: )  clojure.lang.Util.runtimeException 
(Util.java:221)

The start of the list "(println 1 2 3" reads fine, then the #inst read throws 
an exception. After the exception, the repl starts working on the remainder of 
the input characters as if it were fresh user input. It sees integers and 
prints them. When it hits ")", there's no corresponding "(" pending, so it 
throws again.

--Steve

-- 
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] Cadejo, A MIDI management tool for Overtone

2014-04-13 Thread Steven Jones
Hi everyone,

I have just released "Cadejo", a MIDI management tool for Overtone.
It forms an infrastructure which defines how MIDI devices communicate with
Overtone instruments. The release also includes 4 full-featured
instruments.

1) ALGO, an 8-operator FM synth
2) Alias, a subtractive synth with extensive modulation possibilities
3) MASA, an organ loosely based on the Hammond B3
4) Combo, a simpler organ primarily used for illustration.

All instruments have program banks with a few pre-defined "patches"
accessible by MIDI program change. MIDI program 127 generates random patch
data. 

Cadejo supports all MIDI channel messages with the exception of polyphonic
after-touch.  Some of it's feature are:

- Keyboard layering and split points
- Tuning tables for alternate intonation.
- Velocity, pressure and controller mapping functions.
- Separate poly and monophonic response modes. 
- Program banks with the ability to execute arbitrary Clojure functions 
  in response to MIDI program change events. 

An introductory video may be viewed at
https://www.youtube.com/watch?v=GgXCAMs2EQY

The project may be found on git hub at 
https://github.com/plewto/Cadejo/


Thanks

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


Puppet Labs and Trapperkeeper

2014-04-13 Thread Brendan Younger
I just saw that there's a library called 
TrapperKeeper https://github.com/puppetlabs/trapperkeeper from the folks at 
Puppet Labs.  It looks to be a more opinionated and complete version of 
Stuart Sierra's Component 
library https://github.com/stuartsierra/component, in that it explicitly 
pays attention to things like logging configuration and JBoss support.

Brendan Younger

-- 
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.


Data Literals: How to handle read "errors"?

2014-04-13 Thread Thomas Heller
Hey there,

I upgraded to JDK8 and wanted to start using the new java.time.* packages. 
I started by implementing reader functions to get rid of #inst like:

#time/local-date [2014 4 13]
#time/local-datetime [2014 4 13 14 23]

While that works fine and as expected, one thing I ran into is confusing 
error messages.

For example, from a REPL:

user=> (pr-str #time/local-datetime [2014 4 1 0 0 2 999])

DateTimeException Invalid value for NanoOfSecond (valid values 0 - 
9): 1215752191  java.time.temporal.ValueRange.checkValidValue 
(ValueRange.java:311)
RuntimeException Unmatched delimiter: )  clojure.lang.Util.runtimeException 
(Util.java:221)

Or another one:

user=> (pr-str #time/local-date [2014 4 31])

DateTimeException Invalid date 'APRIL 31'  java.time.LocalDate.create 
(LocalDate.java:431)
RuntimeException Unmatched delimiter: )  clojure.lang.Util.runtimeException 
(Util.java:221)


The first part is what I expected, however the "Unmatched delimiter" part 
is not what I expected. Is there any special exception I should be throwing 
in a reader function that read something that can never be correct? Also 
why do I need print-dup?

Nothing serious, just curious if its a bug or an oversight on my part.

Regards,
/thomas



PS: Clojure 1.6.0 btw

-- 
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.