Mike Macgirvin recounts the depressing history behind Mastodon's rendering of `article` vs `note`

Here’s the reason Article became a second class citizen…

github.com/mastodon/mastodon/issues/5022

In this issue I raised against Mastodon in 2017 (on a now defunct github account), Mastodon at the time treated Note and Article identically. In particular, it removed all the HTML except for ‘a’ tags - even from Article. This made federation with the elephant impossible for us. At this time the ActivityPub fediverse consisted of Hubzilla and Mastodon. Period. The specification wasn’t even final yet. Hubzilla provides long-form multi-media content, just like a blog. This content was completely destroyed by Mastodon’s HTML sanitizer, especially blockquotes, which displayed everything we quoted as original text and mis-attributed.

My proposal to the Mastodon team (which was basically Eugen) was to relax the input sanitisation on the Article type a bit , and Mastodon could have their plaintext Note and we could have our multi-media and the fediverse be one happy family. Regardless of the fact that HTML is specified as the default content-type for all content in ActivityPub.

The response from Eugen was to turn Article into a link, meaning our content wouldn’t be shown inline at all - and closing the issue. I believe this is the last time I ever communicated with Eugen and I will never, ever file another issue against Mastodon.

We started using Note instead, so that our messages would federate at all and knowing that Article would have been the most sensible choice.

We also need to strip all the images out of our perfectly renderable content and add them back in as attachments - otherwise they won’t be displayed on Mastodon. As it turns out, Mastodon only adds back 4 images and reverses the order. This is less than satisfactory because the source content lets us position text around each image, and it forces anybody with multi-media content to not only perform this unnecessary step, but also to check every attachment on import and see if it was already included in the HTML - or it will be displayed twice.

As far as I’m concerned, Mastodon should be taken to the mountain-top and cast into the volcano. But it appears we’re stuck with the infernal thing.

liaizon,
@liaizon@wake.st avatar

@wakest hope you dont mind that I reposted this @mikedev

maegul, (edited )
@maegul@lemmy.ml avatar

The way Macgirvin has summarised this else where is that mastodon’s lead dev wasn’t mature and competent enough to make good engineering decisions for the fediverse at large. That his platform became the dominant one is likely earned but also likely attributable to the fact that Gargron (masto BDFL) was young and keen enough to go all in at the right time…

Which means, at this stage, dominance and immature mistakes and flaws are likely to go together (sounds familiar huh). Which means that for the fediverse to grow it has to go beyond mastodon. It just won’t happen until masto is ousted as the clear dominant platform. And in reality, I don’t see that happening any time soon the way things are going.

symfonystation,
symfonystation avatar

@wakest Mastodon may have started down the enshitification route and heading toward being forked.

Zagorath,
@Zagorath@aussie.zone avatar

I didn’t know this problem existed, but now I’m incensed by it.

mozz,
@mozz@mbin.grits.dev avatar

Friends don't let friends use vague protocols

ActivityPub is popular because it solves a vital problem, which is fine. But the protocol itself as a protocol, in my unfair opinion, is way too loose and basically results in little single-app fiefdoms that communicate outside their borders poorly if at all. I don't know what the solution is, but it definitely is a problem that didn't need to exist in its current severe form.

hperrin,

Yep. Reading the spec gave me the impression that the authors wanted to create something that can do literally everything, not realizing that that makes it impossible to “fully” implement the spec.

Does your application correctly render when I dislike the fact that a user removed a file from a group? That’s something you can represent in ActivityPub.

ShittyKopper,

I would absolutely boost this to the microblog-verse if Lemmy federation with Misskey wasn’t broken

mozz, (edited )
@mozz@mbin.grits.dev avatar

