-
Guus
MattJ do you know of any server that does something with RAA data? I'd be interested in seeing if things interop nicely.
-
MattJ
Guus: I have some prototype implementations somewhere, I can put something up for testing
-
MattJ
Possibly later today, or more likely tomorrow
-
Guus
No rush. I'm on holiday, with limited time away from kids, pools and other attention drains. This message is coming to you from aside a pool. š
-
jonasā
envy
-
pep.
A pool of messages?
-
Guus
https://igniterealtime.org/httpfileupload/N1Qn6FdnZyfA2kHnZR9wComU6VE/P5NU7IhlQ_adqtWdorL_-A.jpg
-
Guus
Nope.
-
moparisthebest
Nice!
-
Link Mauve
larma, weāre going to xHain, will you be there tonight?
-
larma
Link Mauve, I didn't plan to, but I can make it happen!
-
MSavoritias (fae,ve)
Why dont we use RDF databases instead of SQL for messaging apps? because with corrections and everything it seems that it is basically a graph full of interconnected things is it not?
š«£ļø 1 -
singpolyma
I mean, there's no rules. Prosody uses by default a text file
-
singpolyma
If you have a good RDF db in your stack, why not?
-
MSavoritias (fae,ve)
so it could be done. hmm. because i am thinking it could help a lot with relations.
-
MSavoritias (fae,ve)
especially regarding replies, reactions, edits and everything
-
MSavoritias (fae,ve)
and the other day a dev in here was saying about problems with ordering the messages. In the sense of getting a reaction or a deletion after you got the message and put in the row already. and then the ordering didnt make sense anymore
-
MSavoritias (fae,ve)
and there is a library for guile. nice
-
lovetox
corrections is the only thing that is a bit graph like
-
lovetox
nothing else comes to mind, its just always a message with some metadata
-
MSavoritias (fae,ve)
isnt it basically anything that attaches or modifies an existing message?
-
lovetox
and even with corrections, even if you do 20 corrections, they point all to the same message, so dont know what you call that, a graph with depth 1
-
lovetox
i dont know what the theoretical definition of a graph is
-
lovetox
if its one thing points to another thing, and thats already a graph, then yeah i guess many things are a graph
-
lovetox
but i doubt that where already where you want to use things optimized for graphs✎ -
lovetox
but i doubt thats the point where you want to use things optimized for graphs ✏
-
MSavoritias (fae,ve)
with reactions its not one. you attach each participant that reacted to a message.
-
lovetox
no, you attach N reactions to one message
-
lovetox
its a classic 1:N relation
-
MSavoritias (fae,ve)
yeah but dont you say who reacted?
-
lovetox
yes but this is metadata of the reaction, so you have a 1:1 releation to a JID table
-
lovetox
or even no relation and simply store the jid
-
lovetox
but anyway, i have no clue about graphs or databases for that, so maybe ignore me :D
-
MSavoritias (fae,ve)
heh. im doing all this reading because you said the other day that storage is important. So you already helped ^^
-
lovetox
at least until now i didnt have the feeling im limited by the relational database
-
MSavoritias (fae,ve)
fair
-
lovetox
but now you go me interested, seems one benefit of a graph database is, that you can add properties to the nodes without costly schema changes and migrations
-
MSavoritias (fae,ve)
yeah i read that too
-
lovetox
and thats what at least happens from time to time with a new XEP, the message gets new metadata, so i need to add a new foreign key to a new table that holds this new information
-
MSavoritias (fae,ve)
and also there is no ordering problem to my understanding. like the problem you said the other day when you get a correction to message after having the message already in the db
-
MSavoritias (fae,ve)
also > Also they handle internationalised content better than typical SQL databases - e.g. you can have multiple values in different languages.
-
MSavoritias (fae,ve)
and the more advanced searching and connection finding could have some interesting usages
-
moparisthebest
> also >> Also they handle internationalised content better than typical SQL databases - e.g. you can have multiple values in different languages. Or you could just design your SQL schema to do this ↺
-
moparisthebest
Sounds like it's just a higher level tool, which comes with trade-offs, I'll be interested if you find it to be a better fit or not
-
lovetox
but it seems graph databases focus on anlayzing relations, its particular for use cases, like fraud detection, where you can find patterns in the relations and analyze them
-
lovetox
i dont see where we need something like that, in messaging its just always, when i load the data, give me everything related to this message
-
MSavoritias (fae,ve)
agreed for messaging it may be overkill
-
moparisthebest
An SQL database often has a "graph of relations" too
-
MSavoritias (fae,ve)
i plan to make something else personally
-
Zash
Relational databases are relational???? :)
-
moparisthebest
Well not prosody's schema š¤£
-
edhelas
I worked on some relational DB at my job that were not that relationals
-
edhelas
But that's another topic
-
MSavoritias (fae,ve)
i was vaccuming a lot and cleaning fake tables
-
lovetox
did anyone implement the feature, that a user can send messages even when offline, and the client sends it later delayed?
-
moparisthebest
Conversations has that
-
MSavoritias (fae,ve)
Does it? Sometimes it just errors for me and wants me to try again after disconnect
-
lovetox
im a bit scared of it, seems like a thing where you walk in with a naive implementation and then you fix a year long bugs
-
MSavoritias (fae,ve)
It does have waiting though. So maybe just a bug somehow
-
MSavoritias (fae,ve)
> im a bit scared of it, seems like a thing where you walk in with a naive implementation and then you fix a year long bugs Why would it have year long bugs? ↺
-
lovetox
dont know, its a feeling
-
lovetox
seems like there are many things that can happen, you learn after implementing it
-
lovetox
i guess single chat is easier, there is not really anything that can reject your messages, everything is just one way
-
lovetox
but for MUC i think its not that easy, you send stuff out, and later learn if it really happend that way you want it
-
lovetox
but maybe i should limit this to messages
-
lovetox
stuff like reactions, message moderation, banning people etc, stuff that needs IQ flow, its tricky to display this later if it worked, or not
-
MSavoritias (fae,ve)
Hmm. I wonder how true it is. Because i planning to make an offline first client prepared for low and intermittent connectivity.
-
singpolyma
oh yeah, don't do it for iq flow stuff at least not in general case
-
lovetox
singpolyma, and how does this work, you send out the xml but store it in the database at the same time?
-
lovetox
or do you serialize some other object to the database?
-
lovetox
or only store it in memory? and when the application crashes its gone?
-
singpolyma
With Conversations (and forks) outgoing message is stored in database before being sent over xmpp
-
lovetox
do you use sm acks to notice that someone successful was sent?✎ -
lovetox
do you use sm acks to notice that somethin successful was sent? ✏
-
singpolyma
I'm not completely sure, but that makes sense
-
lovetox
like how would you otherwise know that a message in single chat was successfully sent?
-
lovetox
in MUC its easier, as you will see a reflection
-
singpolyma
Right. I haven't been in that part of the code but I expect it's sm related
-
moparisthebest
https://www.ndtv.com/world-news/elon-musk-says-blocking-feature-to-be-removed-from-twitter-how-it-can-impact-the-platform-4310829
-
moparisthebest
> According to Google PlayStore, apps that contain or feature user-generated content (UGC), which include platforms like Twitter, Facebook, and Threads, must implement robust, effective, and ongoing UGC moderation. Google describes UGC as the content which is contributed to an app by users and which is accessible by āat least a subset of the app's usersā.
-
moparisthebest
So... All XMPP and email apps on Google play are in violation of this and Google just hasn't noticed yet?
-
singpolyma
I think UGC means public-ish and/or promoted by the app. So yes Conversations got hit by this for their public MUC search
-
singpolyma
web browsers get a pass probably because you have to know the url? so if you have to know the muc jid it's probably ok also
-
moparisthebest
I'm not so sure they see it that way
-
moparisthebest
Conversations directs you to create an account on conversations.im etc
-
singpolyma
Yes, but when a reviewer looks at your app how will they find the unmoderated content?
-
moparisthebest
They won't, but a user can report it
-
singpolyma
I guess we'll find out if it comes to that
-
singpolyma
I am planing to maybe make a moderated / curated version of sjn partly because of this