-
Guus
Assume a scenario in which a user is online with a single resource, stream management enabled, then gets disconnected abruptly, leaving the SM session in a resumable state, and a stanza arrives. What now is the expected behavior if the same user establishes a new stream, but does not resume the session but performs resource binding instead?
-
Daniel
The sm session 'times out' all stanzas get bounced (or what ever your server is doing)
-
Daniel
What would the alternative be?
-
Zash
Like, they closed their laptop, woke up their phone and left the office?
-
Guus
Well, for stanzas that were addressed to a bare JID, it might be desirable to re-evaluate the routing logic, delivering it to the newly established session.
-
Zash
I suspect this is a full week topic for a summit
-
Guus
and in case the new session rebinds using the same resource... maybe deliver all stanzas to that session?
-
Daniel
> and in case the new session rebinds using the same resource... maybe deliver all stanzas to that session? That would maybe work for some messages. But nothing else
-
Zash
And messages usually go to the bare jid now, and you can get it from MAM
-
Daniel
Yes. So anything that is delivered to mam you might not want to actually bounce. I was just saying do what ever you do when you time out
-
Guus
ejabberd has an option that can be used to have all queued messages to be resend after SM times out (resend_on_timeout)
-
Ge0rG
Guus: that's bad if you have multiple clients.
-
Ge0rG
Guus: the existing implementations all suck
-
flow
and potentially breaks the stable order guarantee of XMPP (depending on your PoV)
-
Ge0rG
the right thing to do would be to do server-side tracking of individual clients, based on their hopefully constant-over-time resource string
-
Guus
That's basically what I suggested, right? When resource binding on the same resource... do magic.
-
Ge0rG
Guus: indeed, yes. But you can't know how much of the old session actually already arrived at that device, unless it attempts to resume
-
Ge0rG
my client won't honor the resume timeout value and just attempt to resume always, if it has a previous session
-
Guus
Ge0rG That's very true.
-
Guus
problem here is that this client doesn't keep track of the old session metadata if it crashes unexpectedly.
-
Guus
(unsure if that's fixable on their end - that seems to be the preferred approach to me)
-
Ge0rG
Guus: that's exactly what remains unsolved. Or you use MAM
-
jonas’
use MAM
-
jonas’
better than guessing
-
Daniel
I use MAM
-
jonas’
or churning the disk by persisting the entire stream state to disk on every. single. stanza.
-
Ge0rG
Guus: with MAM, as Daniel said, the server should drop all message stanzas from the old session when destroying it, and not bounce them
-
Daniel
> or churning the disk by persisting the entire stream state to disk on every. single. stanza. I always wanted to write an iOS client that does that
-
Ge0rG
(unfortunately, not all servers do that yet)
-
Daniel
I don't think that's too unreasonable if you plan it from the beginning and design the app around it
-
Ge0rG
Daniel: yes
-
Ge0rG
Daniel: all we need is a full redesign of the complete xmpp client stack
-
Ge0rG
it needs to be serializable in an efficient way, ideally with some kind of journal
-
Ge0rG
Android could also profit from that.
-
Guus
flow I'm getting this from the client developers. Do you know if that's true? > Another possible solution to the problem is to persist the stream id, session id and the number of acknowledged messages from the server and the client. This is not supported by SMACK by default,
-
Guus
ah, wait, I read that as "smack can't resume" but maybe they're saying "smack doesn't persist to disk"
-
Daniel
Well it's not as easy as storing those three values
-
Ge0rG
Guus: yes, smack can resume, but not from disk
-
jonas’
you also need to store all presence state
-
Ge0rG
Guus: you'd need to serialize the XMPPTCPConnection and everything related to it to disk as well
-
flow
depends, no?
-
flow
but yes, you usually want to resurrect the XMPPTCPConnection with the same listeners setup as before it was suspended to persistent storage
-
flow
but that does not necessarily require to serialize XMPPTCPConnection
-
Ge0rG
no... just most of its members.
-
Daniel
Well all pending stanza, all pending callbacks to iqs
-
Daniel
All state
-
Daniel
Like presence, mucs etc
-
Ge0rG
Guus: so you can't easily hibernate smack to disk and reload afterwards.
-
Ge0rG
Guus: but you can hope that your app won't be killed
-
Guus
and if you could, you'd have to do that preemptively on ever.single.stanza (or how did Jonas' put it?)
-
flow
Guus, what's the problem you are trying to solve (couldn't find it in the backlog)
-
Ge0rG
Guus: yes, after each change of the internal state (e.g. receiving or sending a stanza) you'd have to persist everything
-
Guus
flow just a question I received over email: client gets killed, the restart it, but won't get messages that have been delivered while offline (unless they do MAM).
-
Daniel
Ge0rG: well you have to persist the delta
-
Ge0rG
Daniel: but with smack, you need to manually extract the delta from the state of dozens of weakly linked objects
-
Daniel
Yeah don't use smack for that
-
flow
Guus, use MAM ;)
-
Guus
Yeah, that's been my conclusion too. Still, I'm wondering if it makes sense to have some kind of option like ejabberd's 'resend' - but instead, I think I'd prefer to send certain messages to a new session with the same resource - something like that.
-
Guus
probably bad for MUC though
-
jonas’
bad for a lot of things assuming state
-
flow
I also think it would violate the stable order requirement of the RFC (but that may not be an issue for your use-case)
-
Guus
I'd at the very least not enable this by default.
-
Guus
just trying to think of a solution that'd be helpful for certain use-cases.
-
Ge0rG
Guus: you can't do that generally because you would end up re-sending all the stanzas that already were delivered but not acked
-
Ge0rG
Guus: use MAM.
-
Ge0rG
Guus: or, use eternal 0198 sessions ;)
-
Ge0rG
(no, that doesn't solve the client crash problem)
-
Guus
You're right - but not every user is as obsessed with being 100.0% right all of the time as we are. 🙂
-
Guus
some duplication might be acceptable.
-
Guus
(to them)
-
Guus
And yes, MAM is the proper way to go - but that would probably make them spend more development resources than what they have available.
-
Guus
(afk - feeding the offspring)
-
jonas’
Guus, some SM implementations will also feed the unacked messages to offline store when the SM session gets terminated.
-
jonas’
that may be a viable alternative?
-
Ge0rG
yes, if you are guaranteed to only have one client per user, you can use something like prosody's mod_smacks_offline
-
edhelas
https://theintercept.com/2020/03/31/zoom-meeting-encryption/
-
jonas’
ah that
-
jonas’
it’s obvious from the UI when you know what to look out for
-
jonas’
(also, I don’t know of any end-to-end encrypted video conferencing software)
-
edhelas
when you're calling yourself locally it's end to end encryted 🤔 ?
-
Ge0rG
jonas’: that would be... interesting.
-
pep.
I'd be interested to know how expensive that is resource-wise
-
pep.
jitsi-meet is already getting complaints that they're not doing e2ee fwiw..
-
jonas’
essentially you’d degrade the videobridge to a stupid TURN server
-
jonas’
then you’re back to E2EE again
-
jonas’
if your webrtc session does it
-
Ge0rG
you could do homomorphic encryption!
-
Ge0rG
but I suppose the more practical approach would be to encrypt the stream payloads and to let videobridge route at the stream level.
-
Ge0rG
and to have multi-recipient keys for each stream
-
Ge0rG
you are typically using symmetric encryption for the data stream anyway, so just send the decryption key to all parties
-
Ge0rG
it's not complex, just requires effort.
-
jonas’
right, recipient keys
-
Ge0rG
also probably won't work with WebRTC.
-
jonas’
it should be possible on the protocol level, but I wouldn’t be surprised if javascript APIs don’t expose this
-
Ge0rG
jonas’: it depends on how you derive the session key
-
flow
also downscaling become✎ -
flow
also downscaling by the bridge becomes impossible with e2ee ✏
-
Ge0rG
which jitsi meet doesn't do AFAIK
-
Ge0rG
the right thing would be to create multiple progressive streams, where you get the lowest res with stream 0, the medium res with stream 0+1 and the highest res with 0+1+2
-
Ge0rG
but that would require a progressive video codec of sorts.
-
flow
do those exists in practice?
-
jonas’
jitsi-videobridge (the software) does not do recoding, but there’s allegedly a hardware thing which does
-
Neustradamus
What is the solution about XMPP TLS S2S problems for XMPP clients? Example: When an user@xmpp1.tld tries to join a mucroom@conference.xmpp2.tld, it is not possible and the XMPP client has not an error.
-
MattJ
Neustradamus, the solution is to switch to Matrix
-
Neustradamus
:D
-
Neustradamus
Prosody will be a Matrix server?
-
MattJ
Who knows
-
Holger
https://jabber.fu-berlin.de/share/holger/xczTzkOs6Bduvkve/Awe5-jk3SCOXiFasIOrOag.jpg
-
Holger
Conversations says "remote server not found" if I try to join mucroom@conference.xmpp2.tld.
-
MattJ
Holger, in case you missed the previous discussion on this topic, you probably don't want to reopen this can of worms
-
Holger
😂
- Holger shuts up.
-
Neustradamus
Holger: The log on muc.xmpp.org: - User has joined - User has left Client has not error and the client always tries but it has already failed.
-
Ge0rG
https://i.imgflip.com/3usu50.jpg
-
Neustradamus
Ge0rG: example jabber.org (not only) -> xmpp.org is broken.
-
MattJ
New draft MAM revision currently here: https://github.com/mwild1/xeps/tree/mam-r7
-
MattJ
I'll post to the list about it soon (probably tomorrow)
-
MattJ
I have a few things to do before I PR (such as finishing off the other documents I split stuff out to)
-
Zash
https://cerdale.zash.se/upload/DCzM-vgHHb2_CbHA/diff-mam-r7.html
-
lovetox
nice MattJ
-
lovetox
does it make sense to flip the rsm page, and not the whole mam filter result?
-
lovetox
notice this is not the same outcome
-
lovetox
i fail to see the use case for flipping the page
-
lovetox
i does not get you the filter result in the reverse order
-
lovetox
it does only get you the first page of the filter result, which you dont actually want, we want the last page, in reverse order
-
jonas’
MattJ, the "Client uses two discovered query fields in a query" example differs from the previous example in the value of the @var attributes, is that intentional?
-
pep.
MattJ, does that mean pubsub mam is going to be defined somewhere else?
-
Zash
Maybe randomize the subdomain in `<iq to='pubsub.shakespeare.lit' type='set' id='juliet1'>` a bit more?
-
flow
pep does it matter where it will potentially be defined?
-
pep.
flow, it matters that it's defined, as with this PR it doesn't seem to be defined anywhere anymore
-
Zash
> I have a few things to do before I PR (such as finishing off the other documents I split stuff out to) pep. ↑
-
pep.
ok
-
pep.
waiting for updates then
-
flow
pep., was it defined before in xep313? IIRC it was just something like "ya'll can do MAM on PubSub, but I don't tell you exactly how<period>"
-
Zash
There's some precedent in splitting a XEP since at least MIX
-
Zash
flow, didn't say a lot about it, but there was a few lines
-
pep.
flow, not saying it was perfect but at least it was a thing :P
-
pep.
I'm sure it could be defined a lot better
-
flow
I think I would prefer if xep313 simply stated that MAM on PubSub is a possiblity but the exact specification is outside the scope if this XEP
-
flow
hmm, not sure about that <flip-page/> thing…
-
flow
hope it's optional
-
lovetox
i think i understand now the flip page thing, you are supposed to request the last page with rsm via </before> then flip that page
-
lovetox
and why do you hope flow its optional? are you a server developer that needs to implement that ?
-
lovetox
MattJ, what is the reason instead of namespace bumping this to mam:3, making it a disco feature?
-
flow
lovetox, I consider a minimal mandatory-to-implement feature set to be benefical, as it allows to ramp up a new implementation fast
-
flow
sure there are counterarguments, and one has to carefully select which feature to make optional
-
flow
but <flip-page/> appears to be a good candidate
-
Zash
So that's mam:2, the new stuff is mam:2#extended
-
pep.
Zash, but it's essentially the same
-
pep.
mam:3 or mam:2 + mam:2#extended
-
flow
+A client that wishes to use flipped pages MUST ensure that the server +advertises the \'urn:xmpp:mam:2\#extended\' feature.
-
pep.
mam:2#extended is just the new mam:3
-
Zash
pep., adding support doesn't break all existing clients
-
flow
pep I don't think it is
-
Zash
to the server, that is
-
flow
#extended sounds like an optional extension to mam:2
-
lovetox
Zash adding the extended things does not brak clients
-
lovetox
as it says it EXTENDS the spec
-
pep.
It wouldn't break all clients indeed, just continue supporting mam:2 just like you're going to do anyway
-
lovetox
there is no change to existing functionality
-
Zash
lovetox, that's what I said. bumping the namespace to :3 breaks everything, unless you do both
-
Zash
If you have a mam:2 implementation, adding mam:2#extended doesn't affect anyone
-
pep.
Zash, because you're still advertizing for mam:2. Which you can continue doing
-
lovetox
it also affects no one if you just announce mam:3
-
flow
well, it hopefully affects the counterparty that could talk #extended with you
-
MattJ
Doing both has turned out to be a pain i n pretty much every implementation I've seen (when we bumped other namespaces)
-
flow
lovetox, as long as you still support mam:2
-
pep.
MattJ, I genuinely don't get the difference
-
lovetox
flow its just a namespace there is nothing the server needs to do different
-
pep.
Just that it's not explicit it's a new thing, you're just adding a new feature and now I've got to check both
-
lovetox
its just, if i get a IQ with mam:3 just treat it like mam:2
-
lovetox
finished
-
MattJ
pep.: you don't have to check both
-
MattJ
Just one
-
pep.
Yeah so it's just mam:3
-
MattJ
No
-
flow
honestly, and I haven't read that diff completely so I may not seeing the whole picture, but I am surprised that the #extended thing causes any discussion
-
pep.
Or undercovered mam:3 :P
-
pep.
flow, to me it's not about mam, it's about how things are done in general
-
lovetox
let me guess flow you never implemented mam?
-
flow
If the #extended thing is that I think it is, an optional extension to the mam we have, than that appears very sensible to me
-
flow
instead of doing mam:3
-
flow
lovetox, I did the MAM implementation for Smack
-
pep.
Feels like people are just afraid to increase a number
-
flow
and wrote the unit and integration tests
-
flow
pep., of course we are afraid
-
lovetox
then i really dont get how you dont understand how this is bad
-
pep.
Why? It's the exact same thing
-
lovetox
but let me tell you why
-
flow
namespace bumps are not for free
-
flow
smack is still on mam:1 fwiw
-
pep.
flow, breaking changes are not free
-
lovetox
this is not a simple syntax change in the xep, this extended functionality allows clients to do mam in a totally different way
-
flow
pep., right that is why they have to be avoided when sensible
-
lovetox
its a change how archiving is done on client side in fundamental way
-
pep.
namespace bump doesn't equal breaking changes
-
lovetox
to say its optional on server side
-
lovetox
means that server dont have to adopt it
-
lovetox
so that means i have to support mam:2 without extended
-
pep.
Right that also..
-
lovetox
which is now not just a simple syntax change
-
lovetox
no i have to maintain a totally different way of doing mam
-
Zash
Has everyone forgotten the pain of mam:0 vs mam:1 vs mam:2 so soon?
-
lovetox
what for?, these changes are trivial for servers
-
lovetox
this is just some Mysql querys added differently
-
Zash
lovetox: haha no
-
flow
pep, I am sorry I fail to see how a namespace bump von mam:2 to mam:3 is the exact same thing as an optional extension to mam:2
-
pep.
one could say mam:3 is an optional extension over mam:2 :)
-
flow
mam:3 would be by definition a breaking change, as it requires a namespace bump
-
lovetox
flow the changes here proposed are long wished things of client developers
-
lovetox
this is not some optional thing that is nice
-
lovetox
these are changes the community deems necessary for an archiving xep
-
lovetox
there is really no reason to make this optional
-
lovetox
especially for a experimental xep
-
flow
there is also no reason to make it not optional?
-
lovetox
the only reason something like this would be optional, if there are reasons like we believe there are implementations who simply cant implement the changes because of tecnical problems
-
MattJ
Only that it is good features that people want to use
-
flow
lovetox, I mean if what you and pep want is that servers are going to announce mam:2 *and* mam:3 simultanously, then I still think that this is far more effort to support than annoucning mam:2 and mam:2#extensions
-
flow
because some protocol operations now need to be available under them mam:2 and mam:3 namespace
-
lovetox
no flow same operations can be available under both
-
lovetox
its no difference
-
lovetox
its a subset please
-
flow
that's what I said, some operations need to be avaialble under both namespace
-
lovetox
its the same operation
-
lovetox
do you really think they duplicate the code because of a mam:3 string in an iq
-
flow
no, but that does mean that it will become less ugly✎ -
flow
no, but that doesn't mean that it will become less ugly ✏
-
Zash
lovetox, yes, bunch of duplication and more complex code
-
lovetox
ok but thats of no concern, this is the XMPP Archving XEP this is not some sideshow where we make concessions, these are essential changes
-
lovetox
every client needs that
-
flow
then every client will implement that
-
lovetox
its nothing that some weird use cases need and so we make it optional
-
Zash
seems to me you're making very broad assumptions
-
lovetox
if you tell someone XMPP has a archiving xep where you cant even download a single specific message
-
lovetox
and thats an OPTIONAL feature, some servers implement
-
lovetox
thats insane
-
MattJ
We're still in a world where some servers don't support it at all :)
-
lovetox
we dont need to get more fragmented, we need to move faster and decisive
-
MattJ
As far as I'm concerned, servers would be stupid not to implement the #extended stuff, but we can't force them to any more than we can force them to implement any XEP
-
flow
lovetox, specifying something as mandatory does not mean that implementations will suddenly implement it. In fact, it will cause implementations that only implement a subset of the mandatory to implement features, which causes much more main. Features get implemented because someone decides that it is worth the effort.✎ -
flow
lovetox, specifying something as mandatory does not mean that implementations will suddenly implement it. In fact, it will cause implementations that only implement a subset of the mandatory to implement features, which causes much more pain. Features get implemented because someone decides that it is worth the effort. ✏
-
MattJ
lovetox: btw, I added page flipping for you... if you don't want it I can take it back out ;)
-
MattJ
You and a couple of people who complained anyway
-
lovetox
no its good, i just wondered if its not to complicated to do the <before> and <flip-page> together
-
flow
I'd always assume that simply requesting a small page size would be sufficient
-
lovetox
instead of just reverse the filter query
-
flow
but I am also always in favor of experimenting with new features
-
MattJ
There was a reason I did it on the page rather the results, I can't remember why... might be in my notes from last year somewhere✎ -
MattJ
There was a reason I did it on the page rather than the results, I can't remember why... might be in my notes from last year somewhere ✏
-
lovetox
probably because of </before> in the rsm spec
-
lovetox
you can already request the last page of a query
-
MattJ
Yeah
-
lovetox
so you just have to flip that page to finish it
-
MattJ
I think that is logically simpler anyway
-
lovetox
but i guess we should mention that in the XEP
-
lovetox
because nobody will get this on their own
-
lovetox
it would be simpler if people would now the </before> thing in RSM
-
MattJ
There is an example for that
-
lovetox
in your mam change?
-
lovetox
ok thats nice then
-
MattJ
Yes, unless it got lost
-
lovetox
too much changes, i probably missed it
-
MattJ
I'm planning a separate "How to MAM" document anyway
-
lovetox
what i want to tell is, that this is a "additional" thing on the server, you just add some different sql querys if you encounter different filters
-
lovetox
but for clients its not just additional
-
lovetox
its either you write your impl with these futures, or without it
-
MattJ
I agree, the sensible thing is for clients to depend on #extended
-
lovetox
at least i believe that, have to do it :)
-
lovetox
ok correct MattJ so from a client perspective this is the same as depending on mam:3
-
lovetox
so from a client perspective this is the same, and optional not useful here
-
lovetox
so the question remains, is it useful for the server?
-
MattJ
Not really, no
-
MattJ
I don't see any reason for people to only implement 80% of the XEP
-
Zash
We already implement 80% of the XEP, because those 80% was 100% of the previous version of the XEP.
-
MattJ
Obviously
-
MattJ
But whether it is called #extended or :3 it makes no difference - people need to upgrade
-
jonas’
the difference is that you can re-use your code from :2
-
MattJ
I mean it makes no difference to whether people implement it or not
-
lovetox
i dont know the process but is that code discussion really something the XSF should care about?
-
Guus
Skipping over a lot of the conversation here: but is the flip-page directive something that adds real value? To me, it seems like a convenience for clients to not have to revert element orders if they want to. I wonder if that warrants added complexity to the protocol.
-
lovetox
Guus you cant invert the order
-
MattJ
Guus: that's a debate to have with lovetox and some others... you can bring it up on the list when I post it I guess
-
jonas’
you can, you just need to buffer the (MAM) stanzas first.
-
jonas’
but on-list is a better place for this indeed
-
lovetox
thats a fundamental change to how clients work jonas’
-
lovetox
we dont do that for literally anything
-
Zash
Do you know how <before/> is implemented in Prosody? ... by buffering the results and then flipping them.
-
MattJ
To how your client works :)
-
lovetox
stanzas are processed when they arrive
-
Guus
flip-page is only about order of elements in one RSM result, right?
-
MattJ
Guus: yes
-
lovetox
Guus a RSM page has usually 100 stanzas
-
flow
Hmm, then shouldn't something like flip-page be part of RSM instead?
-
Guus
... not seeing the problem - unless the RSM pages are ungodly huge.
-
Guus
so - reduce the RSM size?
-
lovetox
then mam catchup is much slower ?
-
flow
Guus, I think something like flip-page really adds value over low latency connections
-
MattJ
flow: I considered that, but I don't want to bump RSM ;)
-
flow
MattJ, optional extension?
-
Zash
If you're doing infinite scroll and scroll up?
-
Guus
Okay, if it has real world benefits I'm happy to include it. Seems far-fetched to me, but then again, I'm no client builder 🙂
-
lovetox
also this means i have to download a 100 stanzas, before i can show the user the first
-
lovetox
seems like just not a good protocol
-
jonas’
slow connections is a valid point
-
Guus
Nah, just limit the max result set page size to 20 or somesuch?
-
lovetox
then you wait for 20 ..
-
jonas’
in other RSM cases it’s not as relevant (cc @ MattJ) because normally you get an RSM result page in a single stanza
-
flow
err, I meant high latency connections obviously
-
Guus
The entire point of having a page is that it offers a manageable bite size of data.
-
jonas’
Guus, then you have expensive round-trips. Flipping the result makes a lot of sense here.
-
MattJ
jonas’: yeah
-
jonas’
MAM is a splendid bulk operation from the client side
-
flow
but thinking about it a little more, I am actually not that sure if it adds value
-
flow
those 20 stanzas are all bundled
-
jonas’
Guus, especially on long-fat-links (high latency, lots of throughput) you want few roundtrips and lots of data. quite a bit of mobile links these days are like that, especially when you’re on the road: your packets are buffered somewhere and then you get a bunch of them back. roundtrips are expensive.
-
flow
and what's typical stanzas size? how long does it really take to receive 20 stanzas?
-
jonas’
flow, they don’t fit in a single TCP segment, so it can take arbitrarily long for the last (first) stanza to be delayed while you already have 19 others
-
flow
true, if you not only have high latency but also packet loss
-
jonas’
or irregular high latency
-
jonas’
as you have on mobile links
-
Guus
I'm not dead-set against this - but how is this now a problem, and not in the past 10 years? Connectivity has improved, generally...
-
jonas’
you sometimes see sudden RTTs of 60s!
-
jonas’
Guus, it’s always been a problem
-
flow
as I said, I think <flip-page/> is a prime candidate of an optional feature. Not everyone may want or needs to implement it
-
jonas’
clients are just "crap" and sync from oldest messages first and not from newest first
-
jonas’
probably also because of stuff like this
-
flow
Guus, I'd argue bad connectiviy is probably more widespread
-
jonas’
when you sync from oldest, it doesn’t matter, but it’s also terrible UX
-
flow
if you think about all those smartphones in africe✎ -
flow
if you think about all those smartphones in africa ✏
-
jonas’
or germany
-
Guus
oh well. I'll take your word for it 🙂
-
jonas’
once you’re in an intercity train
-
Guus
#stayhome
-
Guus
(problem solved)
-
Guus
no wait, my parents' wifi.
-
MattJ
As far as I'm concerned it adds minimal value, but it makes lives for some people easier, so I'm fine with including it
-
lovetox
Sorry this is a messaging protocol and we discuss if its too much to ask from a archive to get the messages in the order you want them
-
lovetox
seriously lol
-
lovetox
download the archive and reverse them yourself
-
lovetox
ok
-
MattJ
lovetox: you just want SQL replication over XMPP ;)
-
Guus
no, we're discussing if adding a feature that I thought was trivial to implement in code warrants added complexity in the protocol
-
jonas’
MattJ, don’t confuse lovetox with zinid
-
Guus
that is a relevant discussion, especially in a standards body.
-
Zash
MattJ: You mean XEP-0136
-
lovetox
Guus, its the simple use case, of loading messages while you scroll upwards in your messenger
-
lovetox
just think from a client point of view how you want to implement that
-
jonas’
MattJ, is the auto-pull of xeps working again?
-
lovetox
this is not someting exotic, ANY user expect the client to do this
-
lovetox
in a efficient fashion
-
Guus
lovetox as I already said: I'm happy to accept that this is less trivial as what I thought it was, going into this discussion.
-
MattJ
Most XMPP alternatives will be using HTTP and JSON. Trust me, they don't start displaying results until they receive the full result set from the server
-
jonas’
MattJ, but that also means that they can handle latency spikes much better, since they have regular TCP restarts instead of having to deal with a TCP recovering from a minute of packet loss
-
Zash
Did someone say BOSH?
-
MattJ
jonas’: I'd be surprised to see anyone using a TCP connection per request these days
-
jonas’
MattJ, I wouldn’t be surprised for them restarting a fresh TCP connection when the other one runs in a timeout
-
jonas’
when you do that with XMPP, you’re in a world of massive pain
-
jonas’
unless you’re very clever, but nobody wants to be that these das✎ -
jonas’
unless you’re very clever, but nobody wants to be that these days ✏
-
jonas’
(start a new session, SM-resume your other, suppesedly timed-out stream with your current local counters, discard the other stream once you got the resumption ACK)
-
flow
ahh muc-presence-versioning now in html, nice
-
flow
hmm, or not?
-
jonas’
I pushed the docker image, no idea if the pull is working
-
jonas’
hence 18:36:31 jonas’> MattJ, is the auto-pull of xeps working again?
-
MattJ
It's not
-
pep.
flow, "specifying something as mandatory does not mean that implementations will suddenly implement it" I totally agree. And I don't think this applies "we shall then make features optional". At least making something mandatory would tell implementors that these features are important
-
jonas’
MattJ, can you issue a manual pull then please?
-
jonas’
or, has board already decided about my iteam membership? ;)
-
MattJ
When I get back to my laptop, in an hour or however long it takes children to go to bed
-
jonas’
pep., I’m more in favour of having documents which give a rationale for the importance of a feature, instead of just relying on the MUST hammer
-
jonas’
MattJ, kthx
-
jonas’
say hello from the strange internet parrot people
-
MattJ
:)
-
flow
pep., why not simply tell the implementors that these features are important instead?
-
pep.
Well that's how you tell them it's important
-
pep.
"Ah btw that's what 90% of clients are going to use nowadays, but if you don't implement it it's fine don't worry"
-
pep.
Is how I see the optional thing
-
flow
pep., again, then why not simply tell the implementors that these feature are important to preven this?✎ -
flow
pep., again, then why not simply tell the implementors that these feature are important to prevent them from getting that impression? ✏
-
pep.
Suggestion for this year's CS, add namespaces to be supported. So that people don't claim they support mam:0 (or whatever NS that nobody uses anymore) and be done with it
-
lovetox
and then add it to the compliance suite :D
-
lovetox
if i think about thats actually what i care for
-
lovetox
i want the server to know what they should implement
-
lovetox
and thats my fear that optional things get only implemented if i personally bug every server dev
-
pep.
yep
-
lovetox
so yes if we have a document that tells the server dev what he should actually implement to have a relevant impl, then i guess im fine with the XEP not mandating it
-
jonas’
in contrast to that, I bet you’ll find every mandatory thing of '45 or '60 implemented in all servers
-
pep.
hah
-
flow
otherwhise your fear would be that that big monohilitc everything-is-mandatory spec does not get implemented at all, or only partly (which would cause a lot of "fun")
-
pep.
Well quite a lot of MUSTs or SHOULDs are behind optional features
-
jonas’
discoverable partial support is better than only finding out about lack of support the hard way
-
pep.
flow, it's fine if the thing is still usable
-
pep.
But it's useless if it isn't
-
jonas’
which can either be a <service-unavailable/> / <feature-not-implemented/> (if you’re lucky), or different behaviour because an element was ignored.
-
flow
pep., I am sorry pep, but I can't follow
-
pep.
"I implemented all the mandatory bits! No clients can use my implementation!"
-
pep.
(all and only*)
-
jonas’
MattJ, poke
-
Neustradamus
Two "Version 1.0.0 of XEP-0363" in next Newsletter
-
MattJ
jonas’, done
-
!XSF_Martin
k