-
Guus
Does MAM allow all MUC rooms (of a particular service) to be searched with one request?
-
MattJ
No
-
MattJ
Well, it doesn't explicitly not
-
MattJ
E.g. you could have a (virtual?) MAM archive on the MUC domain and query that
-
MattJ
But that's not something called out in the XEP, only querying.individual MUCs
-
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.
-
MattJ
I'm not sure what would be more suitable... any alternative solution I can think of would look pretty much the same
-
Guus
Thanks. Good to know that I'm not overlooking something obvious. :)
-
Ge0rG
Checking the scope of the search regarding user permissions will be an interesting challenge
-
MattJ
Indeed
-
MattJ
Also those permissions may change over time, which changes the results, which isn't generally permitted for MAM queries
-
Ge0rG
Not even for searches?
-
MattJ
MAM doesn't know/care about searches - it's just another filter field
-
MattJ
(the internet delivers: https://opensourceconnections.com/blog/2019/05/29/falsehoods-programmers-believe-about-search/ )
-
Zash
Persistent storage of words was a mistake
-
Guus
this is why I'm only storing 1's and 0's.
-
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
-
Ge0rG
encrypt all relevant state into the after key.
-
Zash
tombstones?
-
Ge0rG
trombones!
-
singpolyma
Zash: tombstones doesn't help if a new room gets added
-
singpolyma
But yeah, having the list of rooms in the key could work
-
Zash
Maybe, just maybe, generic MAM might not be suitable for "search all the rooms"
-
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
-
singpolyma
Yeah. Back to the archive protocol it is ;)
-
Zash
Technology evolves in cycles?
-
Ge0rG
hash all the room names into a single hash, reject searches if the hash changed?
-
singpolyma
It's like the pubsub -> PEP -> add all pubsub features to PEP
-
Zash
hash all room state into some sort of chain of blocks?
-
Zash
OR we could rule all those problems to be "implementation details"
-
Ge0rG
most of XMPP is built on top of "implementation details"
-
Zash
implementation details all the way down
-
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?
-
Zash
`<before>a certain ID</before>`
-
Holger
Yeah that's just '59.
-
MattJ
Tobias, flipped pages doesn't change the results that are returned
-
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)
-
Tobias
Right. But before and limiting results to 40 could also return the oldest 40 entries, not?
-
MattJ
Flipped pages does not do that, it just flips the page that gets returned
-
Tobias
Ok
-
Holger
Tobias, no, can't return the oldest 50.
-
Holger
Tobias, it returns the "page" immediately preceeding the specified ID.
-
MattJ
To get the oldest 50 messages, you just make a simple request with no filters except max=50
-
Tobias
Ok. Thanks
-
Zash
and `<before/>`
-
Zash
otherwise you get the _first_ 50 messages
-
MattJ
That's the same as the oldest 50 messages, which is what I thought the question was
-
Zash
argh
-
Zash
my brain
-
MattJ
I should update https://matthewwild.co.uk/uploads/mam-explorer/ for the latest version of the XEP
-
Zash
Verily
-
Tobias
Right. That also works if I use times via the end field and limiting the results with max?
-
MattJ
Yes
-
Zash
How do you `<before/>` in that?
-
MattJ
"Page before (id)"
-
Zash
No I mean literally `<before/>`
-
Tobias
I basically want page before date because server does not do before yet
-
Zash
Seems you can't set it to the magic empty element thing meaning "get me the last page"
-
edhelas
Maybe it's time to introduce ASCII schemas in XEPs
-
MattJ
Zash, ah, no
-
Zash
In fact, this thing doesn't behave correctly wrt before
-
MattJ
Indeed, I was hoping nobody would notice
-
MattJ
It needs some love
-
edhelas
Don't we all ?
-
Ge0rG
Yes please
-
Guus
and chocolate.
-
Zash
and coffee?
-
Tobias
So to limit my end query, i have to use start?
-
Guus
darn, that's a better one.
-
MattJ
Tobias, limit in what way?
-
MattJ
What are you trying to query for?
-
Tobias
the 30 messages before some time
-
MattJ
But the server doesn't support RSM?
-
Tobias
it supports RSM, but just no before/after
-
Zash
So it doesn't support RSM?
-
MattJ
Heh
-
MattJ
Is there much more to RSM? Just the max/count?
-
MattJ
You need https://xmpp.org/extensions/xep-0313.html#sect-idm45497150480480
-
Tobias
ah..ta...maybe that <before> will work
- Tobias was referring to the form fields
-
MattJ
Otherwise you'll get the first (oldest) matching results, but if you add <before/> you get the most recent
-
MattJ
You don't need the form fields
-
Tobias
ta
-
Tobias
will try that :)
-
MattJ
So the server does support <before>id</before>?
-
MattJ
If so, you should be paging using that instead, otherwise you may get inaccurate results
-
MattJ
e.g. if you had >50 messages with the same timestamp
-
Zash
https://cerdale.zash.se/s/uM73sc1wTK4eDxCB8TgpWEk4/mam-explorer.patch
-
Zash
MattJ, suggestion ^
-
MattJ
Applied locally, thanks
-
MattJ
Was just looking to see if there was any low-hanging fruit
-
MattJ
elseif query["before"] and (have_seen[query["before"]] or msg.id == query["before"]) then
-
MattJ
Looks like I (mistakenly?) did that on purpose
-
MattJ
Oh wait, selected = false, what
-
Zash
Hmmm... ```html <input id="mam-page-param-id" list="mam-ids"> <datalist id="mam-ids"> <option>a</option> <option>b</option> etc... </datalist> ```
-
Zash
inb4 accidentally implements MAM querying in CSS selectors
-
Zash
Does '59 spell out that only one of `<after>` and `<before>` is allowed at the same time?
-
MattJ
No, unfortunately
-
Zash
And mam-explorer allows it! Unacceptable!
-
MattJ
:)
-
Tobias
So is using the after form field the same as using the after field in the <set> node of RSM in the query?
-
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.
-
MattJ
The form fields are meant for when you need to select a range of messages between two ids
-
MattJ
Which some clients need for particular sync strategies
-
Zash
Meaning the before-id and after-id fields?
-
MattJ
Yes
-
Zash
(as opposed to the whole form)
-
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)
-
arc
Question is, will we have a board meeting today?
-
MattJ
So many possible witty responses, but I'll stick to: "Hopefully"
-
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.
-
arc
Yea.
-
arc
Well hopefully we can at least get quorum this morning because right now..
-
arc
And yet, it fails to move.
-
Zash
who else is board? ralphm ?
-
arc
We haven't seen him in weeks
-
jcbrand
I though we agreed we'll communicate via email
-
Ge0rG
what't the best way to add work to the Board's agenda?
-
jcbrand
Email the board list
-
MattJ
No, that's not a good way, mail from non-members gets stuck in a queue
-
MattJ
Ge0rG: what's the work?
-
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
-
moparisthebest
Isn't that the "XMPP servers are illegal" law?
-
singpolyma
Only if they're big ;)
-
Zash
So we're all required by law to run Snikket ?
-
singpolyma
Only people trapped in the EU I think
-
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
-
jcbrand
What is a fairly clear reason?
-
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.
-
MattJ
Sorry, I mean a member of the mailing list, not a member of the XSF
-
jcbrand
But we received an email from someone not on the board, we're they a board member before?
-
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)
-
MattJ
It's current board members + council chair (+ Peter?)
-
MattJ
It's also possible that the mail you're thinking of was manually approved
-
MattJ
But that queue is not routinely checked, I think Peter just does it now and again
-
MattJ
The official contact address for the XSF is info@
-
jcbrand
Ok, can we direct people to that email address in order to contact the board?
-
MattJ
Sure, it goes to Ralph, me and Peter, and we can bounce it to board@ if needed (a lot of noise goes there)
-
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" ?
-
MattJ
"technically" / "could"
-
moparisthebest
so I think you have to assume it bans XMPP, unless you are willing to go to court over it
-
Zash
Non-lawyers speculating much?
-
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
-
MattJ
moparisthebest, why do you think it "bans XMPP"?
-
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?
-
MattJ
No, that's something different
-
MattJ
and that definitely doesn't ban XMPP
-
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.
-
moparisthebest
seems to me like it does but who knows, only someone willing to take it to court I assume
-
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
-
moparisthebest
only if you are willing to risk being the one being ruled on
-
Zash
I'm just going to assume that the EU makes things difficult for US megacorporations and carry on with my life.
-
singpolyma
You risk being rules on for some law you didn't know about or didn't understand just by existing
-
singpolyma
Being afraid of hypothetical legal situations is far too paralyzing to be practical
-
Zash
That's what software patents is for
-
Zash
Not laws 😛
-
MattJ
They are indeed targeting the US megacorps, no doubt about that (especially trying to block Facebook Messenger E2EE)
-
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
-
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
-
Zash
Community projects? Thought you had to be a company of a certain size for it to really apply.
-
singpolyma
Zash: not for the deletion requests stuff for example
-
singpolyma
Which has killed many small projects
-
Zash
I've heard of zero such events.
-
singpolyma
Small search crawlers, the entire OpenPGP keyserver presence in Europe, etc
-
moparisthebest
I agree they think they are narrowly targetting the US megacorps but in practice are just dragnet affecting everything
-
moparisthebest
I mean to them XMPP as a concept doesn't even exist
-
Alex
its meeting time, lets start in 2 minutes
-
Zash
That time of the quarter again
- Alex bangs the gavel
-
Alex
here is our Agenda for today: https://wiki.xmpp.org/web/Meeting-Minutes-2022-06-09
-
Alex
1) Call for Quorum
-
Alex
as you can see 35 members voted via proxy, so we have a quorum
-
Alex
2) Items Subject to a Vote
-
Alex
New and Returning members., you can see the appliction page here: https://wiki.xmpp.org/web/Membership_Applications_Q2_2022
-
Alex
3) Opportunity for XSF Members to Vote in the Meeting
-
Alex
anyone here who was not voted yet and wants to do so now? Memberbot is still online for accepting your votes
-
Alex
looks like nobody wants to vote in the meeting. Then I will shutdown the bot and start working on the results
-
Alex
4) Announcement of Voting Results
-
Zash
🥁️
-
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
-
Alex
all reappliers are accepted. congrats to everyone
-
Zash
Congrats to all
-
Alex
5) Any Other Business?
-
Alex
looks like there is none
-
Alex
6) Formal Adjournment
-
Alex
I motion that we adjourn
-
Guus
2nd
- Alex bangs the gavel
-
Alex
thanks everone
-
Guus
As always, thank you Alex!
-
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 ;-)
-
Zash
Thanks Alex!
-
moparisthebest
thanks Alex !
-
jcbrand
Danke Alex
-
MattJ
Thanks Alex, and congratulations all :)
-
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.
-
MattJ
An XMPP operator could totally be subject to such an order, but XMPP as a protocol cannot be
-
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?)
-
moparisthebest
we might be talking about different bills
-
moparisthebest
this one https://european-pirateparty.eu/parliament-approves-chatcontrol/
-
MattJ
That's the one
-
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)
-
msavoritias
Yep same as the myth of GDPR killing small businesses for some reason
-
Ge0rG
Last time I heard about those regulations it was mentioned that there is no small operator exemption
-
MattJ
Yeah, PGP keyservers were dead long before GDPR, that much I'm certain of :)
-
MattJ
Ge0rG, DMA or "Chat Control"?
-
Ge0rG
MattJ: not sure if DMA or DSA
-
Ge0rG
Chat Control is another horror
-
MattJ
I haven't done as much research into the DSA yet, I guess that's next on my list then
-
Ge0rG
It would be good to have some analysis and maybe at least a non authoritative statement on the blog
-
Ge0rG
Normally I'd volunteer for this kind of boring legal work, but I'm way too much overloaded
-
Zash
Can you volunteer someone else who's qualified?
-
lovetox
enterenter✎ -
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
-
Zash
I thought the system got flooded by garbage signatures and collapsed on itself
-
lovetox
. ✏
-
Zash
Reject key servers, embrace DANE! https://datatracker.ietf.org/doc/html/rfc7929
-
MattJ
Yeah, gpg has not pulled signatures from keyservers by default for a long time due to flooding issues
- Zash grumbles because DANE isn't enabled by default, instead it goes for webkeysomething
-
MattJ
WKD is actually usable for most people, unlike DANE :)
-
Zash
but WEB 😭️
-
Zash
also, defaults
-
MattJ
DANE-over-HTTPS
-
Zash
only acceptable if it's HTTPS-over-XMPP
-
singpolyma
Pretty sure DANE works fine for basically everyone? Browsers don't support it, but that's not relevant in this context
-
MattJ
Tell that to anyone with a .im domain
-
singpolyma
Oh, you mean from that side. Sure. Don't buy those ;)
-
singpolyma
Most TLDs are fine
-
Zash
snikket.chat in dnskey when? 😉
-
singpolyma
MattJ tells me soon ish ;)