Relaxing treatment of non-notes by Mastodon
-
Erin 💽✨ @38C3replied to infinite love ⴳ on last edited by@trwnh @thisismissem @pfefferle @hongminhee @julian @renchap @mike @michael but one thing I'd note: I think objects should always degrade gracefully into something note like, but that's not the case for activities
Imagine I used a federated last.fm like application. If Mastodon converted as:Listen to a note, my followers would probably get pissed off about the "Now listening to: X" statuses every 2 minutes -
@trwnh @hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem back in pump.io these things were relegated to your "minor feed". Absent an equivalent, I think implementations *should* suppress them. If your use case isn't amenable to this behaviour, you should probably consider if an activity is appropriate for it
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
i think this is on the user/client to not publish/deliver every single scrobble to all followers. mastodon should still be able to render arbitrary activities if there is a text repr of them.
-
Erin 💽✨ @38C3replied to infinite love ⴳ on last edited by@trwnh @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap I think publishing every scrobble to my followers is how I expect federated last.fm to work. It's on recipients to hide these things
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
a combination of `streams` and followable Collection-actors is how i’d approach this. we don’t need to be stuck in a paradigm of sticking every activity into one outbox, nor should every activity always be sent out to all followers.
-
@trwnh @hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem I think the activity Vs object distinction is very important because it models a semantic thing that by default objects are important but most activities are not
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
this is like saying “i’m going to email every scrobble to my entire contact address-book and it’s their job to filter out such emails”
-
Der Pepe (Hubzilla) ⁂ ⚝replied to julian on last edited byIf I remember correctly, Mastodon simply implemented a link to the source as the ‘solution’ for as:Article. This is not what users expect, it is not what the author had in mind, but it is probably considered ‘sufficient’ by Mastodon.
Mastodon shouldn't ‘adapt’ to other services either, but it should implement the AP standard properly. The way it has been handled so far, it feels rather arrogant. -
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
i don’t find this to be the case. in this case the “post” is not the Audio object, it’s that you Listened to it. it’s actually far more common for the activity to be more important than the object.
-
Erin 💽✨ @38C3replied to infinite love ⴳ on last edited by@trwnh @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap we don't really have a way of knowing what activities our followers are interested. In fact in the general case that's impossible; if I started using a music suggestion system based upon my friends listening habits today, I'd like to be able to use their historic listening data that they have been broadcasting to seed it.
Alternatively, consider that I decide to make my listening history public and it hits a relay. My as:Listen activities are going to absolutely carpet bomb the federated timeline.
Aside from the Annointed Two (Create, Announce) we really need to treat most activities as ephemeral and largely unimportant -
@trwnh @hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem the idea that every activity should turn into an entry in my home feed is utterly ludicrous. Imagine if this applied to Like or EmojiReact
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
This is why we need to allow people to specifically follow certain Collections which are exposed as streams. It’s also why we need to allow people to send activities to arbitrary audiences which might not include all followers.
If a relay is set up for the purpose of aggregating Listen activities and you follow it, that’s on you. You asked for it.
Create is the exception, not the rule
-
Erin 💽✨ @38C3replied to infinite love ⴳ on last edited by@trwnh @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap You're right that create is the exception: it's just one of two activities that you actually want to directly see in a microblogging context
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
Why shouldn’t it? This is an app/impl decision. I could add name/summary/content to a Like. You can ignore those fields and “downgrade” it to being “just” a like, or you could render it in its entirety as a post (which is likely my intention in adding content in the first place!)
-
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
Ironically in a micro/blogging context, the Create is mostly not interesting, it’s just a wrapper for the inner object which is the real “post”. Although, this doesn’t have to be the case — the Create might have metadata of its own that is interesting. Or you might want to preserve the Create for the consistency guarantee that everything is a stream of specifically Activities.
-
infinite love ⴳreplied to infinite love ⴳ on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
In any case I’m arguing that the criteria for “post” or “status” in something like Mastodon ought to be “does it have content?” If it doesn’t, then there’s nothing to really convert into a status, unless you get clever about interpreting the Activity type and generating a status from the statement “<actor> <type> <object>” or “<actor> <type> <object.type>”
-
Erin 💽✨ @38C3replied to infinite love ⴳ on last edited by@trwnh @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap therein lies the point - activities mostly *aren't* interesting. Create and Announce are interesting not in and of themselves but because of what they carry.
Things just work much better in many ways if activities can be thought of as largely ephemeral.
If the podcast listen is important enough that it's worthwhile keeping around in my feed - say, it has commentary or something like that - then perhaps it's better framed as commentary, not as a pure listen -
@trwnh @hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem I think our fundamental disagreement here is that I think activities shouldn't have content; it really opens many cans of worms
AS1 had a much more robust activity/object distinction and TBH I'm still kinda upset at how much AS2 muddled every type of object together into sludge -
infinite love ⴳreplied to Erin 💽✨ @38C3 on last edited by
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
This just feels like the justification for shoving everything into the Create-Note-shaped hole.
I think that any object, Activity or not, can be considered a “post” if it has content. Sure, there are additional semantics, which you can ignore if you’re Mastodon. You’re also free to add explicit support for certain contentless activities, such as contentless Like or contentless Announce
-
@hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem @trwnh if you treat activities as first class objects indeed of second class, it really opens up various cans of worms. What does it mean to like a like? Can you reply to an EmojiReact? Can you Like a Listen?
The end result of dividing things might be some semantic overlap between "small" Activities and "large" Objects, but that's probably not the worst possible argument
I do think there's an argument for a world with an activity-object merge but it's probably the world in which the Create activity never existed