-
eta
wait, hang on
-
eta
a user just has one big MAM archive??
-
eta
it isn't per conversation??
-
jonas’
no
-
jonas’
just one archive, but you can filter
-
eta
oh yeah, filtering
-
eta
right
-
eta
was reviewing the Dino MAM code and it just pulls /everything/ from The Archive
-
eta
which is an interesting way of doing things
-
flow
eta, i'd assume most implementations do that
-
eta
hmm, reasonable
-
flow
just like mail clients sync their state of the imap server✎ -
pep.
Poezio doesn't, and tbh I'm not sure it will ever :/
-
eta
pep., does it only do MAM when you hit page-up
-
flow
just like mail clients sync their state with their imap server ✏
-
pep.
On join also
-
jonas’
eta, does it handle gaps though?
-
Zash
And that's why, the first time you start those clients, it produces one bazillion notifications
-
eta
Zash, yeah, that dino behaviour is very stupid
-
pep.
The smart thing would really just be to fetch when you open a tab, or to have something (that Inbox is.. somewhat?) that says "You have to fetch MAM here, here, here and here"
-
jonas’
pep., also the annoying thing
-
pep.
Yeah well..
-
eta
pep., I thought conversations did the fetch-when-you-open-the-tab thing
-
jonas’
no, conversations does a full sync when it comes online
-
jonas’
I painfully notice that every single time
-
eta
oh
-
eta
disappointing
-
Zash
Sync 😞
-
jonas’
eta, why?
-
jonas’
it is the right thing to do
-
jonas’
otherwise you’re going to miss/delay messages
-
eta
jonas’, I can't do things like open an old conversation and have it load scrollback
-
jonas’
and users don’t like that
-
jonas’
eta, huh?
-
jonas’
it has the history locally
-
pep.
jonas’, I don't think it's the right thing to do as I said above :x
-
pep.
Or let's agree there are multiple rights
-
jonas’
pep., so you prefer to require manual user interaction to get notifications for messages which wree sent while you were out of network coverage?
-
pep.
"to have something (that Inbox is.. somewhat?) that says "You have to fetch MAM here, here, here and here""
-
pep.
You can hint the user that there are unread messages in other tabs and that they can go look at them
-
eta
jonas’, it doesn't, because I installed conversations after the time that this conversation happened
-
lovetox
to do it per contact, is unnecessary complex, you have to reliaze that there are almost no mam messages if you start your client
-
jonas’
eta, ah, AFAIK it’ll try to fetch stuff when you scroll beyond the local archive
-
lovetox
on a normal connection you can download 1000 messages in about 3 seconds
-
pep.
lovetox, and fetching all the world is painfully slow and annoying for most people
-
lovetox
there will never be 1000 messages waiting if you start your client
-
jonas’
lovetox, tell that to my conversations.
-
jonas’
and the gazillion of MUCs
-
lovetox
of course MUCs are only fetched if you join the muc
-
eta
^
-
eta
the thing is, right
-
eta
I don't actually care about fetching the world
-
pep.
But you do join MUCs at startup :)
-
pep.
bookmarks etc.
-
pep.
poof 80 MUCs opened, MAM fetching, uuuuuuughhhh
-
eta
like you can totally do that in the background on a low-priority task or something
-
jonas’
pep., I am not
-
pep.
that
-
jonas’
I am in like five MUCs in C
-
eta
the thing which annoys me is when it makes the unread counts go to like 10000 on everything
-
eta
or generates notifications
-
eta
really, what we probably need is a XEP for read state sync
-
pep.
eta, agreed
-
jonas’
eta, agreed
-
pep.
Something that allows me to set the state in the past also plz
-
eta
it doesn't even have to be that hard
-
eta
an extra field in bookmarks + an extra field in roster
-
lovetox
there will not be many messages in MUCs
-
lovetox
you need a concept of a threshold
-
eta
lovetox, tell that to my high-velocity IRC channels
-
pep.
eta, so you only want to sync state in MUC? Not 1:1?
-
lovetox
up to you sync
-
lovetox
that means a public muc has a threshold of 1
-
eta
pep., and roster
-
lovetox
so you only sync one day
-
pep.
roster? :/
-
lovetox
a private muc has never many messages, so you sync everything
-
pep.
lovetox, that's your usage of private MUCs maybe
-
pep.
Not saying that I have, but I don't want to rule this out
-
lovetox
thats why you can change the thresold even for private mucs, if you have that one muc where 1000 messages a day are posted
-
pep.
If Snikket decides that their version of private MUCs will only have few messages and that's how they do MAM, then fine. But I don't want XMPP to decide that for me
-
lovetox
the one thing i learned is, you cant do this right without user interaction
-
lovetox
its impossible
-
eta
we need MUC categories!
-
lovetox
there is no magic algorythm that lets you do this in all circumstances right
-
eta
that way you can have a "low priority public MUCs" category
-
lovetox
you can simply choose the threshold per muc
-
pep.
eta, you don't exactly need to formalize that. Especially since they'll be different for different design guidelines
-
eta
true
-
eta
hmm, what would be the ideal primitive for read state sync though
-
eta
pubsub??
-
pep.
PEP probably
-
lovetox
and how do you store that
-
lovetox
on every received muc message update pep?
-
lovetox
and if multiple devices receive it
-
lovetox
all update it at the same time
-
lovetox
sounds not really nice
-
Zash
lovetox: > there will never be 1000 messages waiting if you start your client You haven't experienced infinitely persistent MAM, have you? It's super fun when your archive goes back to the beginning of MAM itself.
-
lovetox
does not mean you need to request it
-
Zash
But clients do this
-
Zash
And treats every message as new
-
lovetox
but i talked about your user archive
-
lovetox
not about mucs
-
lovetox
mucs you need to manage per muc
-
Zash
So was I (personal archive)
-
lovetox
in a user archive will not wait that many messages, that you have to manage it per contact
-
pep.
Well, start a new Dino profile and observe
-
pep.
Or maybe that got better lately? I don't remember
-
eta
nope
-
lovetox
thats why i sync only 7 days at first start
-
lovetox
if the user wants all his history he can click a button that downloads it once
-
lovetox
with a progress dialog
-
pep.
Yeah I'm not entirely fond of having arbitrary numbers like this. 7 days can still be empty and all of the chat happens on the 8th day or sth
-
lovetox
then hit the button :)
-
pep.
Weird UX :/
-
lovetox
not all, its easy to understand, and easy to implement
-
edhelas
Zash for the moment I never cleared MAM history on movim.eu :D
-
lovetox
its like whatsapp
-
lovetox
you set up a new device, and it will ask you if you want to sync your messages from google drive or something
-
Zash
I got the impression that Conversations fetches stuff per contact when you scroll up a bit
-
pep.
lovetox, who says whatsapp is good :p
-
eta
lovetox: the gajim history sync dialog is good, tbh
-
pep.
I haven't seen it in action, but from what I understand here, I'd rather fetch a set number of messages than a set number of days, at least
-
pep.
In poezio atm I try to have 2 pages of buffer at all times, so that I can display them instantly and only fetch previous to that
-
Zash
pep. here's an inbox prototype thing that's waiting for a client to prototype something against: https://modules.prosody.im/mod_map.html
-
pep.
k, I might have a look at some point
-
pep.
Slightly similar to Inbox right?
-
pep.
How do you count?
-
Zash
How how?
-
pep.
What's the count you're returning? What does it mean
-
Zash
Number of messages
-
pep.
what messages
-
Zash
All messages
-
pep.
All messages in the archive? All unfetched messages? All unfetched on this device?
-
pep.
All unread messages? (but fetched nonetheless)
-
Zash
It's essentially a MAM query that doesn't return the results, only a summary
-
Zash
It predates the whole notion of per-payload stuff that might be what people refer to as inbox
-
pep.
k
-
pep.
So it's all of the archive?
-
pep.
If I wanted to use this I'd mostly use @jid and <end/> I guess..
-
pep.
Maybe
-
Zash
Supposed to get you everything you need to show a "recent conversations" list
-
eta
so on top of this we just need a "recent mentions / notifications" thing
-
pep.
Zash, only for 1:1?
-
Zash
Yes
-
Zash
It's a MAM query that returns a summary. Not a thing that fixes MUC
-
pep.
:P
-
Zash
Best I can think for unaltered MUC (with MAM) is to join with history(maxstanzas=1), which gets you some of the same data
-
eta
reminds me to finish my protoXEP
-
eta
not that finishing the XEP will change anything though >_<
-
lovetox
i wonder how many people use Gajim
-
lovetox
i just checked chocolatey, we dont maintain the package there, but it has 7500 downloads Oo
-
lovetox
and thats a nerdy package manager for windows
-
pep.
Same person downloading it over and over again?
-
pep.
Or a single company downloading it for all their users? :P
-
lovetox
hm no its 7500 since existence, the last version has 300
-
lovetox
thats a bit more expected
-
Zash
lovetox: https://qa.debian.org/popcon.php?package=gajim might be of interest as well
-
lovetox
damn
-
lovetox
only rank 99700
-
lovetox
need to improve that
-
Link Mauve
“10:58:00 lovetox> there will never be 1000 messages waiting if you start your client”, tell that to my Dino, which I open maybe once a month, and is unresponsive for dozens of minutes while it fetches all of my pending messages.
-
Link Mauve
SQLite being the bottleneck here.
-
Link Mauve
Not XMPP or my ADSL connection.
-
lovetox
really? sounds weird
-
lovetox
did you ever google sqlite insert stats
-
lovetox
or you have a really slow harddisk
-
lovetox
https://stackoverflow.com/questions/1711631/improve-insert-per-second-performance-of-sqlite
-
Link Mauve
I have a fast SSD, it’s limited by sqlite on a single thread.
-
lovetox
there even the first try not optimized at all, insert 23000 records into a database
-
lovetox
per second
-
Link Mauve
lovetox, https://github.com/dino/dino/issues/853
-
Ge0rG
Link Mauve: sqlite is not the bottleneck, it's just incorrectly used.
-
lovetox
lets agree on, the bottleneck is probably how they use sqlite
-
lovetox
:)
-
Ge0rG
so far, 99% of problems with sqlite were at layer 8. It's one of the most robust pieces of software out there.
-
Link Mauve
I didn’t find anything obvious last time I looked at Dino’s usage, maybe you’ll have more luck.
-
Link Mauve
I’m… not very good at SQLy things.
-
Link Mauve
Zash, lovetox, Pidgin just recently got installed more times than Empathy in Debian! https://qa.debian.org/popcon-graph.php?packages=gajim%2C+dino-im%2C+pidgin%2C+empathy&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1
-
lovetox
never used empathy, seems it was pretty popular
-
Link Mauve
It was preinstalled with GNOME.
-
Link Mauve
But I’m sure most people just ignored it and installed Skype or whatever popular thing there was back then.
-
lovetox
ah
-
Ge0rG
Link Mauve: there are four indexes and four triggers on the `message` table. But maybe it's still accessing something index-less? dunno
-
eta
Link Mauve: put your sqlite in WAL mode
-
eta
will make Dino a lot faster