site banner

Culture War Roundup for the week of September 2, 2024

This weekly roundup thread is intended for all culture war posts. 'Culture war' is vaguely defined, but it basically means controversial issues that fall along set tribal lines. Arguments over culture war issues generate a lot of heat and little light, and few deeply entrenched people ever change their minds. This thread is for voicing opinions and analyzing the state of the discussion while trying to optimize for light over heat.

Optimistically, we think that engaging with people you disagree with is worth your time, and so is being nice! Pessimistically, there are many dynamics that can lead discussions on Culture War topics to become unproductive. There's a human tendency to divide along tribal lines, praising your ingroup and vilifying your outgroup - and if you think you find it easy to criticize your ingroup, then it may be that your outgroup is not who you think it is. Extremists with opposing positions can feed off each other, highlighting each other's worst points to justify their own angry rhetoric, which becomes in turn a new example of bad behavior for the other side to highlight.

We would like to avoid these negative dynamics. Accordingly, we ask that you do not use this thread for waging the Culture War. Examples of waging the Culture War:

  • Shaming.

  • Attempting to 'build consensus' or enforce ideological conformity.

  • Making sweeping generalizations to vilify a group you dislike.

  • Recruiting for a cause.

  • Posting links that could be summarized as 'Boo outgroup!' Basically, if your content is 'Can you believe what Those People did this week?' then you should either refrain from posting, or do some very patient work to contextualize and/or steel-man the relevant viewpoint.

In general, you should argue to understand, not to win. This thread is not territory to be claimed by one group or another; indeed, the aim is to have many different viewpoints represented here. Thus, we also ask that you follow some guidelines:

  • Speak plainly. Avoid sarcasm and mockery. When disagreeing with someone, state your objections explicitly.

  • Be as precise and charitable as you can. Don't paraphrase unflatteringly.

  • Don't imply that someone said something they did not say, even if you think it follows from what they said.

  • Write like everyone is reading and you want them to be included in the discussion.

On an ad hoc basis, the mods will try to compile a list of the best posts/comments from the previous week, posted in Quality Contribution threads and archived at /r/TheThread. You may nominate a comment for this list by clicking on 'report' at the bottom of the post and typing 'Actually a quality contribution' as the report reason.

5
Jump in the discussion.

No email address required.

Let’s talk about Matrix/Element.

With the Telegram CEO getting gotten and Twitter being banned, you may have heard Matrix/Element shilled as a potential alternative platform for communication. There’s also talk of interoperable messaging in Europe, and the pipedream of Matrix being involved. Unfortunately, Matrix/Element is a dead end, but it’s worth talking about. Information gathered from lurking Matrix discussions as well as private DMs.

I

In 2016, the folks at New Vector ltd. decided to make an end-to-end encrypted and federated instant messaging service. They created Riot.im (now known as Element), which communicated over a new protocol they called Matrix. Under the Matrix protocol, users on independent homeservers could communicate with each other, similar to Mastodon/ActivityPub. Also similarly, independent implementations of the protocol are able to communicate in the network. Like Misskey can communicate with Mastodon, apps such as FluffyChat can use Matrix to communicate with Element.

New Vector struggled to get Element off the ground, first positioning it as a Slack alternative. They even snapped up the declining Github-centric im service Gitter and subsequently did nothing as the entire userbase fled to Discord and Slack. When that failed, Vector pivoted to providing bespoke encrypted services to government spooks including shipping white-labeled walled gardens and trying to make Element a Zoom competitor. With a steady source of Cash, the Vector team lost interest in the rest of us. From the CEO himself:

... [Y]ou need to understand that Element has ended up making payroll by selling messaging apps to people like the UN, NATO and the French and German governments. And they value other things (reliable encryption; performant apps; UX which outperforms WhatsApp) more than building a Discord killer.

II

So where does Matrix come in? The Matrix protocol was supposed to be federated and Vector felt that adoption of the protocol with Element as the flagship client would be good PR. Vector set up the Matrix foundation with the goal of promoting federation in an ecosystem by offering the promise of an open protocol. The foundation was also put in charge of the “matrix.org” homeserver - ostensibly a peer to many homeservers but the de-facto hub for reasons that will be explained below. What the Matrix Foundation wasn’t given was the power or directive to implement features actually needed for growth. Something as basic as sharing an invite with someone off Matrix is something that’s impossible to this day. And even with Vector recently abandoning any interest in Element as a social platform, the Matrix Foundation has categorically refused to endorse an alternative (non-Element) app run by a team that cares more about growth.

