Relaxing treatment of non-notes by Mastodon
-
@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
-
@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!)
-
@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>”
-
@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 -
@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 -
@erincandescent that’s probably it. I think whatever “can of worms” that contentful Activity objects bring to the table is just normal everyday expressivity. Why force yourself to publish exclusively a Create Note or even a Create Article when you can be more semantic and publish something more accurate to what you really did? Why treat the myriad Activity types any differently? If it were just about objects, we might as well generate feeds of exclusively objects and skip the Create entirely.
-
@trwnh I love how as we hash this out it turns out the two of us are in violent agreement and we're just disagreeing on the way to proceed from what exists
-
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
You can do all of those things and they mean whatever the negotiated meaning is between the human author and the human audience.
From an AP machine view, Liking a Like just means that your Like SHOULD be added into the `likes` collection of that Like. From a human view, it simply means “I like that you liked this.”
-
Darius Kazemireplied to infinite love ⴳ on last edited by
@trwnh @erincandescent fwiw I'm 100% on board for following Collections exposed as streams. It seems to me the reasonable solution to the as:Listen-spamming issue here. If you subscribed explicitly to get as:Listen then it is completely reasonable to expect your client to know how to handle it in a way that is not annoying to the end user
-
@erincandescent haha, I don’t think it’s violent! nor do I think it’s completely agreement, either — we probably still disagree about the fundamental nature of an Activity, for example.
To summarize, how I think we should proceed is that we should implement more generic support for text reprs of arbitrary objects, including arbitrary activities. My happy default is that any object with content is a “post”, and beyond that, you MAY choose to support contentless Activity types with side effects.
-
@trwnh @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap and I agree, but I think this approach if actually implemented really combinatorially explodes the protocol. An implication of this direction of thought is that your like has a likes collection, and that likes collection has it's own likes collection, ad infinitum.
You really can express absolutely everything in ActivityPub/AS2 and it's it's biggest flaw IMO. The combinatorial explosion really paralyses implementers -
infinite love ⴳreplied to Darius Kazemi on last edited by
@darius @erincandescent It’s all just email subscriptions in my head, lol. Like in Github you can choose to be notified of comments, forks, etc. as you please. If LastFM added support for email notifications any time a friend scrobbled anything, and you subbed to that, well… hey, it’s your inbox, right?
-
@trwnh @hongminhee @julian @michael @mike @pfefferle @renchap @thisismissem if we got to do a clean slate do over, I'd commit to either full unification or separation of objects and activities, and also the "implicit collections" would not be reified as Objects (ideally we'd get structural addressing too: you'd be able to explicitly refer to a users followers - for example - without having to know the URL of the collection)
-
-
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @michael @renchap
This is why it should be simplified to “just render the content/summary/name” for blogging-oriented apps. The combinatorial explosion is a consequence of hyperlinks. You can’t do away with it. Side effects should be progressive enhancements.
As a publisher, what you CAN do is decide not to put a `likes` collection on everything. This means that the Like of a Like has no side effects.
-
@erincandescent @julian @mike @hongminhee @thisismissem @pfefferle @trwnh @michael @renchap
In that clean slate scenario, i would want to explore moving the information carried by activities into headers. -
@erincandescent @darius I heavily dislike the firehose model and would be terrified if my email inbox submitted to the same philosophy.