But what is the actual PROBLEM with Mastodon?? Said one hundred dozen people over several months of threads here. So I wrote it up.

It's too long, but we got bad doors, stilt-walking French shepherds, water bugs, a bunch of @/shengokai@zirk.us quotations, What The Fuck Is Up With Bluesky, and more.

https://erinkissane.com/the-affordance-loop

I would bet actual money that I've got some nuance of Mastodon's functionality wrong in there so when you see that please do lmk. I thought about asking instance-running friends to preview it but I've taken up enough of their time this week.

@kissane Two very minor things:

"transphobic posts and accounts get smacked much down more quickly than they were on, say, 2021 Twitter." I think you accidentally a word there, or I am very tired and can't read.

Then the part of following users: Only the part where you get externally linked opens on their instance. If you click a post or your own follower list it should be opening on your own instance. You can also paste whole links into search. Maybe I just misunderstood you though. Tired

@JoTheBuzzyard Ah, transposed two words, thanks and fixed! 🙏

For the second part, when I go to Follows and Followers on the main interface and click on the links to open profiles, they open on home instances. I just double-checked. Maybe there’s a setting somewhere?

@kissane I guess we are ironically confirming part of your article in even having this discussion lol, but on Android on the ""official "" app if I go to my profile -> followers and click someone I am still on my instance and can click "follow back" on their profile.

Might be a diff between webb and app, or Android / iphone?

@kissane The part about which replies you see isn't 100% accurate, but an accurate description of how that works would be longer than the current post, so 🤷‍♀️
@annika (I would 100% read a Painfully Accurate Description if there’s one out there or if you ever type it out; I am here for this nonsense)

@cbowns ok so it's not THAT long, but people's eyes tend to glaze over. it boils down to: did your server have a *reason* to get the reply in question? let's say Alice makes a post and Bob replies. Reasons you would see the reply:

1. Bob is on your server (post originated on your server)
2. Alice is on your server (Bob's reply was directed at your server)
3. Somebody on your server follows Bob (Bob's posts are sent to your server)

@cbowns 4. Somebody on your server follows Carol, and Carol boosts Bob's reply (the reply shows up on Carol's timeline, which is sent to your server)
5. Someone on your server visited the thread on any other server, and copied the origin URL into your server's search box (causing the reply to show up in your server's db and timelines)

That's everything, off the top of my head.

@cbowns Notably absent from the list of "reasons" is the simple fact that a reply was posted. If I'm on server A, looking at a post from Server B, and there is a reply from Server C, there is no implicit relationship between servers A and C. C doesn't necessarily even know A exists, or that anybody from A saw the post on B. B could theoretically act as an intermediary, telling A about all the replies, but this isn't how it currently works.

@annika
@kissane
yes this. you are right on with pretty much all of this, and love the piece, but one minor correction here:

If you are looking at replies to someone else’s post, you will only see the replies that come from instances that your instance already has a federation relationship with.

More precisely you will only see posts that come from accounts that someone on your instance follows. You don't get all the posts from all federated instances. (edit: and there is a ton more subtlety with eg. blocks and how different instances do federation and etc.)

Agreed its a way bigger problem than ppl realize. I really need to merge this and make it default instead of a button. one janky, low hanging fruit way to #FetchAllReplies is to abuse the search function: ask the OP instance what replies it knows about, then go and search for all of those

https://github.com/NeuromatchAcademy/mastodon/pull/8

[feature] fetch all replies by sneakers-the-rat · Pull Request #8 · NeuromatchAcademy/mastodon

Adds a button to the bottom of an expanded status to fetch all replies from the OP server (or as many as they will give us). Example: https://neuromatch.social/@jonny/109582537808504261 Context: h...

GitHub

@kissane
I believe you captured Mastodon-web-UI functionality correctly. At this point, a major problem also is that that functionality is not the same as Mastodon-client-API, Mastodon-thirdparty-clients, Mastodon-convention-on-ActivityPub, or Mastodon-culture. Those are all different, sometimes subtly, sometimes radically. On tech capabilities for example, my client (Phanpy) has no issues with quote-posts or indeed surfing "foreign" servers or responding to posts on them.

Great article!

