Re: [Standards] XEP-0313: why it is *really* not a good idea to use MAM with Pubsub

2016-01-06 Thread Jefry Lagrange

Hello,

I think it is a good idea for there to be a search extension for pubsub.

One thing to keep in mind would be is that the extension could become 
really complicated depending on the search fields that you are going to 
have and the type of filter you want. If there are user defined fields, 
then special care should be had not to make the stanza cumbersome.


An idea you can implement for instance, to make it more compact, is to 
use fields defined in other namespaces, so in essence you'd be searching 
a particular XEP namespace (for 
exampleurn:xmpp:jingle:apps:file-transfer:4) and you could reuse to 
fields instead of redefining then. Of course you would still need to 
have user defined fields as I don't think that searching namespaces 
would handle all use cases.


Good luck,

For reference you can have a look at: XEP-055

On 06/01/16 07:08, Goffi wrote:

G'day,

MAM is a great tool which solves several problems for messages management. It
also offers the ability to get items from a PubSub node when the "node"
attribute is used.

We have implemented this feature in our PubSub/PEP component, and I haven't
seen any other implementation for PubSub so far (if you know any, please tell
me).

But I have to say that MAM is really badly adapted to PubSub, here are the
major reasons:

- All items a returned in separate  stanza, wrapped in a 
element, one item per stanza. This both is a waste of bandwidth and make the
task more difficult for the client as it must track each  and the 
result to known when a page has been received. A simple  query like for a
PubSub items retrieval would be much more better.

- Requests are made on one node. But it is desirable to be able to do requests
on several nodes, or on nodes which match a pattern. For instance, in XEP-0277
comments node are in the form
"urn:xmpp:microblog:0:comments/dd88c9bc58886fce0049ed050df0c5f2" and it would
be usefull to request all items from a node starting with
"urn:xmpp:microblog:0:comments". With MAM I can't request all comments
published by Romeo.

- this one could be easily fixed, but currently we can't do filtering on PEP
without requesting a particular jid. With microblog, we want to be able to
request e.g. all items with the category/tag "XMPP" regardless of the author.

- There is no way when a service offer MAM both for message and PubSub (e.g.: a
MUC component with PubSub abilities (MUC 2 ?), or the server itself when it
offers PEP) to know if the filtering fields apply to messages, or PubSub, or
both.
Look at section 4.1.5 "Retrieving form fields", how can I know if
"urn:example:xmpp:free-text-search" can be used for PubSub or not?

- section 4.2 says that "The archive results MUST be sorted in chronological
order", that totally make sense for message archives, but in the case of
PubSub this is incoherent with the classic items retrieval ordering (most
recent item first), and we may want to sort on other fields than publication
date: for instance item updating date vs publishing date, or size of files
tracked with pubsub.
Of course we can reverse order easily with RSM, but though it's not natural,
and we can't sort on other fields.

- overall, PubSub already manages archives by design, but it is lacking a good
searching tool. Even if it is tempting to use MAM with PubSub because we can
have filtering "for free", I really think it is not adapted at all, and PubSub
deserve a real dedicated searching/filtering tool.

If other people are interested, I would like to work on a "PubSub searching"
protoXEP. PubSub will probably be the core of many major features in XMPP in
the future, so we need a good, generic, and extendable way to search/filter
items.

Regards
Goffi

___
Standards mailing list
Info: http://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


___
Standards mailing list
Info: http://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
___


Re: [Standards] XEP-0234 Jingle File Transfer 0.16

2015-06-28 Thread Jefry Lagrange
I vote for not moving towards supporting :4. There isn't a compelling 
reason to do it. So it is better to wait until (or if) there features 
are supported in the next version or in some other XEP.



On 20/06/15 16:13, Daniel Gultsch wrote:
2015-06-20 21:59 GMT+02:00 Yann Leboulanger aste...@lagaule.org 
mailto:aste...@lagaule.org:


That will also break compatibility with clients that supports only :3
namespace, but currently we don't work with clients that have :4
namespace implemented. implementing several version of a protocol is
quite complexe.


Thats basically the reason I'm asking. My client Conversations 
currently only supports :3 and I'm not going to support both however I 
would upgrade to :4 if gajim were to do so as well and thus making 
Conversations compatible with Swift.


(Gajim, Conversations and Swift - to my knowledge - are the only 
clients supporting Jingle FT)


cheers
Daniel




Re: [Standards] wiki for xeps

2015-03-30 Thread Jefry Lagrange
Just as an experiment to see how the procedure could be improved. Of 
course, xsf could implement it if you are inclined to do it. Although, 
you'd have to be aware of the costs of doing that.



On 30/03/15 16:55, Kevin Smith wrote:

On 29 Mar 2015, at 02:36, Jefry Lagrange jefry.re...@gmail.com wrote:

Hello everyone,

I found myself thinking about the process of proposing and editing xeps that 
the xsf implements. I think there are some improvements that could be made in 
order to make the process easier.

These are the main areas which I think are problematic with the current way of 
doing things:
• git has a learning curve.
• xml has a learning curve.
• scripts are necessary to convert the xml to readable documents.
• Everything is tracked in the same project (scripts, templates, xeps). 
XEPs aren't tracked as individual projects.
These problems aren't that grave, after all, most of us are developers. 
However, I think it is worthwhile to explore alternatives to make it easier.
I spent the past week working on a wiki page that closely resembles the look 
and feel of xeps.
Here is the url: http://jlagrange.net/wiki/index.php/Category:Extensions
In that week, I learned that by developing your own mediawiki skins and 
extensions, you are able to make a wiki look however you like.
Because wikis were made specifically to track and modify documents, they have 
some features could be useful for us.
• view and compare history of changes online
• user management to allow authors to modify their xeps and nothing 
more. Or to allow trusted users to help Peter.
• rss of changes
• easier to edit and see the results without using scripts to convert 
it to html
• discussion pages for each xep
At the very least it could serve a way to make quick prototypes and get 
feedback.

Hi Jefry,
What’s your expected response to this? That is - are you posting it as a FYI 
thing for folks to look at, or are you proposing this as an update to XSF 
procedures?

