this post was submitted on 12 Jun 2023
50 points (98.1% liked)

Programming.dev Meta

2463 readers
13 users here now

Welcome to the Programming.Dev meta community!

This is a community for discussing things about programming.dev itself. Things like announcements, site help posts, site questions, etc. are all welcome here.

Links

Credits

founded 1 year ago
MODERATORS
 

Hi all,

Thank you for joining me here! It's great to see that we have a community that wants to grow in such a new and exciting manner.

As it is, I thought it would be a lot easier to do this by myself than it has been. So I'm asking for some help!

I have several things I need assistance with:

  • setting up and moderating a chat community, for those times when users are having issues with the website. I think it's up to the community what software we use, but I would probably prefer Discord. Since this is all federation though I completely understand if others want to use something like Zulip or Matrix! So let's just use what everyone wants. If you have an opinion please post below.
  • database stuff. I'm absolutely terrible at database stuff, and that is not an exaggeration. If anyone is willing to help it would be much appreciated. Currently I have a need to set up pgbouncer, or we should modify the lemmy source to allow for setting up a bouncer. I also want to set up read replicas so that we can distribute the load a bit more evenly. As it currently is, the site was simply set up with the lemmy-ansible script, so everything is running on a single box ๐Ÿ˜ฌ. If you know Rust and want to help modify the Lemmy source code for this, or you are a Database Admin and want to help, I'd very much appreciate it.
  • instance admins. I cannot be online constantly and I do have a day job. I'm getting messages and applications to join the instance along with needing to set up new communities, create and update rules, moderate, etc. I cannot handle this all alone.
  • I also need some general help.
    • email admin
    • migration of server to larger VPS (will have to bring the entire site down for this, unless someone wants to help set up a load balancer, a brand new box, and have some sort of migration strategy.)

If you want to help out on the server side of things I will want to know your real life persona, but for instance admins, chat mods, etc. I would just like to see some sort of comment history from you elsewhere.

And thank you once again, for helping create an inclusive community.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 2 points 1 year ago (2 children)

Any of the xmpp communities open? I've tried matrix for chat and it's kinda janky, I wouldn't mind trying an xmpp server.

[โ€“] msage 3 points 1 year ago (2 children)

What issues did you have with Matrix? I've been using my own instance for almost 6 years, mostly chat, and it's working great.

[โ€“] u_tamtam 3 points 1 year ago (1 children)

Not OP, but parent poster. I did embrace Matrix in the early days (early 2015), with open arms, when I was looking for a self-hostable instant messaging solution for family & friends, and when it advertised to be "learning from previous protocols' mistakes" and "being modern, with web stuff, unlike XMPP" (a large part of the Matrix communication back then was dismissive of the alternatives, sometimes using flawed arguments like this one. You can check archive.org for the details and how it backfired with the incendiary or plain ignorant points being retracted over time).

Either way, one thing to note about Matrix is that it came out in a crowded world with well-established (open and commercial) players, but with the ambition to be the next venture capital-infused unicorn. In this position you must demonstrate some truly unique ability, so Matrix' reason to exist became to tackle a very difficult problem that nobody had: that of distributing chatrooms across many homeservers (instead of adding redundancy at the server level, like every major protocol had done before, resting on decades of computer-science know-how in the area of distributed systems). This led the Matrix protocol and its implementations to be truly insane, and a wild roller-coaster of inefficient and buggy implementations hasty deployed, fuelled by bold promises and hyperbolic claims to keep the funding going on.

To this day, the Matrix protocol has seen countless reboots, the canonical server implementation is in fact 3 distinct projects each trying to shove into a faster programming language more of the inefficiencies of the computing model, and if it hadn't broken backwards compatibility so many times, you could perhaps still find discussions in the open between myself and Matthew along the lines of: (in 2015)

  • Me: this is insane
  • Matthew: we can make it work. We are very close. I found a new way to fan-out the data and it will be ready in couple months. It will solve everything!
  • Me: but you don't need this. Nobody needs this. Just focus on the front-end/UX and build it on top of something that works and is lightweight. Revisit that later if you must.
  • Matthew: we can make it work. Couple months!

