dwdThey are issues. But they're issues that apply to any generic approach, and the argument is therefore that he doesn't want to solve this problem, which I agree with.
dwdI mean, the argument essentially is that given any generic approach, it is possible to find a case where the generic solution does not apply. That is perfectly true. But the alternative is to have every case hard coded into the server, which I contend isn't viable as a solution.
dwdWhat I haven't said is that the arguments are badly written or written solely as an attack on me, or that the author has no idea about the problem domain.
wurstsalatMaybe a small voice conference meeting with you three could resolve most of these issues? At the moment it's a lot 'talk about talk'.
ZashBring back AFK Summit
dwdWhy? It's pointless. There's literally no interest in solving the problem outside of me and Kev.
jonas’dwd, larma seems to be interested, too.
dwdjonas’, No, he's explicitly not interested in any kind of generic solution.
dwdjonas’, That's abundantly clear, and explicitly stated.
jonas’right, however, they’re interested in a solution for reactions
larmadwd, my problem is not that the generic solution has some issues, but that the generic solution that was proposed doesn't work for the few use cases we already have in mind
KevMaybe it would be interesting to see what a specialised solution would look like, and try to extract the generic from there, if starting with the generic is generating too much heat.
larmaAnd had you read my gist you might have spotted that I wrote about one way I could imagine to solve this while staying generic
ZashI'm not entirely convinced that a generic solution is the best place to start.
dwdlarma, Neither of your proposals works.
dwdlarma, But I'm just out of energy to solve the problem within the XSF now. There's other problems I can work on that might yield more useful results.
larmafunny, because one of the main reasons this topic had become an active discussion within the XSF (again) is that it was decided that we can't move forward with some other, mostly unrelated parts of the protocol before solving this issue
dwdlarma, As I say, I have exhausted my energy here.
pep.so should council finally accept reactions?
dwdI honestly don't know. Fundamentally, the problems the last Council highlighted with the general pattern still exist and remain unaddressed, and nobody wants to solve them in the XSF.
jonas’then move ahead with it as experimental and treat it as experimental
jonas’in the sense that it’ll be broken when it needs to be broken
dwdjonas’, You argued in the Council meeting when MAM-FC came up a couple of weeks back that I should not implement MAM-FC as it would form a de-facto standard while Experimental. I take it Reactions would not fall into that same argument, then?
KevAh, and I left the room at that point.
KevMaybe if larma is saying that he *does* want to work on a generic solution (i.e. one that doesn't require per-protocol support or rules on the server) a sensible step would be to see what that looks like.
Keve.g. what an update to 427 looked like that resolved his issues with it, without introducing per-protocol rules.
ZashAs a server dev, I don't like keeping track of per-protocol rules, but it seems we can't avoid it.
pep.Zash: as any dev :p
dwdpep., No, there's two issues that are key for servers here. One is that the server would have to do "deep stanza inspection", for want of a better phrase, and actually understand the semantics of various cases such as reactions, receipts, and so on.
dwdpep., That has an effect both on maintenance, which as you have alluded affects any developer, and also scalability.
larmaKev, I proposed two ways in the gist. One is fully generic but restricted in what it can summarize (but less than the current approach), the other one is generic but with _optional_ per-protocol summary rules (and if there is no such rule for a protocol or the server doesn't support it, it still works just not as good as it could with specialized rules)
ZashProsodys MAM, Carbons and CSI modules contain loooong chains of rules now, so doing the same for MAM-FC etc does not seem unlikely
dwdpep., But there's also the problem that with each new collation pattern, the server developer may have to introduce a new data model within the MAM archive, and that concerns me much more - I have several million rows in my archive, and I need to access those efficiently. Migrating from one data model to another takes days, currently.
larmaZash, the current MAM-FC proposal already contains special handling for some protocols anyway ("pseudo fastenings"), so I guess this is going to happen anyway, no matter how generic the approach 😉
pep.what larma says
dwdpep., What larma says is that the first problem I mentioned may be with us to stay, but says nothing about the second.
dwdBut as I say, no further energy for this.
pep.Well unless you find the perfectly generic solution right away there's no escaping from this
pep.Seems like some lesser form of solutionism to me
dwdBesides, my escape is to not bother trying to standardize a solution.
dwdAnd before anyone criticises me for that - nor is anyone else.
pep.Let us at least use reactions
larmawas attempted to open movim just to put a 👍️ reaction on that message, but then realized probably nobody except edhelas will notice
pep.tbh I'm not even personally going to use them
dwdYou say that like I am personally preventing you.
pep.Just that I don't understand why that's not experimental yet
pep.Just as 393 is experimental
jonas’larma, I told you, fallback body!!k
pep.Maybe I'm just being dull in trying to cling onto the few hopes I have to do something with the XSF, dunno. Maybe it's better for everybody to just do stuff on their own after all
pep.Which is exactly what I understand from "You say that like I am personally preventing you."
ZashWhat about rough consensus and running code?
pep.Running code is there
Ge0rG> It is expected that clients will not send message corrections to clients that do not support them, as non-supporting clients will render these as duplicate (corrected) messages.
How could that slip into 0307, given Carbons and MAM?
Ge0rG> It is expected that clients will not send message corrections to clients that do not support them, as non-supporting clients will render these as duplicate (corrected) messages.
How could that slip into 0308, given Carbons and MAM?
Ge0rGAnd should a bridge to a protocol that implements message corrections have a <feature var='urn:xmpp:message-correct:0'/>?
dwdpep., I didn't veto Reactions the first time. I did the second, because I didn't think a re-submission was the right thing to do or to encourage at that time - and all of Council agreed (Daniel didn't veto but stated he agreed, everyone else vetoed). Instead, I've actively worked on a solution meeting the criteria of the first rejection, acting in good faith to find a consensus position.
dwdpep., From the minutes, this still stands: "The whole situation irritates Dave enormously - who originally voted in favour of Reactions. Dave is willing to give a holding vote, and dig into this further - would really love to have Reactions, and a generic method of 'fastening' would be even better."
pep.Well I don't agree with that and I don't see why I wouldn't revert a dumb decision in the first place. We already live with enough dumb decisions that if I have the power to change one I would
Kev> One is fully generic but restricted in what it can summarize
Ah, your 'option 1'. I was thinking you intended to send that with the fastening, but reading it again did you instead intend the collation types to be requested by the client at mam-fc time?
pep.dwd, fwiw it's not against you personally, you just seem to be fairly defensive of the idea of respecting last term's decision for reasons I don't understand (as per my last statement)
Rixon 👁🗨has left
Rixon 👁🗨has joined
dwdpep., OK, you don't agree. Everyone on the current Council agreed, four of them vetoed on that basis, one did not. You're on the Board, I'm sure we'd all welcome some clarificaiton on how Council should feel bound or not to decisions of previous Councils. But you're also suggesting the original decision was "dumb", which is simply unnecessary.
Kev> How could that slip into 0308, given Carbons and MAM?
I think at the time of 308 Carbons wasn't much of a thing, and MAM was entirely not a thing. But, indeed, if we (I) were doing 308 now it would possibly take an entirely different form.
Kev> And should a bridge to a protocol that implements message corrections have a <feature var='urn:xmpp:message-correct:0'/>
Presumably so, unless I'm being dense (and I'm again not firing on all cylinders, so quite possible).
Ge0rGKev: I'd say it should be announced on user JIDs, but I'm not so sure about bridged rooms.
Ge0rGIMHO, a client shouldn't require a MUC to have the 0308 feature to send LMC
Ge0rGKev: if you are okay with it, I'd make a PR for that.
Ge0rGalso that a client shouldn't require the feature on a recipient
Kev> dumb decision
Do people understand how using Trump-ish language about other people and their behaviours reduces the chance of a reasonable exchange happening?
dwdKev, You are attributing a goal here that there is no evidence to support.
pep.dwd, so that I can see even more people in board thinking the same way you feel? (because now they'd have to voice an opinion) I'd rather not. And also why I'm not reapplying for board anyway. It just won't bend my way, it's mostly a waste of time for me
KevGe0rG: I *think* it's not the MUC, but rather the occupants, that advertise support for 308 to trigger someone being able to send corrections there.
dwdKev, I suspect those two mean different things - a MUC advertising support might mean the MUC has some semantic understanding, but we don't specify what that might be.
KevGe0rG: Ah, yes, so the MUC sentence (which might be badly written) suggests it's the occupants that have to support it (recipients was a poor choice of word for me here, I think). It also says that you can send to a MUC if you want to even when not supported.
Ge0rGKev: what would be the logic here? Send LMC if *at least one* occupant has the feature? Only if *all occupants* do? What if somebody joins or leaves while you are typing the correction?
Kevdwd: I would agree with that.
KevGe0rG: What Swift does is just to pop up a small notice saying that not everyone supports it, so their experiences may vary.
KevWhich you might argue is horrible UX, but it was the best I could come up with at the time.
Ge0rGKev: that's not too bad of an UX
Ge0rGKev: but a client telling the user that LMC isn't supported when trying to correct a MUC message is
KevI don't think Swift ever actually prevents you from sending a correction, it just warns you that the target will not/might not understand it as a correction.
dwdpep., Well, that's a shame, on both counts. Even if Board broadly disagrees with you, it's useful to have a contrary voice in any debate, and useful to clarify the situation with Councils binding, or not, future Councils.
pep.I did not apply for board just to play the role of the contrary voice
Kevdwd: If I was to send a mail to standards@ with my old Council hat on saying that I would like Council to reconsider Reactions on its own merit with reference to my reasons to -1, but not my -1 itself, would that be in any way useful?
Ge0rGKev: but preventing the user from sending a correction is encouraged by the current 0308 wording.
pep.So much process, seriously
KevGe0rG: If you feel you can make my wording better here (for example by pouring alphabet spaghetti on it and seeing where it lands :) ), I'm entirely open to a PR.
Kev308's Draft, but I suspect Council would be amenable to a change that makes things better - there is enough weasel wording in there already to allow this, I think.
Ge0rGI think so too.
dwdpep., Board defines process. And process should serve us, not rule us. I mean "us" as in the community - it absolutely has to rule Council, that's kind of the point. I've always found Board limited by time and funding, and not by process. As to being a contrary voice, I think you underestimate the utility and importance of it - and if you didn't join to be a contrary voice, you must have expected either everyone else to agree with you or you to agree with everyone else, neither of which sounds like progress.
Kevlarma: What would your ideal mechanism for collation of reactions in MAM look like (I assert that collation is required, because not all clients will be always-on full-archive-sync jobs). I want to see a Reactions spec accepted, which is why I put the effort in with Dave on fastening/mamfc.
larma> Ah, your 'option 1'. I was thinking you intended to send that with the fastening
Kev, that's the way I meant it to be, e.g. `<apply-to xmlns="urn:xmpp:fasten:0" id="origin-id-2" rules="only-self">`. Would also be possible the other way round as you suggested: when requesting MAM-FC I include a list of my supported fastenings and their respective collation rules. Or those go into disco somehow, so I don't have to include them with every MAM request.
larmaI personally prefer the option 2 which IMO will in the end lead to the better results in total, even if that means (optional) additional server-side implementation work for new XEPs.
Zashlarma: Or do supported collation rules get advertised by the server?
KevSo, a mam request would look (heavily pseudocoded) like:
<edits type=newest filter=authoronly/>
larmaZash, well, then there is no need to advertise them and they can just be applied 😉
larmaKev, yeah, but then I expect the query is going to be huge at some point
dwdlarma, In the first case - 1a - a malicious client could probably hide messages from some other clients. In the second, I don't see how an archive data model could be built to support that efficiently - you're asking for GROUP BY semantics in MAM requests.
KevIf we got to the point that collation queries were huge, we could probably start saving profiles on the server or something and referencing those. I wonder if we'd ever reach that stage.
Kevdwd: Yes, essentially enforcing an SQL pass-through is my concern (although I'm not yet convinced it's as bad as I fear, I need to think further). One thing we could do, though, is have servers only require the official collation for things they understand, and reject queries otherwise. So that you could have a fully-generic server that can do whatever you ask, or if you want to in a specialised environment a server that can only support, say, Reactions and nothing else. We can mandate collation types in the respective XEPs to allow this.
KevThe reason that I think having a fully generic option is useful is it allows forwards-compatibility, and as a server vendor (for generic use) I'm not keen on needing to support every collatable-payload explicitly as they're specced (and respecced, etc.).
Kev(Which I know you (dwd) realise, but which I say for completeness)
larmaI am wondering why the option 2 (optional per xep collation) is so off-the-table for you, because to me it seems like the most promising solution
dwdKev, The problem with new collation requirements isn't so much the change in code, but the need to migrate the data model for historical data, to restate.
Kevdwd: Well, I think both are an issue for different types of deployment.
Kevlarma: It's not *completely* off the table for me to support individually collatable things individually, but I consider it very undesirable(...)
AndrzejI've already tried to implement mamfc, and the biggest issue (at least with having no data in storage) is grouping of data in SQL queries as it is very hard to make them efficient and support many grouping conditions
Andrzejadding more "collations" will only complicate things even more
Kevlarma: There's a bunch of reasons for this, and they may not apply if one is in an environment where either servers and clients are deployed in cooperative lockstep, or if servers and clients are both deployed so frequently that it doesn't matter (although the development cost of adding support to the server each time is still not to be ignored, I think - I consider changes to a server to be 'riskier' than to a client, especially when dealing with (important) persistent data) (...)
Andrzejand in my case (maybe others as well) will force people to update data storage model
dwdAndrzej, Yes, I certainly need to update the storage model. I believe I can manage the MAM-FC case efficiently, but I feel your pain on the effort needed on existing installations.
Kevlarma: But if one enters an environment where deployments may not be seeing much collaboration between servers and clients, or where e.g. a server has to be deployed once and only receive bugfixes for years, not having a generic solution begins to be a significant barrier to getting features in front of users.
KevAndrzej: Yes, dealing with the data models for all this is hard. I'm not looking forward to when we do that bit.
dwdKev, I do have clients and server developers in the same room - or at least, on the same video call - and even then changing isn't trivial. But a migration of (erm) 20 million message stanzas in an archive is not going to be practical, so I need to do that once only. Fastenings, with the generic summary system we designed, works OK as a join table. If we need to alter summary data per fastening, that would be hard. Adjusting collations given the same summary data s probably easier.
Kevlarma: Drawing some (possibly invalid, but I don't think so) parallels from pubsub, if we'd required server support explicitly for storing the different payload types I don't think we would have seen the sorts of unexpected adoptions it's seen (and there are numerous interesting deployments of pubsub, signalling for video conferencing systems, form submissions, etc., as well as the more obvious ones). I feel that a non-generic solution would be tying us into a dead-end. So looking at it from the point of view of trying to produce systems that allow as many people to do as many things as possible with XMPP, I come to the conclusion that a generic system is preferable (other people with the same goal might reach a different conclusion, I do not mean to imply that by reaching a different conclusion one must care less or whatever).
Kevdwd: Are you saying that you think per-spec collation requiring server-support would be ok 9
Kevdwd: Are you saying that you think per-spec collation requiring server-support would be ok (for your deployment) as long as the per-spec collations were from a set known in advance (e.g. the mam-fc rules as-are)?
Ge0rGKev: https://ge0rg.gitlab.io/-/xeps/-/jobs/777236873/artifacts/rendered-changes/xep-0308.html#disco last paragraph of §2
KevGe0rG: I think that ends up being an entirely non-normative-non-bumping change, and conveys the right message. Thank you.
dwdKev, Perhaps. :-) I think I'm saying that there are three parts to this: Collation, Summarizing, and Fastening, and they have different impacts. A server needs to know that a stanza is a fastening, and to what it applies. If this is "code knowledge", a change requires a data model migration. It needs to be able to extract the summary during the archival operation, I think, and changing that is a data model migration, so again that really needs to be generic. So far, these are things the Fastening/MAM-FC approach got comfortably right. Then we need to present the results in MAM in a useful collation - and this is where we have the most flexibility, since this is potentially just a code change.
dwdBut I'm thinking in the abstract - Andrzej, does the above make sense? You're closer to an implementation than I am.
larmaKev, My thinking here is: There is going to be a few XEPs that are very popular and where collation makes sense and is relevant. And we'd want to support collation rules to "best" fit those usecases (because if a certain fastening is only used once in every 10k messages, collation isn't relevant at all). We can certainly guess that edits, markers, reactions are likely to be on that list, but obviously this would never be an exhaustive list and we might as well be wrong about those. I think that no matter which collation rules we come up with today, they will be unsuitable in 5-10 years. They may even hinder further development because it may cause us to make future XEPs fit the collation rules (as was suggested for reactions already) up to the level that desirable features are not possible anymore.
Thinking the other direction: When a new XEP is proposed it usually takes several years for large amounts of clients picking them up and then some more time for users to make use of them. And only once a larger number of clients want to use those XEPs, it's relevant if servers support good collation for them or not, so this gives them quite a bunch of time for implementing them. And it's in the natural interest of server operators to update to a server that supports collation for a new XEP that is heavily used on that server, because collation typically means less resource usage on the server.
Ge0rGKev: thank *you*!
Ge0rGjonas’: can we get https://gitlab.com/xsf/xeps/-/merge_requests/22 on today's agenda? :D
Andrzejdwd, yes it makes sense
jonas’Ge0rG, you can agenda-bash on-list :)
jonas’.oO("As discussed with Kev on [email protected] MUC today")
Andrzejactually I've stopped with implementation of mamfc as I had other things to work on and mamfc was not really a solution in my case
Ge0rGjonas’: roger wilco
Kevlarma: What do you think the way forward should be? ISTM that even if we disagree on the nature of mam-fc specialism, we should be able to agree on a generic fastening format.
(I draw some slightly different conclusions from my experiences than you from yours about the ability of server operators to upgrade etc., but I suspect that's partially orthogonal)
larmaI'd like the fastening format to be such that the fastened elements do not need to reside in the <apply-to />, i.e. I don't want to require clients to implement a specific version of fastening just to support something that servers may (if they support it) fasten to other messages and make available in MAM-FC.
larmaAnd I don't want fastening to define any semantics for messages that are attached to other messages, because this means restricting what can be done
Kev> I'd like the fastening format to be such that the fastened elements do not need to reside in the <apply-to />, i.e. I don't want to require clients to implement a specific version of fastening just to support something that servers may (if they support it) fasten to other messages and make available in MAM-FC.
I understand the first part, I don't understand the i.e.
larmaI meant, a version bump of fastening should not screw everything up (or require to duplicate the full message payload)
KevBut it sounds to me like you're saying your ideal fastening spec would be to not have a fastening spec, which I can't see why it would be desirable. Even for client devs I think having a generic fastening makes life easier (altohugh not as much as for servers).
dwdlarma, I don't think the fastening syntax is as much of a problem as you seem to think - it's not been a problem for, for example, <forwarded/>, or even Carbons. And moving stuff out of Fastenings makes any form of generic support very very much harder, I think.
KevOk. I agree that a version bump to fastening breaking things would be undesirable. Although I'm not sure I draw the same conclusions from that as you (that we shouldn't have a fastening format at all).
larmadwd, I understand you'd like servers to not store the full message of a fastening but only the part that is inside the <apply-to/>? Otherwise the https://xmpp.org/extensions/xep-0422.html#external-payloads would kind of solve the problem for me, if we agreed on that we don't need (using example there) the <edit> element inside the apply-to.
larmageneric support though is also still very hard if we don't have strict rules for every fastening, no matter if they are inside the <apply-to/> or not
larmae.g. you IIRC wanted to have each <reaction /> directly inside <apply-to /> instead of the container <reactions /> element the current proposal has, this to me is a very weird restriction applied from the MAM-FC logic to totally unrelated XEPs.
larmaBeside that, just storing what is in <apply-to> is definitely not enough. We already know that for some usecases (edits) it's important to know who applied that message because only the sender may edit. So add at least the from field there. In MUCs however, it's maybe not the message's from field that's relevant, but might as well be the XEP-0421 occupant-id
dwdlarma, Not quite; I think servers still need the full stanza, but need to identify the fact it is a fastening, and the type and summary, in a generic manner. That's vastly simpler if the type and summary are derived directly from a child element. If they are inferred from other elements, that becomes a path to an attack based on differential capability I suspect.
dwdlarma, Also yes, I'd be perfectly happy if the "full fastening" was the entire stanza, in principle. It might be a bit nasty in terms of stanza size, but it's probably practical.
dwdlarma, If we went that route, we could do away with the <external/> entirely. The "shell" attribute could be done as a dummy fastening (which could be a distinct namespace, if we wanted, and include a correlator attribute, etc if desired). That would mean the <apply-to/> element was really very simple, and the namespace it sits within it somewhat better insulated from other changes, so should remain more stable.
dwd"clear" could be moved off the element, too, into a different element with again a different, and therefore independent, namespace.
dwdThat leaves <apply-to/> itself with a single semantic, which seems more manageable. Would that allay your concerns here?
larmaI've trouble to understand how your collation of MAM-FC is supposed to work then, because of the way you generate summaries
larma(I'd be totally happy though)
larmaAlso, as a work-around, we can have external support paths
dwdBut then that can become the sole semantic of apply-to, so "clear", "shell", and the <external/> element can all go.
dwd(Or rather, move elsewhere).
Kev👋🏻 - you're welcome
larmadwd, But then again, a namespace bump to apply-to would invalidate all implementations of reactions
dwdThe idea being that then, the "urn:xmpp:fasten:0" is made much more stable. (Except obvious we'd need to bump it immediately).
Kevlarma: That is true (that a bump would invalidate things), but the same is true of other wrapping specs (e.g. pubsub), and we've managed to avoid it there.
dwdlarma, Yes, I'm trying to mitigate the need to bump that namespace. Eliminating it brings other problems.
larmaIn other XEPs we have the client XEP mandate the parent XEP version (in this case it would mean that reactions XEP mandates a specific fastening version to be used)
larmaAnd then again, we do all this because of the model of MAM-FC you are enivisioning, not for any other reason, right?
dwdlarma, That means:
1) We have a generic way of identifying a message as a fastening, and knowing what it points to. High cost of change.
2) We have a generic way of extracting a summary. High cost of change, but also an impact on design choices for fastenings.
3) Collation strategies are left open. Medium cost of change.
dwdlarma, No, not really.
KevActually, I think there's an auxiliary benefit of letting a client know what the nature of thing it doesn't understand is. Although this might not be a huge motivating factor, I think there is some value - we've had that discussion about fallbacks and about how indicating that a client didn't understand a payload, but having it know that it didn't understand it so it can let the user know would have merit.
dwdlarma, So, you'd be able to get each fastening type to both identify and summarize generically, but you could have different types which collate in MAM in broadly different ways.
larmaI don't agree with 2, because the summary is no longer generic. You are enforcing a certain model for summaries that might not be suitable for all kind of attachings
dwdlarma, Yes, we are. We also enforce lots of syntactic things. But I don't think this case is onerous - can you see any obvious counter-examples?
larmaThere were discussions to support custom emojis (images) for reactions. The syntax could be something like <reaction><media-sharing /></reaction> The image would thus not be part of the summary but it's required to have it so you can display it, making the summary mostly useless.
dwdlarma, Excellent. So you'd include a hash of the image in the <reaction/> top level element, wouldn't that solve the issue?
jonas’note: nothing forces us to bump the namespace of the <apply-to/> element unless the semantics of <apply-to/> change
dwdlarma, Or an cid URI, or whatever. It's all good. I'm not saying this won't impose design constraints, I'm saying they're not difficult to satisfy.
larmaYou're implying that the media has a unique hash, but it could be multiple if multiple file formats are supported (png vs svg for example)
jonas’meaning: if there are other elements in fastening which require a bump, we can just bump those
jonas’without bumping <apply-to/>
Kevjonas’: Yes, I believe that's what Dave is suggesting, but I might have mis-followed.
dwdjonas’, Exactly, and my (loose and hastily typed) proposal is that.
jonas’we haven’t done such things in the past, but there’s formally and technically nothing stopping us from doing so, as long as stuff is working
KevI think we *have* done that in the past, FWIW.
jonas’dwd, I am only loosely follownig and catching up, so I thought I’d throw that in from the side to clarify, without actually reading what you wrote, sorry :)
dwdjonas’, I'm actually suggesting we put the other bits into a different namespace from the outset to avoid complications later.
jonas’dwd, even better then
larmajonas’, yes, but the issue I see is that fastening seems to be rich in semantics even when those are not described in the XEP itself (but implied from MAM-FC)
jonas’larma, sounds as if Fastening and MAM-FC needs to be merged then
jonas’but I’ll step out now again
larmayes, totally that IMO, they work hand-in-hand
dwdlarma, We definitely need to collate the semantics in one place, yes.
KevI felt at the time that the motivation to keep them distinct was reasonable and strong. I may have been wrong, and I can't immediately remember why we felt that.
dwdlarma, I think there's two documents there, but I don't think the split is right.
larmaThe problem is that I don't agree with the implied semantics that are not even properly mentioned anywhere
KevIt does still feel to me that how you design something like Reactions based on Fastening is distinct from how you store and query the archive in MAM-FC, but which document text resides in is probably not the biggest issue we face.
<reaction emoji="👋" />
<reaction emoji="👋" />
Being valid and meaning that you reacted with 👋 twice which IMO shouldn't be possible at all.
jonas’IMO, if the intent of fastening is to have a unified way to attach things to one another to be able to query stuff from archives efficiently, then the "query things from archive" part is pretty core to that and it belongs in the same document
KevIt is not a hill I will wish to die on if I end up in a minority of 1, certainly.
KevAll the other issues I feel are much more material than where text resides within the documents.
dwdLikewise with cardindality 2. Or even more.
dwdlarma, Isn't that a problem with collation rather than the syntax?
dwdlarma, Or indeed the summarizing. I mean, the same issue exists in the Reactions ProtoXEP, doesn't it?
larmaThe proto XEP has rules for this case
dwdlarma, Assume, for the moment, that we can collate per-XEP if needs be, so we can eliminate duplicates in the same way.
dwdlarma, I would *rather* use generic rules for collation, and as few as possible, but as I say that's vastly more practical to compromise on than the identification and summarizing itself.
dwdMild disgression: Back when Surevine where doing Buddycloud stuff (remember *that*?), Lloyd let a bug in which allowed people to like things multiple times if they clicked quick enough or something. "Multilike". It was a hugely popular feature^Wbug.
dwdZash, No, just multilikes. Don't get carried away, now.
ZashGe0rG: I was typing that!
dwdI almost instinctively started to type "/giphy" then. Now there's a thing to get specced.
Ge0rGWhere are our sticker packs? All we got are 5x sized Unicode codepoints.
dwdZash, "Specified", sorry.
Zashdwd: Srsly tho, wouldn't that be all clientside?
dwdZash, ... maybe?
dwdZash, I mean, on Slack etc, it's "workspace" extensions, which corresponds very loosely with a MUC domain in my mind. So maybe that would be an interesting model to explore?
dwdZash, Yeah. It's a critical business messaging tool.
larmadwd: I'd be fine if we'd properly codify the semantics of apply-to. I remember back then that we didn't use message attach-to because its semantic didn't match. Currently MAM-FC applies certain semantics that make reactions not work as intended and thus unsuitable.
larmadwd: I'd be fine if we'd properly codify the semantics of apply-to. I remember back then that we didn't use attach-to because its semantic didn't match. Currently MAM-FC applies certain semantics that make reactions not work as intended and thus unsuitable.
dwdlarma, Can you be a little more specific?
larmadwd: I'd be fine if we'd properly codify the semantics of apply-to. I remember back then that we didn't use attach-to because its semantic didn't match. Currently MAM-FC implies certain semantics that make reactions not work as intended and thus unsuitable.
larmaThe multi reactions example, at least
larmaI think there was more but I don't remember right now
larma(Just writing from phone right now)
Seve> I almost instinctively started to type "/giphy" then.
I cannot lie I love that feature
dwdlarma, OK, but as I've said a few times now, I'd like to assume that we can solve multi-reactions etc in collations and not in either identification and summary.
Ge0rGHow does /giphy work? Is that a Slack feature? A pop-up where you can choose a gif?
dwdSeve, "/giphy high five".
SeveGe0rG: Yes to all
ZashLocal (MUC? Host?) registry of Stuff that can be referenced by OOB/BOB ?
dwdGe0rG, Essentially, yes. Technically it's easy, the trick is that it's a service offered by Giphy (a purveyor of anumated GIFs), that you can apply to your workspace such that everyone gets the ability to send critical business information in a timely manner via animated GIFs.
Ge0rGdwd: thanks, I'm aware of giphy, I'm interested in the integration
SeveCouldn't have explained better dwd
Ge0rGyaxim won't accept animated gifs from the android keyboard because I'm missing some weird flag
Zashthe android *keyboard*?
jonas’just OOB-link to the giphy URL?
dwdGe0rG, In Slack terms, there is an "App" called "giphy", activated by "/giphy", which then guides the user to pick a GIF and then sends it as a message. That App is installed by anyone with the rights to do so, and Apps belong to the workspace not the individual or client.
dwdjonas’, The interesting bit is not the "send a GIF", but the "Provide the facility for everyone".
Ge0rGZash: gboard has a giphy browser built in
Ge0rG...where you can use the keyboard inside the keyboard to search for gifs
Zashdwd: That relies on the client beeing integrated in the server/-ice, no?
dwdZash, I don't think so, in principle. The Slack client has no clue about Giphy, though it does understand generic apps.
Ge0rGdwd: so essentially the "spec" would be:
1. choose a gif
2. (optional) make a copy on your http-upload instance
3. share an OOB 0066 link
Ge0rGwhere OOB 0066 for embedding images is also undocumented and stalled in Council.
dwdGe0rG, No. I think the spec would be for an inline chat app you could "install" on a MUC service that your client would know how to speek to.
ZashGe0rG: Is it?
dwdGe0rG, As I say, it's more interesting than just sending the actual GIF.
Ge0rGdwd: something something data forms adhoc?
Zashdwd: ad-hoc command?
larmadwd: I'm not saying we can't fix the semantics of fastening/mam-fc, I'm just saying that the current semantics of fastening are mostly implied from summary and collation rules in mam-fc and those semantics make it unsuitable for reactions. Which implies given the current set of XEPs, reactions can't use fastening
dwdlarma, OK. I am honestly trying, in good faith, to address your concerns and find a compromise/consensus position here.
dwdZash, "/giphy high five". You know you want to.
dwdZash, Ge0rG : And yes, something ad-hoc-ish mgiht work very well as a base. Might need a few more bits on top to make it polished.
larmaThe alternative would be that we just do reactions as is without fastening and then update reactions and a later time and/or in mam-fc make pseudo fastening rule for reactions once we figured how that could work.
Ge0rGdwd: I suppose today you'd rather just open a web view that has some event channel to emit JSON to your client.
larmaThe alternative would be that we just do reactions as is without fastening and then update reactions at a later time and/or in mam-fc make pseudo fastening rule for reactions once we figured how that could work.
dwdlarma, I would rather we worked to solve the problem rather than ignore it, and pseudo-fastening rules really do suck, speaking from the experience of implementing those already.
dwdlarma, That is, I would rather that we were *both* working on a consensus position.
dwdGe0rG, That doesn't appear to be how Slack et al operate, though the notion of web-based applets in a messaging context is interesting.
Ge0rGJava-based Mobile Code was a huge academic hype... before the base tech got Ellisone.
Zashdwd: Oh how in Riot^W Element you can just tell it to embed an arbitrary thing in an <iframe> ?
Ge0rGcan you have porn popups? Server ads from the webshit ad market?
dwdGe0rG, We have porn popups now, weren't you here yesterday? :-)
Ge0rGdwd: it wasn't a popup, it was inline
ZashThis is how you do video conferencing after all, Jitsi Meet in an <iframe>
Ge0rGdwd: I'd like to bring it on-par with the mobile surfing experience on Chrome. Redirect the whole page to "You have won! You are the 1.000.000 millionth google user!" with vibration and rewriting of the whole browser history
Ge0rGA bot storing *that* into each matrix room's history would be... fun
dwdGe0rG, So you want your porn to pop up, basically. OK. More information than I needed.
ZashYour client doesn't do popups for embedded images?
Ge0rGHere's another case of implicit resource binding: https://xmpp.org/extensions/xep-0333.html#when
KevHopefully the meaning of that mail is clear, underneath all the Kev - if Council wish to still block Reactions I think at this point it should be because they agree with Kev, rather than because they are tied to Kev's decision.
KevI thought we were making progress earlier, but maybe not.
Ge0rGKev: thanks, at least I did understand the message of your message.
Ge0rGKev: is there a DOAP or a list of XEPs supported by Swift? Somebody from the other side of a certain bridge is asking why avatars don't work there.
KevCan we assume that before starting to be helpful, I've already done the usual 'it's the source' and suchlike helpfulnesses? I'm short of energy for my usual snark.
KevI think we have some sort of list, which I'm looking for now.
Kevhttps://www.isode.com/products/swift-open-standards.html is probably incomplete, but is something.
KevIt's definitely incomplete, because it doesn't have 308 on there. Hmm.
Zashhttps://code.zash.se/xmpp-features/file/tip/clients/swift.lua is also likely incomplete and outdated
Ge0rGI don't even know off the top of my head which XEP is responsible for the presence-based occupant avatars.
jonas’plus 153, yes
Zashand the avatar-conversion xep
Zashin which case it's the servers responsibility
Ge0rGthe swift-open-standards.html page claims support for 0153
KevGe0rG: It is correct.
Ge0rGwill Swift only query for avatars from JIDs that had an vcard-temp❌update in their presence?
KevWithout checking the source, I would expect that to be the case, yes.
ZashAlso advertising the fancy error messages Prosody generates. Just look at them <text>s
moparisthebestis there some official way to get something on board's agenda?
MattJRequest it here or on the members list, or poke a board member directly
moparisthebestthanks, I'll request here then...
if you recall the whole XEP-0001 debacle last year, the resolution was someone who had an idea in their head what XEP-0001's actual goals was would clarify it via PR, and that's still not done, so can someone else be drafted to do it or?
moparisthebestMattJ, thanks! I even was able to find context if you want to also put it there https://logs.xmpp.org/xsf/2020-01-17#2020-01-17-d38f615a033a9159
MattJVery helpful, thanks
DanielI'd be willing to 'fix' OOB (66) to document how Conversations and some other client currently use it
Danielfor file transfer
Ge0rGDaniel, Zash: I really dislike that 0363 is implicitly combined with OOB and the unwritten requirement of body=oob-url
Danieland not for signaling random http links
Daniel(which at least one other client is doing)
Danielif that fixes the situation enough for dwd
Ge0rGDaniel: while you are at it, also add a XEP-0428 tag
Danielthere was a thread a while ago I think were I outlined that use
dwdAnd Kev, I wrote XEP-0428 in a hurry, if you've some suggestions there I'd absolutely welcome them.
Ge0rGSomehow, I ended up explaining the "right" way to use OOB for inline images to multiple developers over the last years
Danieland maybe or maybe not remove the IQ protocol that literally nobody uses
DanielConversations has read support
Danielbut i don’t think it ever received one
Ge0rGDaniel: from a semantically puristic point of view, I think that a discussion of those things would belong into 0363 and not into 0066
jonas’Daniel, you should put an easteregg into C when it receives such an OOB, something with a firework gif
Danielbecause http upload is more versatile
Ge0rGas both are in Draft, that doesn't even matter procedurally
dwdKev, Re-reading it, there's some odd text - like it says that a client which recognises XEP-0428's fallback tag never displays the <body/>, which seems wrong. It should, though, recognise that a body *is* a fallback and maybe mumble about it darkly.
Danieli mean we can (once oob is 'fixed') reference 66
dwdDaniel, Or a new XEP that says how to do file transfer with '363 and OOB. That'd be fine too, and should be quick procedurally.
jonas’Ge0rG, if we’re going semantically pure, it should go into an Informational ("defines best practices for implementation or deployment of an existing protocol") document separate from both
Ge0rGDaniel: you could write a new XEP then, "Inline Document Placement"
Danieli think it already does; but we can reference it stronger
dwdjonas’, '/giphy high five'.
ZashGe0rG: you mean SIMS
Ge0rG/giphy high five
Ge0rGZash: why isn't anybody using it?
Danielwhen I offered to 'fix' oob I meant adding a paragraph. I don’t want to write a new XEP if I can avoid it
Danielalso i don’t think that will make it easier to discover
Danielfor the 10s of developers Ge0rG had to explain to how to use 66
ZashGe0rG: Raisins and network effects? The examples make it look like bloat and it uses references.
Ge0rGwhat I dislike about 0066+0363 is that to make it secure, you need to ask the user whether to expose their IP to $hosting_domain, then to do an HTTP HEAD to determine content-type and file size, then to let the user decide whether to download things
dwdDaniel, Yeah, but if the new doc becomes the entry point for file sharing, it'll work. But let's start by documenting it on the mailing list and then we can decide where to put it.
jonas’Ge0rG, that isn’t going to go away any time soon
Ge0rGjonas’: well, SIMS will solve two of the three problems.
Ge0rGand if we can somehow stuff a BoB preview in it
Kevdwd: I was thinking that such a client would default to not showing them, but include a marker in some manner that would allow them to be revealed.
> Up- and downloading files will leak the client’s IP address to the HTTP service. The HTTP service might not be the same service as the XMPP service the client is currently connected to.
Ge0rGjonas’: not opposed to that
dwdKev, UX considerations? I think the overarching principle is that the client is now in a position to make that choice, rather than what the choice is.
KevI also thought that the fallback would benefit from a summary of what the fallback's for.
Rixon 👁🗨has left
KevThat way a client can ask the user "When a chat contains messages we don't understand of type 'message corrections' would you like to show the fallback text?".
dwdKev, One of the other elements the client doesn't recognise - I wondered about this, but it wasn't clear to me what the client and/or user would do.
Ge0rGyeah, the <fallback> element should have an attribute for the namespace that is responsible for the fallback
Ge0rGKev: something something i18n?
KevGe0rG: I don't think the namespace is interesting to the client, because it doesn't understand it, but a textual representation is.
Rixon 👁🗨has joined
KevGe0rG: sure, something something i18n, but you're already doing a message body as a fallback, so ...
ZashWhat if you did the HTTP request via server-provided proxy?
dwdKev, I mean, I'm not against it, I just wondered whether the need was really there.
Ge0rGZash: how would you prevent your xmpp server from becoming an open http proxy?
dwdGe0rG, Authentication for the Proxy?
dwdGe0rG, Bearer token, perhaps?
Ge0rGdwd: rather pointless with IBR
jonas’rewrite URLs in (plaintext) messages
ZashGe0rG: I mean, steal the way http upload works in matrix, with (server, identifier) and replication???
Kevdwd: I'm too tired to present (or consider) a cogent argument, I think. You may be right.
Ge0rGKev: if we had a registry of namespaces, a client could do a live lookup ;)
KevMostly I'm concerned that someone does something horrible like a fallback for a message receipt in a MUC room, or the suchlike. Or for reactions, for that matter.
dwdKev, I admit that part of this may have been the idea of a XEP with a single namespaces element and nothing more.
dwdKev, Ah, knowing whether a client is best off ignoring the message or displaying it might be useful, except that by and large if we don't want to display a message at all, then we should leave out the fallback body.
Kevdwd: I think the (potential) issue is if someone makes a decision we disagree with.
Ge0rGKev: the namespace would give the user a way to opt out from the same kind of messages, regardless of the sending client's wording of what it means
KevGe0rG: This is true. You could do "This message is a fallback rendering because we don't understand the format. In future would you like to [Hide] or [Show] this type of fallback?".
Ge0rGbecause if your client sends type="message correction" and my client sends "editierte Nachricht", the recipient is doomed.
Ge0rGof course you could add both, one for the machine and one for the human.
Ge0rGand then your client would maintain a map of decisions based on the previously encountered namespaces.
KevThat only works if you say what namespace the fallback is for though, as you say.
Ge0rGa smart client could even remove trailing numbers from that map.
Ge0rGKev: the frightening thing is when the client will also store the first human-readable name it encounters in the preferences list.
Ge0rGso you end up with an auto-populated list with mixed i18n
KevGe0rG: I buy your argument that namespace is better.
KevAt least for now.
Rixon 👁🗨has left
Rixon 👁🗨has joined
emusIf not in your media feed already: The XMPP Newsletter for September has been published: https://xmpp.org/2020/09/newsletter-09-september/ ☕️📰️
emusThanks to all contributors and supporters!
moparisthebestfirst, thanks for doing this, as always excellent job!
moparisthebestsecond, my monthly rant, who needs annoyed to get you credentials to post it https://fosstodon.org/@xmpp/ ?
moparisthebestotherwise stop linking it and/or let's get it deleted, looks bad that the last one posted was in June
emusYes you are right!
moparisthebestdo you know who might have the credentials?
emusI tried conntacting Nyco on this, but he did not reacted to it. As I would prefer to publish there as well, I think you are right to remove it actually
moparisthebestwho can contact Nyco ?
emusI do again
emusHe said, Mastadon was an experiement, as well as reminded me that account access needs to be shared not passwords
moparisthebestI wouldn't get hung up on that, who cares
SeveHe might be able to post there the newsletter
moparisthebestyou are the only one doing the newsletters, have him give you the password?
Zashor create @realXMPPFoundation
Ge0rGSeve: did you have a chance to look at the compliance page?
moparisthebestis this another topic for board or ? who manages the official xmpp accounts?
emusmoparisthebest: I think he created that on his own
moparisthebestthen why is it on official xmpp newsletters... I assumed he created it when he was on the com team?
moparisthebestto an outsider one of these looks more active than the other... https://mastodon.matrix.org/@matrix https://fosstodon.org/@xmpp
emus🤷♂️ I think he created it with the purpose of using it for that. But no clue.
I am happy to create a new mastadon account for XSF. But just not with my but official credidencials
emusmoparisthebest: guess thats true
lskdjfThe xmpp mastodon account has 700 followers after just one year. That's 40% of what the twitter account has. A relevant amount of the decentaralization / open source community is on mastodon and there's quite some potential for spreading information about XMPP there. I think calling it an "experiment" is a bad reason for neglecting that opportunity, especially given that there are people who would be happy to actually like to make good use of it.
ZashDo you have access to the Twitter account?
SeveI think you guys are not being fair with Nyco
Zash"you", emus / commteam / someone?
SeveHe created the account when we were starting with the newsletter amd so on
Zash(I was not replying to Seve there)
emuslskdjf, agreed, but its not that I dont want or so
emuswhat Seve says ^
SeveHe created the account when we were starting with the newsletter and so on
SeveHe might be busy these days and might need help to take care of it. I've got in touch with him to see what can we do
moparisthebestSeve, what does that have to do with anything?
SeveNow that it has proven valuable
moparisthebestit sounded like emus got ahold of him and Nyco said he wouldn't give emus access?
emusI suggest to Seve and jcbrand and Nyco (?) that we arrange a meeting and discuss how to proceed
emusThey would give me only access to an account I already own there. But I dont have and I dont want my own account (at least at the moment)
SeveI'll get back with news at the commteam emus 👍
emusAnyway moparist thanks for bringing that up again
moparisthebestI hate to be "that guy" but this is month 4 so how soon might something be done
moparisthebestnow that I'm looking the linked XSF accounts are kinda all over the place:
twitter: last newsletter post sept, so mostly up to date
linkedin: last newsletter post june
facebook: last post ever sept 2019
fosstodon: last newsletter post june
reddit: no newsletter posts? not sure how this is supposed to work
Sevemoparisthebest: thanks for pointing that out, it would be nice if we can at least publish the newsletter on each of them. Writing that down.
lskdjfa while back, it has been suggested to use a twitter-to-mastodon mirror. Surely such mirror-tools exist also for the other platforms? Such that every post on twitter is also automatically posted to linkedin, facebook, mastodon, etc
moparisthebest(matrix's twitter says it's bridged to it's mastodon so at least that exists)
dwdI wonder if any of the companies using XMPP have a social media marketing type they could lend some time for? I can certainly ask at Pando if that would be acceptable to the XSF?
guus.der.kinderenI think that that'd be good.
guus.der.kinderenwe've previously discussed the option to hire someone, which met with some resistance. An in-kind donation would be preferable, I think.
emusI think we should just keep/have an XSF account directly accessible from XSF setups, and nothing through others. Haveing accounts with rights to tweet connected okay, but there should be always offical credidencials registered. And I also against letting any company being the main contact of our media accounts. All of that and as it already is sounds crazy to me
moparisthebestyea seems like active comms team members being able to actually use the accounts seems like a required first step to anything
Shelllskdjf: generally there's things like Hootsuite/Zoho Social/etc for this, although they have a monthly fee.
moparisthebestI mean, with the hopefully-one-post-per-month frequency we are talking is that even needed?
dwdemus, I'm not suggesting the social media is run by a company. I'm suggesting one (or more) of the companies might have social media people who could work for the XSF, either as volunteers or sponsored by their employer. Basically that's the same principle as many of the other people doing XSF stuff.
moparisthebestwouldn't that require someone (the board???) to define what they want that social media presence to look like?
guus.der.kinderenI think that's more in commsteam area
guus.der.kindereniirc, board expressed willingness to facilitate comms with how they'd prefer to work: with a hired marketing consultant, or with an in-kind donation of such a person along the lines of what dwd suggested (or, although not discussed, any other suggestion that they might have)
emusdwd, guus.der.kinderen: I think thats a thing we should be able clear out and organise ourselves. It is not a problem to drop the tweets for mw, its just a matter of access (I dont have, because I dont run an account myself). So, lets wait what Seve comes back with for the moment
guus.der.kinderenCommteam members having access to ... comms ... seems like an obvious basic requirement.
emusguus.der.kinderen: jc and nyco have. but nyco seems out and Jc has no time
jcbrandThere's a simple solution to giving emus Twitter access. He just needs to create an account
dwdemus, I'm just saying that "ourselves" could usefully include some actual marketing expertise, and companies that already work in/around XMPP might be a place to recruit, and said companies might even let them do it on company time.
jcbrandLast I heard, he doesn't want to. There is no other to give him access AFAIK
jcbrandLast I heard, he doesn't want to. There is no other way to give him access AFAIK
dwdemus, I really don't understand why we'd want to deliberately avoid having professional help here.
Sevewill this week create a Twitter account to be able to tweet too
guus.der.kinderenWell, whatever commteams thinks is a good idea. I'm not part of that team for a good reason: I suck at comms, and it does not have my interest much either :)
guus.der.kinderenBoard has already expressed that if commteam has thoughts on how to improve things, there's willingness to look at how that can be facilitated (budget or otherwise)
ZashThere's some delicious irony in building communications tools and not being great at communication. (Speaking of myself here.)
guus.der.kinderenhaving another commteam member that, in his/her daytime job works in communications or marketing or somesuch seems like a valuable addition.
ZashTho, helping others communicate is nice.
lskdjfemus, I think there might be a misunderstanding between you and dwd. You seem to think that dwd suggested that the professionals take over most of the communication work. You apparently assumed the professional would be the only one with social media access and would be the main contact, but dwd never said so. He only spoke of having them "help". As far as I understand, that help might also consist of giving tips from their experience.
dwdlskdjf, Oh, no, I was planning this whole evil cororate takeover thing. Sorry if you misunderstood.
Zashdwd: I'm afraid you forgot to put the new cover sheet on your evil corporate takeover progress report.
moparisthebestand not even a TPS report
dwdAnd remember, next Friday is Hawaiian shirt day.
Zashand Happy New Fiscal Year to all you enterprises out there!
guus.der.kinderenI'm going to steal a printer and beat the crap out of it in a field. Anyone care to join.
wurstsalatsmells burned office supplies
ZashI love the smell of burnt plastic in the evening
emusdwd: Yeah, agreed to take professional help. Just the critics on the account access. No, there was a misunderstanding that I refuse help I think
guus.der.kinderen: Yeah that would be great.
> Last I heard, he doesn't want to. There is no other way to give him access AFAIK
Yes, that is the case. Furthermore, I would need to do that for mastadon, linkedin, reddit etc. as well 😬
I also think, as of not putting everything on my workload, that this is a good task someone else with at least one of those accounts can take over. And it just feels weird to me to create an account to work with another account 🤷♂️ Sorry for that guys.