/K





Re: [Standards] wiki for xeps

2015-03-29 Thread Jefry Lagrange


On 28/03/15 23:16, Mathieu Pasquet wrote:

On Sat, Mar 28, 2015 at 09:36:50PM -0400, Jefry Lagrange wrote:

Hello everyone,

I found myself thinking about the process of proposing and editing xeps that
the xsf implements. I think there are some improvements that could be made
in order to make the process easier.

These are the main areas which I think are problematic with the current way
of doing things:

  * git has a learning curve.
  * xml has a learning curve.
  * scripts are necessary to convert the xml to readable documents.
  * Everything is tracked in the same project (scripts, templates,
xeps). XEPs aren't tracked as individual projects.

These problems aren't that grave, after all, most of us are developers.
However, I think it is worthwhile to explore alternatives to make it easier.

I spent the past week working on a wiki page that closely resembles the look
and feel of xeps.

Here is the url: http://jlagrange.net/wiki/index.php/Category:Extensions

In that week, I learned that by developing your own mediawiki skins and
extensions, you are able to make a wiki look however you like.

Because wikis were made specifically to track and modify documents, they
have some features could be useful for us.

  * view and compare history of changes online
  * user management to allow authors to modify their xeps and nothing
more. Or to allow trusted users to help Peter.
  * rss of changes
  * easier to edit and see the results without using scripts to convert
it to html
  * discussion pages for each xep

At the very least it could serve a way to make quick prototypes and get
feedback.


Hello Jefry,

Making the XEP creation/edition process more accessible is a worthwhile
endeavour in my opinion. However, while the wiki format does have its
uses and advantages, I am not sure it would be a great fit for XEPs.

I want to address several points:

- git has a learning curve: yes, but git is not required at all for
   proposing and editing xeps, you only need to clone the repo and
   everything afterwards can be done without git.

- XML has a learning curve, but I would argue that people submitting
   XMPP extensions are already past the required level ;). More to the
   point, the only XML required while writing a XEP is some bare-bones
   XHTML, and writing the metadata.

- Everything is tracked in the same project. Yes, I agree, but the
   consensus seems to be that this isn’t an issue, as there aren’t too
   many changes happening, and maintaining a separate history for each
   XEP would be only more maintenance overhead, currently.

- XEPs already have online diffs

What I find lacking, or counter-intuitive, in a wiki-powered solution:

- The very ability to get all XEP sources in plain text, like we
   currently can.


This is possible either by extensions or by using third party 
converters. I think this is actually a common use  case for a lot of 
mediawiki users.





- Reviewing changes: wikis have this feature, but this would require to
   create several pages per XEP, in order to have the author edit a copy
   of the extension, then having people review them, and finally editors
   can move the copy to the “final” page. This is important for the
   publishing process, because non-editors shouldn’t be able to edit
   published documents.


Actually I think you could configure mediawiki to have a queue of 
changes where the changes have to be approved by someone i.e. the editor.





- Mandatory web interface (this is the biggest issue, for me), both for
   reviews, discussions, and submissions


That's a feature not a bug =D.



What I could appreciate in a wiki solution:

- RSS/Atom feeds of changes

- Centralized discussions: the mailing-list is nice to have exchanges,
   but after some time it becomes gruesome to aggregate all that was said
   on a particular extension.

- Possible web-based edition for quick edits to the documents, with
   instant visual feedback.



Ultimately I agree with you. This is not needed as the current system is 
working fine. The time investment required to tidy up things with the 
wiki to make it transparent to the user, to use wiki templates instead 
of the xml ones, to fix formatting errors with inner links and tables, 
would be costly.


But now that we have the discussion going. Those points that you 
mentioned are interesting (RSS/Atom would be amazing).




(Please don’t think that I’m overly negative, I’m just writing down some
quick thoughts)



Not at all. I'm not invested in this. This is the result of me fooling 
around for a week.









[Standards] wiki for xeps

2015-03-28 Thread Jefry Lagrange


Hello everyone,

I found myself thinking about the process of proposing and editing xeps 
that the xsf implements. I think there are some improvements that could 
be made in order to make the process easier.


These are the main areas which I think are problematic with the current 
way of doing things:


 * git has a learning curve.
 * xml has a learning curve.
 * scripts are necessary to convert the xml to readable documents.
 * Everything is tracked in the same project (scripts, templates,
   xeps). XEPs aren't tracked as individual projects.

These problems aren't that grave, after all, most of us are developers. 
However, I think it is worthwhile to explore alternatives to make it easier.


I spent the past week working on a wiki page that closely resembles the 
look and feel of xeps.


Here is the url: http://jlagrange.net/wiki/index.php/Category:Extensions

In that week, I learned that by developing your own mediawiki skins and 
extensions, you are able to make a wiki look however you like.


Because wikis were made specifically to track and modify documents, they 
have some features could be useful for us.


 * view and compare history of changes online
 * user management to allow authors to modify their xeps and nothing
   more. Or to allow trusted users to help Peter.
 * rss of changes
 * easier to edit and see the results without using scripts to convert
   it to html
 * discussion pages for each xep

At the very least it could serve a way to make quick prototypes and get 
feedback.


--

Jefry Lagrange




Re: [Standards] Proposed XMPP Extension: File Information Sharing

2012-11-28 Thread Jefry Lagrange



On 11/28/2012 05:00 AM, Sergey Dobrov wrote:
I still think that reusing of service discovery to discover shared 
files as it was in the XEP-135 is better. jabber:iq:search can be 
reused there too.


Well, like I said, I've been trying to do this extension for a year now. 
In that time there have been plenty of drafts that use XEP-135. Every 
draft I made have tradeoffs, so there is no perfect solution.


I really don't mind what shape the extension has, as long as the 
functionality remains the same. If this one gets rejected, I will make 
another one using XEP-135.




Also, it seems that there is a mistake in the regex here:

validate xmlns='http://jabber.org/protocol/xdata-validate'
  datatype='xs:string'
