jdev - 2024-06-11


  1. MSavoritias (fae,ve)

    will i break much if i dont send presence with from my client when joining a groupchat and i dont send the list of participants?

  2. MSavoritias (fae,ve)

    with MUC XEP i mean

  3. MSavoritias (fae,ve)

    or does that break some fundamental assumptions?

  4. Link Mauve

    MSavoritias (fae,ve), yes, the join operation is triggered by said presence.

  5. MSavoritias (fae,ve)

    ah well then

  6. MSavoritias (fae,ve)

    i was hoping i could just "subscribe" to recieve messages from the node distributing said messages to me, without having to send presense or know who the other participants are by getting the membership

  7. MSavoritias (fae,ve)

    but maybe i am describing a whole different architecture at this point

  8. MSavoritias (fae,ve)

    to be exact my problem is sending presence to everybody. which seems inneficient. plus probably periodically pinging the room.

  9. lovetox

    MSavoritias (fae,ve): that's MUC no way around that.

  10. MSavoritias (fae,ve)

    ah... like i would have hoped to use it in a way. because compatibility and such and MUX is coming(tm) :)

  11. MSavoritias (fae,ve)

    hence all my questions. also i have been told MUC is still good we dont need MIX

  12. MattJ

    You can already have presenceless MUCs, indeed

  13. MattJ

    Just they are rarely used except in places that want/need that behaviour

  14. singpolyma

    Yeah, you have to send presence because that's what the subscribe operation is but the MUC doesn't have to send that back to you. So I guess I would see your question as two questions and the answer to must I send is yes and to must I receive is no. And just because you send doesn't require it be sent to anyone else either.

  15. MSavoritias (fae,ve)

    you are right yeah its two questions. my concern basically was that you have to send a presence to everybody in the chat which means you have to know the members

  16. MSavoritias (fae,ve)

    It does make sense to ask for messages from the MUC periodically by sending presence

  17. Kev

    You as a client only ever send presence to the room, not the other occupants.

  18. Kev

    You as a room need to send it to all the occupants.

  19. Kev

    You, as a room, might choose not to do that, but it's breaking a MUST in the spec, so clients are reasonable to behave poorly in the face of you breaking that required behaviour, if you are not controlling all the clients in the environment.

  20. MSavoritias (fae,ve)

    ah you are right my bad. reading the XEP again only the room sends the presence message from all other members > If the service is able to add the user to the room, it MUST send presence from all the existing participants' occupant JIDs to the new occupant's full JID, including extended presence information about roles in a single <x/> element qualified by the 'http://jabber.org/protocol/muc#user' namespace and containing an <item/> child with the 'role' attribute set to a value of "moderator", "participant", or "visitor", and with the 'affiliation' attribute set to a value of "owner", "admin", "member", or "none" as appropriate. [13]

  21. singpolyma

    It is supported by all major servers already

  22. MSavoritias (fae,ve)

    which ties directly to me seeing the membership list

  23. MSavoritias (fae,ve)

    so maybe i can hit two birds with one stone

  24. MSavoritias (fae,ve)

    as in: if the room doesnt send presence between everybody, the membership doesnt have to get past around

  25. singpolyma

    It can also send presence without including the affiliation if you want that for some reason. But yes any version of this is doable

  26. MSavoritias (fae,ve)

    one reason i would not like the member list is because not everybody may be able to communicate with each other directly. due to firewalls and such.

  27. MSavoritias (fae,ve)

    firewalls i meant that either they are too far away in your social graph or they are just strangers

  28. singpolyma

    Well you certainly don't have to include jids in the list

  29. moparisthebest

    Is this an announcement-only room or a room where people join and chat?

  30. MattJ

    Kev, no, XEP-0045 allows for selective presence broadcast (based on roles)

  31. MattJ

    So no MUST-breaking is necessary

  32. MattJ

    Unless there was an oversight somewhere in the spec

  33. MattJ

    The "Presence Broadcast" section has this: > Unless the room is configured to not broadcast presence from new occupants below a certain affiliation level (as controlled by the "muc#roomconfig_presencebroadcast" room configuration option), the service MUST also send presence from the new participant's occupant JID to the full JIDs of all the occupants (including the new occupant). -- https://xmpp.org/extensions/xep-0045.html#enter-pres

  34. MattJ

    The improvement that MIX/MUX makes is that clients can individually make this decision, rather than the room owner(s)

  35. singpolyma

    Probably best to always send the self-presence

  36. MattJ

    Yes, the spec requires that

  37. Kev

    > , no, XEP-0045 allows for selective presence broadcast (based on roles) If no-one is a participant, then yes, you can do presenceless MUCs that way, true. But once someone's a participant, you MUST receive their presence when you join the room.

  38. MSavoritias (fae,ve)

    > Well you certainly don't have to include jids in the list right and i guess i there would be some kind of "id" occupant or otherwise

  39. Kev

    > right and i guess i there would be some kind of "id" occupant or otherwise Their occupant JID (room JID with nick as the resource)

  40. Kev

    But there may also be the consistent ID stuff if the server supports it, yes.

  41. MSavoritias (fae,ve)

    right yeah

  42. MattJ

    Kev, what makes you say that participants MUST always have presence?

  43. Kev

    7.2.2 > If the service is able to add the user to the room, it MUST send presence from all the existing participants' occupant JIDs to the new occupant's full JID

  44. MattJ

    When XEP-0045 explicitly allows you to override that

  45. Kev

    The stuff you quoted is about sending the new occupant's presence to existing occupants.

  46. Kev

    But the bit about sending existing occupants' presence to the new occupant doesn't cover that, that's just a blanket MUST.

  47. MattJ

    That's quite clearly an oversight. It doesn't make much sense to have a config option that controls initial broadcast only, but does not control the broadcast at other times.

  48. Kev

    I'm loathe to claim anything is quite clear in 45 :)

  49. MattJ

    The intent of the muc#roomconfig_presencebroadcast option is to select which roles have their presence broadcast

  50. MattJ

    That's described multiple times in the document

  51. MattJ

    An implementation following your interpretation would be erratic and broken

  52. Zash

    All presence, or joins&parts vs presence updates?

  53. MattJ

    E.g. you would be in an empty room, and then rejoin, and suddenly you see everyone

  54. Kev

    There would be ... issues ....

  55. MSavoritias (fae,ve)

    thinking more about it i will have some burner ids to put in the member list so might as well do it and have the muc sent the member list

  56. MSavoritias (fae,ve)

    thinking more about it since i will have some burner ids to put in the member list so might as well do it and have the muc sent the member list

  57. MSavoritias (fae,ve)

    so i may be overthinking things, especially since presence can be tweaked and muc may be fine

  58. FUCK XMPP

    NO

  59. Hydrogen

    wtf

  60. MattJ

    🤷

  61. MSavoritias (fae,ve)

    actually i dont know why i didnt check the MUX pad before but it looks like it solves both of the problems i mentioned today anyway. plus the offline usecase. so might as well use that directly

  62. MSavoritias (fae,ve)

    without hats or the acls that is

  63. MattJ

    The hats/ACL stuff is 99.9% not staying, it's just a scratchpad at the moment while exploring potential ideas

  64. MSavoritias (fae,ve)

    interesting. but yeah i know its early stuff. just makes it clear that the stuff i want is possible

  65. MSavoritias (fae,ve)

    so hats/acl is gonna stay as an optional addon and MUX is going to stick with the MUC stuff for power levels?

  66. MattJ

    No, sorry, I didn't mean to imply that. Just that I don't know *what* it will be yet (proposals are welcome)

  67. MattJ

    I started typing some stuff (which is probably what's still in the pad) and I wasn't too pleased with the result

  68. MattJ

    But sometimes typing it out like that is the best way to decide if something makes sense or not

  69. MSavoritias (fae,ve)

    ah makes sense. from a quick look hats seems to be just a map on top of affiliations and roles and such so meh

  70. MattJ

    Hats aren't anything currently

  71. MSavoritias (fae,ve)

    that also yeah

  72. MSavoritias (fae,ve)

    its basically another MIX with zero traction :P

  73. MattJ

    So this would be one of the first attempts to tie hats into a permissions model

  74. MSavoritias (fae,ve)

    hmm. true actually if instead of the affiliation/role whatever they were tied to a better model it would actually work

  75. MSavoritias (fae,ve)

    (for me at least)

  76. moparisthebest

    The huge, massive, absolutely critical advantage mux has over mix is backwards compat with muc, literally nothing will gain traction on the public federated XMPP network without it (personal opinion, not legal advice, no warranty bla bla)

  77. MattJ

    MUX will be implemented in Prosody, and unlike MIX it doesn't depend on participant servers, and it is backwards-compatible with MUC, so it will eventually reach (and be usable by) at least 50% of the federated network

  78. MattJ

    I'm not entirely opposed to implementing MIX in the long run if that's what we decide (if certain things in MIX get fixed), but implementing MUC and MIX simultaneously is what has been holding us back in Prosody

  79. MattJ

    Implementing (MUC, MUX) or (MUX, MIX) should both be possible without too much trouble, at least that's the goal

  80. MSavoritias (fae,ve)

    i would like to see an independent permissions model that works for both

  81. taba

    > The huge, massive, absolutely critical advantage mux has over mix is backwards compat with muc, literally nothing will gain traction on the public federated XMPP network without it (personal opinion, not legal advice, no warranty bla bla) i agree with this

  82. MSavoritias (fae,ve)

    has there been a community consensus that we need better permission model for MUC?

  83. taba

    don't think so, but there's hole in my heart in the shape of multiple hats on a pfp

  84. singpolyma

    MSavoritias (fae,ve): what would make it better IYO?

  85. moparisthebest

    > one reason i would not like the member list is because not everybody may be able to communicate with each other directly. > due to firewalls and such. MSavoritias (fae,ve): well that's why I asked: > Is this an announcement-only room or a room where people join and chat? In my mind if it's the second, it doesn't make sense for people to be about to post messages in a room of X participants if some amount smaller than X will be able to read them?

  86. MSavoritias (fae,ve)

    ah. no the context its a f2f kind of network. where basically people that you dont know cant contact you unless they get the capability to do so from somebody else or from you

  87. moparisthebest

    But yes, please suggest better/alternative permission models

  88. MSavoritias (fae,ve)

    so for example: i join a groupchat for my local knitting club but i only have 3 people in my contacts. not the other people because i dont know them. and they are not near my graph so i may not even accept connect requests from them

  89. moparisthebest

    I understand all that for 1:1, but the group chat I don't get So you (a) join that local knitting club group chat and you know 3 of the people (b,c,d) in there and there are 2 others you don't know (y,z)... What do you expect to happen when you talk? When c talks? When z talks?

  90. MSavoritias (fae,ve)

    the whole procedure would work like: i (a) know three people in the local knitting group (b,c,d). so i "subscribe" to them to recieve messages from the room. in the room there happened to be other people (y,z etc.) but i dont need to contact them directly because i fetch messages opportunistically when i ask from b,c,d or they route the messages to others that i sent. and same way i can have subscribers too.

  91. MSavoritias (fae,ve)

    any of the b,c,d can also work as a "introducer" of me into the group. and they added me there initially

  92. singpolyma

    and what about the current MUC permissions prevents this in your view?

  93. MSavoritias (fae,ve)

    ah that was seperate. it was responding to moparisthebest question about what i meant with firewalls and how would there be people i cant contact in the same groupchat as me

  94. MSavoritias (fae,ve)

    for the permissions i have a pretty good idea of what i am going for, but i don't feel comfortable talking about it here yet.

  95. moparisthebest

    > the whole procedure would work like: > i (a) know three people in the local knitting group (b,c,d). so i "subscribe" to them to recieve messages from the room. > in the room there happened to be other people (y,z etc.) but i dont need to contact them directly because i fetch messages opportunistically when i ask from b,c,d or they route the messages to others that i sent. > and same way i can have subscribers too. That *sounds* like you are describing 1:1, not group chat

  96. moparisthebest

    What happens when you send a message to the group chat? Who sees it?

  97. MSavoritias (fae,ve)

    the message gets relayed through one of the people you are subscribed too. you could also say that the nodes/people you are subscribed too are just servers for you :)

  98. SHITFUCK

    USE MATRIX

  99. SHITFUCK

    NO ONE USE XMPP

  100. rion

    hm I don't know anyone using Matrix..

  101. SHITFUCK

    EVERY ONE IS IN MATRIX

  102. SHITFUCK

    XMPP IS DEAD TECH

  103. rion

    SHITFUCK: have you come here just to be banned for capslock? =)

  104. SHITFUCK

    NO

  105. SHITFUCK

    I COME HERE TO INFORM

  106. SHITFUCK

    STOP USE XMPP

  107. taba

    SHITFUCK, we could have turned you into xmpp's strongest soldier

  108. SHITFUCK

    XMPP IS 100 PEOPLE

  109. SHITFUCK

    MATRIX IS MILLIONS

  110. taba

    whatsapp is a shitty xmpp client silly

  111. SHITFUCK

    NO

  112. SHITFUCK

    WHATSAPP IS META

  113. SHITFUCK

    ITS NOT OPEN SOURCE

  114. taba

    that's what they use

  115. taba

    xmpp

  116. SHITFUCK

    SO WHAT

  117. SHITFUCK

    WHATSAPP PEOPLE DONT CARE

  118. taba

    maybe

  119. SHITFUCK

    NO

  120. taba

    SHITFUCK, look up how much ram the fast matrix server recommends vs how much ram prosody recommends

  121. SHITFUCK

    IT DOESNT MATTER

  122. taba

    spoiler the radio is like 30:1

  123. taba

    spoiler the ratio is like 30:1

  124. SHITFUCK

    PEOPLE COUNT IS THE IMPORTANT MATTER

  125. rion

    exactly Matrix doesn't matter )

  126. kapad

    META IS BILLIONS

  127. cal0pteryx

    MattJ, pls ban

  128. SHITFUCK

    TABA LOOK UP NETWORK EFFECT

  129. SHITFUCK

    XMPP HAS NO NETWORK

  130. SHITFUCK

    MATRIX DO

  131. SHITFUCK

    CALOPTER DONT BAN ME FOR TRUTH

  132. SHITFUCK

    I AM LEAVING

  133. SHITFUCK

    BUT YOU HAVE INFORMATION USE IT WISE

  134. kapad

    SHITFUCK: everyone have his own metrics to qualify things

  135. taba

    i've tried matrix clients

  136. taba

    they're simply worse than xmpp ones

  137. ethereal

    SHITFUCK: what an odd way to advertise Matrix, Matthew

  138. yvo

    > they're simply worse than xmpp ones 😁️😂️