They had a little bit of success in getting a few open source communities to dip their toes in, but it was fleeting. Unfortunately with a lagging featureset and inscrutable onboarding process, Matrix floundered while Discord, Telegram, and WhatsApp launched to the moon. Only the deplorables kicked off of Discord flocked to Matrix, most notably sharers of CSAM content. With a complete lack of algorithmic ranking and constant churn of discussions that fizzle out because they can’t onboard new members, the server has become a graveyard filled with unpleasant and illegal land mines.

Is there any hope for the Matrix protocol? Can any other servers step in where the Matrix Foundation failed?

The problem is the Matrix federation protocol doesn’t actually work! It can’t even ensure two servers think the same members are in a particular room, which has obvious consequences. As a result there isn't a single large community on Matrix with substantial participation over federation. While other homeservers exist, they effectively act as independent islands with communication happening between server members and little to no productive traffic transiting to other servers.

The Matrix Foundation is now a zombie, created to evangelize a protocol (that doesn’t work!) that is de-facto controlled by a company no longer interested in federation. It dutifully works on “trust and safety” to hide the CSAM so they can keep their matrix.org server running, a server which is a graveyard of dead discussions devoid of any meaningful discussion not about Matrix itself.

III - CW topics for discussion

  • With the biggest tech platforms becoming explicitly left-wing, the space for the grey and red tribes online has shrunk. Federated solutions such as Matrix and Mastodon seem like a tempting way to escape censorship, but are plagued with organizational and technical problems. Witches may find respite in these places, but only because the admins are too incompetent to successfully carry out a witch hunt. Twitter orienting itself as a free-speech platform may be the only whitepill for the current generation of deplorables.

  • Does the restriction of compliance tools such as photodna to major players act as regulatory capture against smaller players? Posting known CSAM on Discord or any other major platform will result in an instant permaban. Upstarts and deplorables don’t have the privilege of accessing these tools.

  • What is the future picture of interoperable messaging? Is it an email-like level of federation? EU has mandated interoperability but will it promote free speech or stamp it out? (anyone want an unhinged rant about "RCS"?)

  • The willful refusal to implement table stakes features in order to pursue differentiation at all costs. (invites, emojis/stickers, user statuses, cosmetics) The Slack competitors Chime by Amazon and Hangouts Chat by Google both fell victim to this, actively refusing (I have inside knowledge of this) to pursue feature parity with slack despite having blank-check level resources. I think this says something about human nature.

  • The baggage of the broken protocol has been a deadweight on the team, but momentum has the team papering over the problem with additional layers and proxies. Vector's cash cow, bespoke white-label encrypted apps for government agents, benefits literally nothing from federation. Yet these apps carry the vestigial protocol like an albatross around their necks.

Edit:

You might think "I've used Element casually and it pretty much mostly works, so it's fine" but that's missing the point. A messaging service needs to work on the first try, every time. And even if Matrix can send 99% of your messages fine, and let 99% of people join your channel, that 1% sends it directly to the garbage heap. And Matrix can't work every time.

Telegram only went down once in its entire 10+ year history, and besides that outage, not one single message for anyone in the world was shown as delivered that wasn't delivered and viewable by every member of the group.