regex*.png/regex
/validate


Yea, I used glob because I didn't have time to learn the one that the 
xep uses. Do could you provide me with the right regex?


On 11/28/2012 12:57 AM, XMPP Extensions Editor wrote:

The XMPP Extensions Editor has received a proposal for a new XEP.

Title: File Information Sharing

Abstract: This document specifies a simple extension to existing 
protocols that allows an entity to request information about files.


URL: http://xmpp.org/extensions/inbox/fis.html

The XMPP Council will decide in the next two weeks whether to accept 
this proposal as an official XEP.








Re: [Standards] File sharing xep proposal

2012-11-15 Thread Jefry Lagrange
This is certainly easier. If this extension gets rejected, I will 
definitely try to use xep-0135 instead.


On 11/12/2012 04:14 AM, Sergey Dobrov wrote:
So I suggest to keep XEP-0135 as is and just add ability to retrieve 
files via Jingle and to perform a search through ad-hoc commands.


On 11/09/2012 03:26 PM, Sergey Dobrov wrote:

On 11/09/2012 03:17 AM, Matthew Wild wrote:

On 8 November 2012 18:41, Sergey Dobrov bin...@jrudevels.org wrote:

On 11/09/2012 12:51 AM, Jefry Lagrange wrote:
I have tried many different ways of making the protocol. The first 
time
around, I modified xep0135 to include search capabilities. Someone 
told

me, I think it was Matthew, that xep0135 abuses service discovery by
using it too much.  Also another thing that I noticed is that,
data-forms make the xep0135 stanzas become really big, as they waste
too
much space.


I actually don't understand hot is it possible to abuse service
discovery.
Maybe someone can explain?


I believe the thread Jefry references is this one:
http://mail.jabber.org/pipermail/standards/2011-November/025456.html


ah, it seems that Jefrey was confused with the overload and abuse
terms. So I still think that it would be better to keep files
directories in the service discovery, just we need another way to do
search queries. I believe that the same thing Matthew actually said in
those thread.



Regards,
Matthew









Re: [Standards] File sharing xep proposal

2012-11-08 Thread Jefry Lagrange

Hi

On 11/08/2012 03:20 AM, Sergey Dobrov wrote:

Hello Jefry,

Thank you for the HTML version you provided.

That wasn't me, thank Matthew for converting it and hosting it in his 
website.



The problem is very actual so thank you for your interest too.

The first thing is that I think that the XEP-0135 
(http://xmpp.org/extensions/xep-0135.html) way of browsing files is 
nicer because it reuses service discovery in very natural way. :) But 
the search compatibilities you provided in your XEP are nice too, but 
I think that queries should be improved though.


I have tried many different ways of making the protocol. The first time 
around, I modified xep0135 to include search capabilities. Someone told 
me, I think it was Matthew, that xep0135 abuses service discovery by 
using it too much.  Also another thing that I noticed is that, 
data-forms make the xep0135 stanzas become really big, as they waste too 
much space.


For those reasons, I decided to move away from xep0135 and instead of 
using dataforms, use the well known file stanzas as defined in xep096 
and xep0234.


In what way do you think that  the queries could be improved?


The other thing I noticed is that you saying the the client MUST 
respond with the list of files if it was queried to do so. I don't 
think it's right because there are many conditions when client might 
decide not to do so: permissions control, bandwith control, etc.


Maybe it wasn't clear in the xep, I will check the writing. Basically if 
you don't have or want to share any files you just reply with a:


 match
offer
directory/
/offer
 /match


Thanks for your feedback.



On 11/06/2012 08:19 AM, Jefry Lagrange wrote:


Hello,

I've been working for quite some time in a protocol extension to allow
file sharing. I have a (some-what) working prototype of its 
implementation.


The prototype is available at Gajim's plugin repository:
http://hg.gajim.org/gajim-plugins

It doesn't do a lot, but it can share files between computers. Although
the code is in alpha stage everyone who is brave enough is welcomed to
try it.

I have attached  a draft of the protocol extension. I would like some
feedback on it. If it doesn't looks too bad, I would like to present it
to the council by the end of the week.

Cheers,







Re: [Standards] File sharing xep proposal

2012-11-07 Thread Jefry Lagrange
Sorry, I don't know how to do that. Apparently there is a script for it 
gen.py, but I don't know how to use it and it finds some syntax errors 
that I don't know how to fix.


On 11/07/2012 02:59 AM, Sergey Dobrov wrote:

Could you attach rendered html version please?

On 11/06/2012 08:19 AM, Jefry Lagrange wrote:


Hello,

I've been working for quite some time in a protocol extension to allow
file sharing. I have a (some-what) working prototype of its 
implementation.


The prototype is available at Gajim's plugin repository:
http://hg.gajim.org/gajim-plugins

It doesn't do a lot, but it can share files between computers. Although
the code is in alpha stage everyone who is brave enough is welcomed to
try it.

I have attached  a draft of the protocol extension. I would like some
feedback on it. If it doesn't looks too bad, I would like to present it
to the council by the end of the week.

Cheers,







Re: [Standards] File sharing xep proposal

2012-11-06 Thread Jefry Lagrange

Hello Matthew, thanks for the feedback.

On 11/05/2012 11:06 PM, Matthew Wild wrote:

Hi Jefry,

On 6 November 2012 01:19, Jefry Lagrangejefry.re...@gmail.com  wrote:

Hello,

I've been working for quite some time in a protocol extension to allow file
sharing. I have a (some-what) working prototype of its implementation.

Great to hear! I can think of a million-and-one uses for such a
protocol, and I'm sure I'm not alone.


The prototype is available at Gajim's plugin repository:
http://hg.gajim.org/gajim-plugins

and running code is always good :)

