[ANN] edn-java 0.4.3 released

2013-06-18 Thread Ben Smith-Mannschott
edn-java [1] is a parser and printer for edn [2].

This release fixes issue #35 [3] Allow Symbols to contain $ %  =.

It should be available on Maven Central within a day.

// Ben

[1] http://edn-java.bpsm.us
[2] https://github.com/edn-format/edn
[3] https://github.com/bpsm/edn-java/issues/35

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




Re: [ANN] byte-streams: a rosetta stone for all the byte representations the jvm has to offer

2013-07-02 Thread Ben Smith-Mannschott
Ropes?

http://en.m.wikipedia.org/wiki/Rope_(data_structure)

Ben
--
This message was sent via electromagnetism.

On 02.07.2013, at 12:19, Mikera mike.r.anderson...@gmail.com wrote:

 This is cool, thanks Zach!
 
 Another set of mostly-isomporphic types that this could be applied to is 
 different matrix/array types in core.matrix. core.matrix already has generic 
 conversion mechanisms but they probably aren't as efficient as they could be. 
 I'll take a look and see if the same techniques might be applicable.
 
 Quick question for you and the crowd: does there exist or should we build a 
 standard immutable byte data representation for Clojure? 
 
 I think this is often needed: ByteBuffers and byte[] arrays work well enough 
 but are mutable. Byte sequences are nice and idiomatic but have a lot of 
 overhead, so people are often forced to resort to a variety of other 
 techniques. And it would be nice to support some higher level operations on 
 such types, e.g. production of efficient (non-copying) immutable subsequences.
 
 From a data structure perspective, I'm imagining something like a persistent 
 data structure with byte[] data arrays at the lowest level.
 
 Given the amount of data-processing stuff people are doing, it seems like a 
 reasonable thing to have in contrib at least? 
 
 
 On Saturday, 29 June 2013 18:57:58 UTC+1, Zach Tellman wrote:
 
 I've recently been trying to pull out useful pieces from some of my more 
 monolithic libraries.  The most recent result is 'byte-streams' [1], a 
 library that figures how how to convert between different byte 
 representations (including character streams), and how to efficiently 
 transfer bytes between various byte sources and sinks.  The net result is 
 that you can do something like:
 
   (byte-streams/convert (File. /tmp/foo) String {:encoding utf-8})
 
 and get a string representation of the file's contents.  Of course, this is 
 already possible using 'slurp', but you could also convert it to a 
 CharSequence, or lazy sequence of ByteBuffers, or pretty much anything else 
 you can imagine.  This is accomplished by traversing a graph of available 
 conversions (don't worry, it's memoized), so simply defining a new 
 conversion from some custom type to (say) a ByteBuffer will transitively 
 allow you to convert it to any other type.
 
 As an aside, this sort of conversion mechanism isn't limited to just byte 
 representations, but I'm not sure if there's another large collection of 
 mostly-isomorphic types out there that would benefit from this.  If anyone 
 has ideas on where else this could be applied, I'd be interested to hear 
 them.
 
 Zach
 
 [1] https://github.com/ztellman/byte-streams
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  

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




Re: edn-format parsers (eg, Common Lisp)?

2013-07-09 Thread Ben Smith-Mannschott
Perhaps you've not seen this:

https://github.com/edn-format/edn/wiki/Implementations

