XSF Discussion - 2014-03-27


  1. Ge0rG

    somebody needs to write an anti-spam proof-of-work XEP based on dogecoin for next week.

  2. simon@imaginator.com

    much wow!

  3. intosi

    Ge0rG: thanks for volunteering :)

  4. Ge0rG

    in the context of http://arstechnica.com/security/2014/03/apps-with-millions-of-google-play-downloads-covertly-mine-cryptocurrency/ it would make a great prank for yaxim :>

  5. Ge0rG

    intosi: I never have written an XEP before, but I would try if there is a "writing XEPs for dummies" kind of resource

  6. Zash

    Ge0rG: Something like {xep 143} perhaps?

  7. Bunneh

    Ge0rG: XEP-0143: Guidelines for Authors of XMPP Extension Protocols is Procedural (Active, 2011-07-08) See: http://xmpp.org/extensions/xep-0143.html

  8. Ge0rG

    Zash: perhaps, yeah.

  9. Ge0rG

    not sure if I will be able to comply with all these points within the next five days, though

  10. ralphm

    hey Kev, was missing you here

  11. Kev

    Here now :)

  12. ralphm

    I read back on the room history. Regarding node identifiers, on principle I still believe they should be opaque. I know we have the exception with auto-subscribe / caps. I don't know how that interacts with your ideas.

  13. Kev

    ralphm: Ah, thanks. Opaque to what, thought?

  14. Kev

    To the server or the client?

  15. ralphm

    Kev: well, I'm kinda ok if it has some meaning for a particular application

  16. Kev

    I think that's what I'm implying.

  17. ralphm

    but on the protocol level it should remain opaque

  18. Kev

    To the server it's just opaque as always.

  19. ralphm

    ok, just making sure

  20. Kev

    But the applications will construct the nodes in a known way.

  21. Kev

    *node ids

  22. ralphm

    I still have horrible memories of how ejabberd implemented pubsub with node identifiers that included the owner's JID

  23. Kev

    And could use the id of the template node to get the id of the publishing node.

  24. ralphm

    Our usage of pubsub nodes at Mediamatic also gave them an application-specific structure. That's fine.

  25. ralphm

    Problems rise when different applications share the same nodeid namespace, where node identifiers have some meaning.

  26. ralphm

    This is also why I think that eventually you don't want generic pubsub services for such applications.

  27. ralphm

    We started out with one for Mediamatic, too, and quickly reimplemented it as a pubsub 'shell' around some business logic

  28. ralphm

    made my life so much easier

  29. Kev

    Right.

  30. Kev

    I think your Mediamatic needs were somewhat more advanced than the requirements for this.

  31. Kev

    This is fairly simple "get a bunch of form templates, let people submit completed forms".

  32. MattJ

    The problem is that there's no way for the pubsub service to indicate whether it's suitable for hosting forms

  33. MattJ

    Say I create an XMPP firewall whose configuration is exposed as pubsub nodes, and the node id represents namespaces to filter

  34. Kev

    MattJ: At least for my use case, that's fine. Configuring templates is an administrative function.

  35. MattJ

    That's the problem though, it's fine for you... but there's no way for a client to know when it's not fine

  36. MattJ

    and the form-fillers might find stuff they didn't expect when they look at the node

  37. Kev

    I'm not quite sure I understand the problem.

  38. Kev

    A form-filler will always be OK, because if the templates have been published, the foms will be published OK. Short of much silliness from admins trying to break things.

  39. MattJ

    In your case, yes

  40. Kev

    For a template publisher, I'm not sure that's any different to any other pubsub application. You can't just go publishing to a ~random pubsub service and hope you're allowed to do so.

  41. MattJ

    That's fair enough, yes... but what about form-fillers? Are they also configured with which pubsub services are safe to look for forms on?

  42. MattJ

    Because you mentioned automatically picking them up from disco

  43. Kev

    I'm using the presence of templates to indicate this.

  44. MattJ

    So the node exists with a name in a certain format *and* the item contains an element of a certain kind?

  45. Kev

    If the node id is in a given format, you can try to request templates from it.

  46. Kev

    If the template then isn't really a template, I guess you're not going to present it to the user, so not being able to publish it is irrelevant.

  47. Simon

    Could it be that adium.in has a script auto-checking their server on xmpp.net. EVERY single time I check the wall-of-shame, they are running a test.

  48. Ge0rG

    maybe the last test just never completed?

  49. xnyhps

    I'm not sure I'm comfortable with them using that name...

  50. Zash

    > Test started 2014-03-27 10:00:03 UTC 22 minutes ago.

  51. Simon

    I'm going to presume it's nothing to do with Adium?

  52. xnyhps

    Nope

  53. xnyhps

    That's adium.im

  54. Kev

    I assumed Simon had just typod :)

  55. Ge0rG

    there is a test going on for adium.in though

  56. intosi

    And it has SRV records for XMPP

  57. Zash

    And is running ejabberd

  58. Simon

    xynhps: what about hell-banning them with a 59minute long test that always results in an F?

  59. xnyhps

    Haha

  60. Simon

    I'm looking forward to Peter's promised cleanup of https://xmpp.net/directory.php#

  61. Simon

    imho that list should only be for A-grades.

  62. Ge0rG

    no yax.im on that list :(

  63. Simon

    MattJ: where did you get to with the public server directory that you mentioned during the Portland Summit?

  64. MattJ

    Nowhere I'm afraid, and it's going to be a while till I can resume

  65. intosi

    adium.in test seems to be automated.

  66. intosi

    https://xmpp.net/result.php?id=25275

  67. intosi

    That's yesterday, at 10:00 as well.

  68. Ge0rG

    oh, good idea. I will add all my servers for automated tests as well.

  69. intosi

    https://xmpp.net/result.php?id=25097

  70. intosi

    Etc.

  71. Ge0rG

    xnyhps: what about monetizinig that as a service? auto-test daily for $5/month?

  72. Simon

    I have a feeling they just want visibility in the list

  73. Ge0rG

    I wonder about adium.in: if StartTLS is required, why are there pre-TLS SASL methods on the list?

  74. Simon

    speaking of service monetisation and my question to MattJ, would anyone be interested in an XMPP component that they could fire off a "authenticate this new user with SMS" iq at, user gets SMS and clicks link, you get a real-ish user proof back from the component?

  75. Ge0rG

    Simon: generally a nifty thing, but not something that I would add to yax.im

  76. xnyhps

    Ge0rG: Aside from visibility, what's the point in scheduled retesting anyway? It's not like the test changes daily and people's configuration probably neither.

  77. Ge0rG

    xnyhps: I have tasked myself with modifying the config once a day, just for the sake of it. Didn't you?

  78. Simon

    I'm going to presume Ge0rG was being sarcastic.

  79. Simon

    :)

  80. Ge0rG is in the process of negotiating a good deal for yax.im, even though it is not $19bln

  81. Zash

    Ge0rG: ejabberd being silly? (re pre-tls sasl)

  82. Ge0rG

    Zash: ah, kay

  83. Zash

    With PLAIN before TLS too

  84. ralphm

    Kev: sorry I tuned out a bit, but I have the same concerns as MattJ. Purely conceptually, I don't like the idea of needing a heuristic based on node identifiers with a certain pattern and coincidently having particular types of items.

  85. Kev

    Well, it's not a heuristic, it's an algorithm.

  86. ralphm

    I'm abandoning all pragmatism in my argument.

  87. ralphm

    Kev: I disagree about it being an algorithm.

  88. ralphm

    Ignoring implementation details like generic v.s. app-specific pubsub server, I'd want to just use disco to find out of a thing is what I'm looking for.

  89. Kev

    Which is exactly what happens.

  90. Kev

    Or what I'm proposing.

  91. ralphm

    We used to have a push side in XEP-0030, but abandoned that in favor of pubsub. Going back to the discussion earlier, I might agree that generic pubsub services would need to be able to accept custom node config fields.

  92. ralphm

    Kev: I'm talking about using disco#info to find that a 'form endpoint' or whatever you want to call it.

  93. ralphm

    (... that a node is ...)

  94. Kev

    But we don't have this mechanism.

  95. Kev

    If we had this mechanism, I'd have suggested using it.

  96. Kev

    What we do have is node identifiers.

  97. Kev

    So I'm suggesting we use them to identify nodes :)

  98. ralphm

    Kev: as I mentioned, I am arguing conceptually, and would rather have it work as I describe. If you really need / want to do this in some kind of generic services, we should bring back the ability to set identities on nodes, and/or require that generic pubsub services accept custom form fields for node config (and maybe subscription options,too)

  99. ralphm

    Kev: and obviously, doing it as app-specific pubsub service, it is trivial.

  100. Kev

    I'd quite like if our story as the XSF isn't "XEP-0060 is great, but for even the most trivial real-world requirements, you'll have to hack your service because it's not suitable" :)

  101. Kev

    What's not clear to me so far is what the problem is with using node identifiers to identify nodes.

  102. Simon

    IMHO XEP-0060 specs even too much - for example specific roles and their capabilities. Much better to leave 60 as a framework and have application specific enhancements in new XEPs that reference 60's fundamentals.

  103. Kev

    I accept that it feels as if you should be able to disco#info stuff to find out more about it, but AFAICS the node identifiers are sufficient for this.

  104. ralphm

    Kev: I agree that the story is not great in this respect. On and off, I've been thinking of an example application to build a tutorial around, and haven't really found a 'good' one.

  105. ralphm

    Kev: the problem with it is that node identifiers are specified to be opaque. If another app has a similar setup, with similar URIs as node ids and the same type of items (xep-0004 namespace, right), what to do? That's why I called it a heuristic.

  106. ralphm

    Simon: we all agree that XEP-0060 has to be split up and I have always promoted a more lenient interpretation of the specs.

  107. Kev

    Another app won't have similar node IDs unless it goes trampling over other people's namespaces.

  108. Kev

    If we're worried about people trampling over namespaces they shouldn't, the same argument applies to all our protocols.

  109. ralphm

    Simon: the roles and all that are not part of the protocol per se, but of business logic of a generic service, maybe.

  110. ralphm

    Kev: except that node identifiers are not specified to hold URIs. Of course the chance of conflicts is almost zero. I just don't like it conceptually. Same with well-known nodes in disco, one of those necessary evils. You do have precedent there, so it probably works fine in practice.

  111. ralphm

    It would be so much better if 'discovery' isn't spread over multiple places.

  112. Kev

    ralphm: Conceptual argument aside, do you have a suggestion of how better to specify this in practice?

  113. ralphm

    Kev: in a generic service as they currently exist, no

  114. Kev

    So the pragmatic thing to do is to continue writing a proposal as I've described it, then?

  115. ralphm

    Kev: yes. I hope I haven't wasted your time.

  116. edhelas

    hi

  117. Kev

    Thanks. I don't disagree that disco would be nicer conceptually. Just that we've got to work with what we've got :)

  118. ralphm

    and we probably should work on the problems here

  119. ralphm

    either by suggesting the practise as a 'best' one, or fixing the expectations of generic services

  120. edhelas

    I think that there's a lot of improves that can be added to Pubsub

  121. Kev

    FWIW, I think doing it 'this way' could be picked up as a best practice.

  122. ralphm

    Kev: my point

  123. Kev

    If you standardise a way of doing pubsub, choose a node prefix, and then append application-specific data to that.

  124. Kev

    e.g. we might have all geoloc nodes identified by starting with urn:xmpp:geoloc:repository/ or something.

  125. ralphm

    Kev: we could even easily suggest node identifiers in general being URIs. This is backwards compatible in most real-world cases.

  126. ralphm

    Kev: I'm not sure I agree about that

  127. Kev

    So e.g. if the military wanted to use geoloc, they could use xmpp:geoloc:repository/tanks/goldfish/1 xmpp:geoloc:repository/tanks/goldfish/2 etc.

  128. edhelas

    Kev: are you working on a Pubsub client ?

  129. Kev

    edhelas: Depends what you mean.

  130. ralphm

    Kev: I think that's a bit restrictive and I'd also would expect app-specific node identifiers

  131. edhelas

    I'm looking for clients which implements correctly pubsub to test the compatibility with my project (Movim)

  132. Kev

    ralphm: Maybe geoloc was a bad example. Although it's not entirely clear to me that it was.

  133. ralphm

    Kev: also, we lack a mechanism for searching with patterns in disco

  134. Kev

    edhelas: what does a client supporting pubsub mean?

  135. Kev

    edhelas: Swiften/Sluift have pubsub support that you can use.

  136. edhelas

    that he can discover, read, write on nodes

  137. Kev

    But a generic pubsub client doesn't make a great deal of sense.

  138. Kev

    You can do that with Sluift very easily.

  139. ralphm

    edhelas: that's meaningless in itself

  140. ralphm

    edhelas: clients implement as specific *use* of pubsub

  141. Kev

    edhelas: http://swift.im/blog/swiften-pubsub/

  142. edhelas

    ok thx

  143. Kev

    ralphm: Although my requirement is slightly different to the geoloc example I gave, because of the expected format of items *plus* the semantics in having templates plus completed forms published.

  144. ralphm

    Kev: the thing they push forms too, is that app-specific? If not, why doesn't *that* implement pubsub?

  145. ralphm

    ^to

  146. Kev

    No, it's all a pubsub service.

  147. ralphm

    so they don't really use regular form submission, righ

  148. ralphm

    t

  149. Kev

    'regular form submission'?

  150. ralphm

    normally you request a form (using XEP-0004 protocol), fill in fields and then submit it

  151. Kev

    Hmm.

  152. Kev

    Is that true?

  153. Kev

    XEP-0004 doesn't provide a mechanism of requesting a form, or submitting it, AFAIR.

  154. Kev

    Only the format of the form itself.

  155. ralphm

    wait huh?

  156. Kev

    So I'm suggesting that both the empty forms, and the completed forms, are pubsubbed.

  157. ralphm

    oh you're right

  158. ralphm

    it is always part of another protocol

  159. ralphm

    never mind that part

  160. Kev

    So you have a bunch of nodes that are identifiable by their ID that contain templates (empty xep4 forms).

  161. ralphm

    yes, I understand

  162. ralphm

    I was confused with how pubsub uses forms

  163. Kev

    So when a client wants to publish a form, it fills in the template, generates the right ID for the publishing node (by s/template/result/ in the node ID or similar), and publishes. All using xep60.

  164. ralphm

    and who gets those forms?

  165. ralphm

    where is the sub part of the story?

  166. Kev

    Whoever is subscribed to those nodes.

  167. ralphm

    I think I like the general concept here, by the way

  168. Kev

    There's some sort of incident, a user picks the appropriate form to report it, fills it in and presses 'send'.

  169. ralphm

    right

  170. Kev

    Then the relevant incident handler operators will receive the notifications in their clients.

  171. Kev

    And although my requirements are along these lines, it actually works more generally - e.g. you could use this in an application that has users fill out questionnaires, or whatever.

  172. Kev

    So my intention here is that the 'get templates, fill out, submit' bit is standardised through a description of process, and that then the nodes are specified to have a standard and an application-specific part.

  173. ralphm

    aye

  174. Kev

    So if you were building a questionnaire application, you might have something like urn:xmpp:pubsub-form-template:isode.com/employeesatisfaction/2014

  175. ralphm

    I'd be happy to give that a thorough run-through, sponsor or co-edit it

  176. Kev

    I think the spec itself is dead simple, because there's no protocol, only a way of generating the right node IDs.

  177. ralphm

    yeah, it is mostly informational

  178. Kev

    So yes, I'm trying to write it up, if you'd like to give it a run-through once I've done that it'd be marvellous please.

  179. ralphm

    but examples would help greatly

  180. Kev

    Yes, I thought about it not being standards-track, but I think it is really.

  181. Kev

    Yes, examples would help. I'm vaguely inclined to clear the first hurdle of Council before I put too much work into it.

  182. ralphm

    you have my no-objection, for what it is worth

  183. Kev

    Thanks.

  184. ralphm

    since we are telling people how to use identifiers, it surely is standards track

  185. ralphm

    gotta drive a car

  186. Kev

    Enjoy. Thanks.

  187. ralphm

    catch you later

  188. edhelas

    I'd like to know if you have a comment to make on the prososal I've made yesterday on this email Tags and Pubsub subscriptions in XEP-0048 (Bookmarks)

  189. Tobias

    Kev, the wordpress should be editable right?

  190. Tobias

    at xmpp.org

  191. Kev

    AFAIK.

  192. Tobias

    k

  193. Kev

    http://doomsong.co.uk/extensions/render/pubsubforms.html is the bare minimum to describe what I've been going on about, I think.

  194. Tobias

    Kev, what was the XEP that describes JID binding during chat sessions?

  195. mathieui

    Tobias, 296?

  196. Tobias

    -xep 296

  197. Bunneh

    Tobias: XEP-0296: Best Practices for Resource Locking is Informational (Deferred, 2011-08-18) See: http://xmpp.org/extensions/xep-0296.html

  198. Tobias

    mathieui, thanks, i think that is the one

  199. Neustradamus

    http://wiki.xmpp.org/web/Mojo_Lingo_Application_2014 VS http://wiki.xmpp.org/web/Ben_Langfeld_Application_2014?

  200. simon@imaginator.com

    Well up until recently companies could be members of the XSF.

  201. Kev

    Still can, no?

  202. simon@imaginator.com

    What's the status of the amendment?

  203. Kev

    The change to not allow companies was uncontentious, I think.

  204. Kev

    But bylaw votes need to go through a members meeting.

  205. simon@imaginator.com

    Which is the next summit or ?

  206. Kev

    It's the next members meeting.

  207. Kev

    The summit isn't a members meeting.

  208. Kev

    Members meetings = those things we have four times a year to vote on members stuff.

  209. simon@imaginator.com

    ah those :)

  210. Kev

    The XEP1 changes are somewhat more contentious.

  211. Ge0rG

    is there an XMPP Extensions Editor?

  212. Kev

    A team, even.

  213. Ge0rG

    the link from http://xmpp.org/extensions/xep-0143.html#submit leads to a page not mentioning anybody responsible

  214. Ge0rG

    is there already a candidate for the 2014-04-01 XEP?

  215. Kev

    Not of which I'm aware.

  216. Ge0rG

    Kev: are you part of the above-mentioned team?

  217. Kev

    I am not.

  218. Lance

    it was decided best for the council and editor team to not overlap

  219. Tobias

    Ge0rG, http://xmpp.org/participate/become-a-member/editor-team/

  220. Kev

    Lance: I don't think any such thing was decided, actually.

  221. Kev

    The opinion was presented, but I don't think there was any formal acceptance of it.

  222. Ge0rG

    Tobias: maybe that page should be linked from xep0143

  223. Lance

    not officially, but that seemed to be the opinion in the air

  224. Tobias

    Ge0rG, maybe...something for the editor team to fix :P