I read very quickly through (it's 4am after all...), and it seems
pretty sensible. Any comments I have are minor, and I think it's
perfectly fine to submit it as it is.

A few of my comments...

It seems like it might be possible to make the directory listing XML
somewhat more compact than it currently is. For example just listing
files with no metadata could simply be:

file name=foo.txt/
file name=bar.txt/

which seems a lot simpler than the nested XML elements in the example.
Metadata can be child elements offile/  because although every file
has a name, metadata may vary and will almost certainly want to be
extended in some cases.
Yeah, about that... I wanted to reuse current extensions whenever 
possible. This format for file is the same in xep096 and xep234. I see 
what you are saying, it is indeed more compact and saving bandwidth in a 
situation where big stanzas are sent, is very important.


At first I considered the dataforms as they are used in xep0135, but 
they were too big to be used efficiently. I definitely favor making this 
as compact as possible.

I'm not sure how necessary it is to require the leading '/' prefix, it
seems natural to omit it if I just have a flat list of files. And then
'foo/bar.txt' is perfectly fine when I don't, so it seems like it
could be dropped without much problem.
Does it look weird? The only reason why I made it a requirement to use a 
leading '/' was to make it possible to distinguish between asking for 
more information on a file or directory, and searching for a file. When 
searching files there should not be a / prefix. I don't know of any 
other way of doing this.


Dataforms would be very good for searching, since they support regular 
expressions. However, as I said before, they can get pretty big.


I would like to listen to some ideas about how search could be 
accomplished in a nice way.



The security note about access control being implemented on servers
doesn't make complete sense. Files are shared by a specific resource,
so each resource can enforce its own access controls... and different
resources won't necessarily be sharing the same sets of files. A
logged in client generally already has the roster, which is probably
the main access control advantage that the server could offer anyway.


Ah... I didn't make it clear. What I was thinking about was not about 
individual file permissions, it was about preventing an user to see any 
files at all. Blocking an user from file sharing, would require 
agreement across the different resources so they can agree about no 
sharing files with that particular user.


I know realize that this is more of an implementation issue than a 
security issue, I should move it to implementation notes, because it 
is up to the implementers if they want to add a feature to block an user 
from all file sharing.




Anyway, good work... and I look forward to it being approved soon, and
perhaps implementing it myself :)

Regards,
Matthew


Thanks.


[Standards] File sharing xep proposal

2012-11-05 Thread Jefry Lagrange


Hello,

I've been working for quite some time in a protocol extension to allow 
file sharing. I have a (some-what) working prototype of its implementation.


The prototype is available at Gajim's plugin repository: 
http://hg.gajim.org/gajim-plugins


It doesn't do a lot, but it can share files between computers. Although 
the code is in alpha stage everyone who is brave enough is welcomed to 
try it.


I have attached  a draft of the protocol extension. I would like some 
feedback on it. If it doesn't looks too bad, I would like to present it 
to the council by the end of the week.


Cheers,


?xml version='1.0' encoding='UTF-8'?
!DOCTYPE xep SYSTEM 'xep.dtd' [
  !ENTITY % ents SYSTEM 'xep.ent'
%ents;
]
?xml-stylesheet type='text/xsl' href='xep.xsl'?
xep
header
  titleFile Information Sharing/title
  abstractThis document specifies a simple extension to existing protocols that allows an entity to request information about files./abstract
  LEGALNOTICE;
  number/number
  statusProtoXEP/status
  typeStandards Track/type
  sigStandards/sig
  approverCouncil/approver
  dependencies
specXMPP Core/spec
specXEP-0234/spec
specXEP-0059/spec
specXEP-0265/spec
  /dependencies
  supersedes
specXEP-0135/spec
  /supersedes
  shortnamefis/shortname
  author
  firstnameJefry/firstname
  surnameLagrange/surname
  emailjefry.re...@gmail.com/email
  jidj.lagra...@jabber.org/jid
  jidj.lagra...@gajim.org/jid
  /author
  revision
version0.0.1/version
date2012-10-14/date
initialsjl/initials
remarkFirst draft/remark
  /revision
/header
section1 topic='Introduction' anchor='intro'
  pXMPP extensions provide ways of transferring files between peers (such as xep0234; and xep0096;). However, file transfer is currently limited to needing that the transfer be initiated by the hosting entity. The xep0234; extension, provides for a way to request files, but it requires the requesting entity to have information about the file being requested, so that it can be uniquely identified. /p
pThis documents defines an extension which allows the request of information of files being offered by a hosting entity so they can later be requested in a file transfer; If the requesting entity is interested in the file./p
pIRC users have been able to bypass the limitations of the protocol by using bots that provide information of files and initiate transfer on command. A major downside of this method is that not every user is capable of sharing its files. The aim of this document is to provide a similar functionality while making it easier for users to offer and request information about files. /p
pMicrosoft's MSN proprietary IM client, used to provide similar functionality using Sharing Folders, but this was replaced by Windows Live SkyDrive /p
/section1
section1 topic='Requirements' anchor='reqs'
  ol
liEnable a requesting entity to traverse the shared directory of an offering entity (REQUIRED)/li
liEnable a requesting entity to get detailed information about files. (REQUIRED)/li
   liEnable a requesting entity to search files hosted by an offering entity.(OPTIONAL)/li
liAllow the use of MUCs to share information about files among the users.(OPTIONAL)/li
!--liAllow the use of Pub/Sub service to search files (OPTIONAL)/li --
  /ol
/section1
section1 topic='Assumptions' anchor='assump'
!-- Maybe make this into a list --
p This protocol assumes the existence of a shared directory (either virtual or physical), whose root can be accessed by /. The hosting entity must not advertise empty directories. The hosting entity is responsible of maintaining the structure of that directory (such as not allowing two files with the same name and preventing cycles within directories). The hosting entity is in no way required to present the same shared directory to different requesters./p
/section1
section1 topic='Getting Information About Files ' anchor='disco'
  section2 topic='Traversing Files' anchor='traver'
  pIf a requesting entity wishes to traverse the shared folder of an offering entity. It can do so by querying the root directory as it is shown in the following example:/p
  example caption='Requester queries the root of the shared folder'
