@kity @cwebber I've read your post and while I understand the intent, I have a really hard time figuring out how generic ActivityPub client could work and be useful.
In my mind, ActivityPub deals with the transport/data layer by providing a standard way to represent objects, activities and broacdcast those over the federation.
But how can a client implement a generic and meaningful UX for every server?
@kity @cwebber Sure, you could imagine writing a client that could post to both Plume, Mastodon and Pleroma servers, assuming they support C2S protocol.
But Plume supports Markdown, while Mastodon doesn't. I don't know for Pleroma but you get the idea.
How would the client know what the server support in terms of features?
@kity @cwebber also, projects handle different types of data.
Funkwhale and PeerTube instances deal with Audio and Video media, respectively, PixelFed with images, Mastodon and Pleroma with small-to-medium text, Plume and Write.as with long-form content, etc.
Do you think it's possible to provide a unique and comfortable experience for all those projects ?
@eliotberriot @kity I guess since that was the goal of MediaGoblin, I still hold onto that vision. It's also more true on platforms like Facebook and Google Plus (RIP) than it is on Twitter and some others.
@eliotberriot @kity I think if ActivityPub had launched with a more facebook-like flagship implementation rather than a twitter-like one, people would find this less surprising
@eliotberriot @kity You're right that some level of server feature discovery needs to be done though, and we haven't quite implemented how to do that. XMPP may be a source of inspiration there.
@eliotberriot @kity I also think that @emacsen is right that the "streams" activitypub property may be a way to help here
The big secret here is that I'd asked "everyone other than Chris" to answer the question at FOSDEM, it's because I'd already asked them this exact question on IRC a month before and they suggested using streams exactly in this way. The reason I didn't want Chris to answer was I was curious to knew what the implementers were thinking (and I already knew what Chris would be likely to say).
@trwnh @cwebber @eliotberriot @kity
Maybe I misunderstand the issue but I think part of it is that right now people are okay with having N ActivityPub identities in a way that mirrors their proprietary service life. "Mastadon, PeerTube, Pixelfed" each on their own. But if you moved the bar the other way, to each of those being some sub-stream of your general AP identity, then you'd insist on a client (or c2s model) that was flexible enough to handle it.
@emacsen @cwebber @eliotberriot @kity of course there's the new problem: which API methods does a server support? what are the limits of each API field? and that's part of the design of the API rather than the design of the server. hence why modified masto or pleroma servers run into issues with the masto API. the server needs to report info about itself a la /api/v1/instance
@trwnh @cwebber @eliotberriot @kity
Thinking about the issue of the poor state of C2S ActivityPub, implementations, maybe the thing to do is make a new AP client (without a server) that does what we want and is designed to be flexible, and then see which servers support it.
The only big downside I see is that AP doesn't have a standard authentication mechanism, but maybe that can also be modularized and abstracted.
@emacsen @trwnh @eliotberriot @kity I honestly think that oauth 2.0 bearer tokens work just fine for auth, and that's what the AP test suite required
@andstatus @trwnh @eliotberriot @cwebber @thefaico This is very interesting and I'd like to hear more, but I'm talking about a subscriber needing to subscribe to N streans, not the C2S, but rather a follower.
@yvolk @andstatus @thefaico @trwnh @eliotberriot @cwebber Thanks for your thoughtful explanation, I'm not sure everyone mentioned here wants to be part of this discussion but it's an interesting one for me!
I use the term "identities" specifically to reference the "id" property of the AP spec.
And some of the technologies you mentioned (Webfinger in particular) are not part of AP, so I think it's important to mention that.
[1/?]
@yvolk @andstatus @thefaico @trwnh @eliotberriot @cwebber
What I hear you saying is that you think Webfinger is the place to tie streams into, rather than AP itself,. but the AP spec has a section on secondary collections, which is where I would imaging having these. A secondary collection be a reference to another actor. You *could* do that in Webfinger, but you could do it in AP as well and I see no reason not to.
In what way do you think Webfinger is more appropriate?
@emacsen @cwebber @eliotberriot @kity yeah that's very much a big part of it, people are looking for "alternatives" and it's easy to promote something as "federated [x]" where everything fits your internal model. it's also easier to develop an app-server than it is a generic one. the server does all the heavy lifting, and you can define an app-specific API for handling just the data the server can process. it sidesteps the problem of server capabilities almost completely, that's the API job now