Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-07 Thread Sergey Dobrov
On 09/07/2011 07:40 AM, Justin Karneges wrote:
 On Sunday, September 04, 2011 11:47:55 PM Sergey Dobrov wrote:
 On 09/05/2011 12:17 PM, Justin Karneges wrote:
 On Saturday, September 03, 2011 03:07:45 AM Sergey Dobrov wrote:
 On 09/03/2011 12:41 AM, Justin Karneges wrote:
 The drawback to node metadata is it does not support update
 notifications.  I have the need to track this data, particularly the
 conversation title.

 Don't understand why to change that.

 Don't understand why the title of a conversation might change?

 Yup.
 
 In my experience a title change for a commenting area is usually only done to 
 correct a typo.  Still, applications that cache titles (think long running 
 apps like web sites) should have a way to keep them up to date.
ok, maybe it can be useful but not a first-time needed feature. anyway,
from my point of view it will be more useful to invent more flexible
metadata protocol for nodes. (i mean, if node configuration changes may
be delivered immediately as event, why metadata can't? but I really hate
producing entities in a kind of nodes)

 
 Activity makes it much easier to determine what has happened to an
 item. For example, if a moderator edits a comment, this is easily
 described in activity terms.  Simply doing complete replacement of
 comment items is not terrible but it makes it harder for listeners to
 figure out what is going on.

 The main point is the activity node is an append-only changelog, and
 the comments node is an up-to-date compilation of that log.

 That's funny: some earlier you said: My stance is there is nothing
 wrong with using a journal to implement pubsub, but ideally pubsub-using
 protocols should not be so complex that they require a journal-based
 implementation to participate. And now you talking about inventing the
 same journal but in specific (non-universal) way and in much more
 complex manner. Why?

 It's simple: the activity node has optional persistence, hence the
 journal is optional.

 Journal is optional feature anyway. So it's more usable to make it
 universal and not force it to depend on an applied protocol, isn't it?
 
 The activity node is actually the most normal.  It doesn't even define any 
 parameters.  It's the raw stream of what's happening.
It is. But it's not flexible (for other protocols than XEP-303). Again,
I think that it's completely unnecessary complication for servers (since
server should support consistency of that nodes). Pubsub services are
not too ideal without that complications. If we will produce more and
more entities that can not be reused we will have the sad end. So I
think that it will be better to invent FLEXIBLE journal than reinvent it
in each applied protocol.

 
 The comments node is the weird one.  It's a view/compilation of the activity.
 
 The plan for likes is you'd publish to the activity node (Justin likes
 comment X), but on the comment node this would be reflected as a
 property of an existing comment rather than a new item.  Comment items
 could have like data stored within them, such as a count and maybe a
 list of the last five people to like the comment.

 I think that all these actions should not be copied from centralized
 services since that services have more possibilities to control them. I
 mean, it will be very hard to check if likes are winded by some bad
 mans. Also it will be hard to represent some statistics of most liked
 items. So I think that these things should be solved in that manner how
 google ranking web pages: aggregators will rank items by repost counts
 or something. And, yes, for user like button should be replaced by
 repost or repost with comment, I have such functionality in my
 microblogging service and I want to add it into the XEP-277.

 What do you mean by centralized?  That the conversation is the authority
 on all of its replies and likes?

 Yes, I don't understand what is the reason to have likes in such system
 if we can't count them globally and give stats.
 
 The problem with distributing a single conversation across servers is then 
 you 
 need a way of aggregating even in the common case.  Simply viewing the 
 conversation properly with nested threads and like points requires an 
 aggregator.  

This is what Salmon is for in the HTTP world: telling upstream 
 you've made a reply/like/etc.
But it's already solved in the pubsub world: we have event delivering
system.

  My humble opinion is that this approach does 
 have some cool-factor but it is also a giant pain in the ass in terms of 
 practicality.
 
 I think that if we ever did support distributed conversations then you'd 
 still 
 want the main conversation node (root node) to be able to hold copies of all 
 the content (e.g. use a salmon-like process so that the root node remains in-
 the-know and is able to serve the full dataset to clients).  Assuming this is 
 acceptable, then we can always add distribution in the future.
Sure, the particular conversation will be kept in an one node and 

Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-06 Thread Justin Karneges
On Sunday, September 04, 2011 11:47:55 PM Sergey Dobrov wrote:
 On 09/05/2011 12:17 PM, Justin Karneges wrote:
  On Saturday, September 03, 2011 03:07:45 AM Sergey Dobrov wrote:
  On 09/03/2011 12:41 AM, Justin Karneges wrote:
  The drawback to node metadata is it does not support update
  notifications.  I have the need to track this data, particularly the
  conversation title.
  
  Don't understand why to change that.
  
  Don't understand why the title of a conversation might change?
 
 Yup.

In my experience a title change for a commenting area is usually only done to 
correct a typo.  Still, applications that cache titles (think long running 
apps like web sites) should have a way to keep them up to date.

  Activity makes it much easier to determine what has happened to an
  item. For example, if a moderator edits a comment, this is easily
  described in activity terms.  Simply doing complete replacement of
  comment items is not terrible but it makes it harder for listeners to
  figure out what is going on.
  
  The main point is the activity node is an append-only changelog, and
  the comments node is an up-to-date compilation of that log.
  
  That's funny: some earlier you said: My stance is there is nothing
  wrong with using a journal to implement pubsub, but ideally pubsub-using
  protocols should not be so complex that they require a journal-based
  implementation to participate. And now you talking about inventing the
  same journal but in specific (non-universal) way and in much more
  complex manner. Why?
  
  It's simple: the activity node has optional persistence, hence the
  journal is optional.
 
 Journal is optional feature anyway. So it's more usable to make it
 universal and not force it to depend on an applied protocol, isn't it?

The activity node is actually the most normal.  It doesn't even define any 
parameters.  It's the raw stream of what's happening.

The comments node is the weird one.  It's a view/compilation of the activity.

  The plan for likes is you'd publish to the activity node (Justin likes
  comment X), but on the comment node this would be reflected as a
  property of an existing comment rather than a new item.  Comment items
  could have like data stored within them, such as a count and maybe a
  list of the last five people to like the comment.
  
  I think that all these actions should not be copied from centralized
  services since that services have more possibilities to control them. I
  mean, it will be very hard to check if likes are winded by some bad
  mans. Also it will be hard to represent some statistics of most liked
  items. So I think that these things should be solved in that manner how
  google ranking web pages: aggregators will rank items by repost counts
  or something. And, yes, for user like button should be replaced by
  repost or repost with comment, I have such functionality in my
  microblogging service and I want to add it into the XEP-277.
  
  What do you mean by centralized?  That the conversation is the authority
  on all of its replies and likes?
 
 Yes, I don't understand what is the reason to have likes in such system
 if we can't count them globally and give stats.

The problem with distributing a single conversation across servers is then you 
need a way of aggregating even in the common case.  Simply viewing the 
conversation properly with nested threads and like points requires an 
aggregator.  This is what Salmon is for in the HTTP world: telling upstream 
you've made a reply/like/etc.  My humble opinion is that this approach does 
have some cool-factor but it is also a giant pain in the ass in terms of 
practicality.

I think that if we ever did support distributed conversations then you'd still 
want the main conversation node (root node) to be able to hold copies of all 
the content (e.g. use a salmon-like process so that the root node remains in-
the-know and is able to serve the full dataset to clients).  Assuming this is 
acceptable, then we can always add distribution in the future.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-05 Thread Sergey Dobrov
On 09/05/2011 12:17 PM, Justin Karneges wrote:
 On Saturday, September 03, 2011 03:07:45 AM Sergey Dobrov wrote:
 On 09/03/2011 12:41 AM, Justin Karneges wrote:
 The drawback to node metadata is it does not support update
 notifications.  I have the need to track this data, particularly the
 conversation title.

 Don't understand why to change that.
 
 Don't understand why the title of a conversation might change?
Yup.

 
 Activity makes it much easier to determine what has happened to an item. 
 For example, if a moderator edits a comment, this is easily described in
 activity terms.  Simply doing complete replacement of comment items is
 not terrible but it makes it harder for listeners to figure out what is
 going on.

 The main point is the activity node is an append-only changelog, and the
 comments node is an up-to-date compilation of that log.

 That's funny: some earlier you said: My stance is there is nothing
 wrong with using a journal to implement pubsub, but ideally pubsub-using
 protocols should not be so complex that they require a journal-based
 implementation to participate. And now you talking about inventing the
 same journal but in specific (non-universal) way and in much more
 complex manner. Why?
 
 It's simple: the activity node has optional persistence, hence the journal is 
 optional.
Journal is optional feature anyway. So it's more usable to make it
universal and not force it to depend on an applied protocol, isn't it?

 
 The plan for likes is you'd publish to the activity node (Justin likes
 comment X), but on the comment node this would be reflected as a
 property of an existing comment rather than a new item.  Comment items
 could have like data stored within them, such as a count and maybe a
 list of the last five people to like the comment.

 I think that all these actions should not be copied from centralized
 services since that services have more possibilities to control them. I
 mean, it will be very hard to check if likes are winded by some bad
 mans. Also it will be hard to represent some statistics of most liked
 items. So I think that these things should be solved in that manner how
 google ranking web pages: aggregators will rank items by repost counts
 or something. And, yes, for user like button should be replaced by
 repost or repost with comment, I have such functionality in my
 microblogging service and I want to add it into the XEP-277.
 
 What do you mean by centralized?  That the conversation is the authority on 
 all of its replies and likes?
Yes, I don't understand what is the reason to have likes in such system
if we can't count them globally and give stats.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-04 Thread Justin Karneges
On Saturday, September 03, 2011 03:07:45 AM Sergey Dobrov wrote:
 On 09/03/2011 12:41 AM, Justin Karneges wrote:
  The drawback to node metadata is it does not support update
  notifications.  I have the need to track this data, particularly the
  conversation title.
 
 Don't understand why to change that.

Don't understand why the title of a conversation might change?

  Activity makes it much easier to determine what has happened to an item. 
  For example, if a moderator edits a comment, this is easily described in
  activity terms.  Simply doing complete replacement of comment items is
  not terrible but it makes it harder for listeners to figure out what is
  going on.
  
  The main point is the activity node is an append-only changelog, and the
  comments node is an up-to-date compilation of that log.
 
 That's funny: some earlier you said: My stance is there is nothing
 wrong with using a journal to implement pubsub, but ideally pubsub-using
 protocols should not be so complex that they require a journal-based
 implementation to participate. And now you talking about inventing the
 same journal but in specific (non-universal) way and in much more
 complex manner. Why?

It's simple: the activity node has optional persistence, hence the journal is 
optional.

  The plan for likes is you'd publish to the activity node (Justin likes
  comment X), but on the comment node this would be reflected as a
  property of an existing comment rather than a new item.  Comment items
  could have like data stored within them, such as a count and maybe a
  list of the last five people to like the comment.
 
 I think that all these actions should not be copied from centralized
 services since that services have more possibilities to control them. I
 mean, it will be very hard to check if likes are winded by some bad
 mans. Also it will be hard to represent some statistics of most liked
 items. So I think that these things should be solved in that manner how
 google ranking web pages: aggregators will rank items by repost counts
 or something. And, yes, for user like button should be replaced by
 repost or repost with comment, I have such functionality in my
 microblogging service and I want to add it into the XEP-277.

What do you mean by centralized?  That the conversation is the authority on 
all of its replies and likes?

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-03 Thread Sergey Dobrov

On 09/03/2011 12:41 AM, Justin Karneges wrote:

On Friday, September 02, 2011 04:29:25 AM Sergey Dobrov wrote:

On 09/02/2011 03:32 AM, Justin Karneges wrote:

On Thursday, September 01, 2011 11:22:30 AM Sergey Dobrov wrote:

Then, my questions about XEP-303:

1) Why to use three nodes? Info node can be replaced by some item with
some constant id. about necessity of activity node I don't understood at
all, why to have it?


I didn't want to put the info item in with the comments since they are
not really part of the same collection of data.  The gain with a
separate node is that you could subscribe to just the 'info', and not
the comments, if for some reason you wanted to do that.  Maybe that
isn't very useful.


Exactly, maybe we should extend node metadata instead of that?


The drawback to node metadata is it does not support update notifications.  I
have the need to track this data, particularly the conversation title.

Don't understand why to change that.



So I think the data belongs in a node.  Or, we could consider adding
notification support for node metadata.

Activity makes it much easier to determine what has happened to an item.  For
example, if a moderator edits a comment, this is easily described in activity
terms.  Simply doing complete replacement of comment items is not terrible but
it makes it harder for listeners to figure out what is going on.

The main point is the activity node is an append-only changelog, and the
comments node is an up-to-date compilation of that log.

That's funny: some earlier you said: My stance is there is nothing
wrong with using a journal to implement pubsub, but ideally pubsub-using 
protocols should not be so complex that they require a journal-based 
implementation to participate. And now you talking about inventing the 
same journal but in specific (non-universal) way and in much more 
complex manner. Why?






Then, I don't understand how likes can work in such model, who will
count likes? I think that this feature should be implemented in
aggregators, some services which aggregates messages from one or more
servers and give services of statistics, search or something else.


The plan for likes is you'd publish to the activity node (Justin likes
comment X), but on the comment node this would be reflected as a property of
an existing comment rather than a new item.  Comment items could have like
data stored within them, such as a count and maybe a list of the last five
people to like the comment.
I think that all these actions should not be copied from centralized 
services since that services have more possibilities to control them. I 
mean, it will be very hard to check if likes are winded by some bad 
mans. Also it will be hard to represent some statistics of most liked 
items. So I think that these things should be solved in that manner how 
google ranking web pages: aggregators will rank items by repost counts 
or something. And, yes, for user like button should be replaced by 
repost or repost with comment, I have such functionality in my 
microblogging service and I want to add it into the XEP-277.




I want to point out again how the activity node makes it far easier to figure
out what has actually happened.  If you have a notification app that is
tracking your comments, subscribing to the activity node and listening for
Justin likes comment X is much more straightforward than subscribing to the
comments node and making inferences.


About post deletion, why to have this notification? Is it not enough to
receive a regular retract event?


Comments node could send a retract event.  But activity node is always
appending, and would send some notification such as User N deleted comment X.

