Re: [Standards] pep & avatars

2009-03-26 Thread Fabio Forno
On Thu, Mar 26, 2009 at 1:28 PM, Pedro Melo  wrote:
>
> I understand, but if the cost of sending those "my current item is this"
> with presence if greater than just receiving the item at start (not the
> image data, just the metadata), then this discussion is moot, right?

I haven't explained well. It's not "my current item", just my client
uuid is[1]. I'd like to be able to do the same with the pair (ext,
jid) from the capabilities, but if I use the same client with same
resource on a different pc with PEP I've no way to recognize the
client hasn't been synchronized. And for this things like sequencing
aren't good, since basically you always send the last version for each
node.

[1] this requires keeping a bit more of context at server side, but I
think it is marginal. We are experimenting it with a facebook gw and
it is rather easy to maintain

>
>> On the single event we have a
>> gain of the 50 - 60% of the data which is not a lot, but there many
>> random strings in the message. A good guess, with the entropy of the
>> previous messages,  could be 150-200 bytes per user, which is still a
>> lot: if you have 100 online contacts it's 15K just for knowing that
>> nothing has changed.>
> but you would have to send the UUID of each of those contacts to tell each
> of those PEP nodes which version you have, right?
>
> If I have N contacts, and each one of them uses PEP for avatar and user
> tunes, when I start a new session, I would need to send to each PEP node my
> current UUID so that they know which version I have before they send me the
> current version.
>
> So I would have 200 stanzas just to communicate my "current cached status",
> via the upload link, usually on the lowest bandwidth side.
>
> Or I could receive notifications from all those PEP nodes telling me "this
> is the version I got", from the larger bandwidth side.
>
> I admit that I haven't read these XEP's lately and I'm might be missing
> something...

See above, just one uuid, bound to the client, not to subscribed
nodes. Some quick figures:

- present scenario (just for avatars, with more nodes it gets worse):
I go online with 100 online contacts and I receive the latest item
version -> ~15K
- proposed scenario (worst case): all my 100 contacts put client uuid
in their capabilities in their presence -> 25 byte * 100 -> ~ 2.5K
and nothing more if avatars haven't changed. In order to waste
bandwidth more than the 80% of the contacts must have changes avatar,
while in the normal situations (no avatar changed) I save the 80% of
the traffic

-- 
Fabio Forno, Ph.D.
Bluendo srl http://www.bluendo.com
jabber id: f...@jabber.bluendo.com


Re: [Standards] pep & avatars

2009-03-26 Thread Pedro Melo


On Mar 26, 2009, at 12:02 PM, Fabio Forno wrote:

On Thu, Mar 26, 2009 at 12:44 PM, Pedro Melo   
wrote:
Also, do you have any data on the size of those 500 and 100 bytes  
after

compression?


Well... big numbers are more impressive :D
I don't want to consider vcard avatars, since I'd like to have a
general mechanism for other things too.


I understand, but if the cost of sending those "my current item is  
this" with presence if greater than just receiving the item at start  
(not the image data, just the metadata), then this discussion is moot,  
right?




On the single event we have a
gain of the 50 - 60% of the data which is not a lot, but there many
random strings in the message. A good guess, with the entropy of the
previous messages,  could be 150-200 bytes per user, which is still a
lot: if you have 100 online contacts it's 15K just for knowing that
nothing has changed.


but you would have to send the UUID of each of those contacts to tell  
each of those PEP nodes which version you have, right?


If I have N contacts, and each one of them uses PEP for avatar and  
user tunes, when I start a new session, I would need to send to each  
PEP node my current UUID so that they know which version I have before  
they send me the current version.


So I would have 200 stanzas just to communicate my "current cached  
status", via the upload link, usually on the lowest bandwidth side.


Or I could receive notifications from all those PEP nodes telling me  
"this is the version I got", from the larger bandwidth side.


I admit that I haven't read these XEP's lately and I'm might be  
missing something...


Best regards,
--
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: m...@simplicidade.org
Use XMPP!




Re: [Standards] pep & avatars

2009-03-26 Thread Fabio Forno
On Thu, Mar 26, 2009 at 12:44 PM, Pedro Melo  wrote:
>
> I understand your problem, but do you really want to send that with all the
> 's or just the initial one?

That's one of the things worth discussing ;) I guess it is more
conservative to send the uuid for each presence. An additional field
in the capabilities could be more efficient since we save a new XML
element and a namespace declaration

> Also, do you have any data on the size of those 500 and 100 bytes after
> compression?

Well... big numbers are more impressive :D
I don't want to consider vcard avatars, since I'd like to have a
general mechanism for other things too. On the single event we have a
gain of the 50 - 60% of the data which is not a lot, but there many
random strings in the message. A good guess, with the entropy of the
previous messages,  could be 150-200 bytes per user, which is still a
lot: if you have 100 online contacts it's 15K just for knowing that
nothing has changed. Moreover the gain is not just for avatars, but
for any PEP node, with very little work at server side and breaking
nothing with clients non supporting it (if there is no uuid we just
send the notification)