I'll caveat first of all that I'm not sure federation is a solution (and, thus, that Matrix's bad implementation is the problem). A clever and correct federation protocol might be technically interesting (though I'm not entirely convinced it's even possible without trimming off a lot of the core criteria, but like a lot of structural efforts to solve governance problems, there's no guarantee that it's the right fix.

In the modern sphere, federation pushes to one of three local maxima:

  • Sites disagree about moderation remove each other from federation, leading to one large group of servers that have such a wide 'shared set of values' that the different servers mean little more than having rediscovered sharding badly, and a broader set of subgroups disconnected servers that are basically invisible to anyone not on them. At best, you might Zif yourself into a half-dozen clusters. See Mastodon's various blocklists for one example.
  • Sites agree about a moderation in all meaningful ways, which means that they've rediscovered sharding badly.
  • Sites disagree about moderation, but semi-federate, such as setting a distrusted server's users to whitelist only, or add varying opt-in requirements, running into the more general problem of 'mediated group hallucinated reality': some people in your sphere seem to be talking about things you can't see or touch.

Does the restriction of compliance tools such as photodna to major players act as regulatory capture against smaller players?

While PhotoDNA restricts its use to 'qualified customers', at least in theory relatively small outfits can apply and be recognized; RocketChat has a plugin based on the assumption that your individual outfit will enable it. The on-premise version does seem more restricted, though.

There are also a few other tools with at least different availability requirements, such as Cloudflare's implementation.

But I'm also not sure that on-server images (or video) is really that critical.

What is the future picture of interoperable messaging? Is it an email-like level of federation? EU has mandated interoperability but will it promote free speech or stamp it out? (anyone want an unhinged rant about "RCS"?)

I'm not sure I understand the advantages of a lot of the more complex proposed technologies, compared to something like an IRCv2 or even a much-more-rapid self-hosted or mail-list like RSS seem much more valuable -- improve the ability to read old messages or set some messages to specific channels, implement some sort of direct client-to-client file transfer capability a la wormhole, let the server operator optionally set some up-to-server capability, give 'rooms' a better interface and discoverability, give some basic protections for account creation, done.

But even if that were The Ideal Chat Form, a large part of the problem today is that Everything's Good Enough now. Discord, Matrix, RocketChat, and even a lot of lesser-known competitors are workable for communities currently using them, the costs of transition are vast, and new Western-culture communities aren't forming anywhere near the rate they were in the USENET, Eternal September, or early Smartphone era. If you build a better mousetrap, they will not beat a path to your door. They may not even hear about you.

Details of specific technical issues with the spec, for those interested (this isn't CW but since you asked). @SubstantialFrivolity @sarker @confuciuscorndog @TequilaMockingbird Unfortunately it's difficult to explain the shortcomings of the protocol in layman's terms because the protocol itself is hard to understand in layman's terms.

What matrix is supposed to be: Fundamentally, matrix advertises itself as an “eventually consistent” datastore, but in essence can be described as a distributed state machine.  When operating correctly, events are sent to the distributed machine which mutates the state. In other words, matrix is a distributed computer/virtual machine that calculates who is in a room, what their permissions are, and which messages should be displayed in the room. What it's supposed to do is akin to the operating model described in “practical byzantine fault tolerance”. Auth events are particularly important mutations, because they change which mutations are valid in the future

What matrix is in practice:

Matrix is not eventually consistent: Matrix has no method to guarantee that servers will eventually reach a consistent state.  In practice, servers do not reach consistency but instead diverge increasingly over time.  There is no mechanism for servers to tell if they are missing events.  Prev events is a weak measure, because with larger rooms where most members are lurking at any given time, the missed even is much less likely to be referenced.  In the “ideal” world of open federation, each homeserver will only be represented by a handful or even a single user in a given room.  If events are dropped in transit, or a homeserver spends some time offline, the homeservers will likely never recover those lost events.

Room membership breaks spaces, profiles-as-rooms, etc. In practice many spaces are used simply as a readonly way to distribute a list of public rooms.  With auth rules and past state snapshots, spaces with a large membership become a terrible drain on homeserver resources despite the actual information being transmitted being next to nothing. Profiles as rooms would face an even tougher challenge because the people who need to view a user’s profile are the superset of all other users in any room that the user is in. Peeking over federation to achieve one-to-many communication is a horrendous hack, and likely would never get implemented.

Availability during partitions is a bug, not a feature: Matrix is designed to attempt to function even if some homeservers are partitioned from all of the rest of the homeservers.  Fundamentally, this means that each side of the partition will have events that contradict events on the other side of the partition.  If this results in a permanent split brain, this is worse than a temporary loss of availability, because the room is now broken forever.

State resolution implies time travel/retroactive changes: The very idea of state resolution is to address contradictory events, and attempt to come up with a consistent set of events that multiple servers agree on (though as shown in the above item, this doesn’t work in practice).  This means the erasure of some contradictory events, and a revision of history for the server that believed in those erased events.

Matrix does not guard against time travel by hostile homeservers with power level: Users who currently and in the past have the power level to do so and control a hostile homeserver can rewrite history by sending events timestamped in the past and with appropriate DAG pointers.  This will also blow up the resource consumption on all other homeservers in the room, depending on how far back the rewrite happened

Calculating retroactive state with nonlinear history is intractable and ambiguous

State resolution complexity is a consequence of a lack of consensus, not a way to achieve consensus

/sync transmits a diff of the entire snapshot of the state to the client, when the client never even needs the full state. In every other messaging app model the client queries for a view of exactly what the user needs to see on-the-fly. Computing the state diff for sync is computationally intensive for no productive purpose.

Seem to me that you need to clarify what your requirements are.

So matrix advertises itself as "eventually consistent" but is that an actual design goal or is it just words words words courtesy of some MBA? "Consistant" is a very different requirement from "secure" or "fault tolerant" with very different trade-offs. From your description it sounds like the designers have priorized fault tolerance and portability over other concerns, that doesn't necessarily mean it's "broken".

It is a design goal and it's laid out as a claim in their technical specifications (which don't look like mba marketing materials to me)

https://spec.matrix.org/latest/

Eventually-consistent cryptographically secure synchronisation of room state across a global open network of federated servers and services

https://matrix.org/docs/older/faq/

at its core Matrix can be thought of as an eventually consistent global JSON database

Nevertheless, I see no world where having agreement who is and isn't in a room isn't a very basic requirement.

The Slack competitors Chime by Amazon and Hangouts Chat by Google both fell victim to this, actively refusing (I have inside knowledge of this) to pursue feature parity with slack

I think you are mistaken about Chat. Several of the more hated changes (the recent threading change) were done explicitly to make the app more slack-like. The puzzle that the app is still shit is left as an exercise for the reader.

I was there for the early days of Chat early access in 2016 when they first invented their cursed way of doing threads. It was pretty unanimous that the Slack way of doing threads was better, and it only took Google 5+ years to wrap their heads around that. https://blog.google/products/g-suite/meet-the-new-enterprise-focused-hangouts/

Meanwhile they still don't have partyparrot and never will.

The original chat threading was far superior because it actually allowed you to keep track of active conversations in a particular space. Now they've removed it against tons of feedback to mindlessly imitate slack.

Meanwhile they still don't have partyparrot and never will.

Corp users can upload custom emoji, but you're right that it's not going to happen for personal users.

Corp users can upload custom emoji,

Oh nice I stand corrected. They didn't have this feature for so long I just assumed they never would

The original chat threading was far superior because it actually allowed you to keep track of active conversations in a particular space.

I can certainly see that some people might prefer the old Google way, but where I worked the reception was so bad that the developer revolt was able to convince the executives to switch to slack fairly rapidly

I can't really agree with this post. I use Matrix (even host my own homeserver) and it works just fine. I don't think it'll take off among normies, but I also don't think any federated service will ever take off among normies. But for any user who is moderately tech savvy, Matrix works and works well.

A number of people in every room over federation don't see your messages. In fact they don't even know you're there. You don't even know they're there either.

Considering I personally know the people I'm in rooms with, and I know for a fact they are seeing my messages... that isn't true. Maybe in some cases, but not in my case.

If you want secure - threema or signal (they both have weaknesses, but are top tier)

If you want less secure with dubious E2E - whatsapp and viber

If you want only Putin to read your messages - Telegram

If you don't care at all - instagram/facebook

If you want to have no one to talk to - everything else

As a daily user of Matrix (but not via Element, usually via alternative clients such as SchildiChat, FluffyChat, Cinny, and Gomuks) to participate in various communities that happen to be there and talk to some people I've met on there, I have no idea why it needed this dramatic effortpost. It's just a chat protocol that works semi-well. What's the big idea? I don't see how it's a "dead end" (mostly because you seem to have a lot of your information wrong).

The willful refusal to implement table stakes features in order to pursue differentiation at all costs. (invites, emojis/stickers, user statuses, cosmetics)

Wrong. It has invites, emojis, stickers, and user avatars (which is a form of cosmetic).

Source: Literal screenshots from SchildiChat (which is a fork of the official Element client) that I have open right now:

https://pomf2.lain.la/f/kd2ff7b8.png

https://pomf2.lain.la/f/lhwijza7.png

It dutifully works on “trust and safety” to hide the CSAM so they can keep their matrix.org server running, a server which is a graveyard of dead discussions devoid of any meaningful discussion not about Matrix itself.

Wrong. I'm in multiple Matrix chatrooms that have nothing to do with Matrix itself, on the official matrix.org server and other servers.

As a result there isn't a single large community on Matrix with substantial participation over federation.

It depends on how you define "substantial", but there is cross-server activity in the rooms I use. Sometimes it causes problems, but not that often and increasingly less often. Protocol stability is increasing, albeit gradually. Most people do sign up for the default matrix.org server, but that's just because most people do the default in almost all cases.

Honest question: Have you actually used Matrix? How much? The post reads like the classic breathless "informational" YouTuber "explainer" about something they have no firsthand experience with. Like the idea that Matrix has no emoji support... It's had them for as long as I've used it, and that's been years. Where did you get these ideas?

No, it's not as braindead "easy" as Discord. (And I'm defining "braindead 'easy'" by a standard of someone I once talked to who claimed the Element interface seemed "too complicated" because... when she went to register, it asked her to enter in all of her info (desired username, desired password, attached e-mail, etc.) all at once in 3 separate form boxes presented in rows, instead of doing it like most modern apps where they have you enter in the first desired item in the only box on the screen and then send you to a new screen that says "Good job! You did it! And now we need [next thing].", repeating for all desired info.)

