XSF Discussion - 2022-06-09


  1. Guus

    Does MAM allow all MUC rooms (of a particular service) to be searched with one request?

  2. MattJ

    No

  3. MattJ

    Well, it doesn't explicitly not

  4. MattJ

    E.g. you could have a (virtual?) MAM archive on the MUC domain and query that

  5. MattJ

    But that's not something called out in the XEP, only querying.individual MUCs

  6. Guus

    One of the projects that I'm on has a requirement to be able to search for particular message text across rooms. I'm thinking that the approach with MAM on a service (rather than a room) could be used for that, but I'm wondering if me holding a hammer makes everything look like a nail.

  7. MattJ

    I'm not sure what would be more suitable... any alternative solution I can think of would look pretty much the same

  8. Guus

    Thanks. Good to know that I'm not overlooking something obvious. :)

  9. Ge0rG

    Checking the scope of the search regarding user permissions will be an interesting challenge

  10. MattJ

    Indeed

  11. MattJ

    Also those permissions may change over time, which changes the results, which isn't generally permitted for MAM queries

  12. Ge0rG

    Not even for searches?

  13. MattJ

    MAM doesn't know/care about searches - it's just another filter field

  14. MattJ

    (the internet delivers: https://opensourceconnections.com/blog/2019/05/29/falsehoods-programmers-believe-about-search/ )

  15. Zash

    Persistent storage of words was a mistake

  16. Guus

    this is why I'm only storing 1's and 0's.

  17. singpolyma

    If you only issue "fresh" mam queries it should be fine. But if you have an after key it may do weird things depending on what you want

  18. Ge0rG

    encrypt all relevant state into the after key.

  19. Zash

    tombstones?

  20. Ge0rG

    trombones!

  21. singpolyma

    Zash: tombstones doesn't help if a new room gets added

  22. singpolyma

    But yeah, having the list of rooms in the key could work

  23. Zash

    Maybe, just maybe, generic MAM might not be suitable for "search all the rooms"

  24. singpolyma

    For search you probably just don't need an after key though? I guess if there are many results one might use it as a pagination hack

  25. singpolyma

    Yeah. Back to the archive protocol it is ;)

  26. Zash

    Technology evolves in cycles?

  27. Ge0rG

    hash all the room names into a single hash, reject searches if the hash changed?

  28. singpolyma

    It's like the pubsub -> PEP -> add all pubsub features to PEP

  29. Zash

    hash all room state into some sort of chain of blocks?

  30. Zash

    OR we could rule all those problems to be "implementation details"

  31. Ge0rG

    most of XMPP is built on top of "implementation details"

  32. Zash

    implementation details all the way down

  33. Tobias

    On the topic of MAM, I can see how one would fetch the next 40 messages after a certain ID or time. But how would you get the previous 40 messages before a certain ID or time? Using the flipped pages feature?

  34. Zash

    `<before>a certain ID</before>`

  35. Holger

    Yeah that's just '59.

  36. MattJ

    Tobias, flipped pages doesn't change the results that are returned

  37. MattJ

    It just changes the order that the server sends you the results (which is either the most critical or useless feature, depending on whom you ask)

  38. Tobias

    Right. But before and limiting results to 40 could also return the oldest 40 entries, not?

  39. MattJ

    Flipped pages does not do that, it just flips the page that gets returned

  40. Tobias

    Ok

  41. Holger

    Tobias, no, can't return the oldest 50.

  42. Holger

    Tobias, it returns the "page" immediately preceeding the specified ID.

  43. MattJ

    To get the oldest 50 messages, you just make a simple request with no filters except max=50

  44. Tobias

    Ok. Thanks

  45. Zash

    and `<before/>`

  46. Zash

    otherwise you get the _first_ 50 messages

  47. MattJ

    That's the same as the oldest 50 messages, which is what I thought the question was

  48. Zash

    argh

  49. Zash

    my brain

  50. MattJ

    I should update https://matthewwild.co.uk/uploads/mam-explorer/ for the latest version of the XEP

  51. Zash

    Verily

  52. Tobias

    Right. That also works if I use times via the end field and limiting the results with max?

  53. MattJ

    Yes

  54. Zash

    How do you `<before/>` in that?

  55. MattJ

    "Page before (id)"

  56. Zash

    No I mean literally `<before/>`

  57. Tobias

    I basically want page before date because server does not do before yet

  58. Zash

    Seems you can't set it to the magic empty element thing meaning "get me the last page"

  59. edhelas

    Maybe it's time to introduce ASCII schemas in XEPs

  60. MattJ

    Zash, ah, no

  61. Zash

    In fact, this thing doesn't behave correctly wrt before

  62. MattJ

    Indeed, I was hoping nobody would notice

  63. MattJ

    It needs some love

  64. edhelas

    Don't we all ?

  65. Ge0rG

    Yes please

  66. Guus

    and chocolate.

  67. Zash

    and coffee?

  68. Tobias

    So to limit my end query, i have to use start?

  69. Guus

    darn, that's a better one.

  70. MattJ

    Tobias, limit in what way?

  71. MattJ

    What are you trying to query for?

  72. Tobias

    the 30 messages before some time

  73. MattJ

    But the server doesn't support RSM?

  74. Tobias

    it supports RSM, but just no before/after

  75. Zash

    So it doesn't support RSM?

  76. MattJ

    Heh

  77. MattJ

    Is there much more to RSM? Just the max/count?

  78. MattJ

    You need https://xmpp.org/extensions/xep-0313.html#sect-idm45497150480480

  79. Tobias

    ah..ta...maybe that <before> will work

  80. Tobias was referring to the form fields

  81. MattJ

    Otherwise you'll get the first (oldest) matching results, but if you add <before/> you get the most recent

  82. MattJ

    You don't need the form fields

  83. Tobias

    ta

  84. Tobias

    will try that :)

  85. MattJ

    So the server does support <before>id</before>?

  86. MattJ

    If so, you should be paging using that instead, otherwise you may get inaccurate results

  87. MattJ

    e.g. if you had >50 messages with the same timestamp

  88. Zash

    https://cerdale.zash.se/s/uM73sc1wTK4eDxCB8TgpWEk4/mam-explorer.patch

  89. Zash

    MattJ, suggestion ^

  90. MattJ

    Applied locally, thanks

  91. MattJ

    Was just looking to see if there was any low-hanging fruit

  92. MattJ

    elseif query["before"] and (have_seen[query["before"]] or msg.id == query["before"]) then

  93. MattJ

    Looks like I (mistakenly?) did that on purpose

  94. MattJ

    Oh wait, selected = false, what

  95. Zash

    Hmmm... ```html <input id="mam-page-param-id" list="mam-ids"> <datalist id="mam-ids"> <option>a</option> <option>b</option> etc... </datalist> ```

  96. Zash

    inb4 accidentally implements MAM querying in CSS selectors

  97. Zash

    Does '59 spell out that only one of `<after>` and `<before>` is allowed at the same time?

  98. MattJ

    No, unfortunately

  99. Zash

    And mam-explorer allows it! Unacceptable!

  100. MattJ

    :)

  101. Tobias

    So is using the after form field the same as using the after field in the <set> node of RSM in the query?

  102. MattJ

    Generally, yes. My advice is to ignore the form fields (which are only in the latest MAM version). Most of the time you don't need them, and you should just use RSM for paging.

  103. MattJ

    The form fields are meant for when you need to select a range of messages between two ids

  104. MattJ

    Which some clients need for particular sync strategies

  105. Zash

    Meaning the before-id and after-id fields?

  106. MattJ

    Yes

  107. Zash

    (as opposed to the whole form)

  108. MattJ

    In case anyone cares, https://matthewwild.co.uk/uploads/mam-explorer/ is now more correct in its results (thanks to some help from Zash)

  109. arc

    Question is, will we have a board meeting today?

  110. MattJ

    So many possible witty responses, but I'll stick to: "Hopefully"

  111. MattJ

    I just saw your email, and saying we haven't had one for a couple of weeks is an understatement I think. Not sure when the last meeting was, but it's been a while I think.

  112. arc

    Yea.

  113. arc

    Well hopefully we can at least get quorum this morning because right now..

  114. arc

    And yet, it fails to move.

  115. Zash

    who else is board? ralphm ?

  116. arc

    We haven't seen him in weeks

  117. jcbrand

    I though we agreed we'll communicate via email

  118. Ge0rG

    what't the best way to add work to the Board's agenda?

  119. jcbrand

    Email the board list

  120. MattJ

    No, that's not a good way, mail from non-members gets stuck in a queue

  121. MattJ

    Ge0rG: what's the work?

  122. Ge0rG

    MattJ: I'd like to get going an analysis of the EU's new Digital Markets Act and Digital Services Act, and what they mean for XMPP service operators

  123. moparisthebest

    Isn't that the "XMPP servers are illegal" law?

  124. singpolyma

    Only if they're big ;)

  125. Zash

    So we're all required by law to run Snikket ?

  126. singpolyma

    Only people trapped in the EU I think

  127. arc

    jcbrand: wasn't an agreement, just a proposal. It's never been discussed, and I think this is a fairly clear reason why we shouldn't

  128. jcbrand

    What is a fairly clear reason?

  129. jcbrand

    > No, that's not a good way, mail from non-members gets stuck in a queue Ge0rG is a member and we have received other email from a member recently that was discussed. I think it's better than this chat.

  130. MattJ

    Sorry, I mean a member of the mailing list, not a member of the XSF

  131. jcbrand

    But we received an email from someone not on the board, we're they a board member before?

  132. MattJ

    For historical reasons, board@ is a private list (if we could go back in time, it would probably be more open, and we would have a board-private@ for private discussions)

  133. MattJ

    It's current board members + council chair (+ Peter?)

  134. MattJ

    It's also possible that the mail you're thinking of was manually approved

  135. MattJ

    But that queue is not routinely checked, I think Peter just does it now and again

  136. MattJ

    The official contact address for the XSF is info@

  137. jcbrand

    Ok, can we direct people to that email address in order to contact the board?

  138. MattJ

    Sure, it goes to Ralph, me and Peter, and we can bounce it to board@ if needed (a lot of noise goes there)

  139. moparisthebest

    I'm not sure the EU law only bans "big" XMPP servers, it's "users" right? and if you have federation enabled, technically every XMPP account with federation could be counted as a "user" ?

  140. MattJ

    "technically" / "could"

  141. moparisthebest

    so I think you have to assume it bans XMPP, unless you are willing to go to court over it

  142. Zash

    Non-lawyers speculating much?

  143. MattJ

    The law isn't technical, and nobody is going to consider XMPP as a single entity with N(all users across all servers) users

  144. MattJ

    moparisthebest, why do you think it "bans XMPP"?

  145. moparisthebest

    this is the one that requires any service provider to scan all messages and report anything bad to the govt right? the "mandatory scanning+reporting" law?

  146. MattJ

    No, that's something different

  147. MattJ

    and that definitely doesn't ban XMPP

  148. MattJ

    It doesn't ban anything, and nobody really has to do anything by default. To get things started, they have to issue a specific provider with a "detection order", and that's when you have to comply with their scanning requirements.

  149. moparisthebest

    seems to me like it does but who knows, only someone willing to take it to court I assume

  150. singpolyma

    > so I think you have to assume it bans XMPP, unless you are willing to go to court over it Usually laws work the opposite of that :) assume you're fine until a judge rules on a similar enough situation

  151. moparisthebest

    only if you are willing to risk being the one being ruled on

  152. Zash

    I'm just going to assume that the EU makes things difficult for US megacorporations and carry on with my life.

  153. singpolyma

    You risk being rules on for some law you didn't know about or didn't understand just by existing

  154. singpolyma

    Being afraid of hypothetical legal situations is far too paralyzing to be practical

  155. Zash

    That's what software patents is for

  156. Zash

    Not laws 😛

  157. MattJ

    They are indeed targeting the US megacorps, no doubt about that (especially trying to block Facebook Messenger E2EE)

  158. singpolyma

    Zash: well, EU is also well known to making laws to kill community projects, like GDPR, but those are known situations not hypotheticals like this

  159. MattJ

    Doesn't mean they'll never extend it beyond that (once they have the tool, they'll use it), but I don't think we need to make drama like "XMPP is banned" when it's nowhere near true

  160. Zash

    Community projects? Thought you had to be a company of a certain size for it to really apply.

  161. singpolyma

    Zash: not for the deletion requests stuff for example

  162. singpolyma

    Which has killed many small projects

  163. Zash

    I've heard of zero such events.

  164. singpolyma

    Small search crawlers, the entire OpenPGP keyserver presence in Europe, etc

  165. moparisthebest

    I agree they think they are narrowly targetting the US megacorps but in practice are just dragnet affecting everything

  166. moparisthebest

    I mean to them XMPP as a concept doesn't even exist

  167. Alex

    its meeting time, lets start in 2 minutes

  168. Zash

    That time of the quarter again

  169. Alex bangs the gavel

  170. Alex

    here is our Agenda for today: https://wiki.xmpp.org/web/Meeting-Minutes-2022-06-09

  171. Alex

    1) Call for Quorum

  172. Alex

    as you can see 35 members voted via proxy, so we have a quorum

  173. Alex

    2) Items Subject to a Vote

  174. Alex

    New and Returning members., you can see the appliction page here: https://wiki.xmpp.org/web/Membership_Applications_Q2_2022

  175. Alex

    3) Opportunity for XSF Members to Vote in the Meeting

  176. Alex

    anyone here who was not voted yet and wants to do so now? Memberbot is still online for accepting your votes

  177. Alex

    looks like nobody wants to vote in the meeting. Then I will shutdown the bot and start working on the results

  178. Alex

    4) Announcement of Voting Results

  179. Zash

    🥁️

  180. Alex

    when you reload the page you can see the results here: https://wiki.xmpp.org/web/Meeting-Minutes-2022-06-09#Announcement_of_Voting_Results

  181. Alex

    all reappliers are accepted. congrats to everyone

  182. Zash

    Congrats to all

  183. Alex

    5) Any Other Business?

  184. Alex

    looks like there is none

  185. Alex

    6) Formal Adjournment

  186. Alex

    I motion that we adjourn

  187. Guus

    2nd

  188. Alex bangs the gavel

  189. Alex

    thanks everone

  190. Guus

    As always, thank you Alex!

  191. Alex

    I will work on sending out the minute sand updating websites and lists on the minutes over the weekend. Because I am travelling tomorrow, so be patient ;-)

  192. Zash

    Thanks Alex!

  193. moparisthebest

    thanks Alex !

  194. jcbrand

    Danke Alex

  195. MattJ

    Thanks Alex, and congratulations all :)

  196. MattJ

    > but in practice are just dragnet affecting everything FWIW this is completely the opposite of what they are actually doing. As I said, they have to serve a specific organization with a specific order, that's not what a dragnet or blanket ban is.

  197. MattJ

    An XMPP operator could totally be subject to such an order, but XMPP as a protocol cannot be

  198. MattJ

    and this is all unrelated to the Digital Markets Act, which was the original question from Ge0rG. Which I'm also pretty sure has no impact on any current community XMPP operator (so I'm not sure if there was a specific concern that I might have missed?)

  199. moparisthebest

    we might be talking about different bills

  200. moparisthebest

    this one https://european-pirateparty.eu/parliament-approves-chatcontrol/

  201. MattJ

    That's the one

  202. MattJ

    Understand that certain people who oppose the regulations also put a certain spin on it. Practically nothing you read on the topic is neutral. Even the legislation is hand-wavy in parts (e.g. to avoid everyone cooking up their own tech, and/or using that as an excuse, they are going to provide the scanning tech to anyone who is subject to a detection order - but this tech hasn't been put together yet)

  203. msavoritias

    Yep same as the myth of GDPR killing small businesses for some reason

  204. Ge0rG

    Last time I heard about those regulations it was mentioned that there is no small operator exemption

  205. MattJ

    Yeah, PGP keyservers were dead long before GDPR, that much I'm certain of :)

  206. MattJ

    Ge0rG, DMA or "Chat Control"?

  207. Ge0rG

    MattJ: not sure if DMA or DSA

  208. Ge0rG

    Chat Control is another horror

  209. MattJ

    I haven't done as much research into the DSA yet, I guess that's next on my list then

  210. Ge0rG

    It would be good to have some analysis and maybe at least a non authoritative statement on the blog

  211. Ge0rG

    Normally I'd volunteer for this kind of boring legal work, but I'm way too much overloaded

  212. Zash

    Can you volunteer someone else who's qualified?

  213. lovetox

    enterenter

  214. singpolyma

    > Yeah, PGP keyservers were dead long before GDPR, that much I'm certain of :) They're still not dead yet, but most of the small ones in EU are. Plenty out here I still use regularly

  215. Zash

    I thought the system got flooded by garbage signatures and collapsed on itself

  216. lovetox

    .

  217. Zash

    Reject key servers, embrace DANE! https://datatracker.ietf.org/doc/html/rfc7929

  218. MattJ

    Yeah, gpg has not pulled signatures from keyservers by default for a long time due to flooding issues

  219. Zash grumbles because DANE isn't enabled by default, instead it goes for webkeysomething

  220. MattJ

    WKD is actually usable for most people, unlike DANE :)

  221. Zash

    but WEB 😭️

  222. Zash

    also, defaults

  223. MattJ

    DANE-over-HTTPS

  224. Zash

    only acceptable if it's HTTPS-over-XMPP

  225. singpolyma

    Pretty sure DANE works fine for basically everyone? Browsers don't support it, but that's not relevant in this context

  226. MattJ

    Tell that to anyone with a .im domain

  227. singpolyma

    Oh, you mean from that side. Sure. Don't buy those ;)

  228. singpolyma

    Most TLDs are fine

  229. Zash

    snikket.chat in dnskey when? 😉

  230. singpolyma

    MattJ tells me soon ish ;)