Justin






Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-02 Thread Sergey Dobrov
On 09/02/2011 03:32 AM, Justin Karneges wrote:
 On Thursday, September 01, 2011 11:22:30 AM Sergey Dobrov wrote:
 Then, my questions about XEP-303:

 1) Why to use three nodes? Info node can be replaced by some item with
 some constant id. about necessity of activity node I don't understood at
 all, why to have it?
 
 I didn't want to put the info item in with the comments since they are not 
 really part of the same collection of data.  The gain with a separate node is 
 that you could subscribe to just the 'info', and not the comments, if for 
 some 
 reason you wanted to do that.  Maybe that isn't very useful.
Exactly, maybe we should extend node metadata instead of that?

 
 I do believe there is a need to have separate comments and activity nodes 
 though, and possibly even more in the future (I want to have an occupants 
 node containing a userlist of people with temporary subscriptions -- think 
 MUC 
 over pubsub).  So, I have already resigned to needing multiple nodes, and 
 when 
 it came time to need 'info', I decided a singleton made logical sense.
 
 The activity node is actually the core node of the system.  Flowing through 
 it 
 would be the stream of activity occuring in the conversation.  If you want to 
 post a comment, like a comment, delete a comment, etc, it makes sense to 
 publish them as activity.  If you want to receive events for these kinds of 
 activities (e.g. to track the conversation while you are away, and power 
 something like Facebook Notifications), then again you want to be subscribed 
 to 
 items of activity.  This is distinct from the comments node, which only 
 holds the comments in their current state.  For example, if a comment is 
 posted and edited three times after that, this would be represented as four 
 items in the activity node but still only one item (updated three times) in 
 the comments node.  The comments node is needed to drive application 
 displays.  
 So this is why I believe both nodes are needed.
I still don't understand. You trying to solve problems with extra
entities when it should (in my opinion, of course) be solved by some
generic pubsub extensions, for example, it could be really usable to
store each item version, so you will be able to retrieve any edits of
the comment too. But I still consider that activity node is unnecessary
and comments node should be in a simple atom format.

Then, I don't understand how likes can work in such model, who will
count likes? I think that this feature should be implemented in
aggregators, some services which aggregates messages from one or more
servers and give services of statistics, search or something else.

About post deletion, why to have this notification? Is it not enough to
receive a regular retract event?

 
 I don't want servers to have to maintain an activity log to be compliant 
 though, which is why item persistence on the activity node is optional.  A 
 simple server can receive a published activity item, relay it to subscribers, 
 apply it to the comments node state, and then throw it away.
 
 2) Why to use Activity Streams here? I totally misunderstanding why to
 have such complication since commenting behavior totally get into simple
 Atom format.
 
 AS make the most sense for the activity node.  It makes less sense for the 
 comments node though.  Perhaps the comments node could be an Atom-only 
 representation.
 
 3) You have filter parameter by parent id but have no any mechanism to
 represent such relations. But this mechanism is already defined in XEP-277.
 
 Hmm, yes.  Agree it should be thr:in-reply-to.
 
 4) atom:id MUST be an URI.
 
 Oops, you're right.
 
 5) Again, why to url encode a node name?
 (comments?order=-createdparent_ids=1%2C5a%2Co19g%2C)
 
 It was just an easy approach that would work with existing pubsub client 
 libraries.  Perhaps a better idea would be to allow options in pubsub iq 
 requests, then we can have an x:data form for the extra parameters.
It seems so.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-02 Thread Justin Karneges
On Friday, September 02, 2011 04:29:25 AM Sergey Dobrov wrote:
 On 09/02/2011 03:32 AM, Justin Karneges wrote:
  On Thursday, September 01, 2011 11:22:30 AM Sergey Dobrov wrote:
  Then, my questions about XEP-303:
  
  1) Why to use three nodes? Info node can be replaced by some item with
  some constant id. about necessity of activity node I don't understood at
  all, why to have it?
  
  I didn't want to put the info item in with the comments since they are
  not really part of the same collection of data.  The gain with a
  separate node is that you could subscribe to just the 'info', and not
  the comments, if for some reason you wanted to do that.  Maybe that
  isn't very useful.
 
 Exactly, maybe we should extend node metadata instead of that?

The drawback to node metadata is it does not support update notifications.  I 
have the need to track this data, particularly the conversation title.

So I think the data belongs in a node.  Or, we could consider adding 
notification support for node metadata.

  I do believe there is a need to have separate comments and activity nodes
  though, and possibly even more in the future (I want to have an
  occupants node containing a userlist of people with temporary
  subscriptions -- think MUC over pubsub).  So, I have already resigned to
  needing multiple nodes, and when it came time to need 'info', I decided
  a singleton made logical sense.
  
  The activity node is actually the core node of the system.  Flowing
  through it would be the stream of activity occuring in the conversation.
   If you want to post a comment, like a comment, delete a comment, etc,
  it makes sense to publish them as activity.  If you want to receive
  events for these kinds of activities (e.g. to track the conversation
  while you are away, and power something like Facebook Notifications),
  then again you want to be subscribed to items of activity.  This is
  distinct from the comments node, which only holds the comments in their
  current state.  For example, if a comment is posted and edited three
  times after that, this would be represented as four items in the
  activity node but still only one item (updated three times) in the
  comments node.  The comments node is needed to drive application
  displays. So this is why I believe both nodes are needed.
 
 I still don't understand. You trying to solve problems with extra
 entities when it should (in my opinion, of course) be solved by some
 generic pubsub extensions, for example, it could be really usable to
 store each item version, so you will be able to retrieve any edits of
 the comment too. But I still consider that activity node is unnecessary
 and comments node should be in a simple atom format.

Activity makes it much easier to determine what has happened to an item.  For 
example, if a moderator edits a comment, this is easily described in activity 
terms.  Simply doing complete replacement of comment items is not terrible but 
it makes it harder for listeners to figure out what is going on.

The main point is the activity node is an append-only changelog, and the 
comments node is an up-to-date compilation of that log.

 Then, I don't understand how likes can work in such model, who will
 count likes? I think that this feature should be implemented in
 aggregators, some services which aggregates messages from one or more
 servers and give services of statistics, search or something else.

The plan for likes is you'd publish to the activity node (Justin likes 
comment X), but on the comment node this would be reflected as a property of 
an existing comment rather than a new item.  Comment items could have like 
data stored within them, such as a count and maybe a list of the last five 
people to like the comment.

I want to point out again how the activity node makes it far easier to figure 
out what has actually happened.  If you have a notification app that is 
tracking your comments, subscribing to the activity node and listening for 
Justin likes comment X is much more straightforward than subscribing to the 
comments node and making inferences.

 About post deletion, why to have this notification? Is it not enough to
 receive a regular retract event?

Comments node could send a retract event.  But activity node is always 
appending, and would send some notification such as User N deleted comment X.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-01 Thread Sergey Dobrov

On 09/01/2011 03:21 AM, Justin Karneges wrote:

On Wednesday, August 31, 2011 11:32:53 AM Sergey Dobrov wrote:

IMO, the commenting approach described in XEP-277 is too simple and rather
uninspired (full disclaimer: I work at a company whose sole product is
commenting).  Commenting is similar, but not identical to microblogging, and
the two deserve separate specs.  Probably the commenting section in XEP-277
should be exchanged with a pointer to XEP-303.


I reviewed the XEP-303 and I'm sorry that I did not that before since it 
has some really significant notices, so I'll do some notes below and 
maybe you are right with a pointer to XEP-303.




Anyway, are you saying that all of the functional requirements of XEP-303
could be extracted out into separate smaller reusable extensions that
implementors of generic XEP-60 servers might embrace?  Really ejabberd might
add an extension that mirrors VCards content in Atom entries?  I guess in
theory that would be cool, but it seems a bit on the dreamy side.


I meant that common cases should be in XEP-60 or some other XEPs that 
will describe some specific node behavior. For example, I don't sure 
that this is ok to include filters into the node name (why to url quote 
these?), but it can be useful to determine some queries protocol which 
can be inserted in the request of items, so we can use generic pubsub 
nodes without some functionality.


Then, my questions about XEP-303:

1) Why to use three nodes? Info node can be replaced by some item with 
some constant id. about necessity of activity node I don't understood at 
all, why to have it?


2) Why to use Activity Streams here? I totally misunderstanding why to 
have such complication since commenting behavior totally get into simple 
Atom format.


3) You have filter parameter by parent id but have no any mechanism to 
represent such relations. But this mechanism is already defined in XEP-277.


4) atom:id MUST be an URI.

5) Again, why to url encode a node name? 
(comments?order=-createdparent_ids=1%2C5a%2Co19g%2C)






Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-01 Thread Sergey Dobrov

On 09/02/2011 01:22 AM, Sergey Dobrov wrote:

On 09/01/2011 03:21 AM, Justin Karneges wrote:

On Wednesday, August 31, 2011 11:32:53 AM Sergey Dobrov wrote:

IMO, the commenting approach described in XEP-277 is too simple and
rather
uninspired (full disclaimer: I work at a company whose sole product is
commenting). Commenting is similar, but not identical to
microblogging, and
the two deserve separate specs. Probably the commenting section in
XEP-277
should be exchanged with a pointer to XEP-303.


I reviewed the XEP-303 and I'm sorry that I did not that before since it
has some really significant notices, so I'll do some notes below and
maybe you are right with a pointer to XEP-303.



Anyway, are you saying that all of the functional requirements of XEP-303
could be extracted out into separate smaller reusable extensions that
implementors of generic XEP-60 servers might embrace? Really ejabberd
might
add an extension that mirrors VCards content in Atom entries? I guess in
theory that would be cool, but it seems a bit on the dreamy side.


I meant that common cases should be in XEP-60 or some other XEPs that
will describe some specific node behavior. For example, I don't sure
that this is ok to include filters into the node name (why to url quote
these?), but it can be useful to determine some queries protocol which
can be inserted in the request of items, so we can use generic pubsub
nodes without some functionality.

Then, my questions about XEP-303:

1) Why to use three nodes? Info node can be replaced by some item with
some constant id. about necessity of activity node I don't understood at
all, why to have it?

2) Why to use Activity Streams here? I totally misunderstanding why to
have such complication since commenting behavior totally get into simple
Atom format.

3) You have filter parameter by parent id but have no any mechanism to
represent such relations. But this mechanism is already defined in XEP-277.

4) atom:id MUST be an URI.

5) Again, why to url encode a node name?
(comments?order=-createdparent_ids=1%2C5a%2Co19g%2C)




I forgot about one thing: I think that this is unnecessary to validate a 
sender on server side. That is why: I wrote a blog importer from the 
juick.com microblogging service to my implementation of the XEP-277 
based service and when it imports comments it uses fake JIDs but the 
service sends publisher attribute so it can be validated who exactly 
sent a comment but it's also possible to make such imports or another 
pretty things. So I think that validation is unnecessary but publisher 
attribute usage must be clarified more strictly in the XEP-60.




Re: [Standards] Microblogging: XEP-0277 and beyond

2011-09-01 Thread Justin Karneges
On Thursday, September 01, 2011 11:22:30 AM Sergey Dobrov wrote:
 Then, my questions about XEP-303:
 
 1) Why to use three nodes? Info node can be replaced by some item with
 some constant id. about necessity of activity node I don't understood at
 all, why to have it?

I didn't want to put the info item in with the comments since they are not 
really part of the same collection of data.  The gain with a separate node is 
that you could subscribe to just the 'info', and not the comments, if for some 
reason you wanted to do that.  Maybe that isn't very useful.

I do believe there is a need to have separate comments and activity nodes 
though, and possibly even more in the future (I want to have an occupants 
node containing a userlist of people with temporary subscriptions -- think MUC 
over pubsub).  So, I have already resigned to needing multiple nodes, and when 
it came time to need 'info', I decided a singleton made logical sense.

The activity node is actually the core node of the system.  Flowing through it 
would be the stream of activity occuring in the conversation.  If you want to 
post a comment, like a comment, delete a comment, etc, it makes sense to 
publish them as activity.  If you want to receive events for these kinds of 
activities (e.g. to track the conversation while you are away, and power 
something like Facebook Notifications), then again you want to be subscribed to 
items of activity.  This is distinct from the comments node, which only 
holds the comments in their current state.  For example, if a comment is 
posted and edited three times after that, this would be represented as four 
items in the activity node but still only one item (updated three times) in 
the comments node.  The comments node is needed to drive application displays.  
So this is why I believe both nodes are needed.

I don't want servers to have to maintain an activity log to be compliant 
though, which is why item persistence on the activity node is optional.  A 
simple server can receive a published activity item, relay it to subscribers, 
apply it to the comments node state, and then throw it away.

 2) Why to use Activity Streams here? I totally misunderstanding why to
 have such complication since commenting behavior totally get into simple
 Atom format.

AS make the most sense for the activity node.  It makes less sense for the 
comments node though.  Perhaps the comments node could be an Atom-only 
representation.

 3) You have filter parameter by parent id but have no any mechanism to
 represent such relations. But this mechanism is already defined in XEP-277.

Hmm, yes.  Agree it should be thr:in-reply-to.

 4) atom:id MUST be an URI.

Oops, you're right.

 5) Again, why to url encode a node name?
 (comments?order=-createdparent_ids=1%2C5a%2Co19g%2C)

It was just an easy approach that would work with existing pubsub client 
libraries.  Perhaps a better idea would be to allow options in pubsub iq 
requests, then we can have an x:data form for the extra parameters.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-31 Thread Sergey Dobrov
On 08/31/2011 02:56 AM, Justin Karneges wrote:
 On Tuesday, August 30, 2011 04:16:29 AM Sergey Dobrov wrote:
 
 By dynamic node, I just mean the node can accept parameters when fulfilling 
 requests.
 
 I guess you could write some reusable code that marshals the parameters (i.e. 
 popping them off the end of a node name).  But, which parameters are possible 
 and how the parameters shall be honored is node-specific, so there's not 
 really 
 much more generic code you can write.
Do you mean that pubsub service which serves commenting node should be
not a generic pubsub service but some specific?

Then, I don't really understand what is necessity of XEP-303 at all. In
the XEP-277 is already defined a way how to comment on microblog posts,
why not to use the same way, why is needed another entity?

Then, some things in XEP-303 are just corrections for XEP-60 which will
bring mess in standards and pubsub developers will not know where to
find proper specification which will lead to incompatibilities in
different pubsub implementation.

About dynamic nodes, I think that it's completely unnecessary thing and
it's enough to define the way to sort on created or modified time in the
XEP-60 itself. But I really afraid about that inconsistency which may be
invented with such XEPs as 303 (277 too, he-he).

