-
uc
Right to be Forgotten!
-
mimi89999
😂
-
mathieui
just asking, but there’s no way for a client to delete a message from a mam archive?
-
Zash
No
-
Zash
Not in MAM
-
Zash
Separate specification may define that
-
mathieui
That’s what I was thinking as well
-
Zash
That Prosody fork, I forget the name, had something like that IIRC
-
mathieui
I was checking if there was something like that in urn:mam:tmp which was removed later, but it doesn’t appear to be so
-
mathieui
a coworker came to me because a client asked him to remove a message from the archive on an ejabberd server with mam:tmp
-
mathieui
so I had to check
-
zinid
the database schema in ejabberd doesn't depend on mam version, iirc
-
Kev
Yeah, we have to support that in M-Link, so things in the archive can be removed afterwards.
-
Kev
I imagine it'd be a fairly common enterprise etc. requirement.
-
Zash
I'd imagine the opposite
-
Ge0rG
Maybe there is a separate archive that the data gets moved into?
-
Zash
Altho archiving and eg compliance logging doesn't have to be the same thing
-
Kev
(I note it's not the user who's able to do this, it's a sysadmin)
-
Kev
(And it leaves a tombstone)
-
zinid
any IM client (whatsapp, viber) has a function of deleting messages
-
Zash
Kev: Does it have custom protocol or some ad-hoc command?
-
zinid
you can even delete a message on remote end as well ;)
-
Kev
I forget how we do it, TBH. Adhoc, I expect.
-
Zash
You can send a message correction that changes it to an empty message or tombstone
-
zinid
true
-
Ge0rG
I think yaxim will ignore a body-less LMC.
-
Ge0rG
and body-less in that context also includes messages with an empty body
-
zinid
can I using LMC "erase" arbitrary message, or only the last one?
-
Zash
https://xmpp.org/extensions/inbox/message-retraction.html
-
Ge0rG
zinid: the XEP says you may only edit the last message, but I would consider it more practical to allow editing of the last N with N maybe around 20.
-
Ge0rG
Hm. The first time I proposed rolling back Carbons and Resource Locking was in 2015.
-
zinid
I think LMC is better (if it supports arbitrary deletion)
-
zinid
in this case you can design database easily (e.g. append only)
-
Ge0rG
zinid: send a mail to standards@ and propose a change.
-
Ge0rG
Kev: you suggested I write a thought-a-day series about the brokenness of current XMPP. If that was a serious proposal, what do you think would be the best venue to place that series?
-
Kev
It was semi-serious. I'm not 100% sure it's the best thing, but it seems like it might work. I was pondering a mail to standards@.
-
Ge0rG
Kev: I'm very interested in following through on that, in a form that's most acceptable to XSF members. I'm flexible regarding the form and the place to post, and personally I'd probably write a (very long) blog post instead.
-
Kev
I'm concerned that a very long blog post is likely to get TL;DRd.
-
Kev
(including by me)
-
Ge0rG
Because it allows to provide coherent arguments, has better markup and is not XSF-branded.
-
Kev
But give it a go :)
-
Ge0rG
Kev: what about a slide deck?
-
Kev
Oh, that has potential, including for if we do a high-bandwidth meeting to deal withit.
-
Kev
See what people-other-than-Kev think.
-
Ge0rG
people-other-then-Kev: I'd like to prepare a list of things that are currently broken in XMPP. What would be the best place for you to read it? standards@? my blog? XSF blog? a slide deck?
-
jonasw
I don’t care :)
-
Ge0rG
jonasw: as in "won't read it anyway" or as in "will red it either way"?
-
jonasw
the latter
-
pep.
Ge0rG, zinid, re LMC/deleting messages, that would only be true in a more-or-less controller context though, most client don't support LMC in semi-anon MUCs, and even when they do it would still be duplicated in the history
-
zinid
pep.: but you still "remove" it in your archive, which is the major goal
-
Kev
I'm keen it's not the XSF blog, FWIW.
-
Ge0rG
Kev: I just mentioned it for completeness sake. It was not really serious.
-
pep.
zinid, technically you don't remove it right? You just put a new message in front
-
Guus
Ge0rG: who's the intended audience?
-
Ge0rG
Guus: XSF members and people who implement MAM, Carbons, mobile clients etc.
-
Ge0rG
Guus: essentially everyone contributing to "modern" XMPP
-
Guus
then the mailinglist seems appropriate
-
Zash
The jdev@ list?
-
Guus
members -> members, impelmentors -> jdev
-
Ge0rG
Guus: see above, a coherent presentation will lack formatting and be tl;dr for most.
-
Guus
pick your audience :)
-
Guus
Ge0rG: the more reason to pick your audience carefully.
-
zinid
pep.: yes, but this is kinda normal, your "delete command" appears as "delete marker" in the database, so the original messages becomes a tombstone
-
zinid
pep.: such approach is used in some distributed databases for example
-
zinid
in blockchains also
-
Ge0rG
dwd: (moving over from jdev@) I'd like to make a talk, but can't guarantee to be present.
-
Kev
I think this is standards@, not jdev.
-
dwd
Kev, MUC, not list.
-
dwd
Ge0rG, If you're not present, the talk will be less effective indeed.
-
pep.
zinid, so it wouldn't just be a simple "empty message", it would be more than that and the db (and MAM?) would react to this as well?
-
Ge0rG
dwd: right. The problem I'm trying to solve now is that the challenge is very complex, and most people lack the time.
-
Kev
dwd: Guus suggested mailing to the jdev list. I don't think that's the right venue.
-
Ge0rG
dwd: Kev suggested to make a series of one-thought-a-day posts to standards@, but I'm not sure I can split up the problem appropriately.
-
dwd
Ge0rG, I don't know... I think if you chop up each issue, explain What it is, Why it matters, Who needs to do the next step, and What they need to do, you'd find which issues you can get traction on quite quickly.
-
Kev
^
-
dwd
Ge0rG, If you can't chop it up into smaller issues, then I genuinely think it's a lost cause. It becomes "EVERYTHING IS BORKEN, FIX IT PLS".
-
Guus
Kev: I suggested that he'd pick an audience, and suggested that if that was primarily (client/server) developers, he'd pick jdev.
-
zinid
pep.: db will not react, this goes to client: when it sees the "delete marker", it remembers it and when it matches a message it ignores the message (and/or deletes in local history)
-
Ge0rG
Guus: I think that standards@ would be the most appropriate place.
-
Guus
then go for that :)
-
Ge0rG
at least if the form is "mail(s) to a ML"
-
pep.
zinid, that doesn't work in semi-MUC for most clients
-
zinid
pep.: I know
-
zinid
but current message correction doesn't work in my Tkabber for exmaple :)
-
zinid
so?
-
Guus
Ge0rG: if it's really, really long, but structured, perhaps do this on the wiki?
-
Zash
If you are going to have mutable history, then MAM might not be what you want
-
zinid
pep.: you see, if you want to synchronize deletion with all resources (which can be offline at the moment), how will you do that?
-
pep.
No idea :/
-
Ge0rG
Okay folks, thanks for the feedback. I'll try to structure my thoughts first, then see how I can split them up.
-
pep.
I tend not to worry about deletion because I think it's just not possible
-
zinid
right, that's not an easy way, people inventing tombstones and dotted vectors and stuff like that
-
jonasw
deleting a message via LMC in MAM sounds like a terrible idea to me. this leads to inconsistent state between clients, because they might not re-sync old entries.
-
zinid
jonasw: disagree
-
jonasw
hm, you’ll have that anyways, no matter how you delete
-
jonasw
but something feels off about that approach.
-
zinid
if you keep a delete marker you can synchronize easily
-
zinid
damn, this is done in almost every key-value store
-
zinid
but this is harder for clients to implement...
-
Zash
Prosody MAM / archive code is mostly modeled to assume an append-only ordered list of messages
-
zinid
Zash: just like twitter btw :)
-
zinid
it's normal practice in high-load
-
Zash
Altho it's actually an ordered key-value thing, but the key-value-ness doesn't do very much
-
zinid
ejabberd uses SQL, so I don't care in fact, I'm just thinking that it would be great to have append-only for some usages
-
jonasw
LMC of messages before your last join are forbidden (via SHOULD) in the LMC XEP (0308)
-
pep.
jonasw, even if non-anonymous MUC?
-
jonasw
the XEP does not distinguish
-
Zash
MUC doesn't tell you if historic messages are from the same senders as those currently present.
-
Zash
MUC-MAM might tho, I think
-
Ge0rG
What's the current status of offline messages when a MAM-enabled client connects?
-
Ge0rG
Will they be dumped to the client after initial presence, either way?
-
Zash
Add that to the list of things we should figure out how they should interact
-
zinid
Ge0rG: you can disable them using flexible offline message retrieval
-
Zash
zinid: xep 13?
-
zinid
yes
-
Zash
You implement that?
-
zinid
yes
-
zinid
we can probably recommend bare minimum implementation for servers
-
Ge0rG
zinid: are there any clients making use of it?
-
zinid
Ge0rG: only ProcessOne customer's clients
-
Ge0rG
Yay.
-
zinid
yes, we recommend doing this :D
-
zinid
because there is no other standard way
-
zinid
but of course XSF can invent something :)
-
Ge0rG
The <purge/> command is prone to race conditions. Yay.
-
Kev
Ge0rG: And bind2 disables them.
-
Ge0rG
Kev: I hope we can make bind2 part of the solution to the problems I'm outlining.
-
zinid
Ge0rG: yes, races are possible, but not fatal, the server will not send you new messages anyway and you receive them via MAM later (so you don't lose them)
-
Kev
Ge0rG: Yes, or something like it (e.g. Dave's 'wrap bind2 up in sasl2' proposal).
-
zinid
xmpp2.0 is a better choice than bind2, sasl2 and others :)
-
Zash
Is xmpp2 a concrete thing yet?
-
Zash
Or is it just the concept of "lets re-do all the things from scratch"?
-
zinid
not concrete of course ;)
-
jonasw
there’s https://wiki.xmpp.org/web/XMPP_2.0
-
zinid
Ge0rG is making it concrete :D
-
Kev
Zash: I think I'm explicitly trying *not* to redo everything from scratch.
-
Guus
Kev: that'd make for a good disclaimer on that page
-
Guus
on top
-
Guus
bold
-
Guus
in <blink>
-
zinid
lol
-
zinid
drama
-
Zash
Is there anything on that page that's actually breaking compat enough to warrant a 2.0?
-
Zash
I mean, I imagine things like getting rid of 'jabber:client' and 'jabber:server' etc, and having a single unified namespace.
-
Ge0rG
Kev: I'm trying to redo from scratch the minimum amount of things so we can fix up our shit already.
-
Ge0rG
Zash: maybe it's only XMPP-IM 2.0
-
Ge0rG
my goal is not to break everything but to fix everything :P
-
zinid
bind and sasl are defined in rfc6120, so this cannot be solved inside xmpp-im solely (unless we accept bind2 and sasl2)
-
Ge0rG
zinid: bind2 can be a new XEP, without breaking anything actually.
-
Ge0rG
Redoing the message routing is much more tricky.
-
jonasw
Zash, I chose the name for that wiki page, and initially it wasn’t clear to me if we might have to override some ruling from the RFCs, basically warranting a 2.0
-
Zash
If you do things in the context of a negotiable stream feature, then I'm not sure I think that should be called XMPP 2.0
-
jonasw
Zash, that’s just a name anyways
-
jonasw
let’s call it a working title :)
-
Ge0rG
The name is the most important thing about a project!
-
Ge0rG
What about Session 2.0?
-
Zash
Ge0rG: I think you mean the logo, closely followed by the fancy website on a cool domain
-
Guus
The color is.
-
Zash
There's that old <session/> stream feature that's basically a noop everywhere I know
-
zinid
Ge0rG: there are other problems beyond message routing
-
zinid
Ge0rG: rosters, presences, all this shit is not modern anymore
-
Zash
Whut
-
jonasw
Ge0rG, Session 2.0 may indeed be a reasonable name
-
zinid
Zash: popular IMs don't even have presences, there is no point in them when everybody is online almost always
-
Zash
I don't think any of that should be removed, but I'd like message routing to be detached from presence.
-
Zash
Just because "popular IMs" don't show something front and center anymore doesn't mean it doesn't have its uses
-
Ge0rG
zinid: there is even a business use case for presence: synchronized DND
-
zinid
I didn't say it's useless, I said "not modern", meaning not used in popular IMs
-
Kev
I think lots of them have presence.
-
Kev
Slack, Discord, Whatsapp, Facebook all have presence.
-
Zash
And I'm not going to listen to arguments that boil down to "because popularity", if I cared about that I wouldn't be here.
-
Ge0rG
There is real value in presence, and that's actually something that works pretty well on mobile, outside of initial presence flood from your roster when you connect.
-
edhelas
you have two kind of presences usages in the clients, manual (set by the user) or automatic (set by the client itself)
-
zinid
yeah, but it seems like they transmit only "chat" status
-
daniel
zinid: do you happen to know who - if any - from the beam project is going to the mentor summit?
-
zinid
i.e. when I open an app, I become available, when I close the app I become unavailable
-
zinid
daniel: /me and Holger
-
Holger
zinid: I'm not going to the summit :-)
-
zinid
this is regarding ejabberd projects, I cannot say about other BEAM projects
-
zinid
ah
-
zinid
shit
-
Holger
I think Mickaël asked on the list and got no response.
-
zinid
I read it wrong way
-
Holger
So maybe nobody's going.
-
daniel
zinid: but you are coming, right?
-
zinid
no, sorry for confusion
-
zinid
I cannot leave russia, lol
-
daniel
That's too bad. Otherwise we would have had 3 xmpp related projects at the summit
-
zinid
maybe Mickael can go?
-
zinid
or Jerome? Chris?
-
zinid
but they are not mentors...
-
Holger
Trying to find his email.
-
daniel
If you haven't decided yet (and registered) then it's probably too late
-
edhelas
are we talking about the FOSDEM summit here ?
-
daniel
But they don't have to be mentors
-
daniel
edhelas: gsoc
-
Holger
zinid: Ah got it. No response indeed.
-
edhelas
oh ok
-
zinid
Holger: I don't even remember his mail
-
daniel
Have you never sent people to the summit?
-
daniel
It's a free trip to the US
-
Holger
zinid: It was on one of the 1,000 GSoC-related lists, maybe he forgot to add you to that one :-)
-
daniel
And each time you can roll the gitmo dice
-
zinid
no idea, I'm really not into this summit stuff, Mickael is usually managing this
-
Holger
daniel: Last year someone from some other BEAM project went.
-
Holger
zinid: gsoc-mentors@process-one.net on Tue, 19 Sep 2017 09:25:38 +0200.
-
zinid
Holger: I'm not subscribed ;)
-
Holger
Hah.
-
zinid
yeah, I'm a terrible mentor, I said that :)
-
zinid
I have a note: XMPP 2.0 Session Initiation The client and server must coordinate the required information for a sync as soon as possible: Authenticate Client sends a bind2 request containing: stream resumption id (optional, to faciliate Stream Resumption) last-known MAM message-id (optional, to achieve full synchronization) MAM request with a time-delta (optional, alternative to message-id if only the history of the last N time units is needed) initial presence (maybe?) MUCs to join (maybe?) The server automagically figures out whether to do a stream resumption or a MAM sync and provides according data to the client, generates presence broadcast accordingly
-
zinid
I think we're reinventing Matrix approach here in fact
-
zinid
not that it's bad
-
zinid
but what I see here is actually database synchronization between a server and a client
-
Ge0rG
zinid: I think it's good to treat session setup as a way to tell the client everything that changed since the last connect.
-
Ge0rG
zinid: exactly, xmpp based database synchronization.
-
zinid
Ge0rG: yes, but it looks overcomplicated, in normal situation you just need to send a point from where to download
-
zinid
and I also think MUCs and one-to-one chats should not be treated differently
-
zinid
like in matrix, hehe
-
zinid
not sure why we need stream resumption, the messages are in MAM already
-
zinid
seems redundant as well
-
edhelas
zinid, don't forget the Pubsub/PEP synchronisation as well
-
edhelas
that's wht we were looking into https://xmpp.org/extensions/xep-0312.html
-
Ge0rG
zinid: because session setup is much more expensive than resumption, and you will lose outgoing messages without the latter
-
edhelas
when I'm loggin in I'm spammed by hundreds of PEP/pubsub notifications for things that I already had before
-
zinid
edhelas: well my idea is to have a "routing block", it can be a room or one-to-one chat or a pubsub-eventer where you can subscribe and unsubscribe, that's it
-
zinid
edhelas: you're spammed because the desing is shit :P
-
edhelas
the design, or the implementation :p ?
-
Ge0rG
zinid: I'm not a fan of MUC MAM, but I try not to reinvent everything.
-
Ge0rG
Maybe it's a good idea in the grand scheme to have all MUCs synchronized to all devices by default.
-
Alex
Announcement : Board & Council elections 2017 https://wiki.xmpp.org/web/Board_and_Council_Elections_2017
-
jonasw
Alex, nice work :)
-
goffi
Alex: s/2014/2017/
-
Alex
fixed :-)
-
goffi
:)
-
Alex
now you can add your names :-)
-
SouL
:D
-
Alex
or recruit the people who you think will do a great job in those roles
-
Guus
Can we simply add those? 😈
-
Ge0rG
Alex: yay!
-
Ge0rG
It would be interesting to see "nominations"
-
Guus
Likely: Boardy McBoardface and possibly all guys from Matrix.
-
jonasw
looking forward to see who runs for board and council.
-
Ge0rG
I'd elect Boardy McBoardface. For Council.
-
dwd
A vote for Boardy McBoardface is actually a vote for David Attenborough, though.
-
jonasw
how that?
-
Ge0rG
Maybe because of https://www.change.org/p/jo-johnson-sir-david-attenborough-to-change-his-name-to-boaty-mcboatface
-
Zash
David McDavidface?
-
Ge0rG
Darth Zash.
-
Ge0rG
dwd, Kev: so I'm trying out a new presentation form: https://op-co.de/tmp/whats-wrong-with-xmpp-2017.pdf
-
edhelas
when is this conference planned ?
-
Ge0rG
edhelas: this is the slide deck for a fictive conference.
-
zinid
Ge0rG: nice list ;)
-
Ge0rG
zinid: I knew you'd like it.
-
mathieui
Ge0rG, "MAM + MUC = madness" why?
-
Ge0rG
mathieui: because you have to query individual MUCs for their archives, there are different incompatible versions etc.
-
zinid
Ge0rG: but isn't this a good idea? to query only what you need, e.g. when you login you receive a list of mucs with unread messages number, you don't need to query them all, only when a user opens the chat window/tab
-
mathieui
which reminds me I have to patch mod_mam_muc at some point too
-
Zash
?
-
mathieui
Zash, muc archives are forever
-
mathieui
which is bad
-
mathieui
and also open to anyone, even someone not in the room
-
mathieui
so you can scrape remotely any public MUC for its whole lifetime
-
Ge0rG
zinid: maybe. Depends on whether you want a full-sync client or on-demand sync
-
Zash
mathieui: Pretty sure it respects members-onlyness
-
mathieui
Zash, yes, it does
-
mathieui
for members-only rooms, for which it indeed works like that
-
Zash
mathieui: I've considered making it optionally restrict access to eg members only, even in public rooms.
-
mathieui
the best way would be a muc configuration toggle
-
Ge0rG
See, madness!
-
Ge0rG
That ejabberd MSN bug is really bugging me.
-
Ge0rG
Oh, it's different now.
-
jonasw
I see what you did there.
-
Ge0rG
I didn't do anything!
-
jonasw
can we re-trigger a website build to update https://xmpp.org/extensions/ ?
-
jonasw
(two new XEPs)
-
Guus
Kev, can you give me that privilege in hub.docker.com please?
-
SamWhited
jonasw: Do you mean on Docker Hub or on EOS? It will happen automatically after a while I think; pretty sure Kev put it on a cron job.
-
SamWhited
I can trigger a rebuild on Docker Hub if that's all you need (I think?)
-
Guus
I put it in a cronjob
-
Guus
Sam, yes please
-
Guus
the cronjob will only check for a new docker image
-
SamWhited
oh, sorry, I lied, I don't have my credentials on this machine, sorry
-
Guus
jonasw: find a typo, submit a PR, I'll merge :D
-
moparisthebest
Guus, add or remove a space? :P