Idiomdrottning’s homepage

This old post has since been rewritten and replaced.

Matrix’s unfinished ambitions

Update: Matrix apparently does work well in the following regard: Matrix can query people on Libera IRC and even join rooms started by people on Libera IRC. IDK why I didn’t get that to work before. Maybe because #bad. Also IDK how well that works for your own homeserver. Maybe pretty well. The peeps need to be registered on IRC and then Matrix becomes just another IRC client basically. A deluxe one.


I try to follow the rule of thumb that any FOSS release, no matter how unfinished or flaky, is a precious gift of someone’s time.

With that caveat in mind, a lot of Matrix’ features that I’d really wanna use (such as bridging with e-mail or XMPP, or an emacs or even libpurple-based client) are currently still WIP, insecure etc.

I’m gonna start by using the IRC bridge but as far as I can tell it’s not end to end—freenode’s server admins could be peeping as far as I understand it. At least I am TLSing into there.

Matrix replaces everything!

Again with the “precious gift”–caveat in mind, it does bug me a bit that it’s being presented simulatenously as this killer and obsoleter of XMPP, IRC etc, and as this complete kumbaya-superset/encompasser of them.

I use and rely on XMPP every day.

Matrix might become good in the distant future. And/or I’m gonna have to get my own hands dirty but that might have to remain on the “someday, maybe”–list for a pretty long time. Because lazy.

Encrypted… maybe?

Also, not that this isn’t a flaw that isn’t shared by e-mail, XMPP and IRC: it appears to be really, really easy to send an unencrypted message through Matrix without really knowing whether it got encrypted or not. The priority seems to be “hey we can talk to each other great do you hear me yeah it works!” vs only sending if you know it’s secure.

With great ambitions there must also come great vapor

It’s not automatically wrong (it might be wrong, it might be right, I dunno) of Matrix to be ambitious and to wanna be the space pen of typing to each other on the internet.

It’s just not done yet.

Update: Let’s dig in.

OK, so four routes forward.

Email

I love and favor email so that would be the best. Hooking up some sorta server side thing so that people on Matrix can chat with me and I receive it as email, and I can email back and they receive it as me chatting with them.

There are three email bridges.

They’re designed for matrix users to be able to talk to email-users from matrix. So if someone who loves to use Matrix is like “Huh, I really wanna talk to Sandra” they could install that and start emailing me from there, and it’ll be back & forth. On my end it’d be like any other email client. Jolly good!

But that doesn’t really solve my problem. I’m not a Matrix user who wants to contact email peeps. I’m an email user who wants to contact Matrix peeps. So those three bridge are out.

I get that I’d need to install and run the bridge and maybe even run a homeserver, and maybe configure it by logging in with a glossy webclient or whatever, but then I’d like to be able to interface with it via email from then on.

Someone tells me their matrix user name, I can translate that to an email address somehow and email them.

Someone tells me a room name, I can sign up for that as an email list (although I’d probably die of flood so that might be something I’d use more judiciously).

XMPP

So there is an official bridge project by the matrix team. matrix-bifröst. It can handle either libpurple, or its own implementation of xmpp.

It says:

This bridge is in very active development currently and intended mainly for experimentation and evaluation purposes.

This seems to be a serious project that might be the route forward. Most recent commits are from about a month ago.

The other route would be to use a Prosody module. To me this is very appealing idea because it seems like the least w amount of weird infrastructured I’d need to run.

But “XMPP users starting chats with Matrix users” is still marked as TODO so it’ll require a lot of work to get this working.

IRC

This seems to be a very mature and good bridge! There are a lot of middlemen (for example freenode’s server admins) that could be snooping. But one way around that could be to set up an irc server of my own.

Matrix client

So another more route is obviously to just use a Matrix client.

Which would make the whole let me count the ways pretty pointless. At least they admit that the bridging stuff is all alpha and beta. I’m not mad at them, just impatient I guess.

The most promising client I’ve found so far seems to be matrix-commander or the library it uses, matrix-nio.

It could be used alone or as something that could be wrapped with, piped into by, shell stuff or elisp.

One thing I really like about it is that it does seem to really try to encrypt as much as possible.

I’m being weird; the reason I didn’t wanna just use matrix-client.el was its issues with e2ee rooms. But that’s gonna be an issue with all bridges too. The best I could get is e2be—end-to-bridge encryption. In which case I need to really run my own bridge, and my own server (whether that’s IRC, XMPP, or email) in a place where I trust it and can TSL into it. I hope that I don’t need to be GPG-ing everything if I am TLS SMTP-ing to my own mail server and the messages being put into Matrix at that point. Similar reasoning for IRC or XMPP.

Update again

Arathon writes on HN:

To reiterate once again, the things which Matrix tries to do differently to XMPP include: Be a replicated conversation database for realtime conversations, more like usenet (NNTP) if anything than IRC or XMPP or SMTP (or, alternatively, an open standard alternative to Slack, which is also focused all around syncing conversation rather than passing messages).

This is a great point that it’s a different goal. Not having been too deep into the worlds of Slack and Discord I’m not sure I see the appeal.

All conversations are group conversations. There are no such thing as 1:1s; just a room with 2 people in it.

This isn’t really what I want.

I can see where I’m trying to square peg round hole this situation.

Meanwhile, we have spent a lot of time writing decent bridges to ensure that we do not fragment communication with chat systems - be they open or closed. For instance, right now, I see 41 people participating in Matrix HQ from XMPP, ~200 from IRC, ~40 from discord, ~20 from telegram, 5 from slack, and the rest (~3000, including idlers) from elsewhere in Matrix.

Right. I get that I’m being entitled, ungrateful, spoiled etc for being impatient with the current state of bridges. It’s getting there, and it’s difficult to get right.

Being so immersed in the retro minimalist world of Gemini lately, the maximalist mindset of Matrix is completely alien and opposite to that. That doesn’t necessarily mean one way is right and the other is wrong.

Update. Third update, I mean

OMG the IRC bridge looks great for a homeserver!♥

Update. №4.

I ended up really disappointed in the IRC bridge. It works for bridging specific rooms but it doesn’t do what I want.

Kensanata linked to this:

Right. Thanks for this.
I’ve decided to hold off on the decision to run a Matrix server. There are some people I love to talk to on there but I don’t need to self-host in order to talk to them.

I don’t like to rag on people’s projects, I’m just as likely to post WIP stuff and vaporware stuff. “Release early, release often” is a good thing.♥

There’s a lot of blood, sweat and tears poured into Matrix and I have sympathy for their efforts. I haven’t discounted them and I’ll check back in in a few years.

Let’s just say that Matrix has a maximalist philosophy that is a bit of a culture clash with how I like to do things.

And also that it’s completely ridonk that they shell out to XMPP (specifically Jitsi) to do voice&vid confs. That’s a sign of how messed up their architecture is.

Update № 5

Matrix IRCd might become the ticket in the future.♥