Can participants fetch MUC-registered nicknames of other participants?
Daniel
Will those appear in the member list?
Daniel
Admin/owner list
Daniel
That's probably way underspecified. But it would make sense
Daniel
Since prosody is the only implementation that even has registration ask MattJ?
Ge0rG
MattJ proposed to send all registered participants that are not an occupant with unavailable presence.
pep.
(one more place to fetch nicks yay)
Ge0rG
IMHO, sending a bunch of unavailable presence with a join shouldn't break anything
Daniel
Shouldn't...
Daniel
But yes that probably makes sense
MattJ
pep., "one more place" -> the idea was to consolidate them all into this one place (presence), so the client only has one mechanism to track occupants
MattJ
In my head I have a draft thing for MUC join flags to opt into things like this
MattJ
and also to filter messages, e.g. bots that only want to receive certain things or from certain occupants (and enforcing this server-side if necessary, so it becomes safe to add bots to a room without them logging your conversations)
Daniel
Uh. Like muc/sub
Andrzejhas left
Ge0rG
MattJ: also a flag to not send occupant presence and a roser-versioning-alike thing for the participants?
florettahas left
krauqhas left
neshtaxmpphas left
debaclehas joined
krauqhas joined
neshtaxmpphas joined
eevvoorhas left
pep.
MattJ: there are other places where a client can fetch nicks / display name that a MUC doesn't have access to
pep.
right?
MattJ
pep., oh, sure
MattJ
Daniel, quite possibly, but I'd actually put this through as a XEP and hope to keep the changes simple enough that it gets adoped (if other server devs even care about improving MUC anymore, it's possible that they don't)✎
MattJ
Daniel, quite possibly, but I'd actually put this through as a XEP and hope to keep the changes simple enough that it gets adopted (if other server devs even care about improving MUC anymore, it's possible that they don't) ✏
Ge0rG
I still think that improving MUC is worthwhile. MIX has become a significant engineering effort.
Daniel
Implementing it on the client side is probably easy
Daniel
but for me the biggest issue with MUC is reconnection/reliability
Daniel
before we can solve that it feels a little pointless to waste time and energy on other improvements
Daniel
but I understand that different people have different priorities
Daniel
and/or that work on one improvement doesn't block improvements on other fronts
Ge0rG
Daniel: did you make any progress on the per-MUC push registration?
Daniel
i even removed the code again
Daniel
because it was causing some weird edge case bugs
Daniel
where the server was maybe at fault
Daniel
and nobody had implemented it
Ge0rG
"weird edge case bugs" is the long form of "MUC"
Daniel
well i think it wasn’t even muc related. but a server announced push and muc on the primary domain and then it registered itself 100 times or something
pep.
What happened of 410 on s2s?
Daniel
I don’t recall the details. but i didn’t feel like fixing it or finding work arounds for it when it was dead code anyway
because 410 on s2s would just be regular ping, no?
pep.
yeah, servers doing "410"
pep.
Whatever it takes to keep the link on. Which is also gonna be a problem for MIX anyway
Daniel
didn’t eta want to come up with a thing
pep.
dunno
Ge0rG
MIX has the additional problem that there is no plan for recovering from s2s outages.
pep.
yeah
Ge0rG
MUC is self-healing, more or less, once you rejoin
Daniel
i've heard matrix has something for that
Ge0rG
MIX... good luck.
Daniel
well your joins/leaves are IQ based so you know if that was succesful
Ge0rG
We also have the same problem with MAM.
Daniel
and then you might just lose messages
Ge0rG
Because apparently, combining "give me everything I missed" and "enable live delivery" is a HARD problem
MattJ
pep., from example 131 in XEP-0045 it looks like the affiliation list includes the nick, so yeah
pep.
Ah, thanks. I missed it indeed
Daniel
MattJ, does prosody already include that?
MattJ
Yes
sonnyhas joined
MattJ
Just found the test: https://hg.prosody.im/trunk/file/tip/spec/scansion/muc_register.scs#l397
sonnyhas left
sonnyhas joined
eevvoorhas joined
sonnyhas left
mukt2has joined
DebXWoodyhas left
eevvoorhas left
eevvoorhas joined
Andrzejhas joined
mukt2has left
Andrzejhas left
Andrzejhas joined
sonnyhas joined
sonnyhas left
eevvoorhas left
florettahas joined
sonnyhas joined
antranigvhas joined
Lancehas joined
Andrzejhas left
eta
Daniel: yeah I have half a protoxep about automatically reconnecting to MUCs that I never finished
antranigvhas left
antranigvhas joined
Lancehas left
antranigvhas left
Shellhas joined
Tobiashas left
Tobiashas joined
antranigvhas joined
antranigvhas left
antranigvhas joined
pasishas joined
adityaborikarhas left
adityaborikarhas joined
Lancehas joined
pasis
Hi, I've refreshed library in libraries.json, but xmpp.org hasn't been synced. Could someone update xmpp.org? The library is libstrophe.
DebXWoodyhas joined
adityaborikarhas left
adityaborikarhas joined
Seve
pasis: It was merged though, right? I think I did
pasis
yes, it's merged, just doesn't appear at xmpp.org
pep.
Yeah docker things probably need a push
jonas’
they need a pull :-X
pep.
:P
jonas’
joking aside, will do
jonas’
updated
Lancehas left
vanitasvitae
btw. there are some stale PRs on xsf/xeps that are ready for processing by the editors, namely https://github.com/xsf/xeps/pull/923 and https://github.com/xsf/xeps/pull/932
vanitasvitaepokes editors with a stick
jonas’
vanitasvitae, ah, I missed your approval on those, as I was on vacation during that time
jonas’
will tag them so that I process them later tonight
jonas’
thanks for the ping
vanitasvitae
nice 🙂
vanitasvitae
thanks for being an editor ❤️
alameyohas left
alameyohas joined
antranigvhas left
Andrzejhas joined
eevvoorhas joined
pep.
and I didn't really help :x
florettahas left
pasis
it works now, thanks :)
adityaborikarhas left
adityaborikarhas joined
neshtaxmpphas left
antranigvhas joined
antranigvhas left
adityaborikarhas left
adityaborikarhas joined
archas joined
archas left
archas joined
archas left
archas joined
adityaborikarhas left
adityaborikarhas joined
dwd
(Reading up) eta, I keep meaning to explore your ideas around group chats in more detail. I think I've read half your series on your blog, but keep meaning to read the rest.
eta
dwd, I mean it does peter out near the end; the only useful thing in that series is the whole "sponsoring server" model
eta
(which you could implement with XEP-0045 today and a custom MUC component, and I indeed might one day)
dwd
eta, Ah, yes - you had a hybrid model between XMPP's single authority and IRC's model of every server has to be trusted?
eta
dwd, exactly -- you have a quorum of trusted servers that use some consensus algorithm (Raft / Paxos)
eta
which is less crazy than Matrix's "fully decentralized" model (which I don't see being viable✎
eta
which is less crazy than Matrix's "fully decentralized" model (which I don't see being viable) ✏
pep.
(blog link?)
dwd
eta, There's some work around on partially trusted consensus algorithms, too. Kind of like BFT algorithms but each server might have different legitimate aims.
eta, You definitely don't want Paxos, though. And even Raft has some problems if we assume byzantine fault tolerance and dynamic group membership is desirable, I think.
krauqhas left
krauqhas joined
eta
dwd, very potentially! I never really went anywhere with this; it was just an idea
eta
what could be interesting is just to piggyback of something like etcd, which already handles the distributed state
dwd
eta, Well, you could start with a simple Raft implementation, for exploratory purposes.
etanods
Shell
etcd is just a Raft implementation on top of a k/v store, isn't it?
dwd
eta, And I think you don't need to worry too much about formal consensus for most things, you can do elections and a tree-based fanout for messaging, for example.
eta
Shell, yeah
eta
dwd, yeah, I mean you only need consensus for things like the room member list
Kev
Am I misremembering Raft, or isn't it a leadership-election thing? So fails if you need to continue functioning in a split situation?
dwd
eta, ... maybe? I'm not sure that needs consensus until the point where a member is more than a mere passive observer.
antranigvhas joined
eta
dwd, no, sure
eta
I meant more bans/voiced users/etc
antranigvhas left
dwd
Kev, It might have leadership, but it survives partition. It is not, however, eventually-consistent, so an orphaned member ceases to be available.
Kev
That is, I believe, what I intended to express. The majority split functions, the minority split doesn't.
eta
Kev, the thing is you can just queue messages in the minority split until it rejoins
Kev
eta
etablinks
Kev
(Sorry, dev version of client)
eta
aha :)
dwd
Kev, But eventual consistency and message ordering are, I think, problematic, unless your UX makes things very clear. FMUC solves this, I think, by making that UX affordance possible.
Kev
eta: By 'messages' here do you mean <message/> or the log entries from Raft? If it's <message/> then there's lots of other modifications that could happen during a split that are hard to deal with, I think.
eta
Kev, <message/>
pep.
I don't know Raft nor Paxos. Why would a minority not continue working on its own? redo elections etc.?
pep.
Resources I can read?
antranigvhas joined
eta
pep., https://raft.github.io/
Shell
because the minority can't know that what it does is compatible with the state of the majority.
Kev
dwd: Yes. It's not even the message ordering that most worries me though, it's the other state changes, e.g. banning a user and making them an owner on different nodes (the old IRC netsplit op attacks are an extreme symptom of this).
neshtaxmpphas joined
dwd
pep., Have a look at "CAP Theorum", as a good general start point.
archas left
archas joined
antranigvhas left
antranigvhas joined
Kev
pep: In order to win an election you need to have a majority vote. If you're in a minority split you can never have a majority vote. The leader is the Source Of Truth for the replication, with it being responsible for ordering the log messages. So if you had two leaders each claiming to be the Source Of Truth, bad things happen. At least from memory, I've not looked at Raft properly in a few years.
antranigvhas left
dwd
Kev, Broadly, this is true for almost every consensus algorithm that eschews eventual consistency.
Kev
Right.
pep.
Kev, right, your use of minority / majority "only" makes sense when you try to merge back :p
pep.
Thanks for the pointers
eta
Kev, I don't see how you can do split riding though
dwd
Kev, But also, I don't think the netsplit op attacks are possible if you don't have an eventual-consistency style.
eta
if you're in the minority partition, disallow all state changes
dwd
eta, Not just state. Message reordering can lead to some interesting problems.
adityaborikarhas left
Kev
Right. That (eta) obviously avoids the complications, at the cost of degraded service. But note that 'state' here includes message publishing.
adityaborikarhas joined
dwd
And when I say "interesting", I mean in the sense of people dying.
eta
?!
Ge0rG
Just DAG everything?
etaremembers dwd makes healthcare messaging software
dwd
eta, Not that context actually, but yes.
eta
wait, so explain how message reordering is problematic?
krauqhas left
dwd
"Is the patient breathing?" "Yes" "Have you checked for spinal injury?" "No". Rearrange for much fun.
eta
right, but you can't flip the yes and the no here
eta
assuming the asker and the responder have a netsplit between them
eta
because the behaviour in event of partition is to queue
Zash
eta: is your blog on planet ?
dwd
No, but if the "Yes" follows "spinal injury" people get pretty confused very quickly.
eta
Zash, don't think so
krauqhas joined
Ge0rG
eta: you can get nice reordering effects if there is a third party reading, and they have intermittent s2s issues
Kev
My (not exhaustive, but I've spent more time on this than one might like) experience of things-that-can-go-wrong in situations like this is that whenever I think "But at least X can't happen", something else that's equivalent to X ends up being able to happen.
archas left
eta
Kev, hah
archas joined
dwd
Ge0rG, As for DAG, that does deserve a special place in hell. People don't talk in DAGs, they talk linearly. The way to get DAGgy in conversations is to thread them and present a UX that then makes sense, and somehow encourage users to use that threading sanely.
Kev
dwd: Our conversation here is a DAG. It's just a very specialised case :)
Kev
._._._._._._._.
dwd
Kev, Yes, yes. Have a sticker. :-)
Ge0rG
Kev: is it really? Each message is either a root or a reference to some earlier message.
eta
if you *really* cared about message ordering you could replicate messages in the raft log
dwd
Ge0rG, A linear graph is a proper subset of a DAG, I think he means.
eta
but that would add quite a deal of latency
Kev
dwd: Honestly, a decent sticker would brighten up my day Quite A Lot right now.
Ge0rG: I'm as surprised as the next person that my joke doesn't stand up to scrutiny.
Ge0rG
Kev: sorry
dwd
Kev, It's been rejected at peer review stage, but is still available as a pre=print, so I guess you win?
Kev
Academic journal peer review is a process I will be very happy not to go through again (on either side).
Ge0rG
I suppose normal people are not deep into partially ordered histories, right?
sonnyhas left
Kev
Georg - if you mean that it's only the 'mission critical' (for want of a better term) situations where ordering matters, I think 'normal' people care about it too, it's just less bad when it goes wrong.
pep.
Ge0rG, it's supposed to represent a special shape of tree :p Dunno if that has a name
pep.
https://ppjet.bouah.net/tree-foo.png
Ge0rG
Kev: what I intend to say is this: if message history is implemented as an eventually consistent DAG, people won't be able to grasp the concept and draw the right conclusions regarding message ordering. Not in normal times and especially not during a crisis
Kev
Ah. Yes, I think a UI needs to de-DAG it in order for it to be reasonably understandable.
dwd
eta, Anyway, if you always send messages to the top of a conceptual routing tree, so a single leader elected for the purpose, but handle state changes through a consensus algorithm, then I think we're good. If you use a Byzantine fault tolerant algorithm, and use it sparingly, then I think you more or less get reasonable performance with highly resilient state - as long as you're not connected to a node which loses connectivity with the others in the consensus group.
pep.
(Basically meant to say some people want to be able to reply to a single message)
dwd
Kev, Or as pep. suggests (I think), Slack-style "threading".
sonnyhas joined
Ge0rG
Are we talking about threading or about message history consistency?
Kev
I note that me saying that things like Raft don't solve all aspects of CAP (yes), doesn't mean that using Raft for MUCs (which are currently entirely SPoF) would be bad.
dwd
pep., FWIW, I wanted to do Slack-style threading by spawning off a new chatroom as a child of the containing conversation.
pep.
dwd, I hear that's how rocketchat worksss-ish?
pep.
I've never used it
dwd
Kev, Also the whole point of CAP is that you can't solve all aspects of it.
Kev
I wanted to do Slack-style threading by spawning off a new message node within the channel.
Kev
dwd: Yes, thus the "(yes)" to denote that I realised.
dwd
pep., I... don't know. I do know some people who do a lot with Rocketchat though.
dwd
Kev, Ah, I thought so, but then I worried about people misunderstanding, but then after writing my last I realised that anyone familiar with "CAP" would know anyway.
dwd
Sometimes I should just not write things. :-)
dwd
eta, Oh, and before I forget to mention it, the bit of your design I thought was interesting - and have now largely forgotten - was your approach to permissions at the group chat level, which seemed well thought through.
Kev
You are probably right that I'm not expressing things in an observer-considerate way.
sonnyhas left
sonnyhas joined
Kev
I've been thinking about ways to improve clustering within M-Link (and other things) recently, which is a very similar area, but with different requirements.
dwd
Yes - no need to conider Byzantine fault tolerance, but you probably so want to go the eventual consistency route for most things.
Kev
I hadn't realised it, but reading eta's article I'm starting to think I'm in the middle of re-inventing Matrix.
dwd
Kev, Thinking about the IRC netsplit attacks, were those entirely predicated on the combination of channels disappearing when nobody was in them (and thus being able to be recreated with different ownership) and a poor merge algorithm?
eta
dwd, yes
Kev
Yes.
eta
the fix was "improve the merge algorithm"
Andrzejhas left
eta
so the channel with the earliest creation timestamp wins
Andrzejhas joined
Kev
Well, that was one of the fixes. I've also seen (maybe not recently) disallowing channel creation during a split.
Zash
Oh glob not merge algorithms
Kev
You can't *not* have merge algorithms of some sort, if you want eventual consistency.
Kev
You may as well say "Oh glob, not eventual consistency", which would probably be quite fair, it's a lot more of a brainfuck to reason about than something like Raft.
antranigvhas joined
etadecides people should just use single servers and avoid making a distributed system where possible
dwd
eta, We already have a distributed system in XMPP; we just have a fixed leader and all decisions are made by the leader. That's a valid solution to be problem; it's just that if you want to address the shortcomings (like the leader being a SPOF) then things get complicated.
adityaborikarhas left
adityaborikarhas joined
dwd
eta, Most notably, because our distributed system is a heterogeneous distributed system already.
florettahas joined
mukt2has joined
Lancehas joined
adityaborikarhas left
adityaborikarhas joined
Lancehas left
mukt2has left
raghavgururajanhas joined
clintoninghas joined
clintoninghas left
clintonhas joined
clintonremoved by Zash
porn
clintonhas left
clintonhas joined
clintonhas left
eta
ah, that is porn
edhelas
yes, but uploaded using HTTP Upload !
eta
yeah, which meant I clicked on it
eta
and now it's on my screen and I can't delete it
eta
thanks dino
pep.
quick quick send new messages
Zash
Message Moderation to the rescue?
dwd
Scrolling, scrolling, scrolling.
vanitasvitae
luckily I waited before clicking
dwd
Get them wagons rolling.
edhelas
got a nice preview on Movim :D
vanitasvitae
but yeah, deleting images in dino would be nice
pep.
Zash, I think allowing a user to stop displaying a picture would be nice nonetheless :/
etamakes more noise
Ge0rG
Some clients will just auto load images
eta
vanitasvitae, indeed
edhelas
actually it's the best way to wake up a channel it seems 🤔
eta
hahaha
eta
yay, it's off the screen now
pep.
Good, now we can go back to sleep
Zash
Pretty sure I enabled moderation here, so you can go in and delete it from the archives even
edhelas
pfieuw, now let's go back to normal
dwd
At least we're considered a worthwhile audience for porn spam.
Ge0rG
You can't solve social problems with technical means. If you block images, they'll send ASCII porn. Or illegal text content.
eta
Zash, but isn't it just converse that does that
edhelas
only XEP pr0n is allowed here, I like reading 0060 for example
eta
that's the good stuff
vanitasvitae
guys, follow my OnlyXEPs account!
Ge0rG
edhelas: you pervert!
edhelas
yeah, I love those Romeo & Juliet stories
pep.
While there is some activity in here: in 20 minutes we have a SCAM meeting in xmpp:scam@muc.xmpp.org?join and we're talking about Summit. Please join if you want to follow and/or have ideas on the organisation side of things
vanitasvitae
pep., thanks for the heads up
Lancehas joined
krauqhas left
krauqhas joined
neshtaxmpphas left
Lancehas left
JustLikeThathas joined
JustLikeThathas left
JustLikeThathas joined
DebXWoodyhas left
Lancehas joined
JustLikeThat
I have a proposal 🙂
JustLikeThatremoved by Zash
porn
mdosch
Porn again? This time moving pictures?
JustLikeThathas left
mukt2has joined
adityaborikarhas left
adityaborikarhas joined
archas left
archas joined
Lancehas left
mukt2has left
archas left
archas joined
Guus
Yes
Guus
Better moderating support in clients is going to become more desirable.
Guus
EG: make a room temporarily moderated, hand out voice, stuff like that.
Lancehas joined
Zash
and XEP-0425
slouchy6has left
archas left
archas joined
slouchy6has joined
Lancehas left
Lancehas joined
a moderatorremoved a message
porn
Observerhas joined
a moderatorremoved a message
porn
CognitiveDissonancehas joined
CognitiveDissonance
Hi all
CognitiveDissonance
I was wondering, what is the *fundamental* difference between XMPP and Matrix?
MattJ
Great question :)
Daniel
Fundamental from an end user experience probably not
adityaborikarhas left
adityaborikarhas joined
MattJ
I think the fundamental difference is that XMPP is based on routing stuff, and Matrix is based on distributing stuff
CognitiveDissonance
Like design principles, target use-cases, future roadmap etc..
eta
CognitiveDissonance, Matrix is fundamentally a database (a graph data structure that's replicated across servers; the spec defines how to replicate the structure), whereas XMPP is based on passing messages around (the spec defines how messages should be routed to different clients and optionally stored)
CognitiveDissonance
Ah, routing vs distributing seems like a core difference.
CognitiveDissonance
Also, is matrix completely web-based?
eta
this is why Matrix servers need more resources to run; because they spend a lot of energy doing this replication algorithm
Daniel
Define web based.
eta
whereas XMPP messages are simple and easy to route
CognitiveDissonance
Daniel http
Daniel
Yes it uses http.
Kev
> easy to route
/me giggles
CognitiveDissonance
Daniel What about xmpp?
moparisthebest
but if "http" is your criteria then XMPP is also web-based
Daniel
c2s *can* be http
moparisthebest
because it can be used over http
Daniel
s2s is tcp
Daniel
or at least we haven’t speced out a way to use s2s over http
Daniel
i guess we could
paulhas left
jonas’
why tho
CognitiveDissonance
So in terms of design principles like modularity, simplicity and extensibility, what is the diff b/w them?
Zashhas left
Zashhas joined
CognitiveDissonance
Daniel Hmm, I always seen only xmpp://foo and not http://foo, for c2s
Daniel
jonas’, well I was just answering a question.
moparisthebest
XMPP has proven to be very extensible based on continuing to work well 20+ years after it started, matrix on the other hand... they are asking users to migrate servers because they can't scale
Daniel
but you might want to run servers behind more restrictives firewalls
Daniel
on your raspi or something
MattJ
Running servers in the browser has been discussed in certain server projects before
andrey.ghas joined
CognitiveDissonance
Daniel: I see.
CognitiveDissonance
moparisthebest Point.
CognitiveDissonance
* good point
eta
CognitiveDissonance, so natively XMPP uses a TCP socket, but the BOSH (bidirectional streams over synchronous HTTP) extension lets you use it over HTTP
CognitiveDissonance
Sp matrix is a monolithic system right?
eta
(almost all popular servers expose that as an option for web clients)
moparisthebest
eta, CognitiveDissonance also websockets
eta
yep, that too
Observerhas left
moparisthebest
I expect *very soon (tm)* xmpp c2s and s2s to start working over QUIC as well
CognitiveDissonance
eta Daniel Ah BOSH makes sense. Btw, xmpp server doesn't *require* web server right? matrix seems to rely on web server.
eta
CognitiveDissonance, not at all!
adityaborikarhas left
adityaborikarhas joined
eta
you might want one for HTTP file uploading (XEP-0363), but it isn't a hard requirement
CognitiveDissonance
I see.
Tobiashas left
CognitiveDissonance
Also, in DNS records, I notices xmpp has only SRV records, where matrix has only A records.
eta
that's because matrix uses /.well-known
jonas’
CognitiveDissonance, you need A/AAAA records for SRV to make sense
moparisthebest
XMPP also has TXT records for some connection methods...
CognitiveDissonance
boon or a bane?
Zash
Matrix uses SRV too
Tobiashas joined
moparisthebest
again I expect *very soon (tm)* XMPP to start using http-svc/srv2 records or whatever the latest name for those are
Zash
moparisthebest: don't you dare!
moparisthebest
Zash, required for sni+alpn encryption!
Zash
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
moparisthebest
(plus other things etc)
Zash
Do not want
CognitiveDissonance
i am scared of http and web tech stuff.
moparisthebest
that's the best thing about XMPP, even if you don't want it I can still have it and vice versa :D
CognitiveDissonance
Too many security issues
moparisthebest
CognitiveDissonance, to be fair that's just "computers"
dwd
CognitiveDissonance, To be cleat, Matrix need not suffer from those since it's not like it runs in the browser.✎
dwd
CognitiveDissonance, To be clear, Matrix need not suffer from those since it's not like it runs in the browser. ✏
Lancehas left
dwd
CognitiveDissonance, It just uses HTTP and JSON as its substrate layer, like XMPP uses XML. And XML has its own set of amusing security issues.
jonas’
"laugh"able!
CognitiveDissonance
dwd hmm, AFAIK, even riot/element desktop client is a web stuff via electron.
dwd
CognitiveDissonance, Sure, the implementation of the clients is all web tech. But in principle it need not be.
CognitiveDissonance
dwd. I see. I have seem in wikipedia that xmpp is a text-based protocol like IRC. what does mean?
dwd
CognitiveDissonance, There are, I think, Electron-ish clients in the XMPP world. Certainly browser based ones.
jonas’
CognitiveDissonance, it means that some bytes are not allowed in the streams
jonas’
doesn’t matter in practice
dwd
CognitiveDissonance, XMPP operates by exchanging XML fragments over TCP, not text. Matrix operates by exchanging bits of JSON over HTTP.
moparisthebest
IRC operates by exchanging bytes over TCP, better hope you guess the encoding correctly!
dwd
(Favourite thing about IRC is that the case-folding for usernames is based on whatever keyboard layout the developer happened to be using).
CognitiveDissonance
I was confused about "text-based". XML is not a plain text?
jonas’
(dwd, wasn’t it the swedish 8-bit latin encoding thing?)
Zash
jonas’: finnish
jonas’
CognitiveDissonance, it is as much plain text as JSON is
jonas’
Zash, ah, right
dwd
CognitiveDissonance, It's generally textual in nature, but it's not plain text as such.
jonas’
(I mixed that up with mysql, that was swedish)
moparisthebest
if anything XMPP/XML and Matrix/JSON are much more "text-based" than IRC because the encoding is actually defined
CognitiveDissonance
dwd: Ah, I am getting the fundamental difference now.
xeckshas left
CognitiveDissonance
Matrix exchanges JSON over http and XMPP exchanges XML over tcp.
jonas’
(over http over tcp/whatever atrocity google thinks of)
CognitiveDissonance
If I put a VS (versus) in between ....
moparisthebest
mainly yes, but more generically XMPP exchanges XML over (a stream)
dwd
CognitiveDissonance, Well, possibly not. XML+TCP and JSON+HTTP aren't that different, really. The biggest gain XMPP gets from XML is actually the namespacing rules, which give us clear extensibility - but in principle you can transcode between the two with some rules. The much bigger difference between XMPP and Matrix is the fundamental model.
moparisthebest
it's mostly TCP but it can be Websocket or a BOSH session today
moparisthebest
QUIC or whatever else tommorow
eevvoorhas left
dwd
moparisthebest, In fairness, plain TCP is rare since we're always using TLS.
moparisthebest
right I didn't mean *plain* TCP but good clarification
CognitiveDissonance
http is stateless and tct is stateful?
Wojtekhas joined
dwd
CognitiveDissonance, Broadly meaningless. Matrix has state in its sessions.
CognitiveDissonance
I see.
antranigvhas left
eevvoorhas joined
dwd
CognitiveDissonance, I mean, IP is stateless and yet XMPP has state. TCP has state too. XMPP sessions can span multiple TCP sessions. So whether TCP happens to have state isn't important - and HTTP runs over TCP anyway.
antranigvhas joined
raghavgururajanconsiders xmpp like emacs. extend and extend and extend
moparisthebest
"HTTP runs over TCP anyway" eh not so much anymore, http up to 2 does, http 3 does not
moparisthebest
in a similar way that future XMPP won't have to :)
CognitiveDissonance
what?
CognitiveDissonance
http is application layer right? it requires tcp?
moparisthebest
http3 runs over QUIC which is like TLS but over UDP
CognitiveDissonance
quic??
moparisthebest
https://en.wikipedia.org/wiki/QUIC
Alexhas left
alameyohas left
alameyohas joined
CognitiveDissonance
nice
jonas’
(good thing we didn’t have DTLS…)
moparisthebest
https://en.wikipedia.org/wiki/HTTP/3 etc
dwd
Matthew Hodgson, of Matrix, once compared Matrix and XMPP as Mac vs Linux. I think perhaps iPhone versus Linux might be more apropos. Matrix gives you a bunch of stuff, and you get what you're given - though you can add more. XMPP gives you a low-level kernel, but almost everyone then gives you a distribution with a bunch of common software on top.
Alexhas joined
CognitiveDissonance
Thank you all folks!!!
CognitiveDissonance
I appreciate it.
moparisthebest
jonas’, DTLS is quite different than QUIC
jonas’
moparisthebest, I don’t care
dwd
I mean, finding a client or server that does XMPP and nothing else is *hard*.
alameyohas left
alameyohas joined
moparisthebest
it's akin to UDP vs TCP, you can't just drop-in replace one with the other, different use cases
Kev
You mean RFC 6120 only? Impossible, I suspect.
dwd
Kev, I was thinking 6120+6121, which is in principle possible.
raghavgururajan
dwd: That is actually. Start minimal and extend. Keeps things simple and modular.
Kev
Sorry, I didn't mean it was technically impossible to do 6120 only (although I think it probably is, because you'd need to replace 6121 with something else for the routing rules), just that I would be amazed if there exists any such software. Although I'd be moderately surprised to find something doing 612[01] and nothing else, but not shocked.
raghavgururajan
*actually good
antranigvhas left
moparisthebest
try finding a browser that just does http
dwd
moparisthebest, Ooooh, I'm going to use that next time someone does the "Too many XEPS!!!111" argument with me.
Zash
HTTP has too many RFCs!
Syndacehas left
Syndacehas joined
raghavgururajan
To rewrite my message: What XMPP does is good. It starts minimal and then extends. It keep things simple and modular. Don't you all agree?
neshtaxmpphas joined
dwd
Broadly, yes - I don't know how else we could have built it but start with a common base and add bits.
CognitiveDissonance
raghavgururajan I was looking for that difference in xmpp and matrix.
lovetoxhas joined
dwd
Matrix can avoid this by essentially being an open source project with a protocol spec - I'm not sure that there's any well-used third-party implementations, are there?
moparisthebest
matrix starts with the whole shebang and then you are stuck with it
CognitiveDissonance
Oh hey lovetox is here. I love gajim.
moparisthebest
and that brings things like "sorry our main server is so slow please move to another server"
CognitiveDissonance
gotta go though
CognitiveDissonancehas left
dwd
But if there ends up being a bunch of independent implementations, then wholesale changes to the monolith spec are going to be much harder to arrange.
antranigvhas joined
moparisthebest
vs xmpp's "we handle 10million+ simultaneous connections and 600+ messages per second no problem" https://www.process-one.net/blog/ejabberd-nintendo-switch-npns/
Kev
That does *heavily* depend on your traffic model, mind.
dwd
moparisthebest, Yeah, but I kind of got bored with scaling. I like that we can, but I'm more interested in smaller scale stuff now - you can do a lot more interesting stuff.
Lancehas joined
moparisthebest
sure it's just nice to know it *can*
xeckshas joined
dwd
Right, sure. And it's another strength - you can pick a server built to do massive scaling, or one built for low-bandwidth, or write your own in about 2,000 lines of Python.
Kev
Or one line of Perl.
raghavgururajan
> dwd: But if there ends up being a bunch of independent implementations, then wholesale changes to the monolith spec are going to be much harder to arrange.
+1
Zash
or one looooooooong line of sed ;)
moparisthebest
if you find yourself rewriting your server in another language in the hope it might be faster you've probably made a wrong turn design-wise
rionhas joined
dwd
moparisthebest, Oh, I think 2000 lines of Python will be slower. But I don't have to scale to 10 million users, so I have other criteria for success.
antranigvhas left
antranigvhas joined
raghavgururajanwhispers LISP
moparisthebest
(that was a jab at matrix by the way)
raghavgururajan
?
alameyohas left
alameyohas joined
raghavgururajan
*ignore the ?
antranigvhas left
moparisthebest
wow I do have to give them props for this page https://matrix.org/docs/projects/try-matrix-now that's far superior to anything we have
Kev
They have a much less complex ecosystem than we have.
Kev
And that page is already looking pretty complex.
Zash
Kev: ORLY?
Kev
Z
Kev
I really need to fix that bug.
moparisthebest
really? if you only judged by https://xmpp.org/software/clients.html / https://xmpp.org/software/servers.html / https://xmpp.org/software/libraries.html you'd probably conclude we barely have an ecosystem at all
Kev
Zash: Unless I'm wrong (which is always possible), Matrix is led by Matrix. They don't have the complexities we do where our 'central org' (I don't have a better description) is community-run by competing projects etc.
Kev: Oh boy, let me tell you about Grid, the Matrix (protocol) fork (IIRC).
Kev
So I'm just wrong. Fair enough.
Zash
Kev: But yeah. It's probably comparable to back when Jabber Inc was a thing.
Kev
Jabber Inc was never the JSF, though.
Zash
Similar but different 🤷
Kev
Fair.
werdanhas joined
paulhas joined
neshtaxmpphas left
Steve Killehas left
xeckshas left
Steve Killehas joined
Lancehas left
xeckshas joined
krauqhas left
krauqhas joined
neshtaxmpphas joined
MattJ
> If I want to get a reliable xmpp client going on my Mac, I’m going to have to download and compile code, and I don’t actually know which code is the best bet, so chances are I’m going to have to download and compile multiple bits of code before I find one that works.
MattJ
Er, wrong chat but not I guess
matkorhas left
Zash
Sure would be nice to have that nicer clients.html
Kev
Be nice to have nicer clients first :D
Kev
(Yes, I know Swift hasn't had enough love in recent times. Working on that at the moment, although what form it'll take is up in the air)
wurstsalat
Zash, very much +1
matkorhas joined
dwd
I am right in thinking Ted Lemon's talking bollocks there, surely? I mean, the Mac desktop clients aren't pretty, but there's a few that exist and they're all in binary form right?
Kev
I've no idea which room this is referring to.
Kev
But it is certainly true that XMPP clients on Mac tend to be precompiled.
Zash
Kev: IETF list
dwd
Kev, MattJ's quote is from a mail by Ted Lemon on ietf-disgust
Kev
Ah, ta.
Andrzej
BeagleIM is for macOS and is distributed in binary form but if you wish you can compile it yourself
I wonder at what point I unsubbed from ietf-disgust. I used to be subbed, but realise now I've not seen a mail for years, so I probably made a (rare) Good Life Choice at some point.
Zash
eta: I know someone wrote a long rant about how insecure Matrix is, then went on to make their own fork of it.
jonas’
dwd, typo? :D
eta
Zash, yeah, Max
sonnyhas left
sonnyhas joined
Lancehas joined
pasdesushihas joined
sonnyhas left
Half-Shothas left
uhoreghas left
Rixon 👁🗨has left
neshtaxmpphas left
Half-Shothas joined
Rixon 👁🗨has joined
uhoreghas joined
sonnyhas joined
andrey.ghas left
sonnyhas left
sonnyhas joined
florettahas left
DebXWoodyhas joined
sonnyhas left
neshtaxmpphas joined
winfriedhas left
winfriedhas joined
sonnyhas joined
sonnyhas left
florettahas joined
mukt2has joined
DebXWoodyhas left
pasdesushihas left
sonnyhas joined
mukt2has left
mukt2has joined
archas left
archas joined
sonnyhas left
sonnyhas joined
sonnyhas left
krauqhas left
krauqhas joined
DebXWoodyhas joined
j.rhas left
mukt2has left
neshtaxmpphas left
j.rhas joined
moparisthebest
hrm since when was XMPP considered part of the #Fediverse ?
Zash
https://the-federation.info/ lists XMPP, ergo XMPP is part of the Fediverse.
moparisthebest
yep that's where I noticed
Zash
Now proceed to accept this circular logic as truth. Thank you!
moparisthebest
I thought Fediverse was just ActivityPub based stuff TIL
Zash
I thought it dated back to OStatus, but I'm not so sure.
xeckshas left
xeckshas joined
krauqhas left
krauqhas joined
sonnyhas joined
adityaborikarhas left
Andrzejhas left
j.rhas left
sonnyhas left
Nano4BeingYouhas joined
neshtaxmpphas joined
pasdesushihas joined
debaclehas left
Andrzejhas joined
antranigvhas joined
archas left
archas joined
pasdesushihas left
lovetoxhas left
j.rhas joined
sonnyhas joined
Nekithas left
Nekithas joined
pasdesushihas joined
sonnyhas left
sonnyhas joined
pasdesushihas left
vanitasvitae
I think it depends how you define the Fediverse
vanitasvitae
Diaspora is also considered part of it and doesn't do AP either
vanitasvitae
So XMPP fits the definition of being federated and being able to do social networking
Zash
Is Email part of the Fediverse? :D
moparisthebest
if XMPP is then I'd have to argue SMTP is too
sonnyhas left
debaclehas joined
rionhas left
antranigvhas left
sonnyhas joined
sonnyhas left
neshtaxmpphas left
lovetoxhas joined
Shell
there is social networking stuff built on XMPP, it's probably fediverse
dwd
moparisthebest, EMail used to be before Google took it over...
sonnyhas joined
sonnyhas left
andrey.ghas joined
Andrzejhas left
pasdesushihas joined
pasdesushihas left
pasdesushihas joined
pasdesushihas left
lovetoxhas left
andrey.ghas left
archas left
archas joined
pasdesushihas joined
Andrzejhas joined
mukt2has joined
pasdesushihas left
pasdesushihas joined
j.rhas left
j.rhas joined
pasdesushihas left
pasdesushihas joined
DebXWoodyhas left
pasdesushihas left
krauqhas left
mukt2has left
kuvohhas joined
Andrzejhas left
krauqhas joined
sonnyhas joined
kuvohhas left
Yagizahas left
Andrzejhas joined
Wojtekhas left
Wojtekhas joined
Nano4BeingYouhas left
raghavgururajan
Zash: Is there a homepage for Grid?
raghavgururajancould find via searx
sonnyhas left
Alexhas left
raghavgururajan
moparisthebest: Yes, SMTP and XMPP are fedearted protocols.
moparisthebest
yea I knew that, just not that every federated protocol was considered part of the "fediverse"
Andrzejhas left
sonnyhas joined
karoshihas left
antranigvhas joined
dwd
Please tell me they have usenet in there.
Zash
usenet distributed, not federated!!!!!!!eleven
karoshihas joined
sonnyhas left
antranigvhas left
moparisthebest
a ton I've never heard of but no usenet https://the-federation.info/#protocols
pasdesushihas joined
pasdesushihas left
pasdesushihas joined
moparisthebest
zot? dfrn? all have more servers than the pitiful 53 XMPP servers and the 1 SMTP server
moparisthebest
strangely, not gmail.com
dwd
Zash, I don't think it described itself as federated - but nor did email.
Zash
possibly relevant xkcd https://xkcd.com/802/
dwd
Zash, But you can post a message to any NNTP server and it ends up on all of them somehow, right?
Zash
dwd: Just like Matrix!
Zash
dwd: "usenet is distributed, not federerated" was what I meant to write, before my sleepy brain decided to change the sentence structure in the middle
dwd, Kev: Have you seen https://gist.github.com/mar-v-in/8a9a578d2137a0196744a32abf6aa0eb/ ?
Kev
If that's the same as the old mailing list post that suggested we must not know what we're talking about, yes.
Zash
I don't know about that
Kev
I thought there was some line in it about only understonding how we could have written it if we didn't understand the area.
Kev
I might misremember, or it might be a different post. Will see if I can read it tomorr.w
Andrzejhas left
archas left
archas joined
sonnyhas joined
archas left
archas joined
sonnyhas left
mukt2has joined
archas left
archas joined
pasdesushihas joined
werdanhas left
LNJhas left
archas left
archas joined
pasdesushihas left
alameyohas left
alameyohas joined
dwd
No, this one just says it's badly written, and was proibably written solely to prove him wrong.
pasdesushihas joined
pasdesushihas left
dwd
In any case, *my* main problem with MAM-FC, currently - beyond it needing a lot of editing work - is that there's no way for a server to distinguish between a client updating its conversation view and a client paging through a conversation. RSM simply doesn't provide that, and the result is it gets a bit weird and broken, or else plain inefficient.
sonnyhas joined
karoshihas left
sonnyhas left
sonnyhas joined
archas left
xeckshas left
Andrzejhas joined
Andrzejhas left
debaclehas left
j.rhas left
j.rhas joined
archas joined
Andrzejhas joined
alameyohas left
alameyohas joined
lskdjf
dwd, in that gist there is a whole page of arguments on what the person thinks are issues with MAM-FC. It's not fair to pick out one sencence you didn't like to be able to say "whatever". It would be good to hear why you think that the issues raised in the gist (e.g. paragraph 3+4) aren't actually issues.
paulhas left
deuillhas joined
adityaborikarhas left
moparisthebest
Kev: speaking of misunderstandings another reminder for the xep-0001 update :)