And, maybe it will be useful to make possible to make some hooks on item
publishing to validate posted data but that's a subject for another thread.


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-31 Thread Justin Karneges
On Wednesday, August 31, 2011 11:32:53 AM Sergey Dobrov wrote:
 On 08/31/2011 02:56 AM, Justin Karneges wrote:
  On Tuesday, August 30, 2011 04:16:29 AM Sergey Dobrov wrote:
  
  By dynamic node, I just mean the node can accept parameters when
  fulfilling requests.
  
  I guess you could write some reusable code that marshals the parameters
  (i.e. popping them off the end of a node name).  But, which parameters
  are possible and how the parameters shall be honored is node-specific,
  so there's not really much more generic code you can write.
 
 Do you mean that pubsub service which serves commenting node should be
 not a generic pubsub service but some specific?
 
 Then, I don't really understand what is necessity of XEP-303 at all. In
 the XEP-277 is already defined a way how to comment on microblog posts,
 why not to use the same way, why is needed another entity?
 
 Then, some things in XEP-303 are just corrections for XEP-60 which will
 bring mess in standards and pubsub developers will not know where to
 find proper specification which will lead to incompatibilities in
 different pubsub implementation.
 
 About dynamic nodes, I think that it's completely unnecessary thing and
 it's enough to define the way to sort on created or modified time in the
 XEP-60 itself. But I really afraid about that inconsistency which may be
 invented with such XEPs as 303 (277 too, he-he).
 
 And, maybe it will be useful to make possible to make some hooks on item
 publishing to validate posted data but that's a subject for another thread.

IMO, the commenting approach described in XEP-277 is too simple and rather 
uninspired (full disclaimer: I work at a company whose sole product is 
commenting).  Commenting is similar, but not identical to microblogging, and 
the two deserve separate specs.  Probably the commenting section in XEP-277 
should be exchanged with a pointer to XEP-303.

Anyway, are you saying that all of the functional requirements of XEP-303 
could be extracted out into separate smaller reusable extensions that 
implementors of generic XEP-60 servers might embrace?  Really ejabberd might 
add an extension that mirrors VCards content in Atom entries?  I guess in 
theory that would be cool, but it seems a bit on the dreamy side.

-Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-30 Thread Sergey Dobrov
On 08/26/2011 01:08 AM, Justin Karneges wrote:
 On Thursday, August 25, 2011 07:27:16 AM Sergey Dobrov wrote:
 On 08/25/2011 03:36 AM, Justin Karneges wrote:
 Yes, if tracking changes is needed then the node should have a way of
 offering items ordered by modified time.

 Being able to query for items using different kinds of orderings would be
 useful though, so I didn't want to stipulate that pubsub with RSM must
 always be ordered by modified time.  Rather, each node would have some
 sort of natural ordering depending on intended purpose, and if we want
 the client to be able to select among multiple orderings offered by a
 node then that would be a separate extension or scheme.

 Yes, it's sounds ok but what with retracts again?
 
 At the moment, I feel this is best done by having a node-specific item format 
 indicating deletion.  For Atom-based pubsub nodes, this could be contentless 
 entry.
I don't sure that it's fine decision since blank entry is not equal to a
retracted item. Anyway, it needs to be described in XEP-60.

 
 But I think it would also be good to see about getting retract into the 
 spec 
 for iq exchange.
 
 And how I can
 understand if I missed something and should to re-request items from node?
 
 Each pubsub message event should contain two RSM ids: the id of the item 
 contained in the event as well as the id of the item that directly precedes 
 it 
 according to the item ordering.  Whether by iq or message, the client would 
 remember the last known RSM id.  If a message event is received and the id 
 of 
 preceding item in that message does not match the last id known by the 
 client, then the client can choose to catch up by using iq to fetch items 
 since the last known id.
 
 We could use SHIM for this:
 
   headers xmlns=http://jabber.org/protocol/shim;
 header name=RsmId64fc10d2/header
 header name=PreviousRsmIdf4ac5920/header
   /headers
 
That is seems to be ok.

 For example, my XEP-0303 proposes selecting ordering using special node
 name suffixing, such as ?order=-created to indicate created time
 descending order. But this is just one way to go about it.

 I don't have enough time to dive into XEP-303 enough but I don't think
 that this is a good idea to use dynamic pubsub nodes without separate
 XEP for it. Again, I don't think that different ordering is really need
 at this time.
 
 Maybe you don't need it, but I need it. :)  The commenting protocol requires 
 both created time ordering (for application display render) and modified time 
 ordering (for tracking updates).  But, I am open to discussing alternatives 
 that don't involve dynamic node names.
But where determined what is dynamic node? How servers can implement
it without specification?

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-30 Thread Justin Karneges
On Tuesday, August 30, 2011 04:16:29 AM Sergey Dobrov wrote:
 On 08/26/2011 01:08 AM, Justin Karneges wrote:
  On Thursday, August 25, 2011 07:27:16 AM Sergey Dobrov wrote:
  On 08/25/2011 03:36 AM, Justin Karneges wrote:
  For example, my XEP-0303 proposes selecting ordering using special node
  name suffixing, such as ?order=-created to indicate created time
  descending order. But this is just one way to go about it.
  
  I don't have enough time to dive into XEP-303 enough but I don't think
  that this is a good idea to use dynamic pubsub nodes without separate
  XEP for it. Again, I don't think that different ordering is really need
  at this time.
  
  Maybe you don't need it, but I need it. :)  The commenting protocol
  requires both created time ordering (for application display render) and
  modified time ordering (for tracking updates).  But, I am open to
  discussing alternatives that don't involve dynamic node names.
 
 But where determined what is dynamic node? How servers can implement
 it without specification?

By dynamic node, I just mean the node can accept parameters when fulfilling 
requests.

I guess you could write some reusable code that marshals the parameters (i.e. 
popping them off the end of a node name).  But, which parameters are possible 
and how the parameters shall be honored is node-specific, so there's not really 
much more generic code you can write.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-25 Thread Ralph Meijer
On Wed, 2011-08-24 at 17:34 +0700, Sergey Dobrov wrote:
 On 08/24/2011 01:38 AM, Justin Karneges wrote:
  On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
  On 08/23/2011 09:14 AM, Justin Karneges wrote:
  The basic solve for item retraction is for the server to keep deletion
  markers around.  For example the server could clear all content of an
  item and flag it as deleted, but keep it in the same position in the
  item list.  This way retracted items can be reported in iq responses.
 
  That would not work because it is equal to the item update with the
  blank payload but how could you know that the item was updated?
  
  I'm still unsure what you're saying but I'll try to guess: do you mean to 
  say 
  that you cannot determine the difference between a publish vs update, 
  unless 
  you have a local copy of the item to compare with?  If so, I have found 
  that 
  in many situations this does not actually matter.  Can you share a use case?
 No, I tell you that even if I will be able to receive items according to
 the publish time then I can't find if some items was updated before that
 time. But if it's by modify time then yes, all seems to be ok except of
 retract.

Are you saying here that you want intermediate changes for the same item
(i.e. the same ItemID) that took place while the client was not online
to receive the notifications?

If so, the model in XEP-0060 is that each update to an item is a
complete replacement for that item, so a service will not keep record of
previous 'versions'. If you really want that you should probably use
unique identifiers for each update.

In the field of microblogging I don't see a particular use case for
this. Microblog entries typically don't change once posted, and even if
they would, an end-user would probably only be interested in the most
recent version.

