jdev - 2021-06-12


  1. selurvedu

    homebeachm, Diego, you could make a wildcard dns record e.g. *.communities.myserver.tld pointing to communities.myserver.tld and configure your server (i.e. write your own module โ€“ I never heard of any servers that can do this) to handle each muc host in that namespace as a separate entity. I believe that doesn't require any new XEPs.

  2. selurvedu

    However, that's just the tip of an iceberg. This is not a complete solution to get communities / spaces (Matrix/Element uses this term) / guilds (an old Discord term, still used in their developer docs) / "servers" (screw Discord for using that term for end users) working as desired, since how do you

  3. selurvedu

    a) handle who can and cannot join the particular space? Even if you manage to make use of something like ejabberd ACLs, there is no way to configure that on client side. You could use something "really simple", like a bot, for handling that, but see my point below.

  4. selurvedu

    b) make user-friendly invitations to non-public spaces? For public ones it is easier since you can simply use an xmpp uri pointing to any room, just like with any regular MUC. This would also work with XEP-0249 invitations. For private spaces, this would not work with current XEPs, unless you use another "really simple" solution like setting your module to have an auto-generated special password-protected room (like welcome@1312.spaces.myserver.tld) that you can invite people to, and if they join with a correct password (supplied in XEP-0249 invitation or in XMPP URI, e.g. xmpp:welcome@1312.spaces.myserver.tld?join;password=tmppwd25519 ), the server would allow them to discover and join all other rooms in that space.

  5. selurvedu

    c) etc. These are just two most obvious points that I got off the top of my head.

  6. selurvedu

    The "really simple" solutons I mentioned may be simple, but they are not conforming to any standard and would lead to server-specific implementations. At least having a "best practice" XEP would solve most, if not all, possible discrepancies.

  7. selurvedu

    Even if you manage to stick to the currently avaliable XEPs and not invent any new ones, there still would be obvious UX issues. It would be usable, yes, but the UX would be, well, not utterly terrible, but much, much worse than what Element or Discord can offer. For instance: d) If a user joins a channel, they would simply not know that the channel is a part of a bigger space they can join and that there are other channels around. I don't see any solution for this other than a XEP that would state how can a server indicate that info and how the client is supposed to use it. e) There would be no ways to make temporary invitations, unless your server can handle that on its own as described in b). But, again, server-specific stuff is undesirable. f) etc.

  8. selurvedu

    rom1dep, that new feature of Gajim is very interesting indeed โ€“ they went with a time-tested solution similar to ones used in Slack, Discord, Element, Wire, etc. โ€“ but AFAIK, it's purely local and client-only. That said, if XMPP will have communities some day, they would fit nicely into it, just like in other IMs I mentioned.

  9. Diego

    ยป d) If a user joins a channel, they would simply not know that the channel is a part of a bigger space they can join and that there are other channels around. I don't see any solution for this other than a XEP that would state how can a server indicate that info and how the client is supposed to use it. selurvedu: some sort of tie-in to service discovery?

  10. pulkomandy

    can you make the channel be "invitation only" (does that exist in XMPP?) and then have some other thing ("the group" / "the community") send invitations to join it?

  11. MattJ

    pulkomandy: yes, kinda

  12. MattJ

    In XMPP it's less about "was this person invited" and more "is this person on thr member list"

  13. MattJ

    And servers will automatically add people to the members list when you invite them, if the room is configured that way

  14. MattJ

    And if you use "mediated invites" (where you ask the room to send the invite)

  15. MattJ

    So that's how you achieve what you want.... whatever it is. Just have something to manage the member list, which could be a bot or something built into the server.

  16. selurvedu

    Diego, yeah, you can already use the service discovery manually, so a client will just need to do that automatically and display it somehow

  17. Diego

    selurvedu: perfect, so in theory we don't even need anything clientside for it to function

  18. Diego

    side note though

  19. Diego

    it does seem kind of unnecessary

  20. Diego

    this whole 'communities' thing

  21. Diego

    because I mean

  22. selurvedu

    Diego, this is disputable and a matter of taste

  23. Diego

    just look at the XSF itself

  24. Diego

    it just uses some website to list the hatrooms

  25. Diego

    it just uses some website to list the chatrooms

  26. Diego

    Well, yeah

  27. Diego

    selurvedu: and what about the management of these communities? with adhoc commands ran on e.g. communities.server.org?

  28. selurvedu

    Diego, if a goal is to have a guilds / spaces clone, we do need some convention about how the conforming clients have to perform discovery and indicate the availability of such spaces

  29. Diego

    yeah

  30. Diego

    so just a best practices XEP i guess

  31. selurvedu

    same with the management via ad-hoc

  32. Diego

    yep

  33. selurvedu

    Yeah, I mentioned that in my long post :)

  34. Diego

    yep you did

  35. Diego

    it's probably the best way to do it like that

  36. Diego

    so then there's graceful degradation

  37. Diego

    if clients already support disco

  38. Diego

    but hey that is obvious

  39. Diego

    thanks though selurvedu

  40. Diego

    i'm not so sure whether to try to implement this or not

  41. Diego

    I'll see