-- 
Fabio Forno, Ph.D.
Ooros srl
jabber id: f...@jabber.bluendo.com


Re: [Standards] pep & avatars - photo upload script?

2009-03-26 Thread Dean Collins
Sorry to hijack the thread but

Has anyone on this list used/built some kind of snazzy upload a photo
and move the square box over the photo to capture the size we want kind
of script or something like this?

Have you opensourced it or can we license the java from you at a
reasonable price? 

Seems like such a fundamentally reusable piece of software surprised I
haven't been able to find something.
 

 

Regards,

Dean Collins
Cognation Inc
d...@cognation.net
+1-212-203-4357   New York
+61-2-9016-5642   (Sydney in-dial).
+44-20-3129-6001 (London in-dial).


-Original Message-
From: standards-boun...@xmpp.org [mailto:standards-boun...@xmpp.org] On
Behalf Of Pedro Melo
Sent: Thursday, March 26, 2009 7:44 AM
To: XMPP Standards
Subject: Re: [Standards] pep & avatars

Hi,

On Mar 26, 2009, at 10:54 AM, Fabio Forno wrote:

> Hi,
> we're implementing user avatars with our mobile client and we're
> trying to do that with bandwidth issues in mind.
> According to xep-163 the only reliable way to sync items (avatar
> version) is sending the latest item to each user session, then if the
> clients notices a change it can retrieve the avatar. For mobiles this
> is rather heavy since the average pep notification is 500 bytes, while
> the  vcard-temp:x:update child in the presence is just 100 bytes, and
> both must be sent each user session. This means that for mobiles it is
> far better using the old vcard based protocol, approach I don't like
> since PEP is much more useful. Therefore I'm trying to think of a way
> to reduce the item notifications and send them only when they are
> really changed, not to each user session. So far the best way I
> thought of is extending client presence with an uuid identifying the
> client instance, so that the PEP service can figure out whether that
> client has already been updated.
>
> Example:
>
> 
> 
> 
> 
>
> The pep service matches the uuid for each node the client is
> subscribed to and, if it hasn't sent the latest item to that uuid it
> sends an event notification, otherwise it does nothing, avoiding
> sending redundant data.

I understand your problem, but do you really want to send that with  
all the 's or just the initial one?

Also, do you have any data on the size of those 500 and 100 bytes  
after compression?

Best regards,
-- 
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: m...@simplicidade.org
Use XMPP!




Re: [Standards] pep & avatars

2009-03-26 Thread Pedro Melo

Hi,

On Mar 26, 2009, at 10:54 AM, Fabio Forno wrote:


Hi,
we're implementing user avatars with our mobile client and we're
trying to do that with bandwidth issues in mind.
According to xep-163 the only reliable way to sync items (avatar
version) is sending the latest item to each user session, then if the
clients notices a change it can retrieve the avatar. For mobiles this
is rather heavy since the average pep notification is 500 bytes, while
the  vcard-temp:x:update child in the presence is just 100 bytes, and
both must be sent each user session. This means that for mobiles it is
far better using the old vcard based protocol, approach I don't like
since PEP is much more useful. Therefore I'm trying to think of a way
to reduce the item notifications and send them only when they are
really changed, not to each user session. So far the best way I
thought of is extending client presence with an uuid identifying the
client instance, so that the PEP service can figure out whether that
client has already been updated.

Example:






The pep service matches the uuid for each node the client is
subscribed to and, if it hasn't sent the latest item to that uuid it
sends an event notification, otherwise it does nothing, avoiding
sending redundant data.


I understand your problem, but do you really want to send that with  
all the 's or just the initial one?


Also, do you have any data on the size of those 500 and 100 bytes  
after compression?


Best regards,
--
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: m...@simplicidade.org
Use XMPP!




[Standards] pep & avatars

2009-03-26 Thread Fabio Forno
Hi,
 we're implementing user avatars with our mobile client and we're
trying to do that with bandwidth issues in mind.
According to xep-163 the only reliable way to sync items (avatar
version) is sending the latest item to each user session, then if the
clients notices a change it can retrieve the avatar. For mobiles this
is rather heavy since the average pep notification is 500 bytes, while
the  vcard-temp:x:update child in the presence is just 100 bytes, and
both must be sent each user session. This means that for mobiles it is
far better using the old vcard based protocol, approach I don't like
since PEP is much more useful. Therefore I'm trying to think of a way
to reduce the item notifications and send them only when they are
really changed, not to each user session. So far the best way I
thought of is extending client presence with an uuid identifying the
client instance, so that the PEP service can figure out whether that
client has already been updated.

Example:






The pep service matches the uuid for each node the client is
subscribed to and, if it hasn't sent the latest item to that uuid it
sends an event notification, otherwise it does nothing, avoiding
sending redundant data.

-- 
Fabio Forno, Ph.D.
Ooros srl
jabber id: f...@jabber.bluendo.com