![CDATA[
iq type='get'
from='jul...@capulet.com/chamber'
to='ro...@montague.net/home'
id='1234'
match
request
directory/
/request
/match
/iq
]]
  /example
  p If the offering entity has files to share, it MUST respond with the root-level files of its shared folder. Files and directories at the root level MUST not be the child of any directory tag. In order to save bandwidth, the offering entity MAY omit all the children of the file tag except the name which is required and MUST always be present.
  /p
  pThe file tag has the same attributes as defined in xep0096;. The name attribute is required and must be included in every response. The size attribute is only required when 

Re: [Standards] LAST CALL: XEP-0297 (Stanza Forwarding)

2012-08-22 Thread Jefry Lagrange
I think is specification is needed. It serves a purpose and it might
be used by other xeps to propagate message (or request) through a
network of friends.

I don't think the use case with message is enough. It would be more
clear if it had an use case with an IQ. It is not clear how one should
respond to a forwarded IQ.

Another question would be: Is it possible to bypass the middle man,
once you get the forwarded stanza (in case you need to reply)?


On Wed, Aug 22, 2012 at 7:04 PM, XMPP Extensions Editor edi...@xmpp.org wrote:
 This message constitutes notice of a Last Call for comments on XEP-0297 
 (Stanza Forwarding).

 Abstract: This document defines a protocol to forward a stanza from one 
 entity to another.

 URL: http://xmpp.org/extensions/xep-0297.html

 This Last Call begins today and shall end at the close of business on 
 2012-09-07.

 Please consider the following questions during this Last Call and send your 
 feedback to the standards@xmpp.org discussion list:

 1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
 clarify an existing protocol?
 2. Does the specification solve the problem stated in the introduction and 
 requirements?
 3. Do you plan to implement this specification in your code? If not, why not?
 4. Do you have any security concerns related to this specification?
 5. Is the specification accurate and clearly written?

 Your feedback is appreciated!



-- 
Jefry Lagrange


Re: [Standards] File hosting XEP?

2012-08-14 Thread Jefry Lagrange
 Sure, but how client will upload it's attachments? I can do it in a
 client-specific way, but then others will not be able to implement the
 same thing.


If I understand correctly, what you want to do is to attach files to a
microblog post. Since you can use Out of Band Data for that, you can
upload the file out of band without the need of xmpp e.g. uploading it
to an FTP.

True, the client has to be modified to support this, but since it
isn't covered in any XEP afaik, you would have to modify it anyway.

Therefore, your client will be able to upload files while other
clients will not until their devs deem it a necessary feature.

On Tue, Aug 14, 2012 at 9:04 AM, Sergey Dobrov bin...@jrudevels.org wrote:
 On 08/14/2012 07:47 PM, Todd Herman wrote:
 -Original Message-
 From: standards-boun...@xmpp.org [mailto:standards-boun...@xmpp.org] On 
 Behalf Of Sergey Dobrov
 Sent: Tuesday, August 14, 2012 4:44 AM
 To: standards@xmpp.org
 Subject: [Standards] File hosting XEP?

 Hello all, hope you are all good.

 Me and Jaussoin Timothée faced with a problem to attach files to microblog 
 posts. The easier way to do that is to serve files somewhere and link to 
 them from the posts. But what is the appropriate way to do that?

 Having files somewhere and linking to them sounds a lot like Out-Of-Band 
 Data (XEP-0066).  It covers the linking part (mainly used in SI File 
 Transfers and Message stanzas) and leaves the transferring of the files and 
 how they are stored on the server to you.

 Sure, but how client will upload it's attachments? I can do it in a
 client-specific way, but then others will not be able to implement the
 same thing.


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




-- 
Jefry Lagrange


Re: [Standards] [XEP-0234] File checking in JingleFT

2011-12-12 Thread Jefry Lagrange
I was thinking that maybe we propose a separate XEP for file checking.
Still, some changes should have to be done to JingleFT such as
allowing range transfer reuse the session and add a limit attribute
in the range file transfer. So that it can send chunks of data (with
offset and limit).

