etawas reviewing the Dino MAM code and it just pulls /everything/ from The Archive
etawhich is an interesting way of doing things
floweta, i'd assume most implementations do that
etahmm, reasonable
flowjust like mail clients sync their state of the imap server
pep.Poezio doesn't, and tbh I'm not sure it will ever :/
etapep., does it only do MAM when you hit page-up
flowjust like mail clients sync their state with their imap server
sonnyhas left
pep.On join also
jonas’eta, does it handle gaps though?
ZashAnd that's why, the first time you start those clients, it produces one bazillion notifications
Guushas joined
sonnyhas joined
etaZash, 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..
etapep., 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
etaoh
etadisappointing
ZashSync 😞
jonas’eta, why?
jonas’it is the right thing to do
jonas’otherwise you’re going to miss/delay messages
etajonas’, 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
etajonas’, it doesn't, because I installed conversations after the time that this conversation happened
lovetoxto 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
lovetoxon 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
lovetoxthere will never be 1000 messages waiting if you start your client
jonas’lovetox, tell that to my conversations.
jonas’and the gazillion of MUCs
lovetoxof course MUCs are only fetched if you join the muc
eta^
etathe thing is, right
etaI 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
etalike 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
etathe thing which annoys me is when it makes the unread counts go to like 10000 on everything
etaor generates notifications
etareally, 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
etait doesn't even have to be that hard
etaan extra field in bookmarks + an extra field in roster
lovetoxthere will not be many messages in MUCs
lovetoxyou need a concept of a threshold
etalovetox, tell that to my high-velocity IRC channels
pep.eta, so you only want to sync state in MUC? Not 1:1?
lovetoxup to you sync
lovetoxthat means a public muc has a threshold of 1
etapep., and roster
lovetoxso you only sync one day
pep.roster? :/
lovetoxa 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
lovetoxthats 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
lovetoxthe one thing i learned is, you cant do this right without user interaction
lovetoxits impossible
etawe need MUC categories!
lovetoxthere is no magic algorythm that lets you do this in all circumstances right
etathat way you can have a "low priority public MUCs" category
lovetoxyou 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
etatrue
etahmm, what would be the ideal primitive for read state sync though
etapubsub??
pep.PEP probably
adiaholic_has joined
lovetoxand how do you store that
lovetoxon every received muc message update pep?
lovetoxand if multiple devices receive it
lovetoxall update it at the same time
Guushas left
lovetoxsounds not really nice
Zashlovetox:
> 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.
lovetoxdoes not mean you need to request it
ZashBut clients do this
ZashAnd treats every message as new
lovetoxbut i talked about your user archive
lovetoxnot about mucs
adiaholic_has left
lovetoxmucs you need to manage per muc
ZashSo was I (personal archive)
adiaholic_has joined
lovetoxin 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
etanope
lovetoxthats why i sync only 7 days at first start
lovetoxif the user wants all his history he can click a button that downloads it once
lovetoxwith a progress dialog
adiaholic_has left
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
lovetoxthen hit the button :)
pep.Weird UX :/
lovetoxnot all, its easy to understand, and easy to implement
edhelasZash for the moment I never cleared MAM history on movim.eu :D
lovetoxits like whatsapp
lovetoxyou set up a new device, and it will ask you if you want to sync your messages from google drive or something
ZashI got the impression that Conversations fetches stuff per contact when you scroll up a bit
pep.lovetox, who says whatsapp is good :p
etalovetox: 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
Guushas joined
Zashpep. 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?
ZashHow how?
pep.What's the count you're returning? What does it mean
ZashNumber of messages
pep.what messages
ZashAll messages
pep.All messages in the archive? All unfetched messages? All unfetched on this device?
ZashIt's essentially a MAM query that doesn't return the results, only a summary
ZashIt 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
adiaholic_has joined
ZashSupposed to get you everything you need to show a "recent conversations" list
etaso on top of this we just need a "recent mentions / notifications" thing
pep.Zash, only for 1:1?
ZashYes
adiaholic_has left
adiaholic_has joined
ZashIt's a MAM query that returns a summary. Not a thing that fixes MUC
pep.:P
ZashBest I can think for unaltered MUC (with MAM) is to join with history(maxstanzas=1), which gets you some of the same data
etareminds me to finish my protoXEP
etanot that finishing the XEP will change anything though >_<
adiaholic_has left
adiaholic_has joined
adiaholic_has left
adiaholic_has joined
adiaholic_has left
adiaholic_has joined
sonnyhas left
sonnyhas joined
rionhas left
rionhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
adiaholic_has left
adiaholic_has joined
lovetoxi wonder how many people use Gajim
lovetoxi just checked chocolatey, we dont maintain the package there, but it has 7500 downloads Oo
lovetoxand thats a nerdy package manager for windows
Guushas left
Guushas joined
pep.Same person downloading it over and over again?
pep.Or a single company downloading it for all their users? :P
adiaholic_has left
lovetoxhm no its 7500 since existence, the last version has 300
lovetoxthats a bit more expected
folahas joined
folahas left
ralphmhas left
ralphmhas joined
adiaholic_has joined
adiaholic_has left
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
Zashlovetox: https://qa.debian.org/popcon.php?package=gajim might be of interest as well
adiaholic_has joined
lovetoxdamn
lovetoxonly rank 99700
lovetoxneed to improve that
sonnyhas left
Beherithas left
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 MauveI have a fast SSD, it’s limited by sqlite on a single thread.
lovetoxthere even the first try not optimized at all, insert 23000 records into a database
lovetoxper second
Link Mauvelovetox, https://github.com/dino/dino/issues/853
adiaholic_has joined
Ge0rGLink Mauve: sqlite is not the bottleneck, it's just incorrectly used.
lovetoxlets agree on, the bottleneck is probably how they use sqlite
lovetox:)
Ge0rGso far, 99% of problems with sqlite were at layer 8. It's one of the most robust pieces of software out there.
Link MauveI didn’t find anything obvious last time I looked at Dino’s usage, maybe you’ll have more luck.
Link MauveI’m… not very good at SQLy things.
Link MauveZash, 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
lovetoxnever used empathy, seems it was pretty popular
Link MauveIt was preinstalled with GNOME.
Link MauveBut I’m sure most people just ignored it and installed Skype or whatever popular thing there was back then.
lovetoxah
Ge0rGLink Mauve: there are four indexes and four triggers on the `message` table. But maybe it's still accessing something index-less? dunno