@kissane I think you got the tech nuances pretty right on actually. Maybe worth a note there that quote posts, and full text search, and filling in replies that are missing now have pretty much full consensus that they all need to be fixed, and added and are all in some part of the roadmap to add.
@tchambers I thought I'd kind of gestured toward that, but maybe it's on the cutting room floor, there are so many words Tim
@kissane @tchambers You need to learn about sidenotes. Because I liked all those words and wouldn't have minded more of them.
@vivtek @tchambers Oh there are at least 9-10k more coming in this three-parter, and that's if they don't spontaneously divide again.
@kissane I went through a brief spell of about thirty-five years where I couldn't read nonfiction, but it seems to be past now - thanks largely to the simple expedient of buying a tablet so I can read PDFs in bed and mark them up. Since I did that, I've actually been reading longer stuff at my desk as well. This post was *good*. I look forward to following up some of the interesting bits.
@vivtek I was too tired to reply last night but I FEEL THIS ONE A LOT, my ability to read things is…highly variable. Although 35 years beats my streak.
@kissane I exaggerated for effect. It was really only about twenty-eight, since my masters. (Viv is twenty-nine this year so you know.)
@vivtek sorry she’s WHAT
@kissane He, at this point, but yes HE TURNED TWENTY-NINE LAST WEEK and you and I are old old old
@kissane i mean that whole freakin linear time thing but still
@vivtek Ah, I didn’t know yet! Happy birthday to him and also I related this “29”business to Peter who made a face like I’d broken the dishwasher.
@vivtek does Blot do sidenotes? It didn’t back when I considered using it. 🙁

@hans Is Erin using Blot? Because she does actually have some sidenotes on earlier posts, which I noticed after posting this.

Huh. According to the About, yes she is. And the very previous post has a sidenote, so they must have added it since you evaluated it.

https://erinkissane.com/qualities-of-life

@vivtek nice! And using the simple float method I finally settled on.

(I am an evangelist for sidenotes.)
@vivtek
@kissane @tchambers
it's a bit beside the point, but +1 for sidenotes. it's sort of janky/not packaged, but if you use eg. markdown footnotes I modified this from someone else's version and this works p well:
https://github.com/sneakers-the-rat/surveillance-graphs/blob/main/assets/js/sidenote.js
see an example at
https://jon-e.net/surveillance-graphs
surveillance-graphs/assets/js/sidenote.js at main · sneakers-the-rat/surveillance-graphs

in defense of vulgar linked data. Contribute to sneakers-the-rat/surveillance-graphs development by creating an account on GitHub.

GitHub
@jonny @vivtek @tchambers the funny thing here is that I've already implemented asides as sidenotes on the site, having noodled around in various sidenotes libraries for like a solid three days before I put it up 😅
@kissane @jonny @tchambers As I noticed, pretty quickly, once I went back *one post*.
@kissane
@vivtek
wow I am sorry!!! I must have just not seen them on mobile.

@jonny @vivtek oh god don't be sorry, there are one million words in there!

I don't love the current implementation bc of the way it flows on mobile, but I haven't had the [everything] to wrangle more with it (trying to avoid extra js but this is the world we live in, I know)

