69 karma · joined April 10, 2024
I've been writing the Teams plugin for Pidgin for the past few years and its great to be able to give users the kind of features or privacy options that you'd never get from official clients, while learning lots of fun ways (ab)using web tech to solve problems.
Like how in Teams, it does a "reverse webhook" to push presence notifications to a web client acting as a server over a websocket
(disclaimer, I help out a little with that plugin, amongst others for Pidgin-
The other workaround to get a speed boost was the user to uninstall and reinstall the app (and then wait for all the data to download again) but that didn't fly because the users would delete before they'd synced off all their data and then data would go missing.
This was all despite having VACUUM running whenever the app started.
Whether it was bad flash or no, we still had to try resolve it as the client wouldn't buy new hardware until we could prove that we had the knowledge to make the problem go away first :/
We had some old Android tablets using our app 8 hours a day for 3-4 years. They'd complain if locking errors and slowness but every time they'd copy their data to send to us, we couldn't replicate, even on the same hardware. It wasn't until we bought one user a new device and got them to send us the old one that we could check it out. We thought maybe the ssd had worn out over the few years of continual use but installing a dev copy of our app was super fast. In the end what did work was to "defrag" the db file by copying it to a new location, deleting the original, then moving it back to the same name. Boom, no more "unable to open database" errors, no more slow downs.
I tried this on Jellyfin dbs a few months ago after running it for years and then suddenly running into performance issues, it made a big difference there too.
You can potentially use http2 push to send down files from the server early but I've seen the browser drop the files if they're unneeded for that page load.
Yes, there are other hacks you could do to make the browser download the resources early, like invisible images or preload audio files, but if you're going down that path why not put in a service worker instead and have it download in the background.
https://www.wipo.int/wipolex/en/treaties/parties/remarks/NZ/... says it wasn't until 6 years later that it joined. But maybe a different treaty?
The frontend/backend split of Pidgin/libpurple makes this tricky, and we still don't have voice and video in a Windows release (my main dev OS these days)
They organised an in-person demo at our office after they filled in the online forms for their "multi-million dollar drinks distribution company", right in our target zone of customer type and size. So we had a few salespeople present to give a swish demo and hopefully win them over.
Turned out to be a 15 year old doing door to door sales of his home made ginger beer. He told us our (half the price of the nearest competitor) product was too expensive for what it was and that we would never succeed in business like he would.
Kudos to our sales guys though: After the initial shock and eye rolling, they treated them like the large business they claimed to be and just used the time to practice their demo/sales techniques.
Although I'm the plugin's developer, so I may be a little biased :D