> any of our france friends here in contact with the person?
Flow, the person that took over the project got in touch with us, to get it listed at the website again.
Guus
https://github.com/xsf/xmpp.org/pull/592
Marandahas joined
Ge0rG
This is frightening.
Ge0rG
Admittedly, the README is not the first place to change when resurrecting a new project.
Steve Killehas left
Daniel
What is that the left overs of that Google thing?
Daniel
Wave
Danielcan't be bothered to follow the link
jonas’
Daniel, it’s an xmppd
Steve Killehas joined
mukt2has left
Mikaelahas joined
mukt2has joined
zachhas left
winfriedhas left
winfriedhas joined
zachhas joined
Zashhas joined
winfriedhas left
winfriedhas joined
jubalhhas joined
winfriedhas left
winfriedhas joined
mukt2has left
Zashhas left
Nekithas joined
linkmauvehas joined
zachhas left
zachhas joined
mukt2has joined
mukt2has left
Dele (Mobile)has joined
Dele (Mobile)has left
Dele (Mobile)has joined
mukt2has joined
zachhas left
zachhas joined
debaclehas left
Zashhas joined
mukt2has left
wurstsalathas joined
mukt2has joined
mukt2has left
lumihas joined
zachhas left
zachhas joined
mukt2has joined
mukt2has left
madhur.garghas left
kokonoehas left
mukt2has joined
kokonoehas joined
kokonoehas left
kokonoehas joined
kokonoehas left
Douglas Terabytehas left
Douglas Terabytehas joined
mukt2has left
kokonoehas joined
kokonoehas left
zachhas left
zachhas joined
debaclehas joined
mimi89999has left
larmahas left
zachhas left
zachhas joined
Nekithas left
larmahas joined
Nekithas joined
j.rhas left
mukt2has joined
jubalhhas left
jubalhhas joined
mukt2has left
mimi89999has joined
zachhas left
zachhas joined
goffihas left
goffihas joined
marc_has joined
LNJhas left
zachhas left
zachhas joined
pdurbinhas left
mukt2has joined
jabberjockehas left
UsLhas left
marc_has left
marc_has joined
goffihas left
mukt2has left
lovetox_has joined
adiaholichas left
adiaholichas joined
jabberjockehas joined
mukt2has joined
j.rhas joined
karoshihas left
karoshihas joined
mukt2has left
adiaholichas left
zachhas left
zachhas joined
mukt2has joined
zachhas left
zachhas joined
Nekithas left
mukt2has left
mukt2has joined
lskdjfhas joined
Nekithas joined
lskdjfhas left
winfriedhas left
ralphm
https://ralphm.net/blog/2019/09/09/fastening
ralphm
Discuss.
jonas’
fasten your seatbelts
ralphm
Indeed
winfriedhas joined
ralphm
It is a long piece based on recent discussions and took me more time than I anticipated. Plenty examples!
lskdjfhas joined
winfriedhas left
winfriedhas joined
mukt2has left
zachhas left
zachhas joined
jabberjockehas left
UsLhas joined
flow
+1 for examples
ralphm
:parrot:
winfriedhas left
winfriedhas joined
mukt2has joined
jabberjockehas joined
jabberjockehas left
pdurbinhas joined
winfriedhas left
winfriedhas joined
winfriedhas left
winfriedhas joined
remkohas joined
zachhas left
zachhas joined
winfriedhas left
winfriedhas joined
Chobbeshas joined
jabberjockehas joined
mukt2has left
pdurbinhas left
zachhas left
zachhas joined
winfriedhas left
winfriedhas joined
mukt2has joined
Chobbeshas left
Chobbeshas joined
winfriedhas left
Chobbeshas left
Chobbeshas joined
mukt2has left
mukt2has joined
winfriedhas joined
alameyohas left
alameyohas joined
remkohas left
zachhas left
zachhas joined
wurstsalat
ralphm: thank you for taking the time to write this up (also +1 for :parrot:)
ralphm
wurstsalat: you're welcome!
mukt2has left
winfriedhas left
winfriedhas joined
pep.
It's funny because I was taking part in a discussion this morning about XMPP in general on a Japanese channel, and they were saying it's not easy to get people off LINE (which is the defacto whatsapp-like app there), whereas here in our european (XSF?) circles, most of the time I hear about Slack, twitter etc.
mukt2has joined
pep.
Reading your article made me think of that
Chobbeshas left
ralphm
Sure. Another example is WeChat, but I think most of my audience is from the so-called Western world.
ralphm
I also forgot to mention Facebook Templates.
remkohas joined
pep.
<mention jid="room@muc.this.example/ralphm"/> btw, what about occupant-id?
zachhas left
zachhas joined
ralphm
You mean making it more explicit what kind of jid is referred to?
pep.
no I mean https://xmpp.org/extensions/xep-0421.html
Yagizahas left
pep.
It'd be nice if that was also allowed in there
Yagizahas joined
pep.
Not especially mandated
Yagizahas left
pep.
I know some people will oppose the de-pseudonymisation
Yagizahas joined
pep.
Also what do people have with this "@" :x
pep.
Quite annoying to see this on the wire everywhere
ralphm
I'm not sure, I haven't read that in detail.
ralphm
Also curious how it'd be different in MIX
adiaholichas joined
MattJ
pep., that's why the "proxy JIDs for MUC" idea would be slightly better, since it's a drop-in replacement for a real JID
ralphm
pep.: I don't see a problem with @. It would be something people type and a client could choose to strip it with references.
pep.
MattJ, yeah.. I see that
MattJ
Nobody (generally) has to know what kind of JID it is, it's just a JID
ralphm
MattJ: right, and for the rest there is disco
pep.
ralphm, I see a problem with @, why would we even bother to have a <reference/><mention/> tag otherwise? Why not just put @ralphm in there and let the receiving client deal with it
pep.
Client SHOULD NOT include any marker in the body for this
pep.
There is no point
pep.
On the wire, that is
ralphm
It could, but the thing prefixed by @ can be interpreted by a server. Maybe it has a nick registration service and allows for referencing non-accupants.
pep.
Maybe then the service can also read <reference/> instead
pep.
I'm going to start including @s everywhere just to make fun of that service
ralphm
My examples show that the original didn't have a reference
pep.
It's about the same crap idea as 393.
ralphm
Let's agree to disagree on this point.
pep.
You agree that this is a character that carries meaning, no?
pep.
I mean essentially that's the goal
ralphm
By the way, the @ might also serve as an explicit marker to notify whoever is mentioned, as apposed to unprefixed strings that happen to also be a nick. Like someone having a nick 'nick'.
pep.
That can be done in the input format yes
pep.
Doesn't have to be on the wire, again.
ralphm
My vantage point is a thin(ner) client
ralphm
And not touching what the user typed
pep.
What about them? They shouldn't have to care about semantics and throw everything in body because?
pep.
Why do we even bother with <reference>, somebody remind me please
ralphm
Or XMPP
pep.
Or XMPP
rionhas left
pep.
Let's not take Slack as an exemple, it's an implementation not a protocol, and it doesn't try to be compatible with anything else
ralphm
I think it is useful, you may disagree, and the post shoes how it could be done.
pep.
Of course references are useful. I was saying that because of your loose use of "@"
ralphm
I do take Slack as an example, as it is done well and we can learn from it.
ralphm
So @pep. if you don't like @'s, I am not sure what to do about it.
pep.
.
pep.
I don't like the meaning you attach to it
pep.
On the wire
ralphm
I didn't. It is something somebody typed and the MUC service then interpreted it as a mention. Has nothing to do with the wire protocol.
pep.
"Here the MUC service marks up the original messages with an explicit link reference." wait
pep.
Yes I just read that
Chobbeshas joined
pep.
That's even more awful than I thought
mukt2has left
Chobbeshas left
Chobbeshas joined
pep.
So yes you did
pep.
ugh
ralphm
I'm sorry I broke your world. I'm a terrible person.
pep.
I'm actually amazed you are seriously considering this
pep.
To put it as an exemple
ralphm
Seriously, this is exactly how existing services do things. It is not something*I* invented.
zachhas left
zachhas joined
pep.
services like? Slack?
Kev
It's not even an example ralphm wrote, it came from my gist. I think getting caught up on what hypothetical service the example shows isn't the right thing here.
pep.
Kev, it's just that I see this coming back often
jonas’
ralphm, I’ll dump a bunch of random thoughts on your article on-list
jonas’
I can’t follow xsf@ right now
remkohas left
Kev
@pep: Because it's something easy to understand for examples.
ralphm
Also Twitter, as mentioned at the top of my post.
ralphm
I think WeChat, as well. WhatsApp, Facebook, etc.
pep.
ralphm, yes and as I said, they're not interoperable protocols, they don't care. they don't especially have to account for let's say, offline users that the MUC doesn't know about anymore (how would it know it has to have a reference there?) etc.
pep.
Or for me using @ in a totally different way
pep.
The UX in these product is particularly annoying when you just want to use @ and not highlight anybody✎
pep.
The UX in these products is particularly annoying when you just want to use @ and not highlight anybody ✏
pep.
But I guess that's a UI issue anyway, for this last message
pep.
They still could do that and not include it on the wire
pep.
Kev, also my nick is "pep." :)
pep.
But I guess you can't autocomplete anymore with the @ in front :p
ralphm
Well, MUC's model is rather dated, and I think we need to move on from it. I think MIX solves a bunch of that, and I always try to look ahead, while learning from others. For this I don't care about how Evil those other entities or solutions are. Something like an @-mention is near ubiquitous outside our little bubble and I think the least-surprise angle works in its favour.
rionhas joined
mukt2has joined
pep.
I'm going to repeat myself: That doesn't mean it has to be on the wire.
pep.
That's my only concern
ralphm
Really, it is just something somebody typed.
Kev
IT'S AN EXAMPLE IN A BLOG POST.
pep.
With an associated meaning to it
pep.
No it's not just an example.
pep.
It's definitely not the first time I see it. I even mentioned it last time when there was this references discussion.
ralphm
If you don't want your service to interpret @ signs, hack it to oblivion.
pep.
Of course I don't, why would I. My service could interpret <references> very well though
ralphm
Great
ralphm
Do you have any other insights?
pep.
.
pep.
whatever
jonas’
sent my feedback on the list
zachhas left
zachhas joined
ralphm
Cool. Thanks!
ralphm
Also, I am a bit done with negative attitudes.
ralphm
So, sorry if I was a bit harsh, pep.
mukt2has left
jonas’
I’m gonna re-state it publicly: Thanks for taking the time for the blog post, I think it’s very valuable. My mail on-list is concise and short to save everyones time, but there needs to be time for praise for work done, ralphm.
ralphm
☺️
Ge0rG
ralphm: thanks for taking the time and moving things forward!
pep.
fwiw I have not much to say about references in the article, that looks good.
ralphm
👍
pep.
I know some people were not particularly fond of the mandatory <reference> for SIMS, but in this case it makes sense to me. I guess having SIMS being used instead of oob as it currently is could not require it, though?
ralphm
Yeah, my thing with oob is that it is very unspecific.
pep.
Sure. I'm talking about SIMS specifically, I'm not fond of the current practice
pep.
(with oob)
ralphm
Using a jingle file allows for thumbnails and hash references and titles and descriptions, etc.
ralphm
I suppose you could also have a naked one, without body and without the references wrapper
ralphm
If you just wanted to send a picture
mukt2has joined
pep.
Yeah, that's a concern I've heard multiple times
Ge0rG
ralphm: this is a major use case
pep.
Re Jingle, there's no URI format atm right?
pep.
Or is there?
Zash
ralphm, do you by any chance have a source format for that post publicly anywhere?
zachhas left
zachhas joined
j.rhas left
j.rhas joined
pdurbinhas joined
andyhas left
andyhas joined
adiaholichas left
adiaholichas joined
pdurbinhas left
UsLhas left
Yagizahas left
Yagizahas joined
j.rhas left
j.rhas joined
zachhas left
zachhas joined
marc_has left
marc_has joined
jabberjockehas left
zachhas left
zachhas joined
j.rhas left
ralphm
Zash: not automatically, no. But I uploaded the source for this post here: https://ralphm.net/~ralphm/tmp/2019-09.xml. I hope you can appreciate it.
Ge0rG
let's bikeshed about the use of XML as a source format!
ralphm
Not just any XML format. It is actually very much derived from DocBook XML
Zash
In this case it doesn't reduce the effort in turning it into epub
Zash
DocBook enough that pandoc can read it?
ralphm
It does. You can use pandoc with docbook as input format
ralphm
But you'd have to fix the custom additions
Ge0rGrecently successfully converted a PDF ebook into epub, and even was able to remove the nasty-watermark-on-each-pdf-page with sed.
remkohas joined
adiaholichas left
adiaholichas joined
lovetox_has left
zachhas left
zachhas joined
patrickhas joined
winfriedhas left
winfriedhas joined
adiaholichas left
adiaholichas joined
winfriedhas left
winfriedhas joined
Chobbeshas left
Chobbeshas joined
adiaholichas left
zachhas left
zachhas joined
alameyohas left
Chobbeshas left
Chobbeshas joined
jubalhhas left
ajhas left
mukt2has left
mukt2has joined
zachhas left
zachhas joined
Chobbeshas left
Chobbeshas joined
mukt2has left
has joined
Neustradamushas left
Tobiashas left
mukt2has joined
stpeterhas joined
stpeterhas left
peterhas joined
peterhas left
ralphm, hi, someone friendly has linked me your post on @mentions. i remember a certain discussion in the gajim chatroom >10 years ago. gajim at the time was highlighting the user if any part of a message contained the user's nickname (iirc). so if someone had a nickname of "kate", someone typing "skateboarding" would trip the highlight. gajim changed that to match a fixed word (iirc it was '\bkate\b'), and then people started complaining that declension happens (e.g. "kate's"). do you think you could make @mentions somehow work with that?
Dele (Mobile)has left
jonas’
what the
oh, hi jonas!
pep.
jonas’, indeed
ralphm
jonas’: you scared from my log source?
Ge0rG
what are you, a RTL modifier?
jonas’
, noone will read what you wrote. your nickname is empty, that baffles everyone
that would be impolite… 😛
zachhas left
zachhas joined
Ge0rG
jonas’: looks like it's actually http://www.fileformat.info/info/unicode/char/00061C/index.htm
ralphm
I don't see anything, nor do our logs? http://logs.xmpp.org/xsf/2019-09-09
if only we had our stuff pinned to a single version of Unicode✎
Ge0rG
jonas’: nice how your text is RTL formatted :P
jonas’
if only we had our stuff pinned to a single version of Unicode everyone agrees on ✏
jonas’
nice
patrickhas left
Ge0rG
pasting cropped yaxim screenshots into yaxim makes my head spin
Zash
hah
pdurbinhas joined
ralphm
Yup, Conversations gives up on this. Nameless RTL person, I read your message through the screenshot above, but your unique setup triggers bugs in several clients and will make discussion very hard. If you can it might be good to write a reply on the standards@xmpp.org mailing list.
Ge0rG
ralphm: triggering bugs in implementations is actually a Good Thing™
pep.
Zash, so logs ignore it but MUC lets it pass?
pep.
how come
Zash
?
ralphm
Well yes, it is surely a nice test case
Lancehas joined
Ge0rG
pep.: I've actually copy&pasted it from the http log
MattJ
pep., it's in the logs
pep.
oh
Ge0rG
pep.: it's just.... _invisible_!
pep.
Sorry I was reading ralphm above who said it wasn't
pep.
I see
MattJ
Though it might not look that way, since there is no nick rendered
ralphm
Ah, I see now
mukt2has left
linkmauve
I can read it in the logs just fine.
Ge0rG
linkmauve: you can read it?
MattJ
Nice way to make the logs look like someone said something they didn't
has left
pep.
\o/
Nameless RTL person
my job here is done, i guess
ralphm
Nameless RTL person: haha
Ge0rG
Nameless RTL person: please meet my friend, 🤖
linkmauve
Ge0rG, yes, it’s present in the logs.
Ge0rG
linkmauve: that's not what you said
linkmauve
I can read it there.
Nameless RTL person
i remember pasting 4MB of text into a status message and crashing all the psi clients out there. that was fun
Nameless RTL person: in any case, there's differing opinions on whether a MUC service should do such interpretation. I do think that an explicit marker in front of the mention, whether processed at the client or by a service, helps disambiguation.
Nameless RTL person
i assume it's not an important matter whether the @marker works for some unusual nicknames, either?
Zash
Why doesn't resourceprep normalize eat it, whatever it is?
Ge0rG
yeah
remkohas left
ralphm
Nameless RTL person: like RTL markers?
Nameless RTL person
yep.
Nameless RTL person
or, let's make it simpler, spaces in nicknames
zachhas left
zachhas joined
adiaholichas joined
LNJhas joined
Nameless RTL person
or one of my favorites: combining characters vs. precombined characters, typed by different people in different way
davidhas left
remkohas joined
Zash
Pretty sure those are normalized at least
Nameless RTL person
within message bodies too?
Daniel
Zash: not if you let the muc server do the mention
Daniel
Which is the point Nameless RTL person is trying to make I guess
Zash
Myeah I don't believe in that
DebXWoodyhas left
davidhas joined
DebXWoodyhas joined
Daniel
However I see ralphm blog post only as an example for references
ralphm
I assume existing implementationa just do prefix matching as main heuristic. And give up with"weird" stuff like RTL markers.
Daniel
Not as a general recommendation that all mentions should be server side
ralphm
No, indeed
adiaholichas left
adiaholichas joined
APachhas left
ralphm
Having followed Slack for quite a while, I believe they initially did server side mentions (only) and then added client side support.
APachhas joined
Zash
Converse.js does something
pep.
Indeed. It uses <references type='mention'/> and strips the "@"
ralphm
My mail to standards@ shows the alternative (for links, but would work for mentions just as well).
mukt2has joined
linkmauvehas left
Link Mauvehas joined
j.rhas joined
ralphm
I still think that typing an @, v.s. not, has an implicit request for notifying the mentioned individual. I wonder if that should trigger explicit server side notification, rather than client side highlighting, esp. with offline mobile clients and Push.
pep.
ralphm, note that I never disagreed on this ^
Daniel
ralphm: your muc push could also parse the reference (instead of jumping on the @)
Lancehas left
Nameless RTL person
tbh, i'd feel uneasy if someone used my nickname and i wasn't highlighed, whether there was an @ character before my nickname or not
Nameless RTL person
it would feel as if someone talked behind my back
Zash
Nickname registration in MUC is a thing
Zash
Oh, nm
ralphm
Daniel: I mean that if you have a client side generated mention, the server could explicitly notify / wake up the recipient. Maybe with a special out-of-band message.
ralphm
By the way, example 2019-09-02-3 shows client side mention.
ralphm
Nameless RTL person: services like Slack let you get notified for user defined keywords.
ralphm
I usually set that up with my nick, name, and 'xmpp'.
pep.
Nameless RTL person, your client could very well get over this and _also_ highlight you if you so chose, by parsing body. But that's a choice of the receiving client, and I'm fine with that
Nameless RTL person
so do xmpp clients. but in the xmpp world you may have different nicknames in different chatrooms, etc.
Nameless RTL person
so the client must be smart enough to allow different hl words for different chatrooms
murabitohas left
mukt2has left
murabitohas joined
Nameless RTL person
and then the pain is on user to manually configure it
Daniel
And that's why we can't have nice things
ralphm
Mwoh
ralphm
I like that in MIX, much like Slack, is decoupled from the (proxy) JID.
mukt2has joined
Nameless RTL person
is this place using mix?
ralphm
I think that especially for group services like those hosted by the XSF, service wide nick registration would be a good thing.
ralphm
Nameless RTL person: no
zachhas left
zachhas joined
remkohas left
Nameless RTL person
still, thanks to federation, even with registration, the nicknames can be different within a single client's opened chat windows
ralphm
Yes, for sure
adiaholichas left
ralphm
But highlighting $current_nick should be easy.
ralphm
And separate from that server-assisted notification would be a thing that could be implemented.
Nameless RTL person
yeah. so if the receiver client's already implementing it, why bother with the server doing it too?
ralphm
Your client might be offline (Doze mode or iOS equivalent). Having server support for this allows for waking up such clients.
Nameless RTL person
but if it's a custom highlight word, it won't
Nameless RTL person
inconsistency
ralphm
Especially in the context of MIX, where you are always in the room, even though you have no active resources.
ralphm
Nameless RTL person: you could register custom highlights with your server.
matkorhas left
ralphm
And finally, if you get mentioned in rooms you're not in.
Nameless RTL person
ok, that would be nice if there was a subprotocol for that
ralphm
Nameless RTL person: let's say I've thought about this stuff for a while
Nameless RTL person
i guessed so, this blog post is quite thoughtful
Nameless RTL person
in essence, you'd like to move more of muc complexity onto the server. that's something i can empathize with
Nameless RTL person
however, having the api between the thin client and the server be a plaintext api, as opposed to xml, feels wrong in the context of xmpp…
ralphm
Well, not just for MUCs. In fact, I think we've come to a point where we need a lot more server involvement to match functionally in other services. That's why I believe something like MIX is better equipped for that world. Another topic is voice/video calls.
Nameless RTL person
moreover, a plaintext api which the user types themselves, making it more difficult to provide a different type of ux than just a text field, if it's desirable within the client's requirements
ralphm
Nameless RTL person: sure, having clients mark up stuff is very useful
zachhas left
zachhas joined
ralphm
But the example of link references shows the two extremes. When mentioning a URL, do you want your client to go and fetch the page, scan for meta tags, craft a format for representaion, and only then send it (or maybe later as self-fastening) or let the server do that for you?
Nameless RTL person
even more, a plaintext api which is not discoverable by the client. or are you going to make it discoverable whether mix/muc adds annotations automatically or not?
ralphm
I would definitely, yes. With opt-in/out for your own messages.
Nameless RTL person
maybe. if i know that the mix/muc itself can't access the site i link, and my thick client can, then i would do so
ralphm
Nameless RTL person: yes, you could still, or course. It is not an exclusive choice.
adiaholichas joined
Ge0rG
Configurability everywhere!
ralphm
But having worked on a (closed) XMPP platform, putting it in the server makes it a lot easier.
ralphm
If you then have thick clients, you see them already having marked up things and leave it alone.
Ge0rG
If your options don't have options, you're doing it wrong!
Steve Killehas left
Nameless RTL person
to me it slowly starts looking like privacy lists, but i'm fine with that
Chobbeshas left
ralphm
Nameless RTL person: privacy lists were hard because it made routing expensive. I think this kind of thing is different.
Nameless RTL person
so, let say, my thick client, when connecting to a mix/muc, could say "i can do references alone, please don't mess with my messages", and my thin client could say "help me, mix/muc, you're my only hope". a per-session setting would look nice, i guess
ralphm
I'd probably use a disco feature for it.
Nameless RTL person
who'd disco whom?
ralphm
The room/service would disco you
ralphm
It does so anyway
Nameless RTL person
the only worry at this point would be the observable inconsistencies in behavior between messages from different clients. but xmpp users should all be used to that anyway, i guess
Nameless RTL person
i see
ralphm
I switch between desktop and mobile all the time
Steve Killehas joined
Chobbeshas joined
Nameless RTL person
ok. would that work in 1-1 chats too?
Nameless RTL person
the job of implementing the annotations would have to be shared between the mix/muc implementation and the, i don't know how it's called… core server?
ralphm
I don't see why your own server couldn't mark up stuff for you
Nameless RTL person
would the recipient's server mark things up if the sender's server didn't?
ralphm
(if you want that)
ralphm
I'm not sure. In MUC, there is a separate entity in the conversation, from which annotations could come.
ralphm
In 1-on-1, you don't have that, so I'd expect only my own server touching my messages and sending them from my bare JID.
pep.
Validations the source jid for references won't be a requirement?
pep.
(btw)
pep.
Though MUCs can also impersonate you if they want to..
Nameless RTL person
right, this third-party annotator service would have to be trusted
ralphm
pep.: access control is definitely a thing, and feature dependent
pep.
*validating
ralphm
E.g. reactions can come from anyone. Edits not so much.
ralphm
An alternative is not actually having one-on-ones, but all your conversations as rooms. I think BuddyCloud did this, as does Slack.
zachhas left
zachhas joined
Nekithas left
Nekithas joined
ralphm
This also allows for smart bots that suggest movie times when you mention The Lion King.
ralphm
And yes this is invasive, but there's a value proposition there.
adiaholichas left
adiaholichas joined
Nameless RTL person
i guess i wouldn't mind. my primary client does that anyway, mostly
matkorhas joined
ralphm
Sure. I think there's a limit to what you want to stuff in your server, though.
Chobbeshas left
ralphm
But maybe a model where everyone runs their own server is compelling in the long run.
Nameless RTL person
serverless messaging isn't used anyway, i think
Nameless RTL person
the last time i tried doing so, i got enough spam to leave the xmpp world for close to ten years
ralphm
Heh
ralphm
The thing is, if you don't trust your server, there are suddenly a lot of things you can't do.
Nameless RTL person
i want to trust the server in the capacity of routing messages correctly, not much more than that
Zash
U+061C ARABIC LETTER MARK
wha
Nameless RTL person
hi Zash!
jubalhhas joined
ralphm
Take those emoji reactions. If all the exchanges have e2ee, you can't do summaries efficiently.
ralphm
(in MAM)
Link Mauvehas left
Nameless RTL person
my perfect setup would be a server whose only job is to route messages within a federated network, a thick "xmpp client" set up on my private always-on account somewhere, and a thin non-xmpp client connecting to that thick client and only do UX
ralphm
Hm. I'd probably shift the thick bits to the server and just use thin clients.
Nameless RTL person
a bit like irc server/irc bouncer/irc client setup used to be popular
ralphm
Even for annotations, by server could intercept outgoing messages and send extra stanzas.
Link Mauvehas joined
Nekithas left
Nameless RTL person
the bouncer part would implement the hard bits of the client, like maybe encryption, annotation, etc. and would run either on my local machine, or somewhere in the cloud under my control.
winfriedhas left
winfriedhas joined
ralphm
I have at some played with the idea of bare-account-jid-components
winfriedhas left
winfriedhas joined
ralphm
Which is mostly that
Nameless RTL person
and if we could deal away with JIDs used as personalities, that'd be perfect. they're good for routing, but not much more than that in my opinion
ralphm
A special client connection that doesn't bind a resource and can manipulate traffic.
Nameless RTL person
but at that point it wouldn't be xmpp anymore
ralphm
Why?
ralphm
I don't have a very strict concept of what can be called XMPP.
Nameless RTL person
not interoperable enough with clients implementing 3920/3921
ralphm
In fact, you can totally do XMPP Core only.
ralphm
There are situations where you'd only do s2s, not c2s, e.g. to federate an existing system with XMPP.
ralphm
From the other side, you wouldn't be able to tell.
winfriedhas left
winfriedhas joined
Nameless RTL person
oh. then i'm happy to be informed that icq was an xmpp client thanks to transports
winfriedhas left
winfriedhas joined
ralphm
I've implemented and run services with an XMPP PubSub interface that didn't support the publishing and node creation bits of the protocol. Nodes magically existed as a function of business logic.
zachhas left
zachhas joined
adiaholichas left
Nameless RTL person
i see.
ralphm
Nameless RTL person: well sure, the transports were basically IRC etc. clients that magically made other IRC users have a JID.
Nameless RTL person
then i used wrong name.
ralphm
I am a strong believer in the protocols. I don't care much about the things behind the scenes.
adiaholichas joined
mukt2has left
Nameless RTL person
"then it wouldn't be xmpp instant messaging anymore"
Ge0rG
Nameless RTL person: if you create an identity model that's not based on xmpp JIDs, suddenly many xmpp features stop making sense.
Nameless RTL person
Ge0rG, exactly what i meant by that sentence
Ge0rG
If you want decentralized identities, you end up with public keys being user identifiers, and then every message must be a signed (+ encrypted) blob and routing follows some overlay structure.
Ge0rG
And then xmpp is only a hindrance
ralphm
Ge0rG: yup, I agree with that. But there's no reason why you couldn't have a thing that sits with the bare JID and manipulate incoming and outgoing traffic to assist regular clients.
Ge0rG
You could of course use the xmpp message format inside the encrypted blob, so that you can have all the client side XEPs
Ge0rG
ralphm: but the bare JID is owned by your server, not by you!
Ge0rG
And the server is mostly trusted
ralphm
If my server allows for a special API, e.g. with a kind of client-component, to act on behalf of my bare JID, why not?
Nameless RTL person
i'd be fine with user-visible JIDs, as long as there was a metaprotocol stating that those several JIDs are all me, other people can discover these other JIDs easily, and normal users could be made oblivious to their existence
Ge0rG
ralphm: what would that give you that can't be given by the server directly?
goffihas joined
ralphm
Always on scriptability, and other stuff you want to have, your server might not provide, and offloads clients.
ralphm
But annotations could be one example.
Ge0rG
Nameless RTL person: so you want to use xmpp as the routing layer for a p2p protocol based on a cryptographic identity?
Nameless RTL person
a simplest solution would be a simple discovery protocol of "how can i contact you in other ways" + crypto signing of auth requests
Nameless RTL person
and keep all the rest of xmpp intact
Ge0rG
Nameless RTL person: then it's just a very sophisticated mechanism to exchange encrypted blobs.
Ge0rG
No benefit on top of protobuf over DTLS with TURN
adiaholichas left
pep.
not reinventing all the things? If you can use client XEPs for example
Nameless RTL person
in this sense, xmpp itself is just a very sophisticated mechanism to exchange xml on top of tcp
ralphm
Oh, if you want Jingle-negotiated p2p XML Streams, why not?
Nameless RTL person
i've never written anywhere i want p2p or jingle
ralphm
Much like Local Link Messaging
ralphm
Nameless RTL person: true
Ge0rG
pep.: yes, but you need to map your cryptographic identity scheme to faux JIDs to make most client XEPs work
pep.
Ge0rG, something like <fp>@domain? That you could change at will
Ge0rG
Nameless RTL person: p2p is just the consequence of decoupling your identity from your JID
Ge0rG
pep.: `0xdeadbeef@onion/yaxim`
Nameless RTL person
except by having actual xmpp servers, i don't need to do routing, offline storage, etc.
pep.
Ge0rG, that :)
Ge0rG
With onion being the verbatim name of the used cryptographic identity protocol
Ge0rG
Nameless RTL person: which server would keep your offline messages if you have three different JIDs?
Nameless RTL person: so if one of them fails, you only receive two thirds of your backlog?
Nameless RTL person
yep.
pep.
(which is already the case anyway)
pep.
(I mean, if your server fails, you receive 0/1 of your backlog)
Nameless RTL person
⅔ > 0
Ge0rG
Congratulations! You've created a protocol that combines the drawbacks of xmpp with the drawbacks of p2p!
Nameless RTL person
thank you, i'm very happy
marc_has left
adiaholichas joined
Nameless RTL person
it's still better than not having any means to move accounts between servers in case of problems, or in case of, let say, just being disappointed with the server operator
Ge0rG
Nameless RTL person: ask pep. about Moved.
pep.
True, that helps with <moved/>. And that's kind of where changes on that XEP are leading anyway..
ralphm
Well for what it is worth, running my own server, e2ee is overrated at best and a pain at worst.
pep.
ralphm, lots of people in this room specifically agree with you. Not so many outside of it :)
Ge0rG
ralphm: welcome to the club of OMEMO rejects.
Nameless RTL person
i talked to pep. about it, yes. i don't find it a good solution
Nameless RTL person
besides, what's wrong with just stating my other JIDs? i can make a contact in my smartphone having multiple phone numbers and it works
zachhas left
zachhas joined
ralphm
pep.: Is moved more than https://xmpp.org/rfcs/rfc6120.html#stanzas-error-conditions-gone with forwarding address?
ralphm
pep.: yes I am aware
Ge0rG
Nameless RTL person: your contacts are managed by you. Your "friend's" alternative JIDs are managed by them
ralphm
pep.: I also have issues with crypto-currencies.
Nameless RTL person
yeah, and we're in an era where computers are supposed to help managing things up
pep.
ralphm, yes it's more than <gone/>. We discussed it a few times, I could grep through the logs, I don't remember much off-hand
Ge0rG
ralphm: the biggest issue with Moved is that all mechanisms it provides are ephemeral
ralphm
pep.: yeah, I vaguely remember. Happy to pick that back up at some point.
mukt2has joined
pep.
What Ge0rG says
pep.
You can very well make it so the current <moved/> is changed minimally and serves some part of the requirements
pep.
But there's a demand for more and that would likely require crypto identities
pdurbinhas joined
ralphm
Ge0rG: I added node delete + forwarding address notification, to cover that case with nodes-as-things, and implement moving 'things' between websites, habing all subscribers rewrite their references
Ge0rG
But you'd need pep to persist the tombstone
Ge0rG
ralphm: yes
pep.
Ah yes the tombstone. That you should keep on the old server and that your contacts should keep on their servers as well..
adiaholichas left
Nameless RTL personhas left
see ya!
pep.
Anyway. "Not today!"
adiaholichas joined
Ge0rG
ralphm: when I first looked at Moved, I was under the impression that all it needs are two or three minor changes to work in today's environment. But it turned out to be a bottomless pit
pdurbinhas left
has left
gavhas left
mukt2has left
Zashhas left
mimi89999has left
gavhas joined
gavhas left
gavhas joined
gavhas left
gavhas joined
gavhas left
gavhas joined
gavhas left
gavhas joined
gavhas left
xhas left
gavhas joined
Daniel
Do I have to send presence to a muc before I create/configure it over iq?
zachhas left
zachhas joined
pep.
"has left the room due to an error (Kicked: jid malformed)" oops?
Zashhas joined
flow
another testcase for the jid corpus \o/
debaclehas left
mr.fisterhas joined
zachhas left
zachhas joined
mimi89999has joined
mimi89999has left
Tobiashas joined
Tobiashas left
pep.
Zash, which ones of your clients got kicked btw?
Zash
Huh?
pep.
Zash has left the room due to an error (Kicked: jid malformed)
Zash
Got an exact timestamp?
Zash
Or aproximate
pep.
03:39:29+09:00
Zash
... got it in UTC+2?
mimi89999has joined
ralphm
Dude
pep.
21:39
pep.
what, my vps is in Japan, still..
Zash
That's in the future :|
ralphm
If Zash can't do substractions, why are we letting him write code?
pep.
wait, 20:39
ralphm
Or pep.
Zash
It's late and I'm tired
pep.
I got confused by tmux showing me the current datetime
pep.
*time
Link Mauvehas left
Zash
ralphm, you know how brains are really terrible at basic math, while pretty good at extremely complicated tasks like walking without falling over?
pep.
https://ppjet.bouah.net/tmux-time.png
pep.
(Yes that's a nested tmux)
ralphm
Zash: I'm not sure if that's true at all.
ralphm
It is likely dependent on how often you it.
Zash
Hush, I read it on the Internet, it must be true. And then it's totally sensible that I'd be terrible at math while being good at telling computers to do math.
2) If a string contains any RandALCat character, the string MUST NOT
contain any LCat character.
3) If a string contains any RandALCat character, a RandALCat
character MUST be the first character of the string, and a
RandALCat character MUST be the last character of the string.
Zash
And the MUC here uses libidn
jonas’
pep., ^
Zash
jonas’, TL;DR rejecting is correct?
jonas’
Zash, probably, I’d have to check the categories of the involved characters
Zash
U+061C ARABIC LETTER MARK
U+0078 LATIN SMALL LETTER X
jonas’
u+061c is invalid because it’s unassigned to my validator
Zash
Hm, is that going to bypass the rule forbidding empty nicknames;
jonas’
Zash, but yes, if we used a newer unicode version: U+061C is AL, thus RandALCat as per StringPrep, U+0078 is bidi category L, which is LCat, which MUST NOT occur in a string with RandALCat
ralphm
One of the issues might be that resourceprep is defined using Unicode 3.2 and this codepoint is 6.3.
jonas’
fun fact: that’s the kind of stuff which may change breakably between unicode versions, which is why PRECIS will be all kinds of interop hell
jonas’
ralphm, yeah, that’s what I meant when I said "u+061c is invalid because it’s unassigned to my validator"
jonas’
Zash, so, yes, rejecting is valid, but only if you also reject U+061C on its own
jonas’
otherwise you’re rejecting based on the wrong reasons, at least if you’re using resourceprep from RFC 6122 as basis
jonas’
(if you’re using PRECIS, I don’t know)
ralphm
Probably something is using newer tables for normalization.
Zash
Not using PRECIS
Zash
Neither of the two libraries I can currently choose between has PRECIS
jonas’
Zash, then something is wrong on your end if it allows U+061C, but not U+061C U+0078
Ge0rG
So the logical consequence is to reject strictly on c2s and less strictly on s2s?
ralphm
Also no 🥓 or 🦒 in resources
jonas’
Ge0rG, I think that’s the only sane way forward
Ge0rG
So you can't get kicked because of somebody else
pep.
"Ge0rG> pep.: yes, but it doesn't. What now?" You also validate and reject it (send message errors)
ralphm
Ge0rG: why wouldn't a server reject incoming invalid JIDs on s2s?
ralphm
That other server is clearly not checking properly
Zash
Problem: Allowing unassigned code points has been the default (probably unintentionally) too long. Everything will be painful.
Ge0rG
ralphm: because what happened to Zash in this MUC today
ralphm
So xmpp.org is at fault
debaclehas joined
j.rhas left
ralphm
It apparently accepted the bad jid and then also sent it on?
j.rhas joined
Zash
In turn because libidn and relaxed defaults.
pep.
ralphm, yes
jabberjockehas joined
jabberjockehas left
zachhas left
zachhas joined
jabberjockehas joined
peterhas joined
peterhas left
stpeterhas joined
stpeterhas left
has left
Link Mauvehas joined
Nekithas joined
flow
> jonas’> fun fact: that’s the kind of stuff which may change breakably between unicode versions, which is why PRECIS will be all kinds of interop hell
Isn't this only true if we accept unassigned codepoints?
pdurbinhas joined
Zash
Postulate that we do.
Zash
flow, jonas’ stated that there may be things that normalize to different things between versions
winfriedhas left
winfriedhas joined
winfriedhas left
winfriedhas joined
flow
unicode standard versions?
Zash
Yes
flow
Potentially yes, but I'd expect that to be very rare. Could be wrong though
pdurbinhas left
Zash
flow, also, as I mentioned earlier, accepting unassigned codepoints is the default in libidn and thus prosody for some reason
Zash
and probably other users of libidn
Yagizahas left
flow
Something else ftw
zachhas left
zachhas joined
Dele (Mobile)has joined
flow
Just reading ralphm blog post. So 2019-09-02-14 attaches to 2019-09-02-11, but since -11 has been corrected multiple times, it actually attches to 2019-09-02-13?
ralphm
flow: as currently envisioned, attaching is solely to the original stanza.
Dele (Mobile)has left
ralphm
But I agree this part is something needing more thought.
ralphm
It might be useful to specify a second id, in this case the edit
flow
well that id you already have, the <stanza-id/> of the stanza performing the edit, no?
ralphm
"apply to 1, as modified by 2"
Zash
Wave but not quite?
flow
ralphm, xep372 begin/end are zero indexed
ralphm
Because it depends on semantics of the thing being attached.
flow
it appears you use 1-index in your examples
Dele (Mobile)has joined
flow
Yeah, I also think how much we potentially could learn from wave
ralphm
flow: oh, I'll check that tomorrow
flow
A look at the wave spec couldn't hurt
Zash
Protobufs, just like Ge0rG wanted
ralphm
E.g. for reactions you generally apply to the 'message' irregardless of edits.
ralphm
But references break with edits.
ralphm
Yeah Ge0rG and stanza versioning has come up a few times in private discussions I've had in this.
LNJhas left
marc_has joined
mtavareshas left
Ge0rG
I was not involved in any backroom deals!
flow
I've just read up on U+061C, it's assigned since 2013 and in the Cf category, which means it is a control character and hence disallowed in resourceparts
delehas joined
delehas left
mtavareshas joined
mukt2has joined
remkohas joined
U+061Chas joined
Nekithas left
U+061C
yay, protobufs, this NIH thing known only because google invented it
zachhas left
zachhas joined
Zash
It also magically solves all protocol problems
adiaholichas left
pep.
Isn't that just a serialisation format? (I've never actually used it)
U+061C
indeed. seen a bad case of hyperprotobufoxia before
Zash
Why does XMPP even exist when protobufs can do all that?
Zash
Or was it MQTT?
Zash
pep.: I haven't used it either, which makes me qualified to describe exactly what it is. And I say "versioned structs".
Neustradamushas joined
mukt2has left
U+061C
pep., yes, it's a serialization format that's mediocre at what it can express (lots of great prior work) with somewhat good tooling (something that, i think, was the actual breakthrough of protobufs)
pep.
So it's like JSON?
U+061C
more strongly typed
pep.
I see
U+061C
also, binary
Zash
It's like C structs
Zash
With version numbers!
U+061C
and not self-describing, ie. you can't parse a protobuf binary encoding unless you know the spec used to generate it
U+061C
and not self-terminating either, ie. if you have a binary message, only part of it being a protobuf, you need to figure out where it ends on your own (e.g. sending length separately)
Zash
So you write some C struct definition and then run some tooling that spits out tons of boilerplate for whatever language.
U+061C
both of these result in shorter messages though
marc_has left
Zash
Not being self-describing will do that for you
U+061C
chat states in this webchat thing are so annoying
U+061C
it's not a bad tool, but those google folks could have instead support an existing standard instead. that's why it's NIH
mr.fisterhas left
remkohas left
moparisthebesthas left
jubalhhas left
neshtaxmpphas joined
ralphm
flow: but it being unassigned in Unicode 3.2 makes the rest of your argument moot anyway?
ralphm
Or are you looking at Précis?
zachhas left
zachhas joined
goffihas left
karoshihas left
karoshihas joined
jabberjockehas left
lumihas left
jabberjockehas joined
moparisthebesthas joined
Mikaelahas left
pdurbinhas joined
edhelashas left
edhelashas joined
zachhas left
zachhas joined
sonnyhas joined
UsLhas left
pdurbinhas left
U+061Chas left
marc_has joined
ralphm
So I guess 🥓 being a So makes it acceptable for a resource?