Re: [ANN] Taoensso library updates / 2014 September

2014-09-07 Thread Peter Taoussanis


 No problem. I just wanted to check that it was an intentional change, and 
 not some unknown bug that had crept in.


Sure, appreciate that. And one had (buggy CHANGELOG) - so good that you 
checked ;-)

I just switched my app from Om/Sablono + Sente to Reagent + Sente and I'm 
 currently working on cleaning things up now that Reagent has allowed for 
 quite a bit of simplification so I'm in refactoring mode at the moment... 


Reagent's great, can't recommend it enough.
 

 About the only thing I could ask for is IE8 compatibility :)


Hmm, yeah - haven't looked into that myself. Can't think of anything 
off-hand that'd make it impossible, PR would absolutely be welcome.

Cheers!

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


Sente 1.0.0 (was: [ANN] Taoensso library updates / 2014 September

2014-09-06 Thread Sean Corfield
Peter,

I just upgraded from Sente 0.15.1 to 1.0.0 and it looks like the values that 
come in ch-recv have changed format?

I used to have the following:

(go (loop [[op arg] (! ch-recv)]
  (case op
:chsk/recv (do-something-with arg)
...)))

But now I get a map back instead of a pair and have to do this:

(go (loop [{:keys [event} (! ch-recv)]
  (let [[op arg] event]
(case op
  :chsk/recv (do-something-with arg)
  ...

Is that an intentional change? I ask because you claimed the release was major 
but non-breaking - and this seems to be a breaking change...?

Sean

On Sep 2, 2014, at 7:28 AM, Peter Taoussanis ptaoussa...@gmail.com wrote:
 (All new releases are now on BreakVersioning, 
 https://github.com/ptaoussanis/encore/blob/master/BREAK-VERSIONING.md).
 
 Sente - v1.0.0 / 2014 Sep 2 (today)
 ==
 Realtime web comms for Clojure/Script (think Socket.IO but with Transit  
 core.async).
 https://github.com/ptaoussanis/sente/releases
 Notable recent changes: v1 release, optional Transit support, efficiency 
 improvements (perf+bandwidth).



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Sente 1.0.0 (was: [ANN] Taoensso library updates / 2014 September

2014-09-06 Thread Hugo Duncan

s...@corfield.org writes:

 Is that an intentional change? I ask because you claimed the release was 
 major but non-breaking - and this seems to be a breaking change...?

Did you change `start-chsk-router-loop!` to `start-chsk-router!`?  The
former maintains the previous event handler signature (and is thus
non-breaking), but the later requires the new signature.

Hugo


signature.asc
Description: PGP signature


Re: [ANN] Taoensso library updates / 2014 September

2014-09-06 Thread Peter Taoussanis
Hi Sean, thank you for pinging about this.

The upgrade to v1.0.0 *is* actually breaking *if* you've been reading from 
the client-side :ch-recv directly. Most folks use the provided router 
utils, so it slipped my mind to document that - I'm really sorry.

Will update the README and CHANGELOG now.

In the meantime, the change you need to make:
Server-side :ch-recv used to receive `event-msg` maps, and still does (no 
change).
Client-side :ch-recv used to receive `event` vectors, and now instead 
receives `event-msg` maps like the server.

Server-side `event-msg` maps contain keys: :ch-recv, :send-fn, 
:connected-uids, :client-uuid, :ring-req, :event, :?reply-fn.
Client-side `event-msg` maps contain keys: :ch-recv, :send-fn, :state, 
:event.

So (:event event-msg) will get you the old event vector.

Motivations behind this change:
1. Client+server :ch-recv values are now consistent (both receive 
`event-msg`s).
2. Client+server routing is therefore now consistent.
3. The extra data in `event-msg`s makes it easier to write functional event 
handlers (i.e. that don't need access to a global send-fn or ch-recv).
4. That all event handlers now take a map makes future changes 
easier/non-breaking (we can add extra interesting keys in time w/o needing 
event handlers to change, etc.).

Definitely should be documented though, again - really sorry about that!
Please feel free to drop me an email if you run into any more trouble.

Cheers! :-)

- Peter Taoussanis



-- 
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] Taoensso library updates / 2014 September

2014-09-06 Thread Sean Corfield
On Sep 6, 2014, at 5:01 AM, Peter Taoussanis ptaoussa...@gmail.com wrote:
 The upgrade to v1.0.0 *is* actually breaking *if* you've been reading from 
 the client-side :ch-recv directly. Most folks use the provided router utils, 
 so it slipped my mind to document that - I'm really sorry.

No problem. I just wanted to check that it was an intentional change, and not 
some unknown bug that had crept in.

 Client-side :ch-recv used to receive `event` vectors, and now instead 
 receives `event-msg` maps like the server.

Yup, this makes much more sense. It just took a while to figure out why my app 
broke, but it was an easy fix.

 3. The extra data in `event-msg`s makes it easier to write functional event 
 handlers (i.e. that don't need access to a global send-fn or ch-recv).

I'll have to see if that can make my code easier to work with. I may try to 
refactor my code to work with the regular router loop but when I first started 
out, there were things I needed to do that wouldn't quite fit that mould.

 4. That all event handlers now take a map makes future changes 
 easier/non-breaking (we can add extra interesting keys in time w/o needing 
 event handlers to change, etc.).

Definitely an improvement.

I just switched my app from Om/Sablono + Sente to Reagent + Sente and I'm 
currently working on cleaning things up now that Reagent has allowed for quite 
a bit of simplification so I'm in refactoring mode at the moment...

 Please feel free to drop me an email if you run into any more trouble.

About the only thing I could ask for is IE8 compatibility :) I haven't poked at 
that area too much but it looked like something in XhrIo failed in IE8 (related 
to Web Sockets and not failing back gracefully I think?). If we had IE8 
compatibility, I could use Sente for several user-facing things in production, 
as opposed to just internal-facing stuff in production.

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Sente 1.0.0 (was: [ANN] Taoensso library updates / 2014 September

2014-09-06 Thread Sean Corfield
On Sep 6, 2014, at 3:55 AM, Hugo Duncan duncan.h...@gmail.com wrote:
 Did you change `start-chsk-router-loop!` to `start-chsk-router!`?

I don't use those. I read directly from ch-recv due to some of the stuff I 
needed to do (when I first started using Sente). I may revisit this now...

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

Perfection is the enemy of the good.
-- Gustave Flaubert, French realist novelist (1821-1880)





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Sente 1.0.0 (was: [ANN] Taoensso library updates / 2014 September

2014-09-06 Thread Sean Corfield
Ah, I remember why now:

Since the event loop is in a 'go' block and because I didn't want slow event 
handlers blocking everything, I wanted to dispatch my event handler in a 
(thread ...) call.

Perhaps start-chsk-router! could take an optional argument to indicate the 
handler call should be spun off in a thread?

I'll go open an issue for this on Sente's Github repo for discussion.

Sean

On Sep 6, 2014, at 3:48 PM, Sean Corfield s...@corfield.org wrote:

 On Sep 6, 2014, at 3:55 AM, Hugo Duncan duncan.h...@gmail.com wrote:
 Did you change `start-chsk-router-loop!` to `start-chsk-router!`?
 
 I don't use those. I read directly from ch-recv due to some of the stuff I 
 needed to do (when I first started using Sente). I may revisit this now...
 




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [ANN] Taoensso library updates / 2014 September

2014-09-03 Thread Peter Taoussanis
Thanks Sun, appreciate all your input on v2.7 - cheers! :-)

-- 
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] Taoensso library updates / 2014 September

2014-09-02 Thread Peter Taoussanis
(All new releases are now on BreakVersioning, 
https://github.com/ptaoussanis/encore/blob/master/BREAK-VERSIONING.md).

*Sente - v1.0.0 / 2014 Sep 2 (today)*
*==*
*Realtime web comms for Clojure/Script (think Socket.IO but with Transit  
core.async).*
https://github.com/ptaoussanis/sente/releases
Notable recent changes: v1 release, optional Transit support, efficiency 
improvements (perf+bandwidth).

*Carmine - v2.7.0 / 2014 Aug 27 (-6days)*
*==*
*Clojure Redis client + message queue.*
https://github.com/ptaoussanis/carmine/releases
Notable recent changes: lock-free Apache Commons Pool 2 pooling, updated 
Redis commands.

*Faraday - v1.5.0 / 2014 July 26 (-38days)*
*==*
*Clojure DynamoDB client.*
https://github.com/ptaoussanis/faraday/releases
Notable recent changes: allow reading of unserialized bin values written 
with other clients.

*Nippy - v2.7.0-RC1 / 2014 Aug 27 (-6days)*
*==*
*High-performance Clojure binary serialization.*
https://github.com/ptaoussanis/nippy/releases
Notable recent changes: ~40% perf bump over v2.6.0, LZ4 compressor, id'd 
extension types, Fressian comparison benchmarks.

*Timbre - v3.3.0 / 2014 May 8 (-4months)*
*==*
*Pure-Clojure logging + profiling.*
https://github.com/ptaoussanis/timbre/releases
Recent changes: some minor fixes, appender updates.

*Tower - v3.0.0 / 2014 Aug 28 (-5days)*
*==*
*i18n and L10n library for Clojure.*
https://github.com/ptaoussanis/tower/releases
Recent changes: final ClojureScript support, a bunch of general API 
improvements.

*Touchstone - v2.0.2 / 2014 Mar 30 (-5months)*
*==*
*A/B testing for Clojure.*
https://github.com/ptaoussanis/touchstone/releases
Recent changes: stable.

*Encore - v1.7.3 / 2014 Sep 1 (yesterday)*
*==*
*General cross-platform Clojure/Script utils.*
https://github.com/ptaoussanis/encore/releases
Recent changes: nothing major- a few new utils, a few fixes.


*Useful links*
*==*
Libs on GitHub: https://github.com/ptaoussanis?tab=repositories
Libs homepage: https://www.taoensso.com/clojure-libraries
Twitter (lib announcements, etc.): https://twitter.com/ptaoussanis


As usual, please feel free to ping with any 
questions/problems/suggestions/whatever.

Happy hacking/Tuesday, cheers! :-)

-- 

*Peter Taoussanis*ptaoussanis at taoensso.com

-- 
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] Taoensso library updates / 2014 September

2014-09-02 Thread Sun Ning

Good job! I will adapt Nippy 2.7.0 in my projects soon.

On 09/02/2014 10:28 PM, Peter Taoussanis wrote:
(All new releases are now on BreakVersioning, 
https://github.com/ptaoussanis/encore/blob/master/BREAK-VERSIONING.md).


*Sente - v1.0.0 / 2014 Sep 2 (today)*
*==*
/Realtime web comms for Clojure/Script (think Socket.IO but with 
Transit  core.async)./
https://github.com/ptaoussanis/sente/releases 
https://github.com/ptaoussanis/sente/releases
Notable recent changes: v1 release, optional Transit support, 
efficiency improvements (perf+bandwidth).


*Carmine - v2.7.0 / 2014 Aug 27 (-6days)*
*==*
/Clojure Redis client + message queue./
https://github.com/ptaoussanis/carmine/releases 
https://github.com/ptaoussanis/carmine/releases
Notable recent changes: lock-free Apache Commons Pool 2 pooling, 
updated Redis commands.


*Faraday - v1.5.0 / 2014 July 26 (-38days)*
*==*
/Clojure DynamoDB client./
https://github.com/ptaoussanis/faraday/releases 
https://github.com/ptaoussanis/faraday/releases
Notable recent changes: allow reading of unserialized bin values 
written with other clients.


*Nippy - v2.7.0-RC1 / 2014 Aug 27 (-6days)*
*==*
/High-performance Clojure binary serialization./
https://github.com/ptaoussanis/nippy/releases 
https://github.com/ptaoussanis/nippy/releases
Notable recent changes: ~40% perf bump over v2.6.0, LZ4 compressor, 
id'd extension types, Fressian comparison benchmarks.


*Timbre - v3.3.0 / 2014 May 8 (-4months)*
*==*
/Pure-Clojure logging + profiling./
https://github.com/ptaoussanis/timbre/releases 
https://github.com/ptaoussanis/timbre/releases

Recent changes: some minor fixes, appender updates.

*Tower - v3.0.0 / 2014 Aug 28 (-5days)*
*==*
/i18n and L10n library for Clojure./
https://github.com/ptaoussanis/tower/releases 
https://github.com/ptaoussanis/tower/releases
Recent changes: final ClojureScript support, a bunch of general API 
improvements.


*Touchstone - v2.0.2 / 2014 Mar 30 (-5months)*
*==*
/A/B testing for Clojure./
https://github.com/ptaoussanis/touchstone/releases 
https://github.com/ptaoussanis/touchstone/releases

Recent changes: stable.

*Encore - v1.7.3 / 2014 Sep 1 (yesterday)*
*==*
/General cross-platform Clojure/Script utils./
https://github.com/ptaoussanis/encore/releases
Recent changes: nothing major- a few new utils, a few fixes.


*Useful links*
*==**
*
Libs on GitHub: https://github.com/ptaoussanis?tab=repositories 
https://github.com/ptaoussanis?tab=repositories
Libs homepage: https://www.taoensso.com/clojure-libraries 
https://www.taoensso.com/clojure-libraries
Twitter (lib announcements, etc.): https://twitter.com/ptaoussanis 
https://twitter.com/ptaoussanis



As usual, please feel free to ping with any 
questions/problems/suggestions/whatever.


Happy hacking/Tuesday, cheers! :-)

--
*Peter Taoussanis
*ptaoussanis at taoensso.com http://taoensso.com/
--
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.


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