-
Daniel
is there a best practices on which of the 3+ delays to show? I muc message might have 1) a delay tag from the user who sent it (because they were out of wifi for a second) 2) a delay from the muc history 3) a delay from your local stream management
-
Daniel
just show all of them?
-
jonas’
Daniel, in MUC, I’d use the one from the MUC history if available
-
jonas’
otherwise, the one from the user, but order by the one from your local stream management✎ -
jonas’
otherwise, show the one from the user, but order by the one from your local stream management ✏
-
Daniel
yes i was thinking of storing different values for ordering and showing (which i don’t currently)
-
Daniel
isn’t that slightly irritating to the user though?
-
Daniel
if messages show 'out of order'
-
jonas’
my clients have been doing that since forevers
-
jonas’
(my = the ones I use)
-
Ge0rG
I'm extracting one timestamp from the message and use that for ordering as well as display
-
jonas’
I may not be the norm, but I think why this makes sense is because the ordering reflects the actual way things happened and the original timestamp reflects how they were intended to happen
-
Daniel
yes that's what i'm doing. but i get the argument for doing what jonas’ said
-
Ge0rG
jonas’: it will do horrible things on MAM backsync
-
jonas’
Ge0rG, only if you sync by timestamps
-
jonas’
if you do that, you’re doing weird things anyways
-
Daniel
i could argue that what jonas is seeing is mostly an accident caused by append only txt files as storage rather than a conscious by the developer
-
Daniel
that said it might be a good accident
-
jonas’
Daniel, that’s certainly true
-
jonas’
and I think, yes, it’s a good accident
-
jonas’
at the very least, showing a "this message was delayed" thing may be sensible.
-
Ge0rG
jonas’: no, if you sync by received-order
-
jonas’
makes it less confusing when stuff arrives late
-
Ge0rG
/* Obtain a timestamp from a message, in the following priority order: https://prosody.im/modernxmpp-paste/db89ed61-677e-42e2-8319-6982f2375956
-
Ge0rG
ah, thanks mod_pastebin for stripping my XHTML-IM
-
Zash
You're most welcome
-
Daniel
pastebin mod is way to aggressive in my opinion
-
Daniel
noticed that as well now that i'm lurking in prosody chat
-
Ge0rG
Daniel: luckily, it's a server-setting thing
-
Zash
Also advertised in disco
-
Daniel
i currently just use the oldest timestamp (which is weird i admit that)
-
Zash
4 lines or 500 characters is the default, which seems fine to someone like me whos used to IRC
-
Holger
Haha I was just going to write: IRC emulation. Plain MUC doesn't support IRC's 512 char limit.
-
Holger
XMPP clients should just adjust by splitting up messages like IRC clients do.
-
Zash
People tend to do that manually 😞
-
Ge0rG
Holger: biboumi will do that for you
-
Ge0rG
Holger: also https://github.com/yaxim-org/yaxim/blob/master/src/org/yaxim/androidclient/service/SmackableImp.java#L1987-L1998
-
Zash
Figure out how to handle pastes of large config files, logs, etc in a nice way.
-
jonas’
Zash, run `file(1)` against the message, if it looks like a config file, pastebin! ;)
-
Zash
And find the precise point where it the chat turns into a forum.
-
Ge0rG
mod_muc_firewall!
-
Holger
25 lines, 2000 characters. That way a message won't exceed a VT100 display.
-
Zash
Also, limits on size in a broadcast medium is sane.
-
Holger
I'm not arguing against limits, just that those limits seem too restrictive to me, as they seem to catch 'legitimate' message quite regularly. I'm usually not motivated to follow an HTTP URL just to read a 5-line message. (But I don't do Prosody support anyway so whatever.)
-
Zash
To me it looks like if you increase it, people will increase their message sizes.
-
Zash
And then it turns into a forum
-
Ge0rG
Zash: how did you arrive at that conclusion?
-
Zash
Observation of the Converse.js room where it's been increased a bit
-
Holger
Really? I would not have expected people to even be aware of those limits, let alone restricting themselves regarding message size.
-
Ge0rG
Yeah, there is no way people take these limits into account. I'm not, and I know about them. Most of the time
-
Holger
Well ok, I have no learnt not to split up citations/comments into several lines to increase readability.
-
Holger
*now
-
Daniel
Hi Zash, https://prosody.im/modernxmpp-paste/4e1f102a-d9b1-462d-a885-81b6fb60c15b
-
Holger
Messages in the ejabberd room are too short most of the time :-)
-
Holger
"hey it doesn't work"
-
Ge0rG
Did you know that you can easily split multi-line messages into individual messages?
-
Holger
rocket
-
Holger
science
-
Holger
.
-
Daniel
which is a different kind of annoying
-
Holger
*beep* *beep* *beep*
-
Zash
Which kind of annoying do you want?
-
Ge0rG
Zash: I want to be annoyed by long messages in the chat log, not by having to open the browser. kthx
-
Zash
Maybe it makes less sense here, less likely to be long config files and logs paste.
-
Zash
I don't have access atm tho
-
Ge0rG
I can see how pasting long things is bad on IRC, but here, really, with XHTML-IM syntax highlighting, it's very much usable
-
jonas’
no, because your coloring is unreadable on my black background
-
Zash
Can we compromise on loading a module that wipes styles from your XHTML-IM?
-
Ge0rG
MUC presence is the annoying stuff
-
Ge0rG
jonas’: I'm using a dark blue background and it works rather well
-
Zash
MattJ, refiddle mod_pastebin?
-
Ge0rG
Zash: limit colors to a value from the 0392 palette
-
pep.
https://issues.prosody.im/1411 because I also don't like the default limits (I don't load it on my mucs and generally it's fine) :x
-
Ge0rG
it's less bad than muc_limits though
-
Ge0rG
If I wanted to annoy this MUC and its occupants, I'd make use of something like /dice or /progress in poezio, to create a long trace of LMCs
-
pep.
Especially with poezio not doing LMC properly (as per some newish revision)
-
Daniel
sigh i need to 'fix' this as well
-
mathieui
Ge0rG, did you know that initial implementation of such useless plugins made poezio crash when enabling debug logs in the beginning due to the python recursion hard limit?
-
Ge0rG
we better not tell Link Mauve about the possibility to combine XHTML-LM, libaa and LMC for ASCII art video streaming.
-
jonas’
moohahahaha
-
pep.
hahaha
-
Daniel
the 4 different clients that allegedly are doing LMC need to have a switch day
-
pep.
Daniel, switch day?
-
Ge0rG
mathieui: this is a sign of the insufficiencies in the plugin architecture
-
mathieui
Ge0rG, what plugin architecture?
-
Ge0rG
mathieui: yes
-
mathieui
it was crashing when *receiving* the corrections and priting the message objets to the debug log
-
mathieui
inside the display code
-
Ge0rG
mathieui: oh, so it was not about the plugins but about messages with too many corrections?
-
mathieui
yeah
-
Ge0rG
mathieui: that's a security issue.
-
Daniel
also 'fixing' lmc will fuck with MAM
-
Ge0rG
Daniel: what are you speaking about?
-
pep.
Daniel, I guess that's more or less fine tbh. As long as you can still see messages
-
Daniel
well if i don’t make the old message id the new message id on the next catchup the last message id will still be the old
-
Ge0rG
Daniel: I think you need to make a drawing. With message trees
-
pep.
Yeah I get what you mean, and I think that's fine..
-
pep.
Can we LMC an LMC?
-
pep.
In the current XEP view
-
Daniel
you can correct a message multiple times yes
-
Ge0rG
pep.: no, it's not allowed.
-
pep.
Not what I meant
-
pep.
Ge0rG, ok
-
Ge0rG
pep.: there was a very heated debate about that, because I think that we need to LMC the last LMC and not the original, but it was decided otherwise
-
pep.
I remember the heated debate but not the content
-
Ge0rG
pep.: by the XEP, you always send LMCs referencing the original message. Therefore, if multiple corrections get reordered, you don't know which came first.
-
pep.
"get reordered"?
-
Ge0rG
pep.: if you see them in a different order than they were sent
-
pep.
I get wha tyou mean anyway
-
Ge0rG
e.g. because you load parts of the conversation from MAM
-
pep.
yeah, you now need some external information to know the order
-
Daniel
also do i need to bump Conversations to 3.0.0 when i 'fix' LMC?
-
pep.
hmm why?
-
Daniel
breaking changes
-
Ge0rG
Daniel: I'm still not getting your context
-
pep.
I think that's a very not-so-much-annoying breaking change
-
pep.
What will happen is that you will potentially not recognize old LMCs as LMC, and display them as normal messages, that's it
-
pep.
fwiw, it's already like that in the wild. Converse has been doing it as the LMC says all this time
-
Daniel
well you don’t have to deal with the fallout on my issue tracker
-
pep.
as the XEP says*
-
pep.
It works for the first message
-
pep.
Which is 99% of the use-cases I guess
-
pep.
So sure you'll break all the rest, but a few clients are already incompatible anyway.. if I use converse and then login with conversations, I don't see the same
-
Daniel
also i need to rethink all my deduplication logic
-
Ge0rG
what are you talking about?
-
pep.
That makes me think, I'm not sure we're handling anything coming from MAM, LMCs, etc. :x
-
pep.
Ge0rG, which part?
-
Ge0rG
pep.: the last 13 minutes
-
pep.
Changing how LMC is handled in a client?
-
Ge0rG
Changing in which way?
-
pep.
Reading / writing. I guess Daniel was also referencing the last ID
-
pep.
and not the original
-
Ge0rG
Sorry, I can't follow
-
pep.
I'm not sure what part of the context you're missing
-
pep.
(in this infinity of contexts, please give me one I need to specify better)
-
Ge0rG
All of it, apparently. The last thing that I understood was a recursion problem in poezio
-
pep.
hah, yeah that's not related I guess
-
pep.
The LMC XEP has been changed right
-
pep.
You mentioned the heated debate
-
Ge0rG
yaxim will store the original ID and the last-correction ID in its database, and match an incoming LMC against either; so it will technically be able to use both formats
-
Ge0rG
pep.: the XEP wasn't changed, it was clarified to underline the original design
-
pep.
Yeah ok
-
pep.
Sure
-
pep.
"clarified"
-
jonas’
#clarified should be the new label we put on things which are disguised breaking changes :)
-
Daniel
no looking at my code this completly breaks my MAM catchup and dedup behaviour
-
Ge0rG
> If the same message is to be corrected several times, the id of the original message is used in each case (e.g. If a message of id 1 is corrected by a message of id 2, a subsequent correction should correct 1, not 2).
-
pep.
Daniel, you can technically allow both behaviours if you want
-
pep.
To not have to change the world
-
Ge0rG
with the existing implementations being inconsistent in that regard, accepting both is a sane approach
-
Ge0rG
Unless you are a proponent of https://tools.ietf.org/id/draft-thomson-postel-was-wrong-03.html
-
Ge0rG
In which case, you probably should show the user a popup if an incoming LMC is referencing a previous LMC
-
pep.
hmm
-
Daniel
mhhh maybe i should indeed support both. and build read support
-
Daniel
and then ship write support in a year
-
Daniel
or so
-
Ge0rG
what's "read support" and what's "write support"?
-
Ge0rG
I thought Conversations already does LMC?
-
Daniel
sending corrections out in the new format
-
Daniel
would be write
-
Daniel
pep., and converse does the new format you say? so i can use that to test
-
pep.
yeah it does
-
pep.
that's also how I noticed poezio wasn't
-
pep.
But Ge0rG had noticed before! Always first!!
-
pep.
https://lab.louiz.org/poezio/poezio/issues/3462
-
Ge0rG
I'll keep sending the latest-correction-ID as a matter of principle
-
Daniel
oh also LMC will probably start doing funny things once we start using stanza-ids in mucs for that
-
Daniel
which again I'm sure will just be a clarification
-
Daniel
i mean hasn’t it always been obvious that we should use the stanza-id
-
Ge0rG
stanza ids or stanza-ids?
-
Ge0rG
how do you LMC a message that wasn't yet reflected to you?
-
Ge0rG
how do you attach-to a message that wasn't yet reflected to you?
-
Ge0rG
If we start using MAM IDs in 1:1 communications, we'll have to wait until the next re-connect to obtain the MAM IDs of our sent messages.
-
Ge0rG
"please reconnect to the server so you can append an emoji to your witty remark"
-
Daniel
i mean my code is slowly moving toward yolo message correction
-
Daniel
you can now put any id of any of the previous versions in and it will probably do something
-
Daniel
so what ever message arrived last will win
-
Daniel
now we just need to relax our rules on what 'last' means and what resources are
-
Daniel
and anyone can correct anything at any time
-
Daniel
that reminds me that i wanted to write a channel bot that; if soon as someone leaves will rename itself to that user and send a LMC for the last message that user has written
-
pep.
Daniel, only from their barejid right
-
pep.
And that bot wouldn't work with occupant-id (or similar)
-
Daniel
wouldn’t…
-
Daniel
only that we don’t have occupant-ids
-
Daniel
and people will still mess that up
-
pep.
There's a prosody module \o/ (and one known bug I need to fix).
-
pep.
(And a XEP)
-
pep.
Though..
-
pep.
MattJ reminded me of jid-proxy, that would probably fit better in the whole picture
-
pep.
So I guess we can have something similar to occupant-id but used as "realjids". Maybe? Clients would know they're not real anyway since the MUC declares itself as semi-anon
-
pep.
We can reuse the same IDs as occupant-ids for the localpart, but then we need a namespace we can use (another (sub)domain)
-
pep.
Would these have to be routable?
-
MattJ
Clients will try to PM them, query them for vcards and other nonsense
-
MattJ
so pretty much what they do with in-room occupant JIDs
-
pep.
right
-
pep.
We can just tell them "nope"? As in, have the MUC reply that
-
MattJ
Sure, though then PMs and vcards break
-
MattJ
and I deem that unacceptable, since we are for some reason discussing this in a MUC primarily dedicated to UX :)
-
pep.
I wonder if there's anything in MUC that says you should not expect/use item@jid in a semi-anon MUC
- pep. looks
-
MattJ
Since it's not defined for the server to send it, I highly doubt it
-
pep.
it?
-
pep.
(the second one of the three)
-
MattJ
it == the "real JID"
-
pep.
hmm
-
lovetox
Daniel, i plan to it like that 1. record the timestamp the message arrived at your client 2. look for a trustworthy timestamp (MAM, MUC History, SM) -> this overrides 1 3. look for a user set timestamp -> record it separately
-
MattJ
Without using 'it': The spec does not instruct the server to send a real JID in a semi-anonymous room, so I highly doubt you will find text instructing the client not to use one that is present
-
pep.
MattJ, tbh I already "break" vcard in non-anon MUCs, with private PEP
-
pep.
(and I'm fine with it)
-
MattJ
pep., in practice Prosody has been sending real JIDs in semi-anon since... forever, and clients seem fine with it
-
lovetox
on display, if the diff of user timestamp to server timestamp is < X, order the messages accordingly
-
pep.
MattJ, ??
-
pep.
sending realjids in semi-anon?
-
MattJ
pep., it always reveals your own JID to yourself, and has done that forever
-
pep.
ah
-
MattJ
also we send multiple <item> I think?
-
pep.
Right but this one is routable, and not of a MUC's occupant-id handling code
-
MattJ
So many sneaky protocol violations in this code (which are nice things, but not standard). I never had much to do with MUC :)
-
pep.
Why would a client use this @jid btw
-
pep.
You know you are you
-
pep.
Ah, other resources ?
-
pep.
MSN is already not specified anyway, is it
-
MattJ
Yes, other resources
-
MattJ
MSN was added in brief, at some point
-
MattJ
s/added/hacked/
-
MattJ
A good hack, nevertheless
-
Daniel
clarified
-
MattJ
Exactly
-
Ge0rG
Daniel [15:10]: > clarified 🤣🤣🤣
-
Ge0rG
Can you have a triple Emoji in Reactions?