(But there's no CL implementation listed there.)

//Ben

On Tuesday, July 9, 2013, Rich Morin wrote:

 I'm intrigued by edn (extensible data notation), as described here:

   https://github.com/edn-format/edn

 It seems cleaner and more expressive than JSON, so I'm looking into
 using it for a current project.  However, I haven't seen a summary
 of parser and/or generator implementations for this format.  I'm
 particularly interested in finding an edn parser for Common Lisp.

 If anyone has something of this nature, please post a note to the
 list (or contact me offline).  If I get some useful responses, I'll
 put together a wiki page.

 -r

  --
 http://www.cfcl.com/rdmRich Morin
 http://www.cfcl.com/rdm/resume r...@cfcl.com javascript:;
 http://www.cfcl.com/rdm/weblog +1 650-873-7841

 Software system design, development, and documentation


 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.comjavascript:;
 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 javascript:;
 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 javascript:;.
 For more options, visit https://groups.google.com/groups/opt_out.




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




Proposed formal syntax for edn

2013-07-18 Thread Ben Smith-Mannschott
I think it would aid compatibility between edn implementations if we had an
agreed upon formal syntax. To that end, I've tried my hand at specifying
one. I've posted it as issue 56 on edn-format/edn:

https://github.com/edn-format/edn/issues/56

I'll incorporate fixes for any problems that are identified into a copy of
the syntax hosted here:

https://gist.github.com/bpsm/5951638

I think it would be helpful for any discussion to take place on the issue,
since then it would all be in once place.

Thanks,
Ben

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




Re: Proposed formal syntax for edn

2013-07-18 Thread Ben Smith-Mannschott
On Thu, Jul 18, 2013 at 7:46 PM, kovas boguta kovas.bog...@gmail.comwrote:

 I agree that would be a Good Thing. This looks like an excellent start.

 Is this specification executable in Instaparse?

 IMO specs that are immediately computable are more useful and more likely
 to be correct.


No, not as it stands currently the syntax is surely inedible for
Instaparse. I do agree that encoding to work with Instaparse would be an
useful additional verification. It is something I've thought about. I may
tackle that once I'm confident that the obvious kinks have been worked out
of the syntax.

// Ben

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




core.async: Deprecated - this function will be removed. Use transducer instead

2015-02-18 Thread Ben Smith-Mannschott
I'm probably just especially dense today, but perhaps someone can give me a
poke in the right direction.

I'm trying to wrap my head around transducers.

(1) For debugging purposes I'd like to be able to consume the values on a
channel and put them in a collection to be printed.

I'm doing this at the REPL:

(async/!! (async/into [] channel))

This seems needlessly clunky. Is this really the best way to accomplish
this?

(2) async/map is deprecated, what's the alternative, exactly?

(let [ch (async/to-chan [1 2 3])]
  (async/map inc ch))

AFAICT this would produce a channel, which when consumed would yield the
values 2 3 4, correct?

Now I suppose if I didn't already have the channel ch, I could create one
with an associated transformation function, and then stuff the values 1 2 3
into it somehow, right?

(let [ch (async/chan nil (map inc))]
  (async/onto-chan ch [1 2 3])
  ch)
;; returns a channel yielding items 2, 3, 4

But, I'm not clear at all how I can apply the operation (inc) to the all
values yielded by a channel I already have in my hand.

Any help would be appreciated. I feel like I'm missing some critical bit of
insight and that async and transducers might just fall into place for me if
I could only find out what that bit is.

// Ben

-- 
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: core.async: Deprecated - this function will be removed. Use transducer instead

2015-02-18 Thread Ben Smith-Mannschott
Thanks Malcolm, you're blog post was a great help to me.

On Thu, Feb 19, 2015 at 3:06 AM, Malcolm Sparks malc...@juxt.pro wrote:

 I have recently written a blog article which explains how to use
 transducers with core.async.

 You can find it here: http://malcolmsparks.com/posts/transducers.html


 On Wednesday, 18 February 2015 21:48:05 UTC, bsmith.occs wrote:

 I'm probably just especially dense today, but perhaps someone can give me
 a poke in the right direction.

 I'm trying to wrap my head around transducers.

 (1) For debugging purposes I'd like to be able to consume the values on a
 channel and put them in a collection to be printed.

 I'm doing this at the REPL:

 (async/!! (async/into [] channel))

 This seems needlessly clunky. Is this really the best way to accomplish
 this?

 (2) async/map is deprecated, what's the alternative, exactly?

 (let [ch (async/to-chan [1 2 3])]
   (async/map inc ch))

 AFAICT this would produce a channel, which when consumed would yield the
 values 2 3 4, correct?

 Now I suppose if I didn't already have the channel ch, I could create one
 with an associated transformation function, and then stuff the values 1 2 3
 into it somehow, right?

 (let [ch (async/chan nil (map inc))]
   (async/onto-chan ch [1 2 3])
   ch)
 ;; returns a channel yielding items 2, 3, 4

 But, I'm not clear at all how I can apply the operation (inc) to the all
 values yielded by a channel I already have in my hand.

 Any help would be appreciated. I feel like I'm missing some critical bit
 of insight and that async and transducers might just fall into place for me
 if I could only find out what that bit is.

 // Ben

  --
 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: core.async: Deprecated - this function will be removed. Use transducer instead

2015-02-19 Thread Ben Smith-Mannschott
I'm unclear on one thing: what's the purpose of core.async/pipe? In your
blog article, you write:

(- source (pipe (chan)) payload-decoder payload-json-decoder)

(pipe source destination) just copies elements from source to destination.
How is that any different than just using source here directly?:

(- source payload-decoder payload-json-decoder)

What have I missed?

// Ben

On Thu, Feb 19, 2015 at 3:06 AM, Malcolm Sparks malc...@juxt.pro wrote:

 I have recently written a blog article which explains how to use
 transducers with core.async.

 You can find it here: http://malcolmsparks.com/posts/transducers.html


 On Wednesday, 18 February 2015 21:48:05 UTC, bsmith.occs wrote:

 I'm probably just especially dense today, but perhaps someone can give me
 a poke in the right direction.

 I'm trying to wrap my head around transducers.

 (1) For debugging purposes I'd like to be able to consume the values on a
 channel and put them in a collection to be printed.

 I'm doing this at the REPL:

 (async/!! (async/into [] channel))

 This seems needlessly clunky. Is this really the best way to accomplish
 this?

 (2) async/map is deprecated, what's the alternative, exactly?

 (let [ch (async/to-chan [1 2 3])]
   (async/map inc ch))

 AFAICT this would produce a channel, which when consumed would yield the
 values 2 3 4, correct?

 Now I suppose if I didn't already have the channel ch, I could create one
 with an associated transformation function, and then stuff the values 1 2 3
 into it somehow, right?

 (let [ch (async/chan nil (map inc))]
   (async/onto-chan ch [1 2 3])
   ch)
 ;; returns a channel yielding items 2, 3, 4

 But, I'm not clear at all how I can apply the operation (inc) to the all
 values yielded by a channel I already have in my hand.

 Any help would be appreciated. I feel like I'm missing some critical bit
 of insight and that async and transducers might just fall into place for me
 if I could only find out what that bit is.

 // Ben

  --
 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] edn-java 0.4.5 released

