jdev - 2026-03-06


  1. dwd

    And also here - https://github.com/dwd/Wimsy/releases/tag/v0.0.5 - still prerelease, but would welcome feedback.

  2. moparisthebest

    when does it get quic/webtransport support?

  3. moparisthebest

    I can give you an @xmpp.beer account for testing

  4. Cynthia

    Can WebXDC handle input files?

  5. Cynthia

    Like say, I upload a Ruffle widget and then attach a SWF file aswell, can the widget automatically load the user-provided file? (or does WebXDC not allow this to happen as of now)

  6. Cynthia

    Or is it just apart of the state update

  7. singpolyma

    You could cram it in the state update if it's not too big

  8. Cynthia

    What if it is big?

  9. Cynthia

    Like 5MB or so

  10. singpolyma

    Then it won't fit in a state update

  11. Cynthia

    If WebXDC supported setting up the widget with a file data supplied by the client (where it can do HTTP file download, OMEMO decryption, etc. etc.)

  12. Cynthia

    Then it would be easy to make loader apps like Ruffle to play with people

  13. Cynthia

    Then it would be easy to make loader apps like Ruffle to play with people, for example

  14. Cynthia

    I wonder why they haven't done that

  15. singpolyma

    Why not just pack the file into the WebXDC?

  16. singpolyma

    seems it would be simpler to use that way

  17. Cynthia

    That would be much harder for a user to do

  18. Cynthia

    I mean I'm assuming telling a user to unpack a xdc file, put the file in, and then repack before sending would be pretty hard

  19. singpolyma

    I'm not sure in what way loading a SWF blob into a player that isn't aware if it will do anything useful. How does the SWF blob know about the state update protocol etc?

  20. Cynthia

    Then again in the WebXDC XEP, the client does upload the XDC file to the server

  21. singpolyma

    > I mean I'm assuming telling a user to unpack a xdc file, put the file in, and then repack before sending would be pretty hard I can probably make a single html file that lets anyone do this if there's a reason

  22. singpolyma

    > Then again in the WebXDC XEP, the client does upload the XDC file to the server True. A specialized client could also do it before send if it wanted

  23. Cynthia

    > I'm not sure in what way loading a SWF blob into a player that isn't aware if it will do anything useful. How does the SWF blob know about the state update protocol etc? I mean, you can either modify the player to hook into the SWF state (would be dependent on the file that is loaded) and send over updates, or just don't bother :P

  24. Cynthia

    I don't think people would mind much about the lack of state updates from a loader

  25. Cynthia

    I don't think people would mind much about the lack of state updates from a generic loader

  26. singpolyma

    But if you don't bother then what is the point? It's just a web view in your chat app with no integrations? Might as well be a link then why use WebXDC

  27. Cynthia

    Well sure, I'll give you a better example

  28. Cynthia

    How about an emulator that actually does hook into the game and updates the state with achievements? (RetroArch with RetroAchievements)

  29. Cynthia

    How about an emulator that actually does hook into the game's state and updates the state with achievements? (RetroArch with RetroAchievements)

  30. singpolyma

    Sure if it has some generic way to do that over many payloads it could be useful

  31. Cynthia

    You mean inject a file into the WebXDC payload?

  32. Cynthia

    You mean the client injecting a file into the WebXDC payload?

  33. singpolyma

    Right

  34. snit

    hi guys :) the other day i brought up a potential idea to allow muc users to see each other's mutual rooms in an explicitly opt-in way. the longer i thought about it, the less useful that particular method seemed to be. i'm doing more research into XEPs, and noticed 0194(user chatting), which lets users expose the rooms they're in with PEP, and 0316(MUC eventing protocol), which allows PEP to work in semianon rooms. the combination of these two would, i believe, achieve what i want; however, both specifications are deferred and have no known implementations. does anyone know why? was it just lack of interest, or were there technical reasons? (or is there a newer way of doing this now?)

  35. singpolyma

    Why would anyone care what other rooms I'm in?

  36. Cynthia

    > hi guys :) the other day i brought up a potential idea to allow muc users to see each other's mutual rooms in an explicitly opt-in way. the longer i thought about it, the less useful that particular method seemed to be. i'm doing more research into XEPs, and noticed 0194(user chatting), which lets users expose the rooms they're in with PEP, and 0316(MUC eventing protocol), which allows PEP to work in semianon rooms. the combination of these two would, i believe, achieve what i want; however, both specifications are deferred and have no known implementations. does anyone know why? was it just lack of interest, or were there technical reasons? (or is there a newer way of doing this now?) Will this just leak your entire MUC bookmark to a room?

  37. Cynthia

    > Why would anyone care what other rooms I'm in? Discord feature

  38. Cynthia

    Same with "mutual friends"

  39. snit

    > Will this just leak your entire MUC bookmark to a room? no, ideally it'd be an explicitly-opt in thing, and 0194 specifically says that users MUST be able to only advertise a subset of their rooms

  40. snit

    > Why would anyone care what other rooms I'm in? i personally find it helpful to identify users i don't know very well, especially if they frequently change their avatar and/or nickname, to be able to see what other rooms they're in (and ideally any other nicks they use there, though 0194 doesn't help with that part). making it explicitly opt-in ensures users who don't want that don't have it by default

  41. snit

    its a pretty common feature on other IMs

  42. Cynthia

    Why not hash the room IDs

  43. Cynthia

    And compare

  44. Cynthia

    This is a good feature for stalkers, because they can join the rooms they're not in but you are in

  45. singpolyma

    Well if it's a semi anon room the whole point is you shouldn't know who they are. Otherwise do the same as every other chat protocol ever and let participants see their id

  46. snit

    > Why not hash the room IDs what exactly do you mean? like providing a hash of the room URI in the node instead of the URI itself? i'd be fine with that as well, since it'd still give me my mutual room functionality

  47. Cynthia

    If its just for figuring out mutual rooms, you can hash the room JIDs (with some salt per-stanza and order of the JIDs randomized, just in case)

  48. Cynthia

    >> Why not hash the room IDs > what exactly do you mean? like providing a hash of the room URI in the node instead of the URI itself? i'd be fine with that as well, since it'd still give me my mutual room functionality Hash of the room ID, Like sha512("exampleroom@example.com" | salt)

  49. Cynthia

    A client can just hash their entire MUC bookmark can check against the hashes you've advertised, to check for mutual rooms

  50. Cynthia

    A client can just hash their entire MUC bookmark and check against the hashes you've advertised, to check for mutual rooms

  51. Cynthia

    And also stops them from joining rooms they don't even know yet

  52. singpolyma

    Bloom filter. "This user is *probably* in the same room as you" 😉

  53. snit

    > Well if it's a semi anon room the whole point is you shouldn't know who they are. Otherwise do the same as every other chat protocol ever and let participants see their id sure that's why this is an opt-in thing. most people i know have little use-case for semi-anon beyond hidng the JID to prevent dm spam and such. at the very least, i can be reasonably confident for 99% of users that the guy in two mucs with the same name and avatar is the same person, but i can't be sure that one of them isn't just an impersonator, and i can't be sure that the guy with the same avatar but a different nick is the same guy, especially not in a way that'd be easy to implement in a UI. for people who don't mind confirming what most people already know by intuition, these XEPs would be nice to have

  54. snit

    > If its just for figuring out mutual rooms, you can hash the room JIDs (with some salt per-stanza and order of the JIDs randomized, just in case) yeah this would be perfect. i wouldn't personally mind sharing the URI itself, but i definitely agree a lot of users would prefer to just send the hash. the XEP could be amended to say something like "one of <uri/> or <hash/> MUST be present"

  55. Cynthia

    This is better than XEP-0194, because you're not inviting random people to harass you everywhere

  56. Cynthia

    This design is better than XEP-0194, because you're not inviting random people to harass you everywhere

  57. snit

    yeah i definitely agree the hash is a really good idea :D

  58. snit

    though i'd like to reiterate my questions about whether 0194 and 0316 were never implemented for lack of interest or technical reasons. i guess i'd consider the hash thing a technical reason for 0194, though i see that less as a blocker for implementing 0194 and more as a blocker for end-users enabling it. still unsure about 0316; i haven't done much reading on pubsub/pep yet

  59. singpolyma

    If there is a xep that wasn't implemented then the question I would have is why does it even exist. If even the author couldn't be bothered to implement it it seems more like a hypothetical than a spec

  60. snit

    i've noticed a number of XEPs with few to no implementations which i would've loved to see, but apparently not even the author cared enough to make a reality 😔

  61. snit

    maybe xep submissions should be required to have a proof of concept implementation 🧌

  62. Cynthia

    > yeah i definitely agree the hash is a really good idea :D Also BTW why pep anyway

  63. Cynthia

    Why not just query the user telling them "are you in any of these rooms?", and give them a list of URI/hashes

  64. Cynthia

    Then it would be even better, people wouldn't save the list of hashes and compare it against a giant list of known MUCs

  65. snit

    well for me its mostly because the XEPs to do what i want already exist and happen to use PEP. for the authors, i think its mostly that the goal was a series of XEPs implementing functionality akin to discord's rich presence(the same framework is used for music and games, for example), rather than a mutual room thing specifically

  66. Cynthia

    The XEP is from 2008

  67. Cynthia

    I don't think Discord existed back when this XEP was made

  68. snit

    yes this is true. i didn't mean to imply that their reference here _was_ discord, just that both achieve similar goals in terms of providing rich information regarding users' current activities

  69. moparisthebest

    > maybe xep submissions should be required to have a proof of concept implementation 🧌 this but seriously

  70. Cynthia

    > Sure if it has some generic way to do that over many payloads it could be useful Do you know where the webxdc devs are?

  71. moparisthebest

    Cynthia: https://webxdc.org/

  72. dwd

    snit, XEPs do need implementations to advance. But Experimental ones are just ideas (or can be).

  73. theTedd

    Also, the count of implementations in the XEP listing only shows _known_ implementations (via a DOAP file) - there could be undeclared implementations elsewhere

  74. snit

    mind you i was mostly joking when i suggested that. i see merits to such a requirement, but i'm not convinced its actually a good idea in practice

  75. theTedd

    It would be another barrier to submission, and would discourage community input (since one person/group has to do a whole implementation before getting outside opinions)

  76. Kev

    Theres significant pros and cons. The pros include being sure it’s implementable, and at least one person is motivated to do so. The cons include that once there’s a working implementation history tells us that people can be very resistant to improving the design because “it works and is deployed”, and we’ve had multiple instances in the past of subpar things persisting because there was an implementation already.

    ☝ 1
  77. Kev

    I lean on the side of the damage of requiring it being greater than the damage of not.

  78. singpolyma

    > It would be another barrier to submission, and would discourage community input (since one person/group has to do a whole implementation before getting outside opinions) If no one has done an implementation how can anyone possibly comment on if the thing will work? Even the author can't know in such a case

  79. singpolyma

    Honestly I prefer subpar things that work to ideas for things that don't

  80. singpolyma

    Like is/was vcard temp gross? For sure. But it supported the ecosystem's needs for a very long time and I'm happy for it

  81. theTedd

    And how could anyone know whether vcards are possible without an implementation! 🙄

  82. moparisthebest

    > Honestly I prefer subpar things that work to ideas for things that don't this, I've never seen 1 spec no one ever implemented where it was thought out enough to actually implement and that not XSF specific or a criticism of anyone, it's just you inevitably run into things you didn't think about during implementation

  83. theTedd

    And that's why implementations are required for advancement, but just documenting an idea doesn't need 100% completeness

  84. moparisthebest

    a spec without implementation is someone posting "it sure would be nice if someone did X" ok... do it?

  85. singpolyma

    I'm always weirded out by statements like "I'm writing this xep because I'd like someone to implement this feature" or "I'm submitting this xep because I'd like to start work on a prototype soon". All feels very cart before the horse

  86. theTedd

    Or "here is my idea for what I intend to do and how I intend to do it - does anyone have ideas/opinions?"

  87. moparisthebest

    > And that's why implementations are required for advancement, but just documenting an idea doesn't need 100% completeness sure, and just documenting an idea doesn't need submitted as a XEP

  88. moparisthebest

    > I'm always weirded out by statements like "I'm writing this xep because I'd like someone to implement this feature" or "I'm submitting this xep because I'd like to start work on a prototype soon". All feels very cart before the horse :1000:

  89. moparisthebest

    > Or "here is my idea for what I intend to do and how I intend to do it - does anyone have ideas/opinions?" yep, perfectly reasonable to do outside of submitting a XEP

  90. mathieui

    moparisthebest, you can have an idea that you’d like to implement at some point, write a protoxep to jauge interest, iterate a bit, and have an experimental XEP with no implementation with plans for it

  91. mathieui

    and if the experimental XEP is not perfect (never is), you iterate, but I fail to see why that would be a problem

  92. theTedd

    I think the difference here is really just the acceptance threshold for Experimental

  93. singpolyma

    It's just a weird backwards way to do things

  94. Kev

    > > Or "here is my idea for what I intend to do and how I intend to do it - does anyone have ideas/opinions?" > > yep, perfectly reasonable to do outside of submitting a XEP To be fair, this is partially why I’ve got some stuff up at https://github.com/swift/protoxeps , but it’s not really compatible with the way the XSF thinks its IPR works.

  95. snit

    i wonder if XEP-0143 should be updated to reflect expectations (or lack thereof) on whether protoxeps and experimental xeps should have implementations. when working on my own protoxep, it wasn't exactly obvious to me whether i should already have one before submission, whether i should wait until its accepted, or whether the xsf doesn't actually care one way or the other

  96. singpolyma

    The XSF process does not care. Council members may have opinions

  97. singpolyma

    A prototype will never hurt you and it will certainly help in many cases

  98. snit

    then imo it should explicitly say that, just so its absolutely clear to newcomers

  99. Kev

    Well, Council members may have opinions, but they’ll follow the XSF process, which is to not require it. :)

  100. moparisthebest

    XSF process demands council to judge if a XEP is implementable though, obviously that's easier if an implementation exists

  101. singpolyma

    indeed. And any member can veto any new xep for any reason. though of course if they do it for unpopular reasons they won't get reelected I'm sure

  102. Cynthia

    > indeed. And any member can veto any new xep for any reason. though of course if they do it for unpopular reasons they won't get reelected I'm sure XMPP election? :o

  103. dwd

    Cynthia, Council are elected by XSF members, if that's the peice you were missing. If you're in this room, you should probably consider applying to be a member.

  104. Cynthia

    now why would I?

  105. dwd

    Cynthia, A warm a fuzzy feeling of helping to manage the XSF?

  106. Cynthia

    I had a question

  107. Cynthia

    Should blocking messages and stuff be done on the client or servers

  108. Cynthia

    I'm working on this draft XEP where a user can block people based on relation (subscription status, or in a MUC context, affiliation)

  109. Cynthia

    I'm working on this draft XEP where a user can block people based on relation (subscription status, or in a MUC context, affiliation/role)

  110. moparisthebest

    both

  111. Cynthia

    Its really hard to write filters on clients like Gajim than it is to write them on Prosody

  112. dwd

    Blocking can be done on either, but it's more efficient to handle it on the servers.

  113. Cynthia

    I'm already having a headache with clients' codebases

  114. dwd

    Tell me about it. I don't want to look at mine.

  115. moparisthebest

    1:1 can be done by server or client, MUC can only be done by client

  116. Cynthia

    Yeah, MUC can be done by the client or MUC server

  117. dwd

    moparisthebest, I think MUC could sensibly be done on the server, though it might involve the server having to track MUCs much more than they do at present.

  118. moparisthebest

    more than the not at all they do now? yes :P

  119. Cynthia

    Clients aren't designed to filter messages before they're handled by the rest of the program, I've seen

  120. Cynthia

    And that would be a giant pain in the ass to work around

  121. moparisthebest

    but even then it falls apart with a future SCE encrypted muc

  122. moparisthebest

    clients can easily filter messages wherever they want

  123. Cynthia

    You know I meant codebase

  124. moparisthebest

    yes the thing that can be easily changed

  125. Cynthia

    I know why blocking command was done on server-side because it is dreadful trying to filter messages before the whole client receives it

  126. Cynthia

    > yes the thing that can be easily changed Heh, have you heard of code debt

  127. Cynthia

    A flaw can gather "interest", and therefore take much more effort to solve over time than if it was solved right away