On Thu, Dec 8, 2011 at 3:10 PM, Waqas Hussain waqa...@gmail.com wrote:
 On Thu, Dec 8, 2011 at 6:48 AM, Jefry Lagrange jefry.re...@gmail.com wrote:
 So far what I've read in the XEP-0234 doesn't say anything about file
 checking. I suppose, it is implied that once the comparing of the
 hashes takes place, the program has to inform the user of a possible
 file corruption and then restart the file transfer manually.

 This is very inefficient, and awkward (for the user). Instead of
 resending the whole file, we should be able to detect in which part of
 the file there is corruption and resend that part using ranged
 transfers (as defined in
 http://xmpp.org/extensions/xep-0234.html#range).

 There are various issues with this. In the current implementation of
 jingleFT, range file transfer have to initiate a new session in order
 to transfer the file from a given offset. Ideally, we would want to
 use the current session.

 Example:

 * initiator sends file
 * responder receives it
 * initiator communicates the hash
 * responder checks, and notices that the file is corrupt. Finds where
 the corruption took place (using techniques explained later)
 * responder ask for ranged file transfer over the same session (note:
 we haven't terminated the session).
 * initiator resends the requested part of the file

 I'm not sure that only providing an offset for as a range can
 accomplish this, it would be probably be a better idea to provide a
 range as a range. I might be wrong about this, I'm not sure.

 Now, the question is, how do we know which part of the file is corrupted?

 One way to go about this is using hash-lists. Which is the way
 bittorrent makes sure there isn't corruption in the files being
 transfered.

 Basically, what we do with this is that we send the file in parts. For
 each part the initiator will send an IQ with the hash of that file
 part. The responder will respond with a result IQ or an error. In case
 there is an error from part of the responder, the initiator will
 resend that part.

 Easy right? The problem with this algorithm is that it is too
 expensive. It makes sense using it in p2p programs, because a file may
 be share to other peers before it is completed. It doesn't make very
 much sense using this in XMPP, where there is usually just one sender
 and one receiver. But this technique is very illustrative and easy to
 understand.

 Another alternative technique that we can use is binary-hashing (I
 made the name up, I don't know what this is called). Using this
 technique we will wait until the file is transfered as usual, then
 when we check the hashes if there is a mismatch we will splice the
 file in two parts, take the hash of both parts and ask the initiator
 for confirmation on those hashes, if one mismatches, that should tell
 us that the corrupt part is, and we continue repeating this process
 until the parts are small enough for them to be reasonable resent. If
 the file is small enough to being with, then we can skip this.

 The cost (in terms of computation) of this technique might be greater
 than hash-list. But the overall cost is many times smaller than
 hash-list, because we only need to use this if we find that the file
 is corrupt, which is an unlikely event.

 I would love to know what you guys think of this.

 --
 Jefry Lagrange

 I have always been interested in ranged transfers, and verification.
 I'm not sure how much interest there is in general XMPP community
 though.

 The way bittorrent and other file sharing protocols have been doing
 this for ages is quite interesting, and efficient.

 Here's is the specification of data contained in a bittorrent file:
  http://www.bittorrent.org/beps/bep_0003.html#metainfo-files-are-bencoded-dictionaries-with-the-following-keys

 And what you called 'binary-hashing' are Merkel trees, or Hash trees.
  http://en.wikipedia.org/wiki/Hash_tree

 A bittorrent extension for merkel trees was defined two years ago:
  http://www.bittorrent.org/beps/bep_0030.html

 In bittorrent, the size of a block of data is defined in the torrent
 file, specific to that torrent. A common size is 512KB.

 For a 1GB transfer, this would be 2048 blocks of 512KB each. Given
 SHA-1 as hash, this would be 20*2048 = 40KB of hashes. 53.3KB with
 base-64 encoding. Your suggested hash tree may be twice that size, at
 106.67KB, or it can be just 53.3KB by keeping hashes in all levels of
 the tree, not just leaves. See how BEP-0030 does it.

 A 1TB file though would have 53.3MB of hashes.. and just think how
 many IQs it would take if you are requesting subsection hashes, and
 how much CPU and I/O time it would take if you are calculating hashes
 of parts independently

Re: [Standards] UPDATED: XEP-0300 (Use of Cryptographic Hash Functions in XMPP)

2011-12-06 Thread Jefry Lagrange
Well, I think the problem that xep-300 pretends to fix, can easily be
fixed by changing the XEPs that make use of hashes. If a XEP is using
a hash algorithm that has been deprecated or is insecure, that XEP
should be updated to mandate the discontinuation of such algorithm in
clients.

Hash algorithms don't deprecated as often, and using XEP-0300 would
lead to a slower adoption of newer hash algo.

For example:

Client A sends file to Client B
Client B is updated to use the most secure hash available
Client A has a deprecated version of the hash
Client B negotiates using XEP-300 and ends up using the less secure hash
File transfer is successful


This case would lead to a slower adoption of more secure technology.

A negotiation makes sense in a lot of cases, for IBB or Socks5. But
negotiating for hashes makes no sense because the implementation is as
easy as changing a couple of lines of code. That's why it should be
mandated to use the most secure and updated algorithm, and as I said,
hashes don't deprecate frequently so that approach would be less
inconvenient than xep-300.

Now, I understand that there might be some ambiguity on which hashes
are being use. I personally think that the attribute hash should
never be used, instead md5 or sha1 should be used.

P.S: I realized half way through that XEP-0300 is not negotiating, but
instead is discovering support of hashes of the clients. Still, my
point stands. It doesn't change anything.

On Mon, Dec 5, 2011 at 5:32 PM, Peter Saint-Andre stpe...@stpeter.im wrote:
 On 12/5/11 3:16 PM, XMPP Extensions Editor wrote:
 Version 0.2 of XEP-0300 (Use of Cryptographic Hash Functions in XMPP) has 
 been released.

 Abstract: This document provides recommendations for the use of 
 cryptographic hash functions in XMPP protocol extensions.

 Changelog: Updated to reflect initial analysis of existing XMPP protocol 
 extensions. (psa)

 Diff: http://xmpp.org/extensions/diff/api/xep/0300/diff/0.1/vs/0.2

 URL: http://xmpp.org/extensions/xep-0300.html

 Folks, I started to look at XEP-0300 in relation to existing extensions.
 Please review my work so far, and do your own thinking about how useful
 (or not useful) XEP-0300 is.

 Peter

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





-- 
Jefry Lagrange


Re: [Standards] Proposed changes to XEP-0135

2011-11-28 Thread Jefry Lagrange
Thanks for your response. ;-)

I'm not sure it's a good idea to overload the disco request this way.
Perhaps having the filter in a separate namespace would be ok, but I
think perhaps it would be better to use another protocol for this.


Yeah, I wasn't sure about it either. But this way is at least
consistent with what the XEP says about asking for file information.

The XEP currently uses disco requests extensively in section 4 and 5.
If disco overuse is a problem, wouldn't it be better to stop using it
in those sections as well?

Alternatively we could use a new stanza, like match /match, with a
new namespace. But it wouldn't be consistent. We would want to keep
requesting file list and requesting file information, within the
same namespace as finding specific files.

The filter I propose has no new elements. Everything is reused from
XEP-122. A new extension for it would be small, and it wouldn't
contain new information.


Cheers,

On Mon, Nov 28, 2011 at 9:41 AM, Matthew Wild mwi...@gmail.com wrote:
 On 27 November 2011 03:50, Jefry Lagrange jefry.re...@gmail.com wrote:
 Hi, I been working on some changes to XEP-0135.

 * Replacing SI file transfer with jingle FT

 Good :)

 * Replacing section 6, with a link pointing to section 5 of XEP-0234,
 which already covers the same function.

 Makes sense.

 * Adding support for pubsub, only for finding files using the method I
 introduce bellow. It doesn't make much sense to traverse the directory
 of every user subscribed to a pubsub, but it will make a lot of sense
 searching for specific files. (XEP-0137 does not suffice for this)

 Agreed.

 5.5 Finding Specific Files

 Finding files by asking for a file list is not very practical if there
 are too many files being shared. It is very resource intensive and it
 is understood that the user may not be interested in all of the files,
 but rather he or she would be interested in finding one specific file
 or one specific kind of file (text, image or videos).

 In order to do this, the identity stanza is used to match files by one
 or more fields i.e. 'name', 'date', 'size', etc...

 Example XX. Finding Specific Files

 iq type='get'
    from='ha...@shakespeare.lit/pda'
    to='darkc...@shakespeare.lit'
    id='find45'
  query xmlns='http://jabber.org/protocol/disco#info'
         node='files'
     identity category='filesys' type='file' name='file1' /
  /query
 /iq


 I'm not sure it's a good idea to overload the disco request this way.
 Perhaps having the filter in a separate namespace would be ok, but I
 think perhaps it would be better to use another protocol for this.

 Example XX. Finding files using Regular Expressions


 Another useful feature, but I even more strongly feel this shouldn't
 be done over disco.

 Any feedback would be greatly appreciated, I just want to know if I am
 on the right track here.

 Absolutely, I'd love to see this spec revived. I look forward to
 seeing a new XEP draft :)

 Regards,
 Matthew