That's a good thing, because Discord, like New Reddit, Twitter, Instagram, etc. is designed according to the standards of Idiocracy. (The horror! In Matrix clients I can see actual dates and timestamps for things instead of "A day ago", "A few minutes ago", "A long time ago", etc. (But no I haven't used Discord in a long time so I don't know if it has those too.))

Why does it either have to be a "Discord killer" or a "dead end"? And why do you think that having stickers and invites (which again it does have anyway) is the difference between the two? It's all the network effect. People use Discord because everyone uses Discord because everyone uses Discord. That the primary users of Matrix are those who are banned from Discord is an expected feature, not a bug.

Most people are NPCs who simply use the most popular thing. That's all it is. Matrix does have flaws, and some pretty severe ones ("Cannot decrypt message") but those flaws are almost entirely irrelevant to this fact. It could be a 5x better or 5x worse Discord clone and it probably wouldn't be much more or less popular. You mostly haven't had dramatic vanquishings of incumbent services online since the days of Myspace and Digg. That's a fact that applies to even the best attempts. The network effect is a behemoth that basically only TikTok has been able to conquer in recent memory, and even then that's mostly only because Vine's shutdown left a hole. They also still didn't kill anyone.

Honest question: Have you actually used Matrix? How much? The post reads like the classic breathless "informational" YouTuber "explainer" about something they have no firsthand experience with.

