who can set me up with access to the XMPP Twitter account?
stefandxmhas left
stefandxmhas joined
intosihas joined
intosihas left
intosihas joined
ralphmhas left
Valerianhas joined
emxphas joined
stefandxmhas left
ralphmhas joined
valohas joined
Valerianhas left
stefandxmhas joined
Valerianhas joined
Flowhas joined
ralphmhas left
danielhas left
danielhas joined
tuxhas left
tux
moparisthebest: I wondered because when I looked up nick hash coloring recently I saw that SHA1 was used to calculate the hash.
jubalhhas joined
stefandxmhas left
stefandxmhas joined
Steve Killehas left
Steve Killehas left
Valerianhas left
la|r|mahas joined
jonasw
tux: sha was my first choice indeed, but it doesn't really matter
tux
are there other implementations which use crc?
jonasw
tux: I haven't checked
dwd
jonasw, I wondered about CRC32. It feels like it's more prone to accidental collisions. Adler32 is less so, and faster. And MD5 even less so and fast enough these days.
jonasw
dwd: Adler doesn't work at all in those input sizes
tux
If we could come up with a hint that one of the algorithms is most common for nick hashing I'd vote for that most common algorithm.
stefandxmhas left
stefandxmhas joined
ralphmhas joined
jonasw
dwd, it doesnāt matter a lot (except that Adler32 needs much more input to be effective) since we fold the output to 16 bits anyways
jonasw
tux, interesting idea; however, my intention was to go with something which is easily available on all platforms and implementations; the zlib crc32 should be such a thing
Steve Killehas joined
jonasw
with MD5, we had the concern that it might vanish from crypto libraries at some point
tux
For C/C++ that's true. I'm not so sure about other languages.
tux
IMHO it would be sensible to have a scheme that is viable to as many (modern) programming languages as possible. We want people to use this.
jonasw
most languages have some kind of zlib support, because the zlib is everywhree
jonasw
I agree
jonasw
I can check how well Adler16 performs. we might be able to seed it properly so that it randomizes, but Iām not too confident in that. the adler concept is a bit weak on the mixing side
dwd
jonasw, I think CRC32 predates zlib, actually.
jonasw
dwd, sure
tux
The fine thing about CRC ist that it is easy to implement
jonasw
is it? I never managed to :)
dwd
Huh. CRC is 1961, CRC32 is 1975.
jonasw
dwd, Iām referring to zlib crc32 because of the specific zlib polynomial used
tux
At least I did some working implementations. ;)
Martinhas joined
la|r|mahas joined
la|r|mahas joined
jonasw
tux, in my defense, the platform I tried it on was VHDL ... soo ... ;-)
but given that there exist libre implementation of the zlib CRC32, it would be easy to port to any language, if there are really any which donāt have access to a CRC32 implementation with that polynomial
tim@boese-ban.dehas joined
tux
jonasw: yes, it is. Maybe it makes sense to link to a normative description for CRC32. I'll have a look during the weekend.
edhelas
do you guys know XMPP clients that are doing Jingle with WebRTC ?
jonasw
yes, I hadnāt found one
jonasw
edhelas, jitsi maybe?
jonasw
tux, if you could find a nice normative reference for the zlib CRC32 or CRC32 in general and the zlib polynomial, that would be of great help
dwd
jonasw, No, Jitsi-the-desktop-client doesn't interop with JitsiMeet.
jonasw
dwd, aw, pity
jonasw
put them on a stake and burn them with flames
jonasw
:)
dwd
edhelas, The only ones I know of are bespoke Web ones.
la|r|mahas joined
jonasw
(just kidding)
edhelas
dwd, that's what I thought
la|r|mahas joined
intosi
The benefit of MD5, is that every XMPP implementation already knows how to do that.
dwd
jonasw, "Classic" Jingle VOIP doesn't interop with WebRTC Jingle VOIP.
edhelas
so we don't have any client, except Movim, that implement Jingle using WebRTC
jonasw
intosi, isnāt it a MUST NOT by now? :)
dwd
intosi, True. Also there are loads of implementations everywhere.
intosi
jonasw: sure, but legacy.
jonasw
intosi, will legacy implement new things?
dwd
jonasw, In security cases.
intosi
Fine, then propose SHA-1, which is definitely required, for things like CAPS.
jonasw
and Iām sure those implementations depend on lib*ssl for those; will lib$whateverssl support MD5 in the future?
jonasw
(SHA1 will probably work better, indeed)
jonasw
(support-wise)
dwd
jonasw, There's a number of issues with MD5, but the worst one now is speed. MD5 is so fast that brute-forcing is practical. At the same time, and increasing number of people are using it in this kind of thing because of that.
If speed of nickname colour hashing is going to be your issue, I wonder how your client is to keep up in such a room with all the messages ;)
Steve Killehas left
Steve Killehas joined
jonasw
intosi, frankly, *I* do not care much about it; my client will cache the colors anyways.
jonasw
but I heard that itās not that trivial for other implementations.
dwd
jonasw, I thought it was only faster where the silicon supports it? But in any case, SHA-1 sounds good then.
jonasw
dwd, the difference seems to small for silicon support to be the reason in this graph, I think. so yeah, seems to be faster
jonasw
(not that itād matter on our input sizes)
intosi
I like hashing methods that are already in use in code ;)
dwd
intosi, To be honest, I'd go for SHA-1 ver CRC32-with-some-polynomial just for the ease of specification.✎
intosi
Yeah
dwd
intosi, To be honest, I'd go for SHA-1 over CRC32-with-some-polynomial just for the ease of specification. ✏
intosi
I tried to calculate my nick colour yesterday evening, and wasn't sure whether I was using the correct polynomial.
jonasw
Iām all in for that
intosi
As in some environments, folks just mention it's a crc32, and never bother telling you which one it actually is ;)
jonasw
the question is: shall I update the protoxep or update it when it goes experimental?
dwd
intosi, On this client, it is, rather fittingly, orange.
daniel
šfor sha1
intosi
Orange is good.
dwd
intosi, You say that, but it's not working out well for the US.
intosi
dwd: yeah, but they're holding it wrong.
jonasw
lol
dwd
jonasw, Just wait.
jonasw
dwd, great, that fits my schedule better
tux
Yeah, we should provide a sample set for software testing. With hashing methods it's always kind of a guess whether the results are correct.
jonasw
tux, there are test vectors
tux
Ah, okay.
tux
jonasw: hm.. You mean test vectors for CRC32 or for the Nick coloring?
jonasw
the latter
jonaswhas left
tux
Ack
jubalhhas joined
andrey.ghas joined
andrey.ghas left
edhelashas left
edhelashas joined
andrey.ghas joined
lskdjfhas joined
andrey.ghas left
andrey.ghas joined
Vaulorhas joined
andrey.ghas left
andrey.ghas joined
andrey.ghas left
andrey.ghas joined
andrey.ghas left
aluisyohas left
fp-testerhas left
edhelashas left
nycohas left
fp-testerhas joined
edhelashas joined
andrey.ghas joined
andrey.ghas left
Alexhas joined
Wiktorhas joined
Wiktorhas joined
Wiktorhas left
Wiktorhas joined
andrey.ghas joined
Wiktorhas joined
andrey.ghas left
Wiktorhas joined
Link Mauve
edhelas, Jitsi Meet is a Jingle client, just like Movim.
Wiktorhas left
Wiktorhas joined
Wiktorhas left
Wiktorhas left
Wiktorhas joined
Wiktorhas left
Wiktorhas joined
Wiktorhas joined
jonasw
'p
Wiktorhas joined
lumihas joined
Wiktorhas joined
Wiktorhas left
Wiktorhas joined
ralphmhas joined
stefandxmhas left
stefandxmhas joined
tim@boese-ban.dehas joined
ralphmhas joined
jubalhhas left
jubalhhas left
edhelashas left
edhelashas left
andrey.ghas joined
Guus
Link Mauve - do you think Jitsi Meet will do interop Jingle? I know that they recently added p2p support, but otherwise, everything typically flows through the videobridge. Jingle is involved there, but is it functional outside of their own solution?
Guus
It'd be great if they do though
la|r|mahas joined
edhelas
does the visioconference part of Jitsi do even pass by Jingle ?
edhelas
looks like their solution is not a full XMPP based solution
Holger
edhelas: The Videobridge is XEP-0340.
stefandxmhas left
stefandxmhas joined
edhelas
Holger, okay
Guus
oh, there's definately a lot of XMPP in there. I'm not sure if it's interoperable, though, with non-Jitsi clients
talky is now based on a bunch of deferred standards :-)
MattJis currently in a call on Talky
MattJ
I might have to end it now I know this
SouL
Haha
Guushas left
Guushas left
Alexhas left
moparisthebesthas joined
danielhas left
danielhas joined
Ge0rGhas left
fippo
mattj: there is also a proprietary namespace used. nothing critical at least :-p
Guushas left
moparisthebesthas joined
Flowhas joined
jubalhhas joined
Guushas left
moparisthebest
fippo: isn't everything based on deferred standards? :'(
Ge0rGhas left
Guushas left
Guushas left
moparisthebest
even the 2017 compliance suite specifies deferred standards, or at least ones that have been in last call for months and should be deferred
fippo
the internet runs on drafts
jonaswhas left
mimi89999
fippo: š
Ge0rGhas left
Flowhas left
lskdjfhas joined
lskdjfhas joined
Guushas left
jerehas joined
jerehas joined
stefandxmhas left
stefandxmhas joined
waqashas joined
jerehas left
jerehas joined
Ge0rGhas left
Neustradamushas left
Ge0rGhas left
danielhas left
danielhas left
Alexhas joined
danielhas left
Guushas left
mimi89999has left
Wiktorhas joined
la|r|mahas left
stefandxmhas left
Ge0rGhas left
Vaulorhas left
stefandxmhas joined
Ge0rGhas left
danielhas left
danielhas joined
ralphmhas joined
waqashas left
tuxhas left
waqashas joined
mimi89999has left
Ge0rGhas left
jonasw
regarding the coloring thing, Iām still uncertain whether using the roster name or the JID is preferable.
using the roster name has the advantage that multiple JIDs to the same contact can have the same color. using the JID has the advantage that the color is stable even if I change the name.
jonasw
opinions?
sonnyhas joined
jonasw
using the JID also has the advantage that the three different Martins in my roster could have different colours
jonasw
and I wonder how relevant the "I have the same person with multiple different JIDs in my roster" use-case really is
sonnyhas joined
Zashhas left
lumihas joined
Ge0rGhas left
SamWhited
I'm a fan of the JID. Although it would be a bit weird because toys have to do the bare for 1:1s and the resourcepart only for mucs probably.
jonasw
"toys"?
Zash
Weren't public semi-anon MUCs an edge case only used by nerds who nobody cares about (ie us)?
jonasw
for MUC the situation is indeed so that the nickname is used if the muc is anonymous, otherwise roster name or JID, depending on what we decide on
SouL
JID sounds really nice to me.
jonasw
I also tend to JID by now, even though I first thought that roster name would be nice
Ge0rG
No opinion from me
SamWhited
*sigh* phones
SamWhited
I think that was supposed to be "you would have to useā¦"
Wiktorhas joined
SamWhited
Also what Zash said though; probably best to just ignore MUC to keep things simple. The XEP already *looks* too long for such a simple client feature (I read through it, it seems fine, but initial impressions are everything and I'm already concerned that it looks complicated enough that clients won't bother trying to implement it)
jonasw
SamWhited, I thnik on the other hand that many XEPs are way too short because they lack detail.
jonasw
the part on MUC is literally three short paragraphs, I wouldnāt omit that
Ge0rG
SamWhited: MUC nick coloring was the actual reason for inventing that XEP
jonasw
we can move the test vectors to some appendix or so and not put each case in its own section, thatāll shorten the TOC a bit
SamWhited
jonasw: It's not a big deal, it looks like a really good XEP overall, I just worry about these things.
stefandxmhas left
jonasw
thanks, and ok
Ge0rGhas left
jonasw
(also the thing isnāt that simple anymore once you consider color vision deficiencies and such)
Ge0rG
Maybe I should read the XEP as well, instead of just relying on what I think it contains.
SouL
Ge0rG, haha :)
jonasw
:D
Zash
Ge0rG: Blasphemy!
Ge0rG
SouL: something I had to explain to a customer today: as a Ph.D., you learn to make confident statements about something you have no idea of.
Zash
Ge0rG: You better only look at the examples!
Zash
-xkcd 793
Bunneh
Physicists
https://xkcd.com/793/
Physicists
Ge0rG
actually, I just rely on jonasw writing down what we discussed at length multiple times ;)
SamWhited
I pretty much do only look at the examples the first time I "read" an XEP. I figure that's what client devs are going to do, so if they're confusing or lead to the wrong behavior it's probably something that should be fixed
jonasw
what hurt most while writing the XEP was trying to stick to en_US ;-)
Ge0rG
Yeah, blaming client devs for (even major) failures is very disappointing and surprisingly hard work. BTDT.
Neustradamushas left
SamWhited
I'm not actually sure how to read that; if it sounded like I was blaming them, I'm not. I think that it's fine for them to only glance at the examples and it's our (XEP authors') fault if we don't communicate clearly with our examples.
SouL
Ge0rG, super good one :)
Ge0rG
SamWhited: you are absolutely right, my remark was rather tangentially related than a direct answer to yours
SamWhited
*nods* I think we're on the same page
Ge0rG
It just made me remember the Carbons attribution issue from earlier this year, and I think the Carbons spec is rather clear.
Were they? The one or two issues I submitted (Mcabber and Jitsi, I think) were pretty good
Steve Killehas left
Ge0rG
SamWhited: some developers just didn't care
SamWhited
figures
SamWhited
*sigh* oh well.
jonasw
Ge0rG, did you send them carbons claiming to be from themselves to confuse them? :)
tim@boese-ban.dehas left
Ge0rG
jonasw: I sent some, but not to the devs
Ge0rG
Or at least not claiming their identities
Ge0rGhas left
jonasw
why not? :( ;-)
Ge0rG
It didn't appear to me, back then
Ge0rG
Instead I claimed to be an unpopular political character.
tim@boese-ban.dehas left
stefandxmhas joined
jerehas joined
Ge0rGhas left
uchas joined
goffihas joined
lumihas left
danielhas left
uchas joined
danielhas joined
goffihas left
Guushas left
fp-testerhas left
fp-testerhas joined
Ge0rGhas left
ralphmhas joined
goffihas joined
goffihas left
ralphmhas left
Ge0rG
What would be the least inelegant way to implement a self-ping feature on MUC JIDs? It needs to be discoverable via caps info, and it needs to be something that doesn't have meaning yet. Maybe a certain IQ to the bare JID?
dwd
Discoverable by caps? That's hard.
jonasw
Ge0rG, make a feature var which defines a ping to the bare MUC jid to only succeed iff the requesting resource is joined and return <item-not-found/> or somtehing otherwise✎
jonasw
Ge0rG, make a feature var which defines a ping to the bare MUC jid to only succeed iff the requesting resource is joined and return <item-not-found/> or some other error if the user is not joined ✏
Ge0rG
jonasw: that would probably make sense.
jonasw
currently how that ping behaves is undefined-ish I think
Ge0rG
we need to feature-check it anyway.
jonasw
yupp
Ge0rG
jonasw: currently I'm pinging my own participant JID, which is a double-RTT va banque game.
jonasw
I know
Ge0rG
jonasw: I think that ping IQ semantics are defined already, and changing them is actually incompatible. Maybe a dedicated IQ makes more sense?
goffihas joined
jonasw
Ge0rG, is the ping to a bare MUC jid really defined?
jonasw
daniel, you have some insight in the OMEMO topic, right? can you confirm that this is the result of the recent discussion which should be merged? https://github.com/xsf/xeps/pull/482
dwd
Ge0rG, What are you doing to do with this ping?
Ge0rG
jonasw: Oh, right. IQs must go to a full JID
dwd
Ge0rG, Erm, no.
Ge0rG
dwd: I need to figure out if I'm still joined to a MUC
dwd
Ge0rG, OK. And if you're joined, you'll do nothing, and if not, you'll rejoin?
Ge0rGhas left
Ge0rG
dwd: exactly
dwd
Ge0rG, So - and I admit this has inefficiencies - as a first step, could you not just send presence?
jonasw
Ge0rG, the ping to the MUC component domain makes sense, the ping to the occupant JID does too, the ping to the bare MUC jid doesnāt really
Ge0rG
dwd: no.
goffihas left
dwd
Ge0rG, Why not?
Ge0rG
dwd: sending presence is a "groupchat 1.0 leagacy" join✎
Ge0rG
dwd: sending presence is a "groupchat 1.0 legacy" join ✏
Ge0rG
jonasw: not practically, but technically.
jonasw
Ge0rG, sure
dwd
Ge0rG, Well, yes, you'd get unwanted history potentially. But if that's *quite* close, is it somewhere to build from?
jonasw
and if the behaviour is practically undefined, you can re-define it to be something useful with a feature var
Ge0rG
dwd: the MUC implementation might mark me as a legacy client.
Ge0rG, The only difference is the join, though. Once you're joined, its exactly the same.
Ge0rG
SamWhited: I volunteer to make the diff to 45, provided that council will signal pre-approval.
dwd
Ge0rG, So by periodically reflashing presence, you're just risking getting the wrong history.
Zash
dwd: Like gmail did?
Ge0rG
dwd: will my presence get forwarded to all participants?
Ge0rG
dwd: I have a MUC with histsize=500.
dwd
Zash, Ah, gmail re-sent a '45 join periodically as well. That was mega-annoying.
Zash
Rebroadcasted all directed presence too iirc
dwd
Ge0rG, Yes, and also erk. But I think it's an interesting place to start.
jonasw
I think a ping is a cleaner solution. nothing wrong if itās with a feature var, is there?
Zash
In such a way that if they changed nickname, they'd periodically switch back and forth
dwd
Ge0rG, If your server both maintains, and always sends by default, 500 lines of history there's something badly wrong somewhere.
dwd
Zash, Indeed. I'm not suggesting that.
Ge0rG
dwd: I totally could live with a <presence><limited history><I'mtherealready></p>
dwd
Ge0rG, In principle, a server could/should not rebroadcast presence where its identical anyway. But that's a small point.
Ge0rG
dwd: I think that having 500 lines of history in the default buffer beats MUC-MAM.
SamWhited
Ge0rG: I can't speak for anyone else, but I'd be all for that.
Ge0rG
dwd: it's a small O(N²) point.
SamWhited
Others are probably more conservative since it is in draft, after all.
Ge0rG
Eternal draft.
Zash
<presence><{muc}x><{mam}history plz/><//
SamWhited
Ge0rG: Is there some reason to move it on past draft?
dwd
SamWhited, The fallback is it's a rejoin/rebroadcast.
Ge0rG
dwd: there is another problem with the presence approach: if you lost sync, you'll get the history (mkay), and you'll get a full participant list. But you need to know in advance that you are receiving a full list so you can clear your previous list.
Ge0rG
dwd: otherwise you'll end up with stale participants in your cache
Ge0rGhas left
jjrhhas left
Ge0rG
and race conditions will prevent any sensible workaround
jonasw
right
Ge0rG
Besides of all that, some client (library) implementations don't expect to receive a join from a MUC they are already joined into. So they might lose sync anyway.
dwd
Ge0rG, Well a library written to use a periodic presence as a ping-or-rejoin will work fine, surely?
Ge0rG
dwd: yes, unless you hacked the ping-or-rejoin code on top of an old library. ;)
Ge0rG
Maybe it would be cleaner to respond to a non-x-ed <presence> with an error, so the client can rejoin?
Vaulorhas joined
Ge0rG
But still, we have the O(N²) problem that every client, sending a periodic presence, will flood everybody else.
jjrhhas left
Ge0rG
Can anybody gather stats on "groupchat 1.0" usage?
MattJ
https://matthewwild.co.uk/uploads/gc_pinger.html
MattJ
(not an answer to your question about usage stats)
dwd
Ge0rG, "If I write my code badly it might be written badly" is not a tremendous argument.
dwd
MattJ, You're suggesting that this be done server-side instead?
MattJ
I'm merely dropping a historical anecdote :)
Ge0rG
dwd: it's not a tremendous argument indeed. Please focus on my two material arguments instead.
dwd
Ge0rG, Excellent. So if the client is dropped from the MUC without its knowledge, and simply sends an updated presence, then you'll be inadvertantly getting the same problem but this time it's unavoidable.
Ge0rG
dwd: right. But this is another argument.
MattJ
Server-side doesn't tell the client that they are disconnected, does it even help? It helps them not be de-synced when they rejoin, but only if the server happened to ping them in that time period
dwd
Ge0rG, The only solution would be to, before updating presence, send your IQ-based ping beforehand. But then there's a minute race condition, which you'll no doubt be disproportionally upset about.
Ge0rG
dwd: I don't think it is wrong to focus on corner cases when aiming to design robust protocols.
Ge0rG
dwd: if we design a 90% protocol, we'll end up in the place we are in today.
MattJ
+1, corner cases matter
Ge0rG
where my desktop client at home disconnects from a MUC because I'm joined to the same MUC with the same nickname from my mobile device when on the go.
Zash
If we design a 100% protocol, we'll be done in the year 3000?
MattJ
Zash, then we can release 0.10
dwd
Ge0rG, Excellent. So I've given you a corner case which your design fails to address, and my (sketched) design does.
Ge0rG
Zash: fixing MUC isn't _that_ complicated. If we can get rid of legacy.
dwd
Ge0rG, Legacy meaning gc?
jonasw
dwd, and how to solve the issue with inconsistent occupant state?
MattJ
I'm inclined to agree with finally dropping GC 1.0 support
jonasw
when Iām re-sending presence and in fact Iām doing a join, I donāt get presence notifications for occupants which left in the meantime
Ge0rG
dwd: I'm not saying your design is bad, or that it's wrong to follow that approach. I'm just pointing out that your sketch won't work.
jonasw
I think both designs donāt work
Ge0rG
dwd: in the current context, legacy means GC. But I'd be glad to kick out more legacy when appropriate.
jonasw
and ideally there would be an IQ based join which either fails or succeeds and only after the IQ returns you get the presence updates, so that itās fully synchronous
dwd
jonasw, Sure, but that's MIX.
Ge0rG
jonasw: I'm okay with a presence based join that succeeds as soon as you get a presence reflection.
Ge0rGhas left
Ge0rG
Which is MUC.
tuxhas joined
ralphmhas joined
uchas joined
Ge0rG
dwd: I could imagine a periodic presence with yet another additional element, where the server would respond with a presence-unavailable, followed by a full rejoin.
Ge0rG
dwd: and all of this would depend on a feature flag.
Ge0rG
dwd: and the server wouldn't forward such a presence to other participants, unless it contains a delta.
Guushas left
Ge0rG
dwd: the presence-unavailable (or any other response marker) is needed to make the client flush the cached data.
jonasw
Ge0rG, "succeeds as soon as you get a presence reflection"? I donāt understand that part
goffihas joined
Ge0rG
jonasw: a MUC always reflects presence to you. So once you get that reflected presence from the MUC, you know you are inside.
Ge0rG
reflects your own presence, that is.
jonasw
sure, but ... how do you know the occupants list when you didnāt know that you re-joined?
Ge0rG
jonasw: "the presence-unavailable (or any other response marker) is needed to make the client flush the cached data."
jonasw
ahh
dwd
(Or: The occupant data could have a delay tag in)
jonasw
dwd, does that help you to identify which occupants have left in the mean time?
Ge0rG
1. MUC advertises "smart-resync"
2. you join, normally.
3. you send a <presence><smart-resync>
4a. you get a presence reflection
4b. you get a presence-unavailable followed by a full resync
dwd
No, but you know when the end of the occupant list is, so that should be OK.
Ge0rG
dwd: you need to know the beginning of the occupant list.
Lancehas joined
Ge0rG
dwd: so essentially you must strip <delay> from inbound client presences
dwd
Ge0rG, What?
Ge0rG
and if the client receives a presence with a delay, it knows that it's at the beginning of a rejoin.
lovetoxhas joined
Zash
Was there a status code for 'this means you just joined'
dwd
Ge0rG, I suppose you could do it that way. Or spot your own afterward and clear any untainted. Or ...
Ge0rG
Zash: yes, it will be in your own reflected presence at the end of the occupant list
Ge0rG
dwd: RACE CONDITIONS!!1!!
Ge0rG
Sorry, I just couldn't resist.
dwd
Ge0rG, I don't think there are any there.
dwd
Ge0rG, Unless you're getting stanzas out of order.
Ge0rG
dwd: any participant presence you receive after sending your smart-resync-presence might be either old presence from your previous MUC session or the beginning of the occupant list. No way to know.
Ge0rG
So what you could do is to put all the presences into a queue until you get your own reflection. Or the subject.
Ge0rG
I think it's your own with the appropriate status code
Ge0rGhas left
dwd
Ge0rG, You'd get your own afterward, certainly. And any presence you get after a smart-resync is either un-delayed, in which case it's the first stanza(s) you'll get and it potentially stale but who cares because you'll notice this later - or else is delay marked, and therefore part of a resync.
Ge0rG
dwd: unless it is a delayed presence because the sending client added a delay element.
dwd
Ge0rG, The only pattern, in other words is: *non-delay [ *delay ] your-reflection
dwd
Ge0rG, Yes, but there's a thing in delays to tell you who is delaying.
Ge0rG
dwd: and I need to put all the non-delayed presences into a queue and unwind them once I realize it's a resync.
Ge0rG
dwd: that's not how you design a robust protocol.
Ge0rG
dwd: and really, what's wrong with injecting a presence-unavailable?
dwd
Ge0rG, No you don't.
MattJ
So what isn't solved by <presence type="error"> if the client isn't in the room and they send presence with no <x>?
dwd
Ge0rG, The moment you see a presence delayed by the MUC, you're rejoining. You weren't before, you now are.
Ge0rG
dwd: okay, you try to make it work in a backward compatible way. I appreciate that. But it's not easy.
Ge0rG
MattJ: groupchat 1.0
MattJ
and apart from that?
dwd
MattJ, Breaks compatibility with gc, of course. Whether that's now safe to do I'm not sure, though it feels dangerous.
Zash
What clients do gc?
MattJ
I'm willing to do it
Zash
What *clients* do it, not counting advanced users manually typing XML in netcat (like I do sometimes)?
MattJ
I don't mind if 20 year-old clients break, and probably some bots. Any actively maintained clients likely do the right thing already or will be fixed promptly
Ge0rG
MattJ: you could create stats on GC1 clients.
Ge0rG
MattJ: presence-error would also be a nice way to make GC1 client devs care.
Zash
Prosody trunk MUC logs such conditions already
Zash
Debug level, but still
Ge0rG
most of it will probably be resync problems.
dwd
Does/did gc have any discovery? I suspect not.
Zash
Ge0rG: It logs joins without <x> and presence with <x>
Ge0rG
Okay, I'm late for my weekend already. Thanks very much for the productive discussion. Maybe you can bring up killing GC in the next council meeting?
MattJ
I think that's the best solution, and I'm willing to move forwards on it as a server dev
Ge0rG
I think that would be a good first step, with the second step being an explicit smart-resync presence feature
Ge0rG&
MattJ
fg
Martinhas left
SamWhited
I'll add it to the agenda when I get back to my desk if someone else hasn't already (leaving this here as a note to myself)
dwd
kill -STOP %1
MattJ
Now he'll never get home
dwd
MattJ, "SIGSTOP cannot be caught or ignored."
jonasw
SamWhited, did it for you
SamWhited
Thanks
tuxhas joined
jonasw
who has power over https://hub.docker.com/r/xmppxsf/xeps/builds/ ?
jonasw
I could use someone hitting a retry button.
jonasw
that build failed due to some remote network issue
dwd
jonasw, Randomly update the README?
jonasw
good point, I wanted to merge my readme stuff anyways
goffihas left
Yagizahas left
Ge0rGhas left
efrithas joined
jjrhhas left
jjrhhas left
Ge0rGhas left
ralphmhas left
ralphmhas joined
jerehas joined
vanitasvitaehas left
vanitasvitaehas left
jjrhhas left
jjrhhas left
lumihas joined
lumihas joined
lumihas joined
jjrhhas left
tim@boese-ban.dehas left
fp-testerhas joined
valohas joined
jjrhhas left
Ge0rGhas left
ralphmhas left
efrithas left
jjrhhas left
fp-testerhas joined
jjrhhas left
Ge0rGhas left
tuxhas joined
tuxhas joined
dwdhas left
jjrhhas left
Guushas left
Vaulorhas left
Ge0rGhas left
danielhas left
danielhas joined
ralphmhas joined
Guushas left
Guushas left
SouLhas left
Ge0rGhas left
tuxhas left
moparisthebest
woah jonasw warning: failed to load external entity "http://xsltsl.sourceforge.net/modules/node.xsl" the xep build depends on sourceforge being up? that sounds like a bad bet
moparisthebest
can it be fixed to not depend on any remote entities?
Guus
Hey, did Thiago become active again?
jjrhhas left
fippo
nice change @ jingle relay nodes.
Ge0rGhas left
lovetoxhas left
lovetoxhas joined
jjrhhas left
uchas left
fippo
mattj: remember that xep-0215 is much better though!
Steve Killehas joined
SamWhitedhas left
pep.
edhelas, DNS resolution failed on movim.eu
edhelas
which DNS ?
pep.
movim@conference.movim.eu/pep.: cancel: Server-to-server connection failed: DNS resolution failed