@kissane
@vivtek
ya I hunted and hunted for some way of doing them with CSS only that worked with mobile/ didn't require me to do a ton of manual parsing during rendering but came up short. I try n at least keep it vanilla when I can yno
@kissane @tchambers The main things impeding quote posts and filling in replies, as I understand it, are:
1. They require changes to ActivityPub (for quote posts, the ability to opt out, being notified when you've been quote posted, limiting who can reply or quote post). This can’t be done unilaterally since ActivityPub is a W3C standard.
2. The Mastodon dev team is extremely short-handed. There is literally one full-time dev (Eugen is part-time since he has many roles). They're swamped.

@dgoldsmith @kissane

Yes, both. The first the important first impediment…the second more solvable by programmer help….

@tchambers @kissane Finding the programmers seems to be a problem.
@dgoldsmith @tchambers One of the Mastodon official dudes was saying that the organization/product management stuff was the real bottleneck there. I don’t have the link in front of me tho.
@kissane @tchambers
Here's a recent post by a member of the team: https://oisaur.com/@renchap/110742907279209554
Renaud Chaput (@renchap@oisaur.com)

@taylorlorenz@mastodon.social There is currently only one full-time developer working on the core Mastodon software (server and web app), and this is barely enough for keeping the lights up (bug fixes, security, maintenance…). Big feature work takes a lot of time and unfortunately Mastodon gGmbH does not allow more at the moment. Volunteers (like me!) are always welcome, but such a big work as Quote Posts require experience that few people have, and time that even fewer people have.

Oisaur
@kissane @dgoldsmith saw that: He’s not wrong from a maintainers and direct development standpoint - but volunteer programmers could create that implementation (once standardized) and submit it for their review, if coded well, would help push it downfield greatly….

Actually the quote post story is fun from somebody who understands Activitypub perspective:

  • It's trivial to implement on the ActivityPub level, see e.g. FEP-e232.
  • Lots of people have implemented it, see fiefish
  • People don't seem to care and continue to talk about it like a missing feature.
fep

Fediverse Enhancement Proposals

Codeberg.org

@helge Thanks @helge is that #FEP e232 the consensus & final one defining quote posts? My understanding was like this:

There are 3 competing standards for quotes: _quote: _misskey_quote , fedibird:quoteUri , and as:quoteUrl

Is that incorrect?

Does FEP-e232 pick one method (say “as:quoteUrl”) as the now standard way to do this?

FEP-e232 is the only proposal with a specification. So it is the only standard vs. ad-hoc solution.

Also FEP-e232 picks none of these options. Instead it adds the quoted object as a tag. This is preferable as it is similar to how mentions, hashtags, emojis are already being handled. Furthermore, it allows for multiple quotes.

@helge OK, my understanding was that contention between those other implementations was the main hesitation for mastodon or others implementing quote posts - worried that another implementations might become the final standard and then the code implementated before that would be wasted or actually hurting the final standard.

I would expect the reason not to implement quote posts is a form of decision paralysis. Most implementation (including taking a screenshot) provide the ability to quote post. They don't provide the ability to stop people from quoting something nor do they provide notifications.

Providing either of the two missing features is actually quite hard. Implementing either in a way that cannot be defeated by just posting a link, would require quite a bit of innovation. FEP-e232 provides for neither of these requirements.

I would personally encourage people to implement quote posts with the two features mostly relying on trust.

@tchambers @h I think Mastodon devs want to have a quote control mechanism, hence they are considering making quote-posts a special type of reply and using FEP-5624: Per-object reply control policies. All other implementations just add a reference to a quoted post.

There's a nice writeup by @trwnh: https://socialhub.activitypub.rocks/t/disambiguating-various-interpretations-of-a-quote-feature-pre-fep/3426

fep

Fediverse Enhancement Proposals

Codeberg.org

@silverpill @helge @trwnh

This is true: making a way for users to limit unwanted quote posts is a must have feature.

The problem with making "limiting who can quote post" a MUST HAVE feature is that it basically means: Quote posts won't happen soon.

Being able to limit other people's actions is an antithesis to openness principles. Bringing these things into harmony will require both social and technical work.

@helge Well: we could standardize both solutions now, no?
Or you could standardize quote posts NOW and suss out user limits on reply, quote posts, etc, as that works out. But I’d think any quote post solution standard should allow for near term user defined limits on who they want to allow in order to avoid harassment.
@helge @silverpill @tchambers i don't think it has anything to do with "openness". it's more akin to a stamp of approval that you can use to verify that the other actor accepted something. you're free to make an "unverified reply" if you wish. by the same principle, we might decide we don't care to verify the sender and therefore drop http signatures, leaving us with "unverified posts". this is no different than any normal web page which can make whatever claims it wants to.
@helge @silverpill @tchambers so the thing about "x control" for various types of links, is that you're never actually preventing the link. you're just verifying it, and possibly moving to require verification after some transitional period.

Also, in case it's not clear, I really want this place to work or I'd be quietly writing novels and reading archaeology journals and taking my dumb little walks.

You got me, Mastodon, I'm writing about software again and I'm inclined to keep going.

@kissane I'm very glad you're here! :-)
@kissane I am pleased you're here.
@kissane Amazing!
More power to you.

@kissane thanks. I like your summary of Mastodon UI problems, and you even pointed out a few I didn't know about.

The general attitude of FOSS developers about UI is…not good, and this is an instance of it. It is also why, despite its advantages in security and respect for the individual, FOSS has not yet conquered the world.

@ravenonthill it's more like, not about ‘attitude’, but about ‘FOSS developers are first and foremost developers, they write code and make things work, but they're hardly UI designers or UX engineers’.

Open source designers is a rare sight expect when the open source project is funded by a big corpo like Microsoft.

Like, Mastodon spent money on design team, and official mobile apps + joinmastodon ended up looking good enough. Nobody would've done these designs voluntarily.

@kissane

@kissane i'm about to run my poor brain into the ground, working late. and i'm so excited to have this to dig into, tomorrow.
@kissane Thank you for this piece — lots to dig into and think about!
@jmadelman Thank you! I hope it's useful.
@kissane Already sent it to my fellow instance admins, so yes. 😀