You can make a protocol that allows for not-yet-defined behavior, or has parts that are prescribed to work in a certain way if you're choosing to implement some certain behavior although you're not required to. The 7-layer OSI model and SMTP-email headers are two good examples. Even grafting encrypted or multimedia email on top worked, more or less, reasonably well and was still interoperable for the most part. They could have used that type of thing as a starting point, instead of doing the equivalent of "well we don't want to constrain what types of networking applications you might want to implement, so we're just gonna specify the from and to addresses. You do your checksumming and MTU management the way YOUR application wants to do it."

I mean I'm not gonna sit too much in judgement of someone who created something which is working and producing good things but it's hard not to be wistful about how much better it could be if the spec was specific enough that the different apps could substantively talk to one another.

_ed,

Yeah it’s detrimental that approaches used in other apps don’t render in mastodon. It weakens the potential of the fediverse, and for those that understand fedi = mastodon. Who knows how it will react to proposals for groups etc.

morrowind,
@morrowind@lemmy.ml avatar

I wonder in enough platforms outside of mastodon decided to follow the spec instead of whatever mastodon does, maybe we could peer pressure it back into normalcy?

maegul,
@maegul@lemmy.ml avatar

Not until mastodon is no longer the dominant platform. Which is a fair way off.

To illustrate, in the linked thread, a mastodon dev says the following:

I am not very knowledgable about ActivityPub so I cant discuss the specifics, but we would like to improve how non-Note objects are processed/displayed in Mastodon.

Mastodon lives in a very mastodon specific world. And that’s because the vast majority of activity on mastodon is between mastodon instances, and when it isn’t it’s with a platform working fairly hard to be compatible with mastodon, as the OP quote demonstrates.

Their branding, history and momentum can’t be politely reversed. It has to be forced. It’s useful to appreciate the history of mastodon’s BDFL/CEO here (he calls himself both BTW). This has been his job since graduating from University. This is his whole professional life. He started while in university and has been paid by donations and granted basically since.

Which means he has no reason to do things or see things differently. No other experiences and complete domination of the fediverse. I wouldn’t be interested in other people’s opinions either unless they’d also demonstrated equal commitment and influence over the fediverse, and even then I’d probably be full of myself too.

With real irony, the fediverse has in large part been centralised around one young tech bro’s “vision” and resultant ego. He deserves it IMO. It’s the culture of all those who see the problems that isn’t up to the challenge of organising appropriately in response that’s the problem.

In many ways, an interesting aspect of the fediverse, I think, is it’s a test of what the current open source dev culture and dynamic is capable of when it comes to cultural and social change. Social media platforms are squarely within what devs know how to do. And there is certainly a lot of productivity to be proud of (I mean look at this, we’re doing this all right now on open/free platforms FFS!). But organisationally and culturally, I think there are real flaws.

IMO, there’s a lack of awareness of the need to conceptualise and materialise broad goals and values and the hats requires to enforce and incentivise them, as well as then acting in a way that best pursues those stated goals, especially at a communal/organisational level.

In other words, too much NIH and forking and “I’m the lead dev of this project” and not enough “for the fediverse”. I think you can see the hyper-capitalise biases of the current tech world bending things a bit too much.

laemeur,
@laemeur@mastodon.sdf.org avatar

@wakest I remember being quite frustrated about this as well. Does anyone know off the top of their heads what happens to a federated Article when it hits Mastodon? Does it get converted to a Note, or does it remain an Article object with its content stripped and replaced with title text and link?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • fediverse@lemmy.ml
  • DreamBathrooms
  • magazineikmin
  • InstantRegret
  • hgfsjryuu7
  • vwfavf
  • Youngstown
  • slotface
  • thenastyranch
  • ngwrru68w68
  • rosin
  • kavyap
  • PowerRangers
  • Durango
  • khanakhh
  • anitta
  • mdbf
  • tacticalgear
  • ethstaker
  • modclub
  • osvaldo12
  • everett
  • tester
  • cubers
  • GTA5RPClips
  • normalnudes
  • Leos
  • cisconetworking
  • provamag3
  • All magazines