-- 
Jefry Lagrange


[Standards] Proposed changes to XEP-0135

2011-11-26 Thread Jefry Lagrange
Hi, I been working on some changes to XEP-0135.

* Replacing SI file transfer with jingle FT

* Replacing section 6, with a link pointing to section 5 of XEP-0234,
which already covers the same function.

* Adding support for pubsub, only for finding files using the method I
introduce bellow. It doesn't make much sense to traverse the directory
of every user subscribed to a pubsub, but it will make a lot of sense
searching for specific files. (XEP-0137 does not suffice for this)

For example:

A user is subscribed to the books pubsub channel. It sends a query,
looking for a book Romeo and Juliet - By Shakespeare. The
subscribers reply if they get a match with information about their
files. The initiator requests the file from whoever has what he wants
and file transfer starts.


* A new section should be added to cover finding files by providing a
criteria, instead of just asking for all the files.

For example:

5.5 Finding Specific Files

Finding files by asking for a file list is not very practical if there
are too many files being shared. It is very resource intensive and it
is understood that the user may not be interested in all of the files,
but rather he or she would be interested in finding one specific file
or one specific kind of file (text, image or videos).

In order to do this, the identity stanza is used to match files by one
or more fields i.e. 'name', 'date', 'size', etc...

Example XX. Finding Specific Files

iq type='get'
from='ha...@shakespeare.lit/pda'
to='darkc...@shakespeare.lit'
id='find45'
  query xmlns='http://jabber.org/protocol/disco#info'
 node='files'
 identity category='filesys' type='file' name='file1' /
  /query
/iq


The fields in the identity stanza, are optional, but at least one
field MUST be provided. In this example, the responders will match its
files looking for the file names that contain 'file1' and are of the
size 1024..

Example XX. Returning with Matched Files

iq type='result'
from='darkc...@macbeth.shakespeare.lit'
to='ha...@shakespeare.lit/pda'
id='find45'
  query xmlns='http://jabber.org/protocol/disco#info'
 node='files/somefile'
identity category='filesys' type='file' name='file1'
hash='552da749930852c69ae5d2141d3766b1'/
  /query
/iq


A responding entity MUST include the name and the hash of the file.
Since more than one responder may respond with the same file, it is
strongly suggested that the initiator makes use of ranged file
transfers (as defined in XEP-0234), to speed up the file transfer.

Example XX. Finding files using Regular Expressions

Regular expressions may be use to find files that match the
expression. One or more fields can be used. The label attribute is
optional.

iq type='get'
 from='ha...@shakespeare.lit/pda'
to='darkc...@shakespeare.lit'
id='find46'
query xmlns='http://jabber.org/protocol/disco#info'
 node='files'
 identity category='filesys' type='file' name='file1'/
x xmlns='jabber:x:data' type='get'
field var='ssn' type='text-single' label='Social Security Number'
regex([0-9]{3})-([0-9]{2})-([0-9]{4})/regex
  /field
  /query
/iq

The XML character data of this element is the pattern to apply. The
syntax of this content MUST be that defined for POSIX extended regular
expressions, including support for Unicode.

The regex/ element MUST contain character data only (i.e., not
contain any child elements) and MUST NOT possess any attributes.


Any feedback would be greatly appreciated, I just want to know if I am
on the right track here.


-- 
Jefry Lagrange


Re: [Standards] XEP-198 when to start counting?

2011-06-18 Thread Jefry Lagrange
Thanks, I can't believe I missed that. It is clear now.

