jdev - 2026-03-31


  1. snit

    out of curiosity, has anyone tried doing mail over xmpp? i always liked the slower and more methodical approach communication over email often has, but the technologies its based on are a genuinely awful experience; xmpp seems like it'd be a perfect replacement, all things considered

    👍 2
  2. singpolyma

    I've wanted to for more than a decade but never did build anything haha

  3. singpolyma

    I used to think a proxy to imap was possible for the old archive protocol, but with mam that's not really an option. But a bespoke client that feels like email but is actually xmpp could happen

  4. Sergey Ponomarev

    I like the idea to have mail-like conversation when it's expected slow conversation. Threads may solve it somehow. Maybe that Forum XEP can be used.

  5. Cynthia

    I wonder if you could have subscription requests for MUC

  6. Cynthia

    I wonder if you could have subscription requests for MUCs

  7. Cynthia

    Would allow offline MUC users to exist

  8. Cynthia

    If a user enters a MUC, they can subscribe to it. But if they leave, they can delete it

  9. singpolyma

    How do you mean? Offline MUC users to exist

  10. singpolyma

    How do you mean? Offline MUC users do exist

  11. Cynthia

    A offline user that still appears as a participant in a MUC

  12. Cynthia

    Instead of leaving when they disconnect

  13. Cynthia

    You can just guess that they'll come back, but you never really know

  14. Cynthia

    You can guess that they'll come back, but you never really know

  15. snit

    when i get that far in my project i just intend to cache recent users for some amount of time and if they don't join again then it's probably reasonable to assume they aren't coming back or that a user doesn't really care to see a hundred dead accounts in the memberlist

  16. Cynthia

    That still isn't a good solution

  17. Cynthia

    Considering how long a client may run for, the cache will disappear before it even "expires"

  18. Cynthia

    Considering how long a client may run for and where the cache is stored in, the cache will disappear before it even "expires"

  19. Cynthia

    (unless you're talking about a server)

  20. snit

    talking about a client. it'd basically keep a given user for like a week or some other user-configurable value, and then uncache them if they haven't rejoined since then. could also keep them forever if the user wants

  21. singpolyma

    > A offline user that still appears as a participant in a MUC Well they should not show as a participant. But they do show in the members list.

  22. Cynthia

    Where would it keep the cache in?

  23. snit

    iirc there's server modules to cache presence in mucs via mam as well, so it could rely on that whenever the client is offline and wants to know who joined/left, albeit only in mucs on servers which have that module

  24. singpolyma

    > when i get that far in my project i just intend to cache recent users for some amount of time and if they don't join again then it's probably reasonable to assume they aren't coming back or that a user doesn't really care to see a hundred dead accounts in the memberlist Why would you do this when we already know at a protocol level who the members are?

  25. Cynthia

    >> A offline user that still appears as a participant in a MUC > > Well they should not show as a participant. But they do show in the members list. Considering that the member status is optional, if the MUC doesn't hand them out like candy, it'll be like IRC

  26. snit

    > Where would it keep the cache in? idk same place as i'd store messages if the user only keeps messages around for a week

  27. Cynthia

    In some cases, the member role is specifically reserved for trusted users (like in anti-spam modules)

  28. snit

    > Why would you do this when we already know at a protocol level who the members are? because a lot of clients simply never remove affiliations even if the user never intends to join again, so it'd result in a lot of dead users which IMO just really clutters the member list. i want to see who's offline, but i also want the list of offline users to be people i should expect to ever show up again

  29. Cynthia

    It isn't fair to really assume that members are all there is

  30. snit

    hang around any large matrix room and you'll notice the vast majority of accounts are dead users who haven't talked in months or years

  31. Cynthia

    snit: The problem is that matrix's clients don't categorize users in the participant list

  32. Cynthia

    Thus making the list look more cluttered

  33. lovetox

    i have a mystery, i tested a new http lib, and for some reason only on one server when i upload something, and download it again, it adds bytes to the front of the file which corresponds to ascii chars "1e02 LF CR"

  34. lovetox

    wtf is this

  35. Cynthia

    (I really mean Matrix's Official Client, element)

  36. lovetox

    and it cuts the same amount of bytes from the end

  37. Cynthia

    > i have a mystery, i tested a new http lib, and for some reason only on one server when i upload something, and download it again, it adds bytes to the front of the file which corresponds to ascii chars "1e02 LF CR" What library is this

  38. lovetox

    its not the lib

  39. lovetox

    same upload/download works fine on another http server

  40. Cynthia

    The server?

  41. Cynthia

    It could be a garbage implementation, Maybe it's reading back data as a string

  42. lovetox

    yeah or something in the http spec, comprasion, headers what do i know what could cause this

  43. snit

    > snit: The problem is that matrix's clients don't categorize users in the participant list sure but the same thing happens on discord, where all the offline members are relegated to the very bottom of the list. i'd personally prefer to not even see a user who hasn't even come online in the past three months lol

  44. lovetox

    yeah or something in the http spec, compression, headers what do i know what could cause this

  45. Cynthia

    And then adding newlines to "make it look better"

  46. Cynthia

    >> snit: The problem is that matrix's clients don't categorize users in the participant list > sure but the same thing happens on discord, where all the offline members are relegated to the very bottom of the list. i'd personally prefer to not even see a user who hasn't even come online in the past three months lol You can.. close the offline category

  47. Cynthia

    It would actually make referencing/pinging offline users easier instead of your client acting it doesn't remember if the user manages to go offline in the window you were writing your message in

  48. snit

    > You can.. close the offline category 1. how?? 2. wouldn't that just hide all offline users, when what i wanted was only to hide the ones that'll probably never show up again?

  49. snit

    > iirc there's server modules to cache presence in mucs via mam as well, so it could rely on that whenever the client is offline and wants to know who joined/left, albeit only in mucs on servers which have that module i thought it was a prosody community module but apparently its just `muc_log_presences` right in `mod_muc_mam` so yeah just turn it on and my idea will probably work fine even if you ever go offline

  50. singpolyma

    >> Why would you do this when we already know at a protocol level who the members are? > because a lot of clients simply never remove affiliations even if the user never intends to join again, so it'd result in a lot of dead users which IMO just really clutters the member list. i want to see who's offline, but i also want the list of offline users to be people i should expect to ever show up again That seems the same as every system? If you never leave a discord you show in the list forever also

  51. singpolyma

    I guess having some sort of "members show haven't been online recently get hidden behind a toggle" UI or similar might be sensible

  52. singpolyma

    I guess having some sort of "members who haven't been online recently get hidden behind a toggle" UI or similar might be sensible

  53. luca

    (Bigger discord servers will stop showing offline users in the member list FWIW)

  54. snit

    > That seems the same as every system? If you never leave a discord you show in the list forever also yeah i think its an issue in other places, too. that's why i like that most clients on xmpp don't even bother to show people who aren't actively joined to the room

  55. snit

    > (Bigger discord servers will stop showing offline users in the member list FWIW) oh that's good to know. biggest server i'm in is about seven hundred members, and that still shows the six hundred offline members (around five hundred of which are perpetually offline)

  56. singpolyma

    > (Bigger discord servers will stop showing offline users in the member list FWIW) Makes sense. I would do the same with a public MUC

  57. snit

    how stupid would it be for a feature to just not bother showing anyone who hasn't spoken in N amount of time, regardless of presence (excluding moderators and higher, of course)

    🤩 1
  58. snit

    or like showing them in a collapsable menu which defaults to closed might be better

  59. moparisthebest

    > i have a mystery, i tested a new http lib, and for some reason only on one server when i upload something, and download it again, it adds bytes to the front of the file which corresponds to ascii chars "1e02 LF CR" lovetox: what about the old http lib and/or curl? do they behave here? curious if the problem is on upload (so even if you download with eg curl the extra bytes are still there) or only download

  60. singpolyma

    Could be very sensible, depending on goals

  61. moparisthebest

    was also thinking BOM but doesn't match any wikipedia knows about https://en.wikipedia.org/wiki/Byte_order_mark#Byte-order_marks_by_encoding

  62. lovetox

    it looks like its transformed on the server, as uploading the file to another server does work

  63. lovetox

    and the upload with the old lib works fine

  64. lovetox

    but download fails in all libs

  65. moparisthebest

    that's wild, so something this new lib is sending on upload is causing it...

  66. moparisthebest

    but also that server has some very strange bug ? Know what http upload impl it's using?

  67. lovetox

    its a very up to date prosody

  68. moparisthebest

    which of the 80 http upload impls though 🙃

  69. MattJ

    lovetox, if it's directly to Prosody, I'm very interested in getting the raw bytes transferred

  70. Cynthia

    singpolyma: Also if you could subscribe to MUCs, it would very much simplify filters and stuff without having to track MUC joins

  71. lovetox

    yes, im trying to further debug it

  72. Cynthia

    On the server-side I mean

  73. singpolyma

    > singpolyma: Also if you could subscribe to MUCs, it would very much simplify filters and stuff without having to track MUC joins How?

  74. Cynthia

    You could just rely on a user's subscription list

  75. singpolyma

    For what? I'm not sure I understand what one would use this proposal for

  76. Cynthia

    If you wanna filter out strangers in the server, you have to track MUC joins

  77. Cynthia

    Because otherwise, MUC PMs will not go through

  78. singpolyma

    sure. That's easy to do

  79. Cynthia

    Doing that for every session and also handling edge cases with broken MUCs

  80. Cynthia

    Doing that for every session and also handling edge cases with broken MUCs doesn't seem pretty easy

  81. singpolyma

    The server has to do it anyway for directed presence rules in general

  82. theTedd

    > out of curiosity, has anyone tried doing mail over xmpp? i always liked the slower and more methodical approach communication over email often has, but the technologies its based on are a genuinely awful experience; xmpp seems like it'd be a perfect replacement, all things considered Message type=normal was originally used for this; modern clients pretend it's all type=chat because "nobody cares about that"

  83. kousu

    > Message type=normal was originally used for this; modern clients pretend it's all type=chat because "nobody cares about that" I always wondered what that was for!!

  84. snit

    reading the spec the other day i was shocked to discover type=headline

  85. snit

    actually a lot of functionality in the base RFCs that seems cool but i never actually see used to the extent it could've been

  86. snit

    > Message type=normal was originally used for this; modern clients pretend it's all type=chat because "nobody cares about that" in a client that differentiates these, what would it even look like? do they have different semantics?

  87. theTedd

    > i have a mystery, i tested a new http lib, and for some reason only on one server when i upload something, and download it again, it adds bytes to the front of the file which corresponds to ascii chars "1e02 LF CR" 1e02 = 1*10^2 = 100 (HTTP status code: Continue) "LF CR" describe ASCII characters 10 and 13, though the newline sequence should be 2 bytes: CR then LF, not their text representations So, something is taking the response line and then reparsing it, and turning that into a string

  88. Cynthia

    I didn't know you could use XMPP on a calculator

  89. Cynthia

    Who uses 1e02 to denote HTTP 100

  90. lovetox

    theTedd, very nice

  91. theTedd

    > in a client that differentiates these, what would it even look like? do they have different semantics? It was from a different style of interface: you'd send a message and the window would hide again until you receive a reply (or open to send a new message), but there wouldn't be a chat history showing - each message stood on its own

  92. lovetox

    it is CRLF i wrote it wrong

  93. lovetox

    so this could indeed be some library bug with this http status code

  94. snit

    > It was from a different style of interface: you'd send a message and the window would hide again until you receive a reply (or open to send a new message), but there wouldn't be a chat history showing - each message stood on its own oh neat, are there any remaining examples of this kind of thing in action?

  95. lovetox

    or my client sends the 100 and prosody takes it as part of the file

  96. lovetox

    thats actually more likely because its in the file afterwards thats on the server

  97. lovetox

    MattJ, any idea if prosody can handle HTTP Status code 100?

  98. theTedd

    > oh neat, are there any remaining examples of this kind of thing in action? Old versions of Gajim supported it. Look up the old ICQ interface to see it in action, or NetWare message send

  99. snit

    thank you will definitely check it out :D

  100. theTedd

    100 should be a response from the server, to tell you to send the request body

  101. lovetox

    right, but how does it end up then in the file ..

  102. lovetox

    weird stuff

  103. theTedd

    Yeah, it's getting mixed in somehow

  104. lovetox

    i think i need to enable some deep http logging level, and look at the whole interaction

  105. lovetox

    but on another day, have a good night, and thanks for pointing in the right direction

  106. theTedd

    Good luck