XSF Discussion - 2019-04-17


  1. Ge0rG is subverting XEPs, one small commit at a time.

  2. flow

    rion, did you consider writing to standards@ and probably the xep authors in CC about the stuff you wrote regarding xep260 in the wiki? I am also interested about the rationale behind proxy-error. Unfortunately this appears to be another example where a XEP tells you what to do, but not why…

  3. rion

    flow: Hi. maybe in the evening. Working for now.

  4. rion

    btw at work I do some modifications in Janus server for our customer. and in its signaling has a special attribute for final local candidate. That's what missed in Jingle S5B

  5. edhelas

    Ge0rG are you slowly turining 0060 into MIX 😱

  6. Ge0rG

    edhelas: I'm not touching 0060 with a pole.

  7. pep.

    There was a place in the RFCs that say thou shalt not add yourself to the roster, right? I can't find it

  8. vanitasvitae

    CCC is demanding freedom for Assange, Manning and Bini: https://www.ccc.de/de/updates/2019/chaos-computer-club-besorgt-uber-aktuelle-angriffe-auf-die-pressefreiheit

  9. vanitasvitae

    (Link in German)

  10. edhelas

    they are preparing a nice conference for the 36c3 :p

  11. dwd

    vanitasvitae, Freeing Assange? Why?

  12. Zash

    Ge0rG: Do you think you'll find time to look at the 45 anti-gc changes or should I just post it to xsf/xeps ?

  13. Ge0rG

    Zash: I don't know, sorry. Is it done yet?

  14. Zash

    https://github.com/Zash/xeps/commit/7dcee765750f78de31763444df4c3a9640c73809

  15. Zash

    Question is whether that's enough or if there are more references to GC10 lurking somewhere

  16. Zash

    Mostly that just moves the GC1.0 part so that it's not the first thing you see when you go to the "joining a room" section.

  17. dwd

    Zash, Make it a PR, and mention it on standards@. As good a way to get feedback as any.

  18. Ge0rG

    Zash: moving is not the same as deleting, right?

  19. Zash

    > Compliant multi-user chat services MUST accept [GC 1.0] ... https://xmpp.org/extensions/xep-0045.html#enter-muc

  20. vanitasvitae

    dwd: first of all freeing bini.

  21. Ge0rG misread as "bidi".

  22. dwd

    vanitasvitae, I'd argue Ecuador should either charge him or release him. As for Assange, he skipped bail. I'm hoping Sweden put in an extradition claim, as that would take precedence over the US claim, but simply freeing Assange would break UK law quite clearly.

  23. pep.

    I'm also hoping that Sweden puts in an extradition claim. I don't want to resolve the questions of the claims the US is making :/

  24. Ge0rG

    It is interesting how being locked into a building for seven years doesn't count as a jail sentence.

  25. Zash

    I thought Sweden did so already

  26. pep.

    Because journalists there seem really dumb about it and don't understand that throwing him under the bus could also affect them

  27. dwd

    Ge0rG, He wasn't locked in. He could leave at any time.

  28. dwd

    Zash, They might have, I've not been following.

  29. vanitasvitae

    > Ge0rG, He wasn't locked in. He could leave at any time. Reminds me of that one prison cell from Game of Thrones...

  30. vanitasvitae

    https://awoiaf.westeros.org/index.php/File:MKomarck_TyrionSkyCells.jpg

  31. rion

    What can I use to keep some personal settings per muc? Like if I ever want to receive notifications from a specific muc or if I want to load URLs' previews etc. Some extended bookmarks would be perfect probably.

  32. pep.

    Our bookmark XEPs are not really bookmarks.. They're more of a sync protocol hacked together. Maybe someday we'll have a real bookmark XEP ("This time it's really real")

  33. pep.

    So you probably don't want that in there

  34. jonas’

    rion, server-side notification settings are interesting for other reasons, as well, and one would probably want a protocol where the server is aware about what’s going on for push etc

  35. pep.

    yeah that'd be cool to have

  36. Ge0rG

    pep.: the one thing that the Bookmarks XEP _doesn't_ do, is sync.

  37. Zash

    Not even Bookmarks in PEP?

  38. pep.

    Ge0rG, autojoin?

  39. Zash

    What does "sync" even mean here?

  40. pep.

    sync client state, joined or not joined

  41. Ge0rG

    pep.: it's pull-based

  42. pep.

    Ge0rG, yeah ok we're not talking about the same thing

  43. Ge0rG

    pep.: never.

  44. Ge0rG

    Can't you just stuff extension elements into Bookmarks?

  45. Zash

    Ge0rG: Sure you can.

  46. Ge0rG

    Zash: will they persist?

  47. Ge0rG

    will they persist another client adding a bookmark?

  48. Zash

    Excellent question

  49. Ge0rG

    I'm full of them.

  50. Zash

    I can only tell you that Prosody will preserve whatever data you put there. I don't know about other servers or clients.

  51. Ge0rG

    Let's put notification preferences into there.

  52. Ge0rG

    Also for contacts.

  53. Ge0rG

    Or even better: let's stuff them into pep.

  54. lovetox

    Ge0rG, gajim did that

  55. lovetox

    i removed it

  56. lovetox

    it just needs one client and your user loses his data

  57. lovetox

    thats not something i would build any features on

  58. Zash

    That applies to basically everything where data is moved between serialization and native data structures.

  59. Zash

    Lossy transforms, loss of data.

  60. lovetox

    yes but we do that not very often

  61. lovetox

    vcard comes to mind

  62. lovetox

    rion, you can use private storage

  63. rion

    yep.

  64. Ge0rG

    private PEP

  65. lovetox

    and i dont mean the private storage bookmark namespace

  66. Ge0rG

    somebody should define a format.

  67. Zash

    Get it into Bookmarks 2 early

  68. Ge0rG

    Get it into Roster 2

  69. Zash

    Before people start relying on non-extensible data structures

  70. Ge0rG

    Zash: did you say data forms?

  71. Zash

    Noooooooooooooooooooooooo

  72. pep.

    “Ge0rG> Or even better: let's stuff them into pep.”, please don't stuff things in me

  73. Ge0rG

    pep.: it's fortunately very easy to find the right balance between insulting you and plausible deniability.

  74. Zash

    https://github.com/xsf/xeps/pull/786 - does this qualify as editorial?

  75. Ge0rG

    Zash: is this merely the move? git diff isn't very good about showing moved paragraphs

  76. Zash

    https://cerdale.zash.se/upload/ljHhZXxxx5B9XBte/xep-0045-hide-gc10.html

  77. Ge0rG

    s/git //

  78. Zash

    Ge0rG: ^ less xml noise at least

  79. Ge0rG

    Zash: I suppose all I wanted to hear is "yes, I only moved the block down, promised!"

  80. Zash

    Ge0rG: I think I moved some sentences around to make it make sense, but I don't think any semantics are changed

  81. Ge0rG

    Does it make sense to vote on that before getting rid of all of GC1?

  82. Zash

    oorrrrr

  83. Zash

    -Compliant multi-user chat services MUST accept the foregoing as a where "the foregoing" is GC 1.0 ...

  84. Ge0rG

    Not that I think it will succeed

  85. Ge0rG

    Because somebody wanted to ensure removing GC1 doesn't "break things"

  86. Zash

    Do we care? Prosody doesn't follow XEP-0045 anymore since it rejects GC 1.0 joins.

  87. dwd

    Zash, Do you have any figures for how many rejected joins that's caused?

  88. dwd

    Zash, And perhaps more importantly, whether that figure changed when you stopped accepting GC-1?

  89. Zash

    dwd: Very few.

  90. Zash

    IIRC we only saw GC 1.0 joins from one client, which happened to be our own web chat.

  91. Zash

    The rest were all mis-identified presence updates

  92. Ge0rG

    Yes.

  93. Ge0rG

    I've had similar stats on yax.im

  94. Zash

    Mabye there was some other old version of some random client I never heard of before that did gc1.0?

  95. Ge0rG

    (I had it running for ~a week, and the GC1 joins were from prosody-chat.tar.gz or from clients that definitively support MUC join)

  96. Zash

    Seems a small price to pay for not going out of sync when a join is mis-identified as a presence update.

  97. Zash

    And that web chat was fixed, and then we switched to Converse.js

  98. dwd

    Then we drop GC-1.0 support from '45. Change it to MAY initially, perhaps?

  99. Ge0rG

    MUST NOT.

  100. dwd

    Eventually, yes.

  101. Zash

    Hm, if there had been some way to signal that a complete state dump is being sent, it'd be easier.

  102. Ge0rG

    Zash: in GC1.0?

  103. Zash

    Ge0rG: in MUC

  104. Ge0rG

    Zash: I might have proposed something in that direction.

  105. Zash

    A MUC client that sends a presence update that gets treated as a GC1.0 join might end up with stale presence from departed occupants.

  106. Ge0rG

    Zash: let me scrap some parts from the junkyard of standards@

  107. Ge0rG

    I need a mutt macro for `/~f georg ~C standards ~s `

  108. Ge0rG

    dwd: stats on GC1: https://mail.jabber.org/pipermail/standards/2018-April/034760.html

  109. Ge0rG

    Zash: https://mail.jabber.org/pipermail/standards/2017-October/033501.html at the bottom, Proposed Solutions #3

  110. Ge0rG

    I suppose I can take the fact that I can recite years old threads with solutions to problems that still come up as a lack of progress and general direction in the XSF.

  111. Zash

    Ge0rG: I'm not sure that's what I was thinking.

  112. Zash

    I was thinking a thing from the server that says "you were desynced. please drop all state. full state follows"

  113. Zash

    Then, if a presence update is treated as a join, it won't get out of sync

  114. Zash

    Could also be useful in case of intermittent s2s problems or cluster merges

  115. Ge0rG

    Zash: how is the server supposed to know that you were desynced?

  116. Zash

    Ge0rG: It knows in the case of receiving a presence update from someone not in the room

  117. Ge0rG

    Zash: provided you deny the existence of GC1

  118. Ge0rG

    Zash: and even in that case, how do you know that client can understand a full-state-reset?

  119. Zash

    Hence why such a thing would have been useful if it already existed.

  120. Ge0rG

    Zash: this is not how you evolve protocols

  121. Zash

    As it is now, I think just killing GC 1.0 is fine.

  122. Zash

    Ge0rG: How are we supposed to fix problems without time travel???? :P

  123. Ge0rG

    Zash: as sad as it is, the presence of these problems is a clear sign of the non-existence of time travel

  124. dwd

    Ge0rG, Erm. But the Council agreed to removing GC-1.0 in principle, and asked for a PR: https://mail.jabber.org/pipermail/standards/2018-April/034768.html

  125. dwd

    Ge0rG, It was unanimous and everything. And you promised to do a PR.

  126. Ge0rG

    dwd: not quite. There was a long-ish discussion about whether it improves things.

  127. Ge0rG

    > Kev is OK with this in principle, as long as it results in an improvement.

  128. Ge0rG

    > ... OK with one that doesn't break anything, but isn't sure it's possible

  129. dwd

    Ge0rG, Sure, there was no certainty the resulting PR would be accepted. But certainly unanimous agreement that we could in principle remove GC-1.0 support.

  130. Ge0rG

    dwd: IIRC the minutes aren't clear and accurate in that regard, and that "silently cover up desyncs" was considered a desired feature.

  131. Ge0rG

    dwd: I'm pretty sure that everybody in Council can understand the implications of removing GC1 without seeing a PR.

  132. Ge0rG

    But yes, I owe us a PR.

  133. Kev

    This is a thing I may regret asking, because it shows how asleep I am, but what happens if instead of removing gc1 joins, you treat any presence from someone not in the room as a 45 join?

  134. dwd

    Kev, Isn't that what GC-1.0 is?

  135. Kev

    With full sync? I vaguely remember this was floated, but I don't remember the discussion.

  136. Zash

    Kev: You may proceed with regretting

  137. Ge0rG

    Kev: that is equivalent to gc1

  138. Kev

    dwd: Not quite, you don't get the MUC payloads, do you?

  139. Zash

    Kev: Problem is that you don't know that it was a full sync until the last few stanzas of the sync.

  140. dwd

    Kev, I think you do, don't you? We assume a GC-1.0 client will ignore it.

  141. dwd

    Kev, The only difference is that room creation via GC-1.0 doesn't lock.

  142. Kev

    Ah, that was the problem, was it? Not knowing from the first stanza that it's treated as a join?

  143. Zash

    Or, do you even know? It might be ambigous.

  144. Zash

    Hence "it'd be nice if there was a state reset signal"

  145. Ge0rG

    Zash: the self-presence _might_ give that away.

  146. dwd

    Ge0rG, In any case, COuncil probably can understand the implications in principle of removing GC-1.0 in principle, yes. But Council has to vote on any PR, anyway.

  147. Kev

    It's a clue, but not proof.

  148. Kev

    It can certainly go wrong, where MSN is concerned.

  149. Zash

    Ge0rG: I'm not so sure. Does it say "you joined" or "this is a presence from you"?

  150. Ge0rG

    Zash: yes

  151. Kev

    At least as long as the codes aren't used consistently.

  152. Zash

    Ge0rG: Ah, status code 210?

  153. Ge0rG

    Zash: no. you also get just a 110 on nick changes.

  154. dwd

    (I'm happy to agree it's simpler to error a non-joining presence than try and guess if the response is a sync or not)

  155. Ge0rG

    https://xmpp.org/extensions/xep-0045.html#changepres doesn't say whether to include 110 in presence update reflections

  156. Zash

    110 is "this is your presence" 210 is "service assigned you this nickname"

  157. Ge0rG

    dwd: have you just gone through https://mail.jabber.org/pipermail/standards/2017-October/033501.html ?

  158. dwd

    Ge0rG, No, because it's late and I'm going to bed.

  159. Kev

    Next question: What happens if you respond to a gc1 join with a kick?

  160. Kev

    I feel we've had that discussion too, and don't remember why that doesn't work.

  161. dwd

    Kev, Protocol or physical?

  162. Zash

    Kev: When joined or not joined?

  163. Kev

    A gc1 join when you're joined is just a status change.

  164. Ge0rG

    Kev: how is that different from an error presence?

  165. Kev

    An error doesn't, on its own, say you're not in the room.

  166. Ge0rG

    https://xmpp.org/extensions/xep-0045.html#example-23

  167. Zash

    Also what you get if you try to change nickname and the service says no

  168. Ge0rG

    no!

  169. Zash

    https://xmpp.org/extensions/xep-0045.html#example-53

  170. Ge0rG

    This looks copy&pasted.

  171. Kev

    It's far too late, and I'm too tired to think properly, but ISTM in my current state that sending a kick if you try to GC1 join would address the resync properties of gc1 from a different angle.

  172. Zash

    Maybe

  173. Kev

    (That is: ensure the user knows they're not in the room any more, so they can manually resync, even on old clients, and on new clients they can autorejoin)

  174. Kev

    (Although you'd want to annotate the kick so a new client would know it's not a 'normal' kick and an autorejoin is ok)

  175. Ge0rG

    Kev: what's the GC1 syntax for kick?

  176. Kev

    I'm assuming, possibly wrongly, that the only 'use' these days for gc1 joins is the silent resync, not from gc1 clients.

  177. Zash

    """use"""

  178. Zash

    Do we really want silent resync?

  179. Ge0rG

    Kev: I agree with your assumption, if we don't imply a positive connotation to 'use'

  180. Kev

    There's positives and negatives to it. I don't think it's entirely either.

  181. Kev

    Whereas the explicit kicks might be superior to both.

  182. Ge0rG

    > Kev: what's the GC1 syntax for kick?

  183. Kev

    There isn't one. That's what I was saying ,you'd use a 45 kick.

  184. Kev

    Right, bedtime.

  185. dwd

    Ge0rG, The assumption is that the only things sending GC-1.0 are resyncing '45 clients doing so by accident, and so they'd understand a '45 kick.

  186. Ge0rG

    Ah!

  187. Ge0rG

    So now we need a new status code or error condition for not-in-room.

  188. Zash

    But not an not-acceptable error?

  189. Ge0rG

    Zash: which means "you may not change your name" -- "what? Did I try to change my name? Maybe my MSN alter ego did!"

  190. Ge0rG

    Zash: thank you, I've made good use of your PR #2

  191. Ge0rG

    everybody who hasn't gone to bed yet: https://github.com/xsf/xeps/pull/787

  192. Ge0rG &

  193. Ge0rG

    the PR number does bear a certain irony.