For more expanded use cases in Federating Social Networks (beyond
microblogs) that cover other social objects (regular blogs, stories,
pictures, people's profiles) updates are more common. Let me expand on a
real-world example.

At Mediamatic we've built a network of sites that federate using
(amongst others) XMPP PubSub. The sites are basically collections of
Things that have relationships or Edges between them, with a particular
predicate. Very semantic web, RDF-like. For exchanging Things, we make
an Atom representation of the Thing with all of its 'outgoing' Edges,
encoded as link/ elements. (Example:
http://www.mediamatic.net/atom/24879). Each Thing has its own node
(xmpp:pubsub.mediamatic.net?;node=id/24879).

In this setting, for each update (changed title, new relationships) we
just push the whole representation to the subscribing sites (ItemID
'current'). Upon reception, the local shadow representation is entirely
replaced with the version just received.

We did think about sending around delta's at some point, especially for
edge updates, because the pings are really fat. Up till now, we haven't
pursued this because it makes the operation more fragile. If you missed
an update, you have to figure what you've missed, likely by replaying a
journal.

Alternatively, I could think of having a more explicit subscription,
where you have the publishing service filter out certain bits (unwanted
edges with particular predicates) in the Atom in the notification, and
only send updates for 'fields' you are interested in.

We also played with the thought of having separate items for derived
(meta) data for each thing. These could hold information on the amount
of comments, likes, visits and various 'ratings', that you might want to
show on the federated sites. We haven't pursued this mostly because lack
of time. I'm also not sure about how to encode this information, as
items in a node typically have their payload in the same namespace.
Encoding this meta data in Atom might be somewhat of an overkill.


  From my point of view, the best solution is node journal but I can't be
  sure since that idea was not discussed.
  
  True.  I am trying to avoid this if possible.  My stance is there is 
  nothing 
  wrong with using a journal to implement pubsub, but ideally pubsub-using 
  protocols should not be so complex that they require a journal-based 
  implementation to participate.
 I don't insist on journal, I just need a reliable way to retrieve node
 changes and I can't think up another way.

In our case, we don't retract items, but do send node deletes (sometimes
with a redirected to another Thing, when there was a move between sites
or two things have been consolidated into one). I suppose that wouldn't
work nicely in your setting, because all of our subscriptions are
explicit.

We do have something akin to collections or 'generic subscriptions',
which act more like an Atom Feed. There we create or update items based
on the atom:id inside the payloads, and don't actually look at the
ItemID. Deletes are not published in this setting, but this could
probably be done by doing an explicit 

Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-25 Thread Sergey Dobrov
On 08/25/2011 03:36 AM, Justin Karneges wrote:
 On Wednesday, August 24, 2011 03:34:27 AM Sergey Dobrov wrote:
 On 08/24/2011 01:38 AM, Justin Karneges wrote:
 On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
 On 08/23/2011 09:14 AM, Justin Karneges wrote:
 The basic solve for item retraction is for the server to keep deletion
 markers around.  For example the server could clear all content of an
 item and flag it as deleted, but keep it in the same position in the
 item list.  This way retracted items can be reported in iq responses.

 That would not work because it is equal to the item update with the
 blank payload but how could you know that the item was updated?

 I'm still unsure what you're saying but I'll try to guess: do you mean to
 say that you cannot determine the difference between a publish vs
 update, unless you have a local copy of the item to compare with?  If
 so, I have found that in many situations this does not actually matter. 
 Can you share a use case?

 No, I tell you that even if I will be able to receive items according to
 the publish time then I can't find if some items was updated before that
 time. But if it's by modify time then yes, all seems to be ok except of
 retract.
 
 Yes, if tracking changes is needed then the node should have a way of 
 offering 
 items ordered by modified time.
 
 Being able to query for items using different kinds of orderings would be 
 useful though, so I didn't want to stipulate that pubsub with RSM must always 
 be ordered by modified time.  Rather, each node would have some sort of 
 natural 
 ordering depending on intended purpose, and if we want the client to be able 
 to select among multiple orderings offered by a node then that would be a 
 separate extension or scheme.
Yes, it's sounds ok but what with retracts again? And how I can
understand if I missed something and should to re-request items from node?

 
 For example, my XEP-0303 proposes selecting ordering using special node name 
 suffixing, such as ?order=-created to indicate created time descending 
 order.  
 But this is just one way to go about it.
I don't have enough time to dive into XEP-303 enough but I don't think
that this is a good idea to use dynamic pubsub nodes without separate
XEP for it. Again, I don't think that different ordering is really need
at this time.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-25 Thread Justin Karneges
On Thursday, August 25, 2011 07:27:16 AM Sergey Dobrov wrote:
 On 08/25/2011 03:36 AM, Justin Karneges wrote:
  Yes, if tracking changes is needed then the node should have a way of
  offering items ordered by modified time.
  
  Being able to query for items using different kinds of orderings would be
  useful though, so I didn't want to stipulate that pubsub with RSM must
  always be ordered by modified time.  Rather, each node would have some
  sort of natural ordering depending on intended purpose, and if we want
  the client to be able to select among multiple orderings offered by a
  node then that would be a separate extension or scheme.
 
 Yes, it's sounds ok but what with retracts again?

At the moment, I feel this is best done by having a node-specific item format 
indicating deletion.  For Atom-based pubsub nodes, this could be contentless 
entry.

But I think it would also be good to see about getting retract into the spec 
for iq exchange.

 And how I can
 understand if I missed something and should to re-request items from node?

Each pubsub message event should contain two RSM ids: the id of the item 
contained in the event as well as the id of the item that directly precedes it 
according to the item ordering.  Whether by iq or message, the client would 
remember the last known RSM id.  If a message event is received and the id of 
preceding item in that message does not match the last id known by the 
client, then the client can choose to catch up by using iq to fetch items 
since the last known id.

We could use SHIM for this:

  headers xmlns=http://jabber.org/protocol/shim;
header name=RsmId64fc10d2/header
header name=PreviousRsmIdf4ac5920/header
  /headers

  For example, my XEP-0303 proposes selecting ordering using special node
  name suffixing, such as ?order=-created to indicate created time
  descending order. But this is just one way to go about it.
 
 I don't have enough time to dive into XEP-303 enough but I don't think
 that this is a good idea to use dynamic pubsub nodes without separate
 XEP for it. Again, I don't think that different ordering is really need
 at this time.

Maybe you don't need it, but I need it. :)  The commenting protocol requires 
both created time ordering (for application display render) and modified time 
ordering (for tracking updates).  But, I am open to discussing alternatives 
that don't involve dynamic node names.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-24 Thread Sergey Dobrov
On 08/24/2011 01:38 AM, Justin Karneges wrote:
 On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
 On 08/23/2011 09:14 AM, Justin Karneges wrote:
 The basic solve for item retraction is for the server to keep deletion
 markers around.  For example the server could clear all content of an
 item and flag it as deleted, but keep it in the same position in the
 item list.  This way retracted items can be reported in iq responses.

 That would not work because it is equal to the item update with the
 blank payload but how could you know that the item was updated?
 
 I'm still unsure what you're saying but I'll try to guess: do you mean to say 
 that you cannot determine the difference between a publish vs update, unless 
 you have a local copy of the item to compare with?  If so, I have found that 
 in many situations this does not actually matter.  Can you share a use case?
No, I tell you that even if I will be able to receive items according to
the publish time then I can't find if some items was updated before that
time. But if it's by modify time then yes, all seems to be ok except of
retract.

 
 From my point of view, the best solution is node journal but I can't be
 sure since that idea was not discussed.
 
 True.  I am trying to avoid this if possible.  My stance is there is nothing 
 wrong with using a journal to implement pubsub, but ideally pubsub-using 
 protocols should not be so complex that they require a journal-based 
 implementation to participate.
I don't insist on journal, I just need a reliable way to retrieve node
changes and I can't think up another way.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-24 Thread Justin Karneges
On Wednesday, August 24, 2011 03:34:27 AM Sergey Dobrov wrote:
 On 08/24/2011 01:38 AM, Justin Karneges wrote:
  On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
  On 08/23/2011 09:14 AM, Justin Karneges wrote:
  The basic solve for item retraction is for the server to keep deletion
  markers around.  For example the server could clear all content of an
  item and flag it as deleted, but keep it in the same position in the
  item list.  This way retracted items can be reported in iq responses.
  
  That would not work because it is equal to the item update with the
  blank payload but how could you know that the item was updated?
  
  I'm still unsure what you're saying but I'll try to guess: do you mean to
  say that you cannot determine the difference between a publish vs
  update, unless you have a local copy of the item to compare with?  If
  so, I have found that in many situations this does not actually matter. 
  Can you share a use case?
 
 No, I tell you that even if I will be able to receive items according to
 the publish time then I can't find if some items was updated before that
 time. But if it's by modify time then yes, all seems to be ok except of
 retract.

Yes, if tracking changes is needed then the node should have a way of offering 
items ordered by modified time.

Being able to query for items using different kinds of orderings would be 
useful though, so I didn't want to stipulate that pubsub with RSM must always 
be ordered by modified time.  Rather, each node would have some sort of natural 
ordering depending on intended purpose, and if we want the client to be able 
to select among multiple orderings offered by a node then that would be a 
separate extension or scheme.

For example, my XEP-0303 proposes selecting ordering using special node name 
suffixing, such as ?order=-created to indicate created time descending order. 
 
But this is just one way to go about it.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Sergey Dobrov
On 08/23/2011 09:14 AM, Justin Karneges wrote:
 On Monday, August 22, 2011 05:12:54 AM Sergey Dobrov wrote:
 On 08/19/2011 04:55 AM, Justin Karneges wrote:
 On Thursday, August 18, 2011 05:10:58 AM Goffi wrote:
 - the ability to get missed items between the last time a contact was
 disconnected and the time it reconnect

 I have a protocol flow for reliable pubsub that I've not yet publicized,
 but essentially the idea is to include Result Set Management (XEP-0059)
 UID values in pubsub event notifications.  The client can then notice if
 it missed an item and use iq-get to catch up.

 Maybe this could go in some RSM with PubSub XEP that sorely needs to be
 written.

 Justin

 You forgot that we need to know about item retraction as well as about
 item publishing. The same thing about item update. The possibility to
 get items by date and time is good but it's not cover these problems and
 it's not necessary at this time from my point of view.
 
 The basic solve for item retraction is for the server to keep deletion 
 markers 
 around.  For example the server could clear all content of an item and flag 
 it 
 as deleted, but keep it in the same position in the item list.  This way 
 retracted items can be reported in iq responses.
That would not work because it is equal to the item update with the
blank payload but how could you know that the item was updated?

 
 Unfortunately XEP-0060 never discusses sending retract in an iq response 
 where item normally is, so I am not sure if this would be allowed today 
 without a protocol update.  Alternatively, retractions could be represented 
 within the items themselves.  For example if you were using Atom, an empty 
 entry element may suffice to indicate deletion.
Protocol needs many edits anyway. For example, it very useful to see a
publisher of an item but XEP-60 doesn't give us good explanation how to
determine if pubsub service can send such notifications.

 
 Item publish and update are fine though, right?  Or what are you thinking 
 about 
 them?
Publish is ok since we have RSM. Update has the same problem as retract.
From my point of view, the best solution is node journal but I can't be
sure since that idea was not discussed.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Joe Hildebrand
On 8/21/11 4:45 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 Good catch, I didn't consider clock skew.  I wonder if the client should just
 specify a timestamp 5-10m in the past instead of having magic at the node
 servers.  Then accurate time queries (made relative to timestamps of other
 items provided by the server) stay optimized.

Seems to me that client writers are more likely to incorrectly think the
server clock is going to be right than the other way around, but I don't
care where the skew is added as long as it's specified which side does it,
so we don't double-skew.

-- 
Joe Hildebrand



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Joe Hildebrand
On 8/22/11 8:14 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 The basic solve for item retraction is for the server to keep deletion markers
 around.  For example the server could clear all content of an item and flag it
 as deleted, but keep it in the same position in the item list.  This way
 retracted items can be reported in iq responses.
 
 Unfortunately XEP-0060 never discusses sending retract in an iq response
 where item normally is, so I am not sure if this would be allowed today
 without a protocol update.  Alternatively, retractions could be represented
 within the items themselves.  For example if you were using Atom, an empty
 entry element may suffice to indicate deletion.
 
 Item publish and update are fine though, right?  Or what are you thinking
 about 
 them?

I was hoping for something more like atomic-subscribe-and-send-updates as a
subscription option, so that the client's notification handling didn't have
to change.  The server could then just send normal retracts in that flow.
If there was another subscription option that says it's ok to send me
multiple notifications in the same message, the server could intelligently
batch the notifications together for clients that have added the extra
foreach loop.

-- 
Joe Hildebrand



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Justin Karneges
On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
 On 08/23/2011 09:14 AM, Justin Karneges wrote:
  The basic solve for item retraction is for the server to keep deletion
  markers around.  For example the server could clear all content of an
  item and flag it as deleted, but keep it in the same position in the
  item list.  This way retracted items can be reported in iq responses.
 
 That would not work because it is equal to the item update with the
 blank payload but how could you know that the item was updated?

I'm still unsure what you're saying but I'll try to guess: do you mean to say 
that you cannot determine the difference between a publish vs update, unless 
you have a local copy of the item to compare with?  If so, I have found that 
in many situations this does not actually matter.  Can you share a use case?

 From my point of view, the best solution is node journal but I can't be
 sure since that idea was not discussed.

True.  I am trying to avoid this if possible.  My stance is there is nothing 
wrong with using a journal to implement pubsub, but ideally pubsub-using 
protocols should not be so complex that they require a journal-based 
implementation to participate.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-22 Thread Sergey Dobrov
On 08/19/2011 04:55 AM, Justin Karneges wrote:
 On Thursday, August 18, 2011 05:10:58 AM Goffi wrote:
 - the ability to get missed items between the last time a contact was
 disconnected and the time it reconnect
 
 I have a protocol flow for reliable pubsub that I've not yet publicized, but 
 essentially the idea is to include Result Set Management (XEP-0059) UID 
 values 
 in pubsub event notifications.  The client can then notice if it missed an 
 item 
 and use iq-get to catch up.
 
 Maybe this could go in some RSM with PubSub XEP that sorely needs to be 
 written.
 
 Justin
 
You forgot that we need to know about item retraction as well as about
item publishing. The same thing about item update. The possibility to
get items by date and time is good but it's not cover these problems and
it's not necessary at this time from my point of view.

-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-22 Thread Sergey Dobrov
On 08/18/2011 09:47 PM, Goffi wrote:
 Le Jeudi 18 Août 2011 20:40:05, Sergey Dobrov a écrit :

 It's a bad idea to append the number to the namespace since it reserved
 for different revisions of XEP and not for your purpose. Again, I think
 that this should be solved by some privacy lists extension since your
 decision again restricted.
 
 As I said before, it just a QD hack for testing purpose, I know it's not a 
 good solution. I would rather use privacy lists or whatever if we could have 
 a 
 per-item access management with it.
But you should understand that this standard can be proposed only if the
basic microblogging will work well.

 

 If I have to poll this by myself at client side, I'll have to send X IQ
 stanza for my X contacts, and flood the server.

 Client should cache data. You will flood anyway the only difference is
 who will flood: client or server.
 
 In all cases the client will need the data, and it's better to send one 
 request to server, that X request for X contacts.
 Actually I think about something similar to Extended Stanza Adressing 
 (http://xmpp.org/extensions/xep-0033.html), but to get several pubsub nodes 
 at 
 once.
XEP-33 is good but it can't be used for iq stanzas...

 
 
 I ask last items presence to not have to poll individually all my
 contacts roster. On some blue centralised services, it's common to have
 100+ contacts, should I poll all of them each time I log-in ?

 No, Pubsub node can send you an event when you came online with the
 serial for it's journal so you can decide to ask the node for new items.
 
 Oki, that looks like a nice solution, once again, waiting an answer from 
 pubsub people.
 
 
It seems that the only way is to design a prototype for the XEP and
publish it...

-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-22 Thread Justin Karneges
On Monday, August 22, 2011 05:12:54 AM Sergey Dobrov wrote:
 On 08/19/2011 04:55 AM, Justin Karneges wrote:
  On Thursday, August 18, 2011 05:10:58 AM Goffi wrote:
  - the ability to get missed items between the last time a contact was
  disconnected and the time it reconnect
  
  I have a protocol flow for reliable pubsub that I've not yet publicized,
  but essentially the idea is to include Result Set Management (XEP-0059)
  UID values in pubsub event notifications.  The client can then notice if
  it missed an item and use iq-get to catch up.
  
  Maybe this could go in some RSM with PubSub XEP that sorely needs to be
  written.
  
  Justin
 
 You forgot that we need to know about item retraction as well as about
 item publishing. The same thing about item update. The possibility to
 get items by date and time is good but it's not cover these problems and
 it's not necessary at this time from my point of view.

The basic solve for item retraction is for the server to keep deletion markers 
around.  For example the server could clear all content of an item and flag it 
as deleted, but keep it in the same position in the item list.  This way 
retracted items can be reported in iq responses.

Unfortunately XEP-0060 never discusses sending retract in an iq response 
where item normally is, so I am not sure if this would be allowed today 
without a protocol update.  Alternatively, retractions could be represented 
within the items themselves.  For example if you were using Atom, an empty 
entry element may suffice to indicate deletion.

Item publish and update are fine though, right?  Or what are you thinking about 
them?

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-21 Thread Justin Karneges
On Saturday, August 20, 2011 12:11:05 AM Joe Hildebrand wrote:
 On 8/19/11 12:12 PM, Justin Karneges
 
 justin-keyword-jabber.093...@affinix.com wrote:
  Indeed.  In my case I consider a time-based query to be inclusive, so as
  to not miss updates occuring within the same second.  In the rare case
  you pick up the same item again, it's harmless.
 
 I'd go a little further, and suggest that the publishing server should back
 up enough time to account for clock skew, and republish everything from
 that earlier time.  5-10m should do it, as long as there aren't a lot of
 items.

Good catch, I didn't consider clock skew.  I wonder if the client should just 
specify a timestamp 5-10m in the past instead of having magic at the node 
servers.  Then accurate time queries (made relative to timestamps of other 
items provided by the server) stay optimized.

Justin


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-20 Thread Joe Hildebrand
On 8/19/11 12:12 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 In the context of PEP, it would just be a matter of putting this same type of
 position spec into the subscription request, and then each remote node would
 reply with all items since that time (or just the one item only if it has
 changed, I think PEP is always singleton?).

There's no reason PEP is always a singleton.  If the publisher wants
singleton, she uses id='current'.

 Indeed.  In my case I consider a time-based query to be inclusive, so as to
 not miss updates occuring within the same second.  In the rare case you pick
 up the same item again, it's harmless.

I'd go a little further, and suggest that the publishing server should back
up enough time to account for clock skew, and republish everything from that
earlier time.  5-10m should do it, as long as there aren't a lot of items.

-- 
Joe Hildebrand



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-19 Thread Joe Hildebrand
On 8/18/11 2:55 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 I have a protocol flow for reliable pubsub that I've not yet publicized, but
 essentially the idea is to include Result Set Management (XEP-0059) UID values
 in pubsub event notifications.  The client can then notice if it missed an
 item 
 and use iq-get to catch up.
 
 Maybe this could go in some RSM with PubSub XEP that sorely needs to be
 written.

I like the direction you're heading with this.  While we're at it, we need
something similar for PEP that uses date/timestamps on implicit subscribes,
since one implicit subscription goes to multiple publishing nodes, each of
which have different RSM ids.  The hope is that you could cache between
sessions, and only receive PEP updates for things that have changed.  This
would be a huge win for XEP-292 PEP-based vCard, particularly if avatars are
included.

One thing we have going for us is that a re-publish of an existing item (by
id) replaces the previous version, so a little bit of overlap between
sessions is ok

If there's any way to incorporate that into your thinking so we end up with
a consistent design, it would be cool.

-- 
Joe Hildebrand



[Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Goffi
G'day everybody,

as it is my first post on @standard, I just quickly present myself: I'm the 
developper of Salut à Toi, a multi-frontend XMPP client (you can have a 
presentation here == http://www.goffi.org/post/2011/06/05/Salut-%C3%A0-Toi%3A-
a-multi-frontends-XMPP-client ). My client use microblogging, and I have an 
implementation of XEP-0277 on it (with a dirty custom hack to have several 
roster-access nodes), which was made before the replies/comments update.

first, here are my main needs for microblogging:

- the possibility to have several nodes with different access models, and for a 
user to subscribe to them automatically

- the possibility to pull all items of severals peoples (e.g. a roster group) 
at once

- push notification when a contact is connected

- the ability to get missed items between the last time a contact was 
disconnected and the time it reconnect



The current XEP is based on PEP, and has IMHO many issues:

- if you connect with +notify, you have all notifications from all you items, 
without the ability to filter (e.g. from only on group).

- if somebody published an item 6 months ago, and nothing since, you'll still 
have it in your notifications. OK you can filter this at client side, but it 
would be nice to have a date-based filtering way.

- maybe the most important: there is no way to know how many items you have 
missed neither to get them. Once again, a date-based retrieving way would be a 
nice addition

- there is no way to retrieve the x last items for x contacts. I'd like to be 
able to ask to a server « all the post since 1 week from all my contacts in 
roster-group friends ».



I have heard about the buddycloud draft on the subject: 
https://buddycloud.org/wiki/XMPP_XEP , and I think there are good ideas there, 
like using Message Archive Management ( 
http://doomsong.co.uk/extensions/render/message-archive-management.html ) for 
the date-based retrieving.


Furthermore, there is this email from Sergey Dobrov that has not any answer: 
http://mail.jabber.org/pipermail/standards/2011-June/024618.html . It's a pity 
'cause there are many interesting remarks in it. For example, I agree that 
adding tags would be nice, or the need to have a way to get items count.

I think it's important to focus on microblogging, as it become more and more 
common these days. I also think that roster-access need special attention, 
specially in server side: it's important to have permission management easy 
for the end-user.

Cheers
Jérôme Poisson (aka Goffi)

PS: I have also worked on features for my client that I'd like to standardize, 
like a generic card games management.


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Sergey Dobrov
On 08/18/2011 07:10 PM, Goffi wrote:
 G'day everybody,
 
 as it is my first post on @standard, I just quickly present myself: I'm the 
 developper of Salut à Toi, a multi-frontend XMPP client (you can have a 
 presentation here == 
 http://www.goffi.org/post/2011/06/05/Salut-%C3%A0-Toi%3A-
 a-multi-frontends-XMPP-client ). My client use microblogging, and I have an 
 implementation of XEP-0277 on it (with a dirty custom hack to have several 
 roster-access nodes), which was made before the replies/comments update.
 
 first, here are my main needs for microblogging:
 
 - the possibility to have several nodes with different access models, and for 
 a 
 user to subscribe to them automatically
Could you give some example usecases for that? Since I don't really
understand how you see it possible.

 
 - the possibility to pull all items of severals peoples (e.g. a roster group) 
 at once
That impossible since these users can be served on different hosts. So
you should to ask users separately. I don't think that this is too
ambiguous because it will be needed only once and then you will receive
events immediately.

 
 - push notification when a contact is connected
Presence?? :))

 
 - the ability to get missed items between the last time a contact was 
 disconnected and the time it reconnect
I already proposed the solution for that but nobody reacted:
http://mail.jabber.org/pipermail/standards/2011-June/024597.html

 
 
 
 The current XEP is based on PEP, and has IMHO many issues:
 
 - if you connect with +notify, you have all notifications from all you items, 
 without the ability to filter (e.g. from only on group).
I think that this issue can be solved with an extension for the privacy
lists.

 
 - if somebody published an item 6 months ago, and nothing since, you'll still 
 have it in your notifications. OK you can filter this at client side, but it 
 would be nice to have a date-based filtering way.
Why? I configure the node that it doesn't send last items when presence
came and this is quite ok.

 
 - maybe the most important: there is no way to know how many items you have 
 missed neither to get them. Once again, a date-based retrieving way would be 
 a 
 nice addition
Once again: http://mail.jabber.org/pipermail/standards/2011-June/024597.html

 
 - there is no way to retrieve the x last items for x contacts. I'd like to be 
 able to ask to a server « all the post since 1 week from all my contacts in 
 roster-group friends ».
You are forget about decentralization again. Again, why is this needed
if you receive the events IMMEDIATELY?

 
 
 
 I have heard about the buddycloud draft on the subject: 
 https://buddycloud.org/wiki/XMPP_XEP , and I think there are good ideas 
 there, 
 like using Message Archive Management ( 
 http://doomsong.co.uk/extensions/render/message-archive-management.html ) for 
 the date-based retrieving.
I think that this feature can be omitted for the first time since it can
be solved more easily.

 
 
 Furthermore, there is this email from Sergey Dobrov that has not any answer: 
 http://mail.jabber.org/pipermail/standards/2011-June/024618.html . It's a 
 pity 
 'cause there are many interesting remarks in it. For example, I agree that 
 adding tags would be nice, or the need to have a way to get items count.
I working to integrate these edits by myself and propose to accept the
new version since it seems that nobody if not me.

 
 I think it's important to focus on microblogging, as it become more and more 
 common these days. I also think that roster-access need special attention, 
 specially in server side: it's important to have permission management easy 
 for the end-user.
That's ok but I think that we should work on independent solution that
keeps in mind our own way (decentralized, flexibility, restrictions
absence).

 
 Cheers
 Jérôme Poisson (aka Goffi)
 
 PS: I have also worked on features for my client that I'd like to 
 standardize, 
 like a generic card games management.
 
Great thing!

-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Goffi
Le Jeudi 18 Août 2011 19:29:21, Sergey Dobrov a écrit :
  first, here are my main needs for microblogging:
  
  - the possibility to have several nodes with different access models,
  and for a user to subscribe to them automatically
 
 Could you give some example usecases for that? Since I don't really
 understand how you see it possible.

Well, in my quick and dirty implementation (that I have made mainly to work on 
the frontend), I have several node: urn:xmpp:microblog:0 for the main 
microblog node, open access, that everybody can read, even people without XMPP 
account from the website.

Then I have many other nodes: urn:xmpp:microblog:1,  urn:xmpp:microblog:2, ...
Each node has a different access (roster-access familly, roster-access 
friends), and I have an other private node (with a whitelist access for only 
the published) which keep a map between my roster-group and the node, so only 
the published know that urn:xmpp:microblog:1 is linked with familly roster 
group. Thanks to this map, I can publish to the good node when needed.

My contacts have a notification because they have discovery feature for 
urn:xmpp:microblog:1+notify, urn:xmpp:microblog:2+notify, ..., 
urn:xmpp:microblog:big_enough_number+notify (BTW, it would be nice to have 
some wildcard charactere like urn:xmpp:microblog:*+notify), and thanks to 
access model, then just have notifications if they are in the good group.

This implementation is a dirty hack, but it works at least for testing 
purpose. It would be actually not that bad if I could ask the server all the 
items (or the last x ones) that I could access from a given jid.

You can try it at www.libervia.org (very old interface, a new one is on its 
way), but you'll have to create several accounts and play with roster to test 
it.


 
  - the possibility to pull all items of severals peoples (e.g. a roster
  group) at once
 
 That impossible since these users can be served on different hosts. So
 you should to ask users separately. I don't think that this is too
 ambiguous because it will be needed only once and then you will receive
 events immediately.

I know that of course, but I think it's server job. A server can host many of 
my contacts nodes, so it can at least return the ones it is hosting, and then 
ask to other servers the informations it is lacking. At client side, that mean 
just on IQ get stanza, then having the result, which can be huge so maybe 
splitted in several stanza.

If I have to poll this by myself at client side, I'll have to send X IQ stanza 
for my X contacts, and flood the server.

 
  - push notification when a contact is connected
 
 Presence?? :))

Yes this point is already managed in xep-0277, I just mentionned it cause it's 
a must-have.


 
  - the ability to get missed items between the last time a contact was
  disconnected and the time it reconnect
 
 I already proposed the solution for that but nobody reacted:
 http://mail.jabber.org/pipermail/standards/2011-June/024597.html

Yes I know, so I hope this time there will be more feedback

  The current XEP is based on PEP, and has IMHO many issues:
  
  - if you connect with +notify, you have all notifications from all you
  items, without the ability to filter (e.g. from only on group).
 
 I think that this issue can be solved with an extension for the privacy
 lists.

I agree

  - if somebody published an item 6 months ago, and nothing since, you'll
  still have it in your notifications. OK you can filter this at client
  side, but it would be nice to have a date-based filtering way.
 
 Why? I configure the node that it doesn't send last items when presence
 came and this is quite ok.

I ask last items presence to not have to poll individually all my contacts 
roster. On some blue centralised services, it's common to have 100+ contacts, 
should I poll all of them each time I log-in ?


  - maybe the most important: there is no way to know how many items you
  have missed neither to get them. Once again, a date-based retrieving
  way would be a nice addition
 
 Once again: http://mail.jabber.org/pipermail/standards/2011-June/024597.html

Hope to have feedback from pubsub specialists


  - there is no way to retrieve the x last items for x contacts. I'd like
  to be able to ask to a server « all the post since 1 week from all my
  contacts in roster-group friends ».
 
 You are forget about decentralization again. Again, why is this needed
 if you receive the events IMMEDIATELY?

Because I'm not always online. For the decentralized issue, see my answer 
above.


 [SNIP] 
  Furthermore, there is this email from Sergey Dobrov that has not any
  answer:
  http://mail.jabber.org/pipermail/standards/2011-June/024618.html . It's
  a pity 'cause there are many interesting remarks in it. For example, I
  agree that adding tags would be nice, or the need to have a way to get
  items count.
 I working to integrate these edits by myself and propose to accept the
 new version since it seems that 

Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Sergey Dobrov
On 08/18/2011 08:09 PM, Goffi wrote:
 Le Jeudi 18 Août 2011 19:29:21, Sergey Dobrov a écrit :
 first, here are my main needs for microblogging:

 - the possibility to have several nodes with different access models,
 and for a user to subscribe to them automatically

 Could you give some example usecases for that? Since I don't really
 understand how you see it possible.
 
 Well, in my quick and dirty implementation (that I have made mainly to work 
 on 
 the frontend), I have several node: urn:xmpp:microblog:0 for the main 
 microblog node, open access, that everybody can read, even people without 
 XMPP 
 account from the website.
 
 Then I have many other nodes: urn:xmpp:microblog:1,  urn:xmpp:microblog:2, ...
 Each node has a different access (roster-access familly, roster-access 
 friends), and I have an other private node (with a whitelist access for 
 only 
 the published) which keep a map between my roster-group and the node, so only 
 the published know that urn:xmpp:microblog:1 is linked with familly 
 roster 
 group. Thanks to this map, I can publish to the good node when needed.
 
 My contacts have a notification because they have discovery feature for 
 urn:xmpp:microblog:1+notify, urn:xmpp:microblog:2+notify, ..., 
 urn:xmpp:microblog:big_enough_number+notify (BTW, it would be nice to have 
 some wildcard charactere like urn:xmpp:microblog:*+notify), and thanks to 
 access model, then just have notifications if they are in the good group.
 
 This implementation is a dirty hack, but it works at least for testing 
 purpose. It would be actually not that bad if I could ask the server all the 
 items (or the last x ones) that I could access from a given jid.
 
 You can try it at www.libervia.org (very old interface, a new one is on its 
 way), but you'll have to create several accounts and play with roster to test 
 it.
 
It's a bad idea to append the number to the namespace since it reserved
for different revisions of XEP and not for your purpose. Again, I think
that this should be solved by some privacy lists extension since your
decision again restricted.

 

 - the possibility to pull all items of severals peoples (e.g. a roster
 group) at once

 That impossible since these users can be served on different hosts. So
 you should to ask users separately. I don't think that this is too
 ambiguous because it will be needed only once and then you will receive
 events immediately.
 
 I know that of course, but I think it's server job. A server can host many of 
 my contacts nodes, so it can at least return the ones it is hosting, and then 
 ask to other servers the informations it is lacking. At client side, that 
 mean 
 just on IQ get stanza, then having the result, which can be huge so maybe 
 splitted in several stanza.
 
 If I have to poll this by myself at client side, I'll have to send X IQ 
 stanza 
 for my X contacts, and flood the server.
Client should cache data. You will flood anyway the only difference is
who will flood: client or server.

 
  
 - push notification when a contact is connected

 Presence?? :))
 
 Yes this point is already managed in xep-0277, I just mentionned it cause 
 it's 
 a must-have.
 
 

 - the ability to get missed items between the last time a contact was
 disconnected and the time it reconnect

 I already proposed the solution for that but nobody reacted:
 http://mail.jabber.org/pipermail/standards/2011-June/024597.html
 
 Yes I know, so I hope this time there will be more feedback
 
 The current XEP is based on PEP, and has IMHO many issues:

 - if you connect with +notify, you have all notifications from all you
 items, without the ability to filter (e.g. from only on group).

 I think that this issue can be solved with an extension for the privacy
 lists.
 
 I agree
 
 - if somebody published an item 6 months ago, and nothing since, you'll
 still have it in your notifications. OK you can filter this at client
 side, but it would be nice to have a date-based filtering way.

 Why? I configure the node that it doesn't send last items when presence
 came and this is quite ok.
 
 I ask last items presence to not have to poll individually all my contacts 
 roster. On some blue centralised services, it's common to have 100+ contacts, 
 should I poll all of them each time I log-in ?
 
 