Fast forward in 2023. You would think that few times "couple months" have elapsed, and that Matrix is stable by now. But here he is, you guessed it, Matthew, telling to a crowded audience at fosdem how he's super very close to make it work for real this time: https://www.youtube.com/watch?v=eUPJ9zFV5IE If you read between the lines, Matrix 2 is a proxy/bouncer for Matrix, to get your client running server-side, which is an admission that the flaws and inefficiencies of the protocol that have been crippling clients won't ever be resolved, and if you happen to be on the hosting side, good luck with your hosting bills.

Don't get me wrong, I'm not against Matrix per-se. It's an open project and they do legit cool stuff there. We should just not encourage people get burnt so much by it. Admins should expect synapse to be hell, scale like crap in any real-world usage, and cost them a lot of time, effort, money and stress. Users should expect things to be slow, awkward and subtly broken for a while, and should be made aware of the heavy toll they incur to whoever is hosting them.

I'm also saying that better alternatives and better designed/more resilient/more privacy-respecting protocols do exist. Being myself a happy XMPP user and admin, I got to read many horror stories from admins of medium/large Matrix instances who just couldn't keep-up, had to close, and re-opened on this side. Their experience is day and night.

[โ€“] msage 1 points 1 year ago (1 children)

Thank you for the extensive write up, really appreciated.

I'll be honest - I didn't study the inner workings of Matrix. I had my own webchat, with like 6 users, wanted a mobile app, and found then Riot.

I still have less than 10 active users, so it keeps chugging along without issues.

There are other issues I noticed, like completely dead Patreon. Dendrite still in beta. Jitsi integration breakdown.

Which makes me sad, XMPP is very old, so I wanted to root for a newcomer. I still do, but my hope is much smaller.

[โ€“] u_tamtam 2 points 1 year ago (1 children)

Wanting to root for a newcomer is what had my enthusiasm for Matrix in the first place, giving XMPP a second look/chance is what made me realize we don't need something new, as in "if it ain't broken, don't fix it!".

XMPP supports billions of devices, every day, in all kind of applications and use-cases. Every android device get their push notifications from GCM/firebase, which uses XMPP under the hood, just like every nintendo switch. Facebook Messenger, Google Chat and WhatsApp all started off from ejabberd. Many large games have their chat system rely on XMPP/ejabberd and support millions of simultaneous users. XMPP isn't old, it keeps getting better, more versatile and used in unsuspected places :)

[โ€“] msage 1 points 1 year ago

So I guess eventually I will end up on XMPP. Good to know, thanks.

[โ€“] [email protected] 2 points 1 year ago (1 children)

It was super slow to join a chat. Also, scroll back history was always buggy, it would tell me I wasn't allowed to see chats from the day before when I've been logged in for days. Room search is slow. I didn't like having to do security keys when I logged in to clients on different computers. The encryption stuff never seemed worth it when 99% of the time in in a public room. Death by a thousand cuts is how it felt.

I did find it more responsive when I used the main matrix network, but I wanted to be on am offshoot and federate on, it always felt slow and painful.

[โ€“] msage 2 points 1 year ago

Wait, did you join some super big rooms from your instance?

I rememember when I first tried Synapse I joined the Welcome room on matrix.org and my server was unresponsive for 2 days until it synced all the events (6 years ago).

I do almost all conversations on my homeserver now and have no issues, apart from the E2E hassle.

[โ€“] u_tamtam 2 points 1 year ago

You can have a look here: https://providers.xmpp.net/

...to pick a provider from the A or B bucket.

Then, client-side, my recommendation would be to go with gajim as a power user, conversations/cheogram on Android (both listed on froid), siskin/beagle on iOS/mac, and have a look at movim.eu for something web based.