On Fri, Jun 17, 2011 at 2:00 PM,  standards-requ...@xmpp.org wrote:
 Send Standards mailing list submissions to
        standards@xmpp.org

 To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.jabber.org/mailman/listinfo/standards
 or, via email, send a message with subject or body 'help' to
        standards-requ...@xmpp.org

 You can reach the person managing the list at
        standards-ow...@xmpp.org

 When replying, please edit your Subject line so it is more specific
 than Re: Contents of Standards digest...


 Today's Topics:

   1. XEP-198 when to start counting? (Jefry Lagrange)
   2. Re: XEP-198 when to start counting? (Matthew Wild)
   3. Re: XEP-198 when to start counting? (Peter Saint-Andre)
   4. Re: XEP-198 when to start counting? (Matthew Wild)
   5. Re: XEP-198 when to start counting? (Peter Saint-Andre)


 --

 Message: 1
 Date: Fri, 17 Jun 2011 13:25:18 -0400
 From: Jefry Lagrange jefry.re...@gmail.com
 Subject: [Standards] XEP-198 when to start counting?
 To: standards@xmpp.org
 Message-ID: BANLkTi=rc_ey+kcnwxrt14yho-pllmj...@mail.gmail.com
 Content-Type: text/plain; charset=ISO-8859-1

 When I test stream management with a prosody server, this happens:

 !-- Out --
 enable xmlns=urn:xmpp:sm:2 resume=true /

 !-- Out --
 iq type=set id=2
 session xmlns=urn:ietf:params:xml:ns:xmpp-session /
 /iq

 !-- In --
 enabled id='a8110118-42ec-485c-b386-85b2d12a02a1' resume='true'
 xmlns='urn:xmpp:sm:2'/

 !-- Out --
 r xmlns=urn:xmpp:sm:2 /

 !-- In --
 iq id='2' type='result'
 to='jt...@thiessen.im/919aece2-21f2-4fc4-9e02-ac522509_'/
 r xmlns='urn:xmpp:sm:2'/

 !-- Out --
 a xmlns=urn:xmpp:sm:2 h=1 /



 The client sent an IQ stanza before it received confirmation for SM
 negotiation enabled /. When should I start counting? When I send
 enable / or when I receive enabled /?

 Also in the XEP document, section 11.3 Stream Features. It says that
 The XMPP Registrar includes 'urn:xmpp:sm:3' in its registry of stream
 features at http://xmpp.org/registrar/stream-features.html. But at
 that URL you can't find 'urn:xmpp:sm:3', only 'urn:xmpp:sm:2' is
 there.



 --
 Jefry Lagrange


 --

 Message: 2
 Date: Fri, 17 Jun 2011 18:37:15 +0100
 From: Matthew Wild mwi...@gmail.com
 Subject: Re: [Standards] XEP-198 when to start counting?
 To: XMPP Standards standards@xmpp.org
 Message-ID: BANLkTi=jj4wwxm9cn_i2zfwlvth2utb...@mail.gmail.com
 Content-Type: text/plain; charset=UTF-8

 On 17 June 2011 18:25, Jefry Lagrange jefry.re...@gmail.com wrote:
 When I test stream management with a prosody server, this happens:

 !-- Out --
 enable xmlns=urn:xmpp:sm:2 resume=true /

 !-- Out --
 iq type=set id=2
 session xmlns=urn:ietf:params:xml:ns:xmpp-session /
 /iq

 !-- In --
 enabled id='a8110118-42ec-485c-b386-85b2d12a02a1' resume='true'
 xmlns='urn:xmpp:sm:2'/

 !-- Out --
 r xmlns=urn:xmpp:sm:2 /

 !-- In --
 iq id='2' type='result'
 to='jt...@thiessen.im/919aece2-21f2-4fc4-9e02-ac522509_'/
 r xmlns='urn:xmpp:sm:2'/

 !-- Out --
 a xmlns=urn:xmpp:sm:2 h=1 /



 The client sent an IQ stanza before it received confirmation for SM
 negotiation enabled /. When should I start counting? When I send
 enable / or when I receive enabled /?


 When you send enable/, if you're going to send stanzas before you
 receive enabled/.

 The XEP says this:

 
 The value of 'h' starts at zero at the point stream management is
 enabled or requested to be enabled, is incremented to one for the
 first stanza handled, and is incremented by one again with each
 subsequent stanza handled.
 

 ...which isn't too decisive, to say the least :)

 You should definitely start counting from when you send enable/,
 because it is from receiving that that the server starts counting on
 its end and because it has no idea at what time you, the client,
 receive the enabled/.

 Also in the XEP document, section 11.3 Stream Features. It says that
 The XMPP Registrar includes 'urn:xmpp:sm:3' in its registry of stream
 features at http://xmpp.org/registrar/stream-features.html. But at
 that URL you can't find 'urn:xmpp:sm:3', only 'urn:xmpp:sm:2' is
 there.


 Probably a communications failure between the XEP Editor and the XMPP
 Registrar :)

 Regards,
 Matthew


 --

 Message: 3
 Date: Fri, 17 Jun 2011 11:40:41 -0600
 From: Peter Saint-Andre stpe...@stpeter.im
 Subject: Re: [Standards] XEP-198 when to start counting?
 To: XMPP Standards standards@xmpp.org
 Message-ID: 4dfb9199.7050...@stpeter.im
 Content-Type: text/plain; charset=utf-8

 On 6/17/11 11:37 AM, Matthew Wild wrote:
 On 17 June 2011 18:25, Jefry Lagrange jefry.re...@gmail.com wrote:
 When I test stream management with a prosody server, this happens:

 !-- Out --
 enable xmlns=urn:xmpp:sm:2 resume=true /

 !-- Out --
 iq type=set id=2
 session xmlns=urn:ietf:params:xml:ns:xmpp

[Standards] XEP-198 when to start counting?

2011-06-17 Thread Jefry Lagrange
When I test stream management with a prosody server, this happens:

!-- Out --
enable xmlns=urn:xmpp:sm:2 resume=true /

!-- Out --
iq type=set id=2
session xmlns=urn:ietf:params:xml:ns:xmpp-session /
/iq

!-- In --
enabled id='a8110118-42ec-485c-b386-85b2d12a02a1' resume='true'
xmlns='urn:xmpp:sm:2'/

!-- Out --
r xmlns=urn:xmpp:sm:2 /

!-- In --
iq id='2' type='result'
to='jt...@thiessen.im/919aece2-21f2-4fc4-9e02-ac522509_'/
r xmlns='urn:xmpp:sm:2'/

!-- Out --
a xmlns=urn:xmpp:sm:2 h=1 /



The client sent an IQ stanza before it received confirmation for SM
negotiation enabled /. When should I start counting? When I send
enable / or when I receive enabled /?

Also in the XEP document, section 11.3 Stream Features. It says that
The XMPP Registrar includes 'urn:xmpp:sm:3' in its registry of stream
features at http://xmpp.org/registrar/stream-features.html. But at
that URL you can't find 'urn:xmpp:sm:3', only 'urn:xmpp:sm:2' is
there.



-- 
Jefry Lagrange


[Standards] Resuming after or before binding?

2011-06-09 Thread Jefry Lagrange
Hi! I'm implementing XEP-198, and it says that negotiation is done
only after authentication and binding, which is fine. But at the time
of resumption I don't know if I should start it after authentication
and binding or only after authentication. The document at
http://xmpp.org/extensions/xep-0198.html is not very explicit about
it.

Thanks.


--
Jefry Lagrange



-- 
Jefry Lagrange