No, Pubsub node can send you an event when you came online with the
serial for it's journal so you can decide to ask the node for new items.

 - maybe the most important: there is no way to know how many items you
 have missed neither to get them. Once again, a date-based retrieving
 way would be a nice addition

 Once again: http://mail.jabber.org/pipermail/standards/2011-June/024597.html
 
 Hope to have feedback from pubsub specialists
 
Me too :)

 
 - there is no way to retrieve the x last items for x contacts. I'd like
 to be able to ask to a server « all the post since 1 week from all my
 contacts in roster-group friends ».

 You are forget about decentralization again. 

Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Goffi
Le Jeudi 18 Août 2011 20:40:05, Sergey Dobrov a écrit :
 
 It's a bad idea to append the number to the namespace since it reserved
 for different revisions of XEP and not for your purpose. Again, I think
 that this should be solved by some privacy lists extension since your
 decision again restricted.

As I said before, it just a QD hack for testing purpose, I know it's not a 
good solution. I would rather use privacy lists or whatever if we could have a 
per-item access management with it.

 
  If I have to poll this by myself at client side, I'll have to send X IQ
  stanza for my X contacts, and flood the server.
 
 Client should cache data. You will flood anyway the only difference is
 who will flood: client or server.

In all cases the client will need the data, and it's better to send one 
request to server, that X request for X contacts.
Actually I think about something similar to Extended Stanza Adressing 
(http://xmpp.org/extensions/xep-0033.html), but to get several pubsub nodes at 
once.


  I ask last items presence to not have to poll individually all my
  contacts roster. On some blue centralised services, it's common to have
  100+ contacts, should I poll all of them each time I log-in ?
 
 No, Pubsub node can send you an event when you came online with the
 serial for it's journal so you can decide to ask the node for new items.

Oki, that looks like a nice solution, once again, waiting an answer from 
pubsub people.



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Simon Tennant (buddycloud)
It's my understanding of the XEP process that we standardise ways of
doing something so that many clients and servers can interoperate.

And for machine to machine services this is easy: machines do as we say
and interoperate as we say. It's a predictable environment.

Social is not easy and neither are user and groups of users predictable.

Additionally, social services built on XMPP will have different business
logic and be built into different applications in different ways.

Getting this business-logic right will depend on the problem being solved.

That's why I like XEP-0277; it says all one can really say about social
(summary of XEP-0277: use atom for posts and post to a pub-sub like node).

We all want interoperation between services. Social is different for
different products: what works for one kind of use case will not work
for someone else: some people think it should be roster based with
groups like Google circles. Others want it decoupled from the roster.
Some people want to add code to XMPP servers, others build pub-sub
solutions. Some services have a single poster model, others are more
like MUC with many posters.

To help make this conversation go forward we need a solid description of
what is being offered to the user. These are the questions we need to
answer before we try to work out a spec(s):

  * the target user (hint: my parents won't be twiddling roster groups)
  * define the use case
  * how does it work? what happens when... (this is the social part)
  * clearly define the publishing and following models

I am extremely doubtful that this process leads to a one-size-fits-all
answer. And it would be a rather mediocre mishmash of kludges.

I think a far more realistic result will be a couple of types of social
services. Off the top of my head:

  * microblogging to pep nodes
  * twitter-like service
  * buddycloud-like service

Each service (and hopefully spec) will relevant to a particular way of
interacting and designed for a type of use case.

It's really important that we avoid a rush to standardise that results
in something mediocre and end up with the MySpace of the XMPP world:
dropped after 2 years and filled with spam.

XMPP gives us a huge advantage when building social services: its native
federation and its built-in support for remote user-ids are awesome.

Let's build awesome services for our users based off specs relevant for
a particular use case.

S.



On 18/08/2011 16:47, Goffi wrote:
 Le Jeudi 18 Août 2011 20:40:05, Sergey Dobrov a écrit :
 It's a bad idea to append the number to the namespace since it reserved
 for different revisions of XEP and not for your purpose. Again, I think
 that this should be solved by some privacy lists extension since your
 decision again restricted.
 As I said before, it just a QD hack for testing purpose, I know it's not a 
 good solution. I would rather use privacy lists or whatever if we could have 
 a 
 per-item access management with it.

 If I have to poll this by myself at client side, I'll have to send X IQ
 stanza for my X contacts, and flood the server.
 Client should cache data. You will flood anyway the only difference is
 who will flood: client or server.
 In all cases the client will need the data, and it's better to send one 
 request to server, that X request for X contacts.
 Actually I think about something similar to Extended Stanza Adressing 
 (http://xmpp.org/extensions/xep-0033.html), but to get several pubsub nodes 
 at 
 once.


 I ask last items presence to not have to poll individually all my
 contacts roster. On some blue centralised services, it's common to have
 100+ contacts, should I poll all of them each time I log-in ?
 No, Pubsub node can send you an event when you came online with the
 serial for it's journal so you can decide to ask the node for new items.
 Oki, that looks like a nice solution, once again, waiting an answer from 
 pubsub people.



-- 
Simon Tennant
mobile: +49 17 8545 0880
office: +49 89 4209 55854  
office: +44 20 7043 6756 
xmpp: si...@buddycloud.com
build your own open and federated social network - http://open.buddycloud.com




Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-18 Thread Justin Karneges
On Thursday, August 18, 2011 05:10:58 AM Goffi wrote:
 - the ability to get missed items between the last time a contact was
 disconnected and the time it reconnect

I have a protocol flow for reliable pubsub that I've not yet publicized, but 
essentially the idea is to include Result Set Management (XEP-0059) UID values 
in pubsub event notifications.  The client can then notice if it missed an item 
and use iq-get to catch up.

Maybe this could go in some RSM with PubSub XEP that sorely needs to be 
written.

Justin


[Standards] Microblogging XEP new features

2011-03-26 Thread Vanaryon
Hi,

I am the Jappix project founder (https://www.jappix.com/ -
https://project.jappix.com/ - https://mini.jappix.com), and we added full
microblogging XEP (XEP-0277) support to our webclient (desktop edition).

Here are some enhences of the XEP we did, which are working very fine!

*1. File attachment*

We had a strong need during its integration: the multiple/single file(s)
attachment, like Identi.ca does in its protocol. We built a simple way
(maybe not the best?!) to do this, with a file / element (can be multiple
if more than one file per item).

*2. Entry repeat*

When someone repeat a friend's entry, we could specify it to the new posted
item. We added a repeat / element to the source / one, with the jid
attribute of the initial entry.

*3. Comments*

To allow users reacting to one's entry, we added a commenting feature. For
that, we use a comments / element, wich specifies where is the comments
node located (PubSub server/PEP + node name).

Would it be possible to add this to the XEP draft, or to enhence this
structure if bad?

It looks like this:

items node=urn:xmpp:microblog:0
item id=b7cfa299c9263eb218863362762c0e26
entry xmlns=http://www.w3.org/2005/Atom;
   source
   titleMicroblog (Vanaryon)/title
   updated2011-03-13T15:52:45Z/updated
   author
   nickVanaryon/nick
   /author

   *repeat jid=vanar...@jappix.com /*
   /source

   titleEspérons que le salon du jeu vidéo Breton sera
meilleur l'année prochaine :(/title
   bodyEspérons que le salon du jeu vidéo Breton sera
meilleur l'année prochaine :(/body
   published2011-03-13T15:52:45Z/published
   updated2011-03-13T15:52:45Z/updated
   link href=
xmpp:vanar...@jappix.com?;node=urn%3Axmpp%3Amicroblog%3A0;item=b7cfa299c9263eb218863362762c0e26
rel=alternate

  * **file name=IMAG0090 url=
https://www.jappix.com/store/share/vanar...@jappix.com/76cc121cab14443c1d6ffe046443dfd1d856940b.jpg;
source=web ext=jpg type=image thumb=
https://www.jappix.com/store/share/vanar...@jappix.com/76cc121cab14443c1d6ffe046443dfd1d856940b_thumb.jpg;
/
   file name=IMAG0093 url=
https://www.jappix.com/store/share/vanar...@jappix.com/bdc11f42e0c1d810b33733689f6cfd7a9197c9e0.jpg;
source=web ext=jpg type=image thumb=
https://www.jappix.com/store/share/vanar...@jappix.com/bdc11f42e0c1d810b33733689f6cfd7a9197c9e0_thumb.jpg;
/*
*   *
*   **comments jid=jap...@jappix.com
node=urn:xmpp:microblog:0:comments:80f4f021f57e3606e4b019c11dfd00de /*
   /entry
/item
/items

*Here are the attributes in use for the file / element:*
* *name*: the real file name
* *url*: the file url (HTTP if source=web; ...)
* *source*: the source of the file (web, ...)
* *ext*: the file extension (I think it might be removed because of
type attr)
* *type*: the file type category (I think it might be changed to the
MIME type to remove ext attr)
* *thumb*: the link to a thumbnail of the image file, using the same
MIME type as the big file (we may add video files thumbs support too,
maybe using a thumb / sub-element with all the MIME type needed in a
type attr)

*For the repeat / element:*
* *jid*: the JID of the initial author

*For the comments / element:*
* *jid*: the JID of the entity hosting the comments node
* *node*: the node name hosting the comment items

Publishing a single comment to a comments node looks like this:

iq xmlns=jabber:client type=set to=jap...@jappix.com id=get_15-13
xml:lang=fr
pubsub xmlns=http://jabber.org/protocol/pubsub;
publish
node=urn:xmpp:microblog:0:comments:f5168699fffb8915772a2603065cda05
item id=827f82c21dfa9f2436bb760f6b9be5d5
entry xmlns=http://www.w3.org/2005/Atom;
*titlePublish a new comment!/title*
published2011-03-26T11:00:51Z/published

source
author
jidjap...@jappix.com/jid
/author
/source
/entry
/item
/publish
/pubsub
/iq

And, another question: why is the microblogging XEP now deferred? I really
think there is some potential behind it, and defer it is not a solution: we
can enhence it little by little and get what everyone wants. We managed to
do something strong with it for Jappix, and we will soon add notifications
features (we don't know how we will proceed now).

I am waiting for your replies and thoughts about it. I am aware that my
first integration of this new feature in Jappix is not really clean and
might be enhenced.

For any test of how we added 

Re: [Standards] Microblogging XEP new features

2011-03-26 Thread Vanaryon
Hello,

Okay, I will try to make it more Atom-compliant. I had problems with my
first mail (sent a week ago to the list), some people did not receive it
(including me), and I considered it was lost. It seems not ;)

For the entry repeat, yes, maybe adding a simple jid / element to the
author / one is much better. The client will just have to compare the
sender JID and this jid / text content to add a repeated icon (or
something like this) to the notice.

The in-reply-to/ specification is not really a commenting feature, it
seems to be just a replying feature. What we did with our specification is
that we allow users to comment on another PubSub node, created *only for the
notice*, so that it is independent from the microblog notices themselves.

Thanks for your reply, I will consider applying it to our specification,

Valérian Saliou.

2011/3/26 Florian Zeitz florian.ze...@gmx.de

 Am 26.03.2011 12:05, schrieb Vanaryon:
  Hi,
 
  I am the Jappix project founder (https://www.jappix.com/ -
  https://project.jappix.com/ - https://mini.jappix.com), and we added
  full microblogging XEP (XEP-0277) support to our webclient (desktop
  edition).
 
  Here are some enhences of the XEP we did, which are working very fine!
 
 Hy,

 First as a general note: XEP 0277 uses the Atom Publishing format.
 It would therefore be better to reuse elements already defined by that
 format. Also any extensions you make have to be in a new namespace since
 the are not part of the atom.

  _*1. File attachment*_
 
  We had a strong need during its integration: the multiple/single file(s)
  attachment, like Identi.ca does in its protocol. We built a simple way
  (maybe not the best?!) to do this, with a file / element (can be
  multiple if more than one file per item).
 
 This has been discussed on this list already
 (http://mail.jabber.org/pipermail/standards/2011-March/024277.html).
 In short: Use the link rel='enclosure / from Atom.

  _*2. Entry repeat*_
 
  When someone repeat a friend's entry, we could specify it to the new
  posted item. We added a repeat / element to the source / one, with
  the jid attribute of the initial entry.
 
 I feel this should be part of the author/ element. There is already
 uri/, I think we could just put a xmpp uri there, couldn't we?

  _*3. Comments*_
 
  To allow users reacting to one's entry, we added a commenting feature.
  For that, we use a comments / element, wich specifies where is the
  comments node located (PubSub server/PEP + node name).
 
 The current XEP-0277 also has a commenting feature which works by adding
 a in-reply-to/ element.
 That is however a quite different way to do comments and there should
 probably be some discussion on which way to do it.

  […]
  And, another question: why is the microblogging XEP now deferred? I
  really think there is some potential behind it, and defer it is not a
  solution: we can enhence it little by little and get what everyone
  wants. We managed to do something strong with it for Jappix, and we will
  soon add notifications features (we don't know how we will proceed now).
 
 It is deferred because such updating has not occured in a certain period
 of time. It will be un-deferred once any changes the to the XEP are made.
 AFAIK we are still looking for a new maintainer for that XEP.

 --
 Florian Zeitz



Re: [Standards] Microblogging XEP new features

2011-03-26 Thread Vanaryon
Hello (again),

I changed things to make them Atom-compliant. Here is how I proceed now:

*1. File attaching*

Use this (per file):

link rel=enclosure title=File name type=image/jpeg length=56131
href=
https://www.jappix.com/store/share/jap...@jappix.com/bfeefd6318a433a571306f8b7df109b8044d6d273511.jpg


*2. Repeat (original notice author)*

Add a jid / element to the author / element. The client will compare the
received stanza JID and this to know if this is a repeated notice.

*3. Comments*

Use this, with an XMPP URI:

link rel=alternate href=xmpp:jappix%
40jappix.com?;node=urn%3Axmpp%3Amicroblog%3A0;item=3b782e7a5212a81f2578d935806baad5


How do you find this? Can we discuss about adding this to the XEP? (and okay
for the deferred status, I was thinking that it had to be voted by the
council to defer something, I did not know it was automated).

Bye,

Valérian Saliou.

2011/3/26 Vanaryon vanar...@gmail.com

 Hello,

 Okay, I will try to make it more Atom-compliant. I had problems with my
 first mail (sent a week ago to the list), some people did not receive it
 (including me), and I considered it was lost. It seems not ;)

 For the entry repeat, yes, maybe adding a simple jid / element to the
 author / one is much better. The client will just have to compare the
 sender JID and this jid / text content to add a repeated icon (or
 something like this) to the notice.

 The in-reply-to/ specification is not really a commenting feature, it
 seems to be just a replying feature. What we did with our specification is
 that we allow users to comment on another PubSub node, created *only for the
 notice*, so that it is independent from the microblog notices themselves.

 Thanks for your reply, I will consider applying it to our specification,

 Valérian Saliou.


 2011/3/26 Florian Zeitz florian.ze...@gmx.de

 Am 26.03.2011 12:05, schrieb Vanaryon:
  Hi,
 
  I am the Jappix project founder (https://www.jappix.com/ -
  https://project.jappix.com/ - https://mini.jappix.com), and we added
  full microblogging XEP (XEP-0277) support to our webclient (desktop
  edition).
 
  Here are some enhences of the XEP we did, which are working very fine!
 
 Hy,

 First as a general note: XEP 0277 uses the Atom Publishing format.
 It would therefore be better to reuse elements already defined by that
 format. Also any extensions you make have to be in a new namespace since
 the are not part of the atom.

  _*1. File attachment*_
 
  We had a strong need during its integration: the multiple/single file(s)
  attachment, like Identi.ca does in its protocol. We built a simple way
  (maybe not the best?!) to do this, with a file / element (can be
  multiple if more than one file per item).
 
 This has been discussed on this list already
 (http://mail.jabber.org/pipermail/standards/2011-March/024277.html).
 In short: Use the link rel='enclosure / from Atom.

  _*2. Entry repeat*_
 
  When someone repeat a friend's entry, we could specify it to the new
  posted item. We added a repeat / element to the source / one, with
  the jid attribute of the initial entry.
 
 I feel this should be part of the author/ element. There is already
 uri/, I think we could just put a xmpp uri there, couldn't we?

  _*3. Comments*_
 
  To allow users reacting to one's entry, we added a commenting feature.
  For that, we use a comments / element, wich specifies where is the
  comments node located (PubSub server/PEP + node name).
 
 The current XEP-0277 also has a commenting feature which works by adding
 a in-reply-to/ element.
 That is however a quite different way to do comments and there should
 probably be some discussion on which way to do it.

  […]
  And, another question: why is the microblogging XEP now deferred? I
  really think there is some potential behind it, and defer it is not a
  solution: we can enhence it little by little and get what everyone
  wants. We managed to do something strong with it for Jappix, and we will
  soon add notifications features (we don't know how we will proceed now).
 
 It is deferred because such updating has not occured in a certain period
 of time. It will be un-deferred once any changes the to the XEP are
 made.
 AFAIK we are still looking for a new maintainer for that XEP.

 --
 Florian Zeitz





Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Dave Cridland

On Mon Dec 20 13:10:19 2010, Thomas Baquet wrote:
- As written in the draft, The client MAY add a “reply”  
attribute which gives the parent existing collection node. The  
default value of this attribute is the node where the item is  
published. - Actually I was a sick when i've written this draft  
(perhaps that's why I couldn't express me correctly --), but I  
would meant that by /default/ this is a child node of the node  
where the item is published. But, that can be a nice feature if the  
user is available to choose the node where the item will be  
published;


The trouble with this model is that you're redefining how pubsub  
works quite radically.


Nodes, currently can be one of two types:

Collection Nodes, which contain other nodes (or, more strictly,  
pointers to other nodes).


Leaf Nodes, which contain items.

In both cases, they can contain as many things (nodes or items) as  
you like, although in PEP implementations this needs to be only one,  
and most (all?) current implementations restrict the number of items  
to a minimum.


As such, I'd expect implementations of this to support many items per  
node, and full access model control to allow (or disallow) replies on  
the node as needs be. There's really no need to a protocol extension  
to pubsub to support this.


In order to effectively unify the two models (ie, posting replies on  
your own node versus posting replies on the original poster's), I'd  
have thought you do this:


1) Replies are posted to the poster's µblog node.

2) The replier also posts a pointer (possibly duplicating the post)  
to a replies node on their own personal pubsub service.


Then, the only risk is that a replier actually posts a top-level  
entry into someone else's µblog - in this case, though, it's pretty  
easy to spot and the node owner can remove it as well.


Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Thomas Baquet


The trouble with this model is that you're redefining how pubsub works 
quite radically.


Nodes, currently can be one of two types:

I missed that...
As such, I'd expect implementations of this to support many items per 
node, and full access model control to allow (or disallow) replies on 
the node as needs be. There's really no need to a protocol extension 
to pubsub to support this.
Perhaps is this the simplest way - delegate the work to the client 
implementation: if the user has a write access on a node, the client has 
to propose to answer to the item. In this case, there is a leaf node for 
each published item. No need of XEP for this, as you told. - On this, 
Floriant was right.


Then, the problem still the pointer - user can choose to post the 
reply on his own pubsub, in this case, he must send an pointer item on 
the original item's. So, how do we define the pointer? I began a little 
proposition about this (point 5 of the draft), but still incomplete - 
and, why not, add an attribute to define if is it a reply or a 
trackball (like in wordpress), a copy of the original etc. ?


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Dave Cridland

On Mon Dec 20 16:20:23 2010, Thomas Baquet wrote:


The trouble with this model is that you're redefining how pubsub  
works quite radically.


Nodes, currently can be one of two types:

I missed that...
As such, I'd expect implementations of this to support many items  
per node, and full access model control to allow (or disallow)  
replies on the node as needs be. There's really no need to a  
protocol extension to pubsub to support this.
Perhaps is this the simplest way - delegate the work to the client  
implementation: if the user has a write access on a node, the  
client has to propose to answer to the item. In this case, there is  
a leaf node for each published item. 


No, there's a single leaf node for *all* the published items. And I'd  
argue that if you can't post to a node, then direct replies are not  
supported by that node.



No need of XEP for this, as you told. - On this, Floriant was right.


No, there's still a need to document how it should work, but there's  
no need to extend the protocol.



Then, the problem still the pointer - user can choose to post the  
reply on his own pubsub, in this case, he must send an pointer item  
on the original item's. So, how do we define the pointer? I began a  
little proposition about this (point 5 of the draft), but still  
incomplete - and, why not, add an attribute to define if is it a  
reply or a trackball (like in wordpress), a copy of the original  
etc. ?



You can place the pointer within the payload. I'd be quite surprised  
if there weren't one available already within Atom. There's certainly  
replies, etc, with the threading extension, I'd imagine there's a  
canonical URI some place there.


Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Thomas Baquet

On 20/12/2010 14:45, Dave Cridland wrote:
No, there's a single leaf node for *all* the published items. And I'd 
argue that if you can't post to a node, then direct replies are not 
supported by that node.

What do u propose then to link the answer onto the base item?

--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Dave Cridland

On Mon Dec 20 16:48:58 2010, Thomas Baquet wrote:

On 20/12/2010 14:45, Dave Cridland wrote:
No, there's a single leaf node for *all* the published items. And  
I'd argue that if you can't post to a node, then direct replies  
are not supported by that node.

What do u propose then to link the answer onto the base item?


WHat's needed beyond Atom threading in the payload?

Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Thomas Baquet

On 20/12/2010 14:58, Dave Cridland wrote:

On Mon Dec 20 16:48:58 2010, Thomas Baquet wrote:

On 20/12/2010 14:45, Dave Cridland wrote:
No, there's a single leaf node for *all* the published items. And 
I'd argue that if you can't post to a node, then direct replies are 
not supported by that node.

What do u propose then to link the answer onto the base item?


WHat's needed beyond Atom threading in the payload?

Dave.
The problem is by using Atom that you'll limit reply node to Atom 
content then - otherwise, you'll lost the power of pubsub, even if Atom 
is extensible; a stupid example should be: if I want to answer with a 
mood, or a tune (even if it is basically expected for PEP, nothing 
should prevent me to post this)


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Dave Cridland

On Mon Dec 20 17:03:30 2010, Thomas Baquet wrote:

On 20/12/2010 14:58, Dave Cridland wrote:

On Mon Dec 20 16:48:58 2010, Thomas Baquet wrote:

On 20/12/2010 14:45, Dave Cridland wrote:
No, there's a single leaf node for *all* the published items.  
And I'd argue that if you can't post to a node, then direct  
replies are not supported by that node.

What do u propose then to link the answer onto the base item?


WHat's needed beyond Atom threading in the payload?

Dave.
The problem is by using Atom that you'll limit reply node to Atom  
content then - otherwise, you'll lost the power of pubsub, even if  
Atom is extensible; a stupid example should be: if I want to answer  
with a mood, or a tune (even if it is basically expected for PEP,  
nothing should prevent me to post this)


Atom can be used to frame arbitrary content, as far as I'm aware.  
Absolutely nothing prevents you from replying with a mood element  
embedded in Atom. The Atom just buys us all the threadings and post  
mobility.


If you look at Identi.ca, for instance, they throw a half-dozen  
representations of the post content, plus geolocation information,  
profile information of the poster, the instruction manual for the  
poster's fridge, and so on.


Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Thomas Baquet

On 20/12/2010 15:16, Dave Cridland wrote:
The problem is by using Atom that you'll limit reply node to Atom 
content then - otherwise, you'll lost the power of pubsub, even if 
Atom is extensible; a stupid example should be: if I want to answer 
with a mood, or a tune (even if it is basically expected for PEP, 
nothing should prevent me to post this)


Atom can be used to frame arbitrary content, as far as I'm aware. 
Absolutely nothing prevents you from replying with a mood element 
embedded in Atom. The Atom just buys us all the threadings and post 
mobility. 
Isn't it blending pubsub with atom too much? I mean, atom is a kind of 
content like other which can be in a pubsub item. If we decide to use it 
as a container of (in the previous example) mood element (or any kind of 
content), why not directly replace item element with an atom entry (if 
it can embed the kind of sub-element we want)?


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Dave Cridland

On Mon Dec 20 17:23:49 2010, Thomas Baquet wrote:

On 20/12/2010 15:16, Dave Cridland wrote:
The problem is by using Atom that you'll limit reply node to Atom  
content then - otherwise, you'll lost the power of pubsub, even  
if Atom is extensible; a stupid example should be: if I want to  
answer with a mood, or a tune (even if it is basically expected  
for PEP, nothing should prevent me to post this)


Atom can be used to frame arbitrary content, as far as I'm aware.  
Absolutely nothing prevents you from replying with a mood  
element embedded in Atom. The Atom just buys us all the threadings  
and post mobility. 
Isn't it blending pubsub with atom too much? I mean, atom is a kind  
of content like other which can be in a pubsub item. If we decide  
to use it as a container of (in the previous example) mood element  
(or any kind of content), why not directly replace item element  
with an atom entry (if it can embed the kind of sub-element we  
want)?


Because PubSub nodes contain items - replacing the item element with  
an Atom element would mean breaking compatibility with PubSub. It  
doesn't seem useful to do that.


Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Thomas Baquet

On 20/12/2010 15:38, Dave Cridland wrote:
Because PubSub nodes contain items - replacing the item element with 
an Atom element would mean breaking compatibility with PubSub. It 
doesn't seem useful to do that.
(Actually, I'd meant in a perspective of redefining pubsub, cause Atom 
is more flexible than the item element itself. Anyway...)


Okay, so let's take the Atom way then: when a node allows a write access 
to user, it means he can post reply to items on it. But there stills a 
problem: imagine than - in a more general way - I post an blog article 
on my blog node; how will I manage wether people will effectively post 
a reply to this article or when they will post an article which is not a 
reply? For certain kind of content allowing people post in my node item 
which are not necesseraly item can be useful (like facebook wall), but 
others no.


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-20 Thread Simon Tennant (buddycloud)

On 20/12/2010 19:01, Thomas Baquet wrote:


Okay, so let's take the Atom way then: when a node allows a write 
access to user, it means he can post reply to items on it. But there 
stills a problem: imagine than - in a more general way - I post an 
blog article on my blog node; how will I manage wether people will 
effectively post a reply to this article or when they will post an 
article which is not a reply? For certain kind of content allowing 
people post in my node item which are not necesseraly item can be 
useful (like facebook wall), but others no.
It would really help if we had some concrete examples of what features 
and use-cases this spec is trying to support?


We all have different ideas of what micro-blogging means means and 
arbitrarily hammering out a spec without some predefined use cases and 
users stories is spec-masturbation: fun, but rather pointless.


It may well be worth leaving this spec as nothing more than publish to 
a node (pep or pubsub) and use atom payloads.


Trying to define anything more than that, like the business logic of who 
can reply to what is really the role of an implementer and depends on 
the type of community they are building their application for.


If people want to define more then implement an application and see how 
users use it and adjust accordingly.


I would really like this stuff all standardised based on how buddycloud 
users have used channels, but even then I think that going more detailed 
is really constraining (and with little benefit).


S.
--

Simon Tennant
mobile: +49 17 8545 0880
office: +49 89 4209 55854
office: +44 20 7043 6756
xmpp: si...@buddycloud.com
build your own open and federated social network - http://open.buddycloud.com




Re: [Standards] microblogging maintainer :)

2010-12-19 Thread Florent Le Coz
On 12/04/2010 07:55 PM, Thomas Baquet wrote:
 I've written a first draft (full of awful errors, certainly); what do u
 think?
 

Hello,

Some comments on this draft (sorry if some of them are pointless. I'm
still not an XMPP expert):

- Do you think this should be part of the XEP-0277 or should this be a
separate XEP?

- I don’t understand why the publishing entity would decide to create
the reply-node on an other node than where the item is being published.
Wouldn't it be simpler to just create the reply-node as a child of the
node where the item is published?
This imply, for example, that the microblogging node
(urn:xmpp:microblog:0) MUST be of type collection, if the service wants
to permit replies to microblog-posts. Isn't it?


- I think allow-reply and reply are a bit redundant.



To allow users to reply to an item, the publishing entity MUST include
a reply / element as a child of the item / element it wishes to
publish.  This reply / element MUST be empty and MAY contain a node
attribute indicating the child node the server MUST create and where
replies to this item SHOULD be published.  If this element doesn’t
contain any node attribute, this reply-node defaults to the item’s id.

Example 1. User publish an item on a node
iq type='set'
  from='ham...@denmark.lit/blogbot'
  to='pubsub.shakespeare.lit'
  id='publish1'
  pubsub xmlns='http://jabber.org/protocol/pubsub'
publish node='princely_musings'
  item id='bnd81g37d61f49fgn581'
entry xmlns='http://www.w3.org/2005/Atom'
  !-- SNIP --
/entry
reply node=reply-bnd81g37d61f49fgn581 /
  /item
/publish
  /pubsub
/iq

Example $$. Server will reply:
iq type='result'
  from='pubsub.shakespeare.lit'
  to='franci...@denmark.lit/barracks'
  id='items1'
  pubsub xmlns='http://jabber.org/protocol/pubsub'
items node='princely_musings'
  item id='bnd81g37d61f49fgn581'
entry xmlns='http://www.w3.org/2005/Atom'
  !-- SNIP --
/entry
reply node=princely_musings/reply-bnd81g37d61f49fgn581 /
  /item
/items
  /pubsub
/iq

With the help of this XEP, we could have two microblogging models.
- The twitter/identi.ca-like model:
items are published with an Open access model, with no reply /
element. User can still “respond” in their own microblog, as defined
currently in 0277.
- The Facebook/diaspora-like model:
items are published with a Roster access model, with a reply / element
as defined above.

This second microblogging model could be defined in an additional XEP.
(for a total of 3 XEPs : 0277, Reply On Pubsub, Microblog Second Model)

-- 
Florent Le Coz


Re: [Standards] microblogging maintainer :)

2010-12-04 Thread Thomas Baquet

On 01/12/2010 17:03, Dave Cridland wrote:

On Wed Dec  1 16:40:34 2010, Peter Saint-Andre wrote:

On 12/1/10 9:39 AM, Dave Cridland wrote:
 On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:
 Will someone volunteer to take over maintainership of XEP-0270? I 
simply

 don't have the cycles to do it justice.

 XEP-0270 is compliance suites - don't we want to shelve that one and
 make a 2011 one?

 (Something I'd be fine with handling the XEP side of, but couldn't 
hope

 to pretend to be impartial about).

Sorry, I meant the microblogging spec:

http://xmpp.org/extensions/xep-0277.html


I'm entirely happy with maintaining this, as long as there is 
sufficient interest in the community to provide things to put *in* it. 
ie, I'll cheerfully act as editor, and document consensus, but not 
author.


Dave.
Okay, I've been thinking a while theses last days about this, read again 
this thread: 
http://mail.jabber.org/pipermail/standards/2010-September/023817.html , 
and then would share some ideas:
- every pubsub node can have an answer node, given in an @related 
attribute (or else), which is a collection node, and on which users will 
post answers;
- for each item in the node, there is a subnode created on the answer 
collection node using the id of the concerned item. The server will 
create it only when an user will publish an element on the subnode.
- each item in the answer node can have an @related attribute, which is 
the id of an another item published in the same answer node; Basically, 
I tough about thread attribute, but this is limited at one sub-level 
of answer.
- user can post a reference element on the answer node in state of 
publish element directly on the answer node. In this case, use atom?

This system can be used for microblogging, blogging, forum, and so...

Example for microblogging:

C: iq type=get to=ro...@shakespeare.it
query xmlns=http://jabber.org/protocol/disco#items;
/iq
S: iq type=result to=jul...@shakespeare.it
queryxmlns=http://jabber.org/protocol/disco#items;
item node=urn:xmpp:microblog related=urn:xmpp:microblog:comments /
item 
node=urn:xmpp:activityStreamrelated=urn:xmpp:activityStream:comments /

item node=mylifeisbeautifulrelated=comments/mylifeisbeautiful /
item node=ilovejulietsomuchrelated=comments/ilovejulietsomuch /
/query
/iq
C: iq type=get to=ro...@shakespeare.it
pubsubxmlns='http://jabber.org/protocol/pubsub'
itemsnode=urn:xmpp:microblog:0/
/pubsub
/iq
S: iq type=result to=jul...@shakespeare.it
pubsubxmlns='http://jabber.org/protocol/pubsub'
items node=urn:xmpp:microblog:0 related=urn:xmpp:microblog:comments
item id=item000 !-- DATA -- /item
item id=item001 !-- DATA -- /item
item id=item002 !-- DATA -- /item
/items
/pubsub
/iq
C: iq type=get to=ro...@shakespeare.it
query xmlns=http://jabber.org/protocol/disco#items; 
node=urn:xmpp:microblog:comments

/iq
S: iq type=result to=jul...@shakespeare.it
queryxmlns=http://jabber.org/protocol/disco#items; 
node=urn:xmpp:microblog:comments

item node=item000/
item node=item001/
item node=item002/
/query
/iq


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-04 Thread Thomas Baquet

On 01/12/2010 16:43, Peter Saint-Andre wrote:

On 12/1/10 11:30 AM, Thomas Baquet wrote:

On 01/12/2010 16:40, Peter Saint-Andre wrote:

On 12/1/10 9:39 AM, Dave Cridland wrote:

On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:

Will someone volunteer to take over maintainership of XEP-0270? I
simply
don't have the cycles to do it justice.

XEP-0270 is compliance suites - don't we want to shelve that one and
make a 2011 one?

(Something I'd be fine with handling the XEP side of, but couldn't hope
to pretend to be impartial about).

Sorry, I meant the microblogging spec:

http://xmpp.org/extensions/xep-0277.html

Oops...

Peter


Perhaps enlarge this extensions to all forms of Pubsub content implying
answering, forwarding, etc., no?

Are you volunteering? ;-)

I've written a first draft (full of awful errors, certainly); what do u 
think?


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



xep - reply on pubsub.odt
Description: application/vnd.oasis.opendocument.text


Re: [Standards] microblogging maintainer :)

2010-12-01 Thread Thomas Baquet

On 01/12/2010 16:40, Peter Saint-Andre wrote:

On 12/1/10 9:39 AM, Dave Cridland wrote:

On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:

Will someone volunteer to take over maintainership of XEP-0270? I simply
don't have the cycles to do it justice.

XEP-0270 is compliance suites - don't we want to shelve that one and
make a 2011 one?

(Something I'd be fine with handling the XEP side of, but couldn't hope
to pretend to be impartial about).

Sorry, I meant the microblogging spec:

http://xmpp.org/extensions/xep-0277.html

Oops...

Peter

Perhaps enlarge this extensions to all forms of Pubsub content implying 
answering, forwarding, etc., no?


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-01 Thread Peter Saint-Andre
On 12/1/10 11:30 AM, Thomas Baquet wrote:
 On 01/12/2010 16:40, Peter Saint-Andre wrote:
 On 12/1/10 9:39 AM, Dave Cridland wrote:
 On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:
 Will someone volunteer to take over maintainership of XEP-0270? I
 simply
 don't have the cycles to do it justice.
 XEP-0270 is compliance suites - don't we want to shelve that one and
 make a 2011 one?

 (Something I'd be fine with handling the XEP side of, but couldn't hope
 to pretend to be impartial about).
 Sorry, I meant the microblogging spec:

 http://xmpp.org/extensions/xep-0277.html

 Oops...

 Peter

 Perhaps enlarge this extensions to all forms of Pubsub content implying
 answering, forwarding, etc., no?

Are you volunteering? ;-)





smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] microblogging maintainer :)

2010-12-01 Thread Thomas Baquet

On 01/12/2010 16:43, Peter Saint-Andre wrote:

On 12/1/10 11:30 AM, Thomas Baquet wrote:

On 01/12/2010 16:40, Peter Saint-Andre wrote:

On 12/1/10 9:39 AM, Dave Cridland wrote:

On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:

Will someone volunteer to take over maintainership of XEP-0270? I
simply
don't have the cycles to do it justice.

XEP-0270 is compliance suites - don't we want to shelve that one and
make a 2011 one?

(Something I'd be fine with handling the XEP side of, but couldn't hope
to pretend to be impartial about).

Sorry, I meant the microblogging spec:

http://xmpp.org/extensions/xep-0277.html

Oops...

Peter


Perhaps enlarge this extensions to all forms of Pubsub content implying
answering, forwarding, etc., no?

Are you volunteering? ;-)




To help, why not; the problem still that my English is a bit ugly and 
that I miss a lot of time... But that can be interesting to make a 
PiratePad ( http://piratepad.net ) where people can work on this and 
push ideas, no?



--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/
Twitter: http://twitter.com/#!/LordBlackFox



Re: [Standards] microblogging maintainer :)

2010-12-01 Thread Luca Faggioli
Hi Peter,

I might be interested since I'm partially involved in the OneSocialWeb
project, but to be honest I have no experience with XEP-maintainership
(time/effort required, skills and so on...)

Sorry for the newbie question, but can you provide me some details about
that?

Thanks a lo
luca

2010/12/1 Thomas Baquet ld.black...@gmail.com

 On 01/12/2010 16:43, Peter Saint-Andre wrote:

 On 12/1/10 11:30 AM, Thomas Baquet wrote:

 On 01/12/2010 16:40, Peter Saint-Andre wrote:

 On 12/1/10 9:39 AM, Dave Cridland wrote:

 On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:

 Will someone volunteer to take over maintainership of XEP-0270? I
 simply
 don't have the cycles to do it justice.

 XEP-0270 is compliance suites - don't we want to shelve that one and
 make a 2011 one?

 (Something I'd be fine with handling the XEP side of, but couldn't hope
 to pretend to be impartial about).

 Sorry, I meant the microblogging spec:

 http://xmpp.org/extensions/xep-0277.html

 Oops...

 Peter

  Perhaps enlarge this extensions to all forms of Pubsub content implying
 answering, forwarding, etc., no?

 Are you volunteering? ;-)



 To help, why not; the problem still that my English is a bit ugly and that
 I miss a lot of time... But that can be interesting to make a PiratePad (
 http://piratepad.net ) where people can work on this and push ideas, no?



 --
 Thomas Baquet (aka Lord Blackfox)

 Jabber ID: ldblack...@papaya.im
 Website: http://www.lordblackfox.net/
 Twitter: 
 http://twitter.com/#!/LordBlackFoxhttp://twitter.com/#%21/LordBlackFox




-- 
Luca Faggioli
OneSocialWeb JID: l...@social.openliven.com


Re: [Standards] microblogging maintainer :)

2010-12-01 Thread Dave Cridland

On Wed Dec  1 16:40:34 2010, Peter Saint-Andre wrote:

On 12/1/10 9:39 AM, Dave Cridland wrote:
 On Wed Dec  1 16:33:30 2010, Peter Saint-Andre wrote:
 Will someone volunteer to take over maintainership of XEP-0270?  
I simply

 don't have the cycles to do it justice.

 XEP-0270 is compliance suites - don't we want to shelve that one  
and

 make a 2011 one?

 (Something I'd be fine with handling the XEP side of, but  
couldn't hope

 to pretend to be impartial about).

Sorry, I meant the microblogging spec:

http://xmpp.org/extensions/xep-0277.html


I'm entirely happy with maintaining this, as long as there is  
sufficient interest in the community to provide things to put *in*  
it. ie, I'll cheerfully act as editor, and document consensus, but  
not author.


Dave.
--
Dave Cridland - mailto:d...@cridland.net - xmpp:d...@dave.cridland.net
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade


Re: [Standards] Microblogging structure

2010-11-29 Thread Florent Le Coz

On 11/27/2010 02:23 PM, Thomas Baquet wrote:

Hi,

I was reading the xep-0277 (Microblogging over XMPP), when I was 
asking myself if the structure used for reply is really interesting: 
if Mr. A has subscribed to my µblog node but not the Mr. B's one, and 
if Mr. B answered to me, it can be interesting for Mr. A to access to 
Mr. B's answer. In this case, the system used by the xep is not 
efficient: the reply notification will only be sent to me, not to Mr. A.
Then, why not making something like a notify-node where a new entry is 
added when Mr. B post is own answer on his node. The entry added to my 
node will just be a reference to Mr B's answer. Like this, he keeps 
control of his published data, but everybody will be notified by this.


This system should be generalized for other kind of publications, like 
blog articles, forums, etc.



Hi,

The problem you're pointing here is very similar to what I noted 
earlier, see this previous thread: 
http://mail.jabber.org/pipermail/standards/2010-September/023817.html

See also the next posts, with responses to this problem.

By the way, Dave, did you come up with a solution? Would it help you if 
I (and others) wrote a modified version of 0277. Because things didn't 
move for a while, and I would appreciate that they did.


--
Florent


[Standards] Microblogging structure

2010-11-27 Thread Thomas Baquet

Hi,

I was reading the xep-0277 (Microblogging over XMPP), when I was asking 
myself if the structure used for reply is really interesting: if Mr. A 
has subscribed to my µblog node but not the Mr. B's one, and if Mr. B 
answered to me, it can be interesting for Mr. A to access to Mr. B's 
answer. In this case, the system used by the xep is not efficient: the 
reply notification will only be sent to me, not to Mr. A.
Then, why not making something like a notify-node where a new entry is 
added when Mr. B post is own answer on his node. The entry added to my 
node will just be a reference to Mr B's answer. Like this, he keeps 
control of his published data, but everybody will be notified by this.


This system should be generalized for other kind of publications, like 
blog articles, forums, etc.


--
Thomas Baquet (aka Lord Blackfox)

Jabber ID: ldblack...@papaya.im
Website: http://www.lordblackfox.net/



Re: [Standards] microblogging

2010-01-24 Thread Tuomas Koski
Good Sunday Sirs,

2010/1/22 Peter Saint-Andre stpe...@stpeter.im:
 About 18 months ago we had a flurry of discussion about microblogging
 over XMPP but that conversation fizzled out. In the last few days, we've
 had some renewed interest in the old microblogging proposal over on the
 WS-XMPP list:

 http://mail.jabber.org/pipermail/ws-xmpp/2010-January/000206.html

 I'd like to bring this topic back in front of the Council and try to get
 the original proposal published as a XEP so we can foster more discussion:

 http://xmpp.org/extensions/inbox/microblogging.html

 If anyone has input here, please do weigh in.

In the Buddycloud project we are doing things very close to this.  The
next version we are releasing in near future will be fully PubSub
based. The biggest difference we have is that the microblogging is
not on PEP nodes, but on normal nodes on specific component based on
XEP-0060. This is done so that any JID can be used (@gtalk.com,
@jabber.org, etc) to use the service.

It would be my pleasure to explain more what we have done. It has been
my plan to write a longer mail about the system as soon as the system
is out. I'll be also at FOSDEM and participating the XMPP Summit 8
to spread information what we have found and learned.

PubSub Rocks!


Br,
--
Tuomas
xmpp:tuo...@xmpp.lobstermonster.org


Re: [Standards] microblogging

2010-01-24 Thread Peter Saint-Andre
On 1/24/10 9:52 AM, Tuomas Koski wrote:
 Good Sunday Sirs,
 
 2010/1/22 Peter Saint-Andre stpe...@stpeter.im:
 About 18 months ago we had a flurry of discussion about microblogging
 over XMPP but that conversation fizzled out. In the last few days, we've
 had some renewed interest in the old microblogging proposal over on the
 WS-XMPP list:

 http://mail.jabber.org/pipermail/ws-xmpp/2010-January/000206.html

 I'd like to bring this topic back in front of the Council and try to get
 the original proposal published as a XEP so we can foster more discussion:

 http://xmpp.org/extensions/inbox/microblogging.html

 If anyone has input here, please do weigh in.
 
 In the Buddycloud project we are doing things very close to this.  The
 next version we are releasing in near future will be fully PubSub
 based. The biggest difference we have is that the microblogging is
 not on PEP nodes, but on normal nodes on specific component based on
 XEP-0060. This is done so that any JID can be used (@gtalk.com,
 @jabber.org, etc) to use the service.

Sure. It's not necessarily tied to PEP, only to PubSub. We'll fix the
proposal to make that clear.

 It would be my pleasure to explain more what we have done. It has been
 my plan to write a longer mail about the system as soon as the system
 is out. I'll be also at FOSDEM and participating the XMPP Summit 8
 to spread information what we have found and learned.

Looking forward to your talk!

Peter

-- 
Peter Saint-Andre
https://stpeter.im/





smime.p7s
Description: S/MIME Cryptographic Signature


[Standards] microblogging

2010-01-22 Thread Peter Saint-Andre
About 18 months ago we had a flurry of discussion about microblogging
over XMPP but that conversation fizzled out. In the last few days, we've
had some renewed interest in the old microblogging proposal over on the
WS-XMPP list:

http://mail.jabber.org/pipermail/ws-xmpp/2010-January/000206.html

I'd like to bring this topic back in front of the Council and try to get
the original proposal published as a XEP so we can foster more discussion:

http://xmpp.org/extensions/inbox/microblogging.html

If anyone has input here, please do weigh in.

Thanks!

Peter

-- 
Peter Saint-Andre
https://stpeter.im/





smime.p7s
Description: S/MIME Cryptographic Signature