I know alot more about Matrix than you do. I've actually read the protocol docs in depth and personally talked to the devs about it.

Protocol stability is increasing, albeit gradually.

It might get better, but it can't get good, because the protocol is fundamentally broken.

Wrong. It has invites, emojis, stickers, and user avatars (which is a form of cosmetic).

You know what I mean. Emoji in the sense that Slack has them. Stickers in the sense that Telegram has them. Invites in the sense that Discord has them.

Why does it either have to be a "Discord killer" or a "dead end"?

There's an in-between but this isn't it. Matrix is a dead end because its protocol is fundamentally broken and can't be fixed.

And why do you think that having stickers and invites (which again it does have anyway) is the difference between the two? It's all the network effect.

Wrong. Nobody uses Matrix because it's impossible to ask someone to sign up for Matrix.

I know alot more about Matrix than you do. I've actually read the protocol docs in depth and personally talked to the devs about it.

Great. Then hopefully sometime you can impart that actual knowledge upon us instead of dropping "knowledge" that is transparently wrong.

It might get better, but it can't get good, because the protocol is fundamentally broken.

Care to proactively provide some evidence for this inflammatory claim?

You know what I mean. Emoji in the sense that Slack has them. Stickers in the sense that Telegram has them. Invites in the sense that Discord has them.

No I don't, because I don't use any of those. Maybe write like everyone is reading and explain next time?

Wrong. Nobody uses Matrix because it's impossible to ask someone to sign up for Matrix.

That's funny, because I've done just that, they did, and we talk sometimes, even cross-server.

the protocol is fundamentally broken.

The only Matrices im familiar with are the mathematical constructs and that Keanu Reeves movie, but i am pretty familiar with communication protocols so i would like to know what you mean by "broken" in this context.