2015-01-28 Thread Ben Smith-Mannschott
edn-java [1] is a parser and printer for edn [2].


This release:


* Incorporates a patch from 'redahe' to fix issue 40 where  and 

  were not recognized as symbols. [3]


It is available on Maven central as I write this.


[1] http://edn-java.bpsm.us

[2] https://github.com/edn-format/edn

[3] https://github.com/bpsm/edn-java/issues/40


// Ben

-- 
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: Is there a cheet sheet for some of the pure symbolic functions like #'

2015-06-05 Thread Ben Smith-Mannschott


try googling for clojure reader macros.

Dru Sellers mailto:d...@drusellers.com
June 5, 2015 at 22:05via Postbox 
https://www.postbox-inc.com/?utm_source=emailutm_medium=sumlinkutm_campaign=reach

Trying to google what #' means is tricky to say the least.

Is there a good name for these that I can google to read up on them?

Thank you.

-d
--
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 
mailto:clojure+unsubscr...@googlegroups.com.

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


--
Sent from Postbox 
https://www.postbox-inc.com/?utm_source=emailutm_medium=siglinkutm_campaign=reach


--
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] edn-java 0.4.6 released

2015-10-25 Thread Ben Smith-Mannschott
edn-java [1] is a parser and printer for edn [2].

This release:

* Teaches the default parser to produce values that can participate in Java
serialization. [3]

It should be appearing on Maven Central shortly.

// Ben

[1] http://edn-java.bpsm.us

[2] https://github.com/edn-format/edn

[3] https://github.com/bpsm/edn-java/issues/43

-- 
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] edn-java 0.5.0 released

2016-12-11 Thread Ben Smith-Mannschott
edn-java [1] is a parser and printer for edn [2].

This release:

* Can read namespaced maps as per CLJ-1910 [47]
* Throws an exception when asked to read a map or set with duplicates [49]

It should be appearing on Maven Central shortly.

// Ben

[1] http://edn-java.bpsm.us

[2] https://github.com/edn-format/edn

[47] https://github.com/bpsm/edn-java/issues/47

[49] https://github.com/bpsm/edn-java/issues/49

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


<    1   2