new from me: FR#156 - Share Where?
on @Mastodon 's new Share button, the Mastodon API and protocol ownership
new from me: FR#156 - Share Where?
on @Mastodon 's new Share button, the Mastodon API and protocol ownership
@[email protected] I'd say a protocol handler would be one small step in making this better handled.
The friction with a global "share to the fediverse" button is the instance chooser. Not knowing what your home instance is is a major sticking point.
A protocol handler could allow you to skip this step, assuming you have an app that has registered against it.
Otherwise, yes, the same fallback would need to continue to exist (enter your home server! blah blah)
@julian @fediversereport Indeed, the Fediverse desperately needs an URI scheme (for example web+ap, but something else might work too).
In XMPP you can implement a provider independent share with feature with xmpp:?message;body=hi
I've trying to make web+ap: happen for a while and #Conversations_im for example auto links URIs like that (my small contribution as someone who is not really in the Fediverse community)
@[email protected] I'd love to learn more about prior attempts at utilising the protocol handler. Was it Mastodon who tried?
@fediversereport Good overview as usual.
One point I would have added is that, while Mastodon announced this Share button a while back, a “pure” ActivityPub-based way to expose share URLs and similar features exists in FEP-3b86 (https://fediverse.codeberg.page/fep/fep/3b86/) and has also been gaining prominence recently (c.f. the list of implementations).
For example, ActivityPub for WordPress published its v8.0.0 today, which includes new “Like” and “Share” buttons that use this proposal.
@trwnh Yes, that's accurate. I meant “pure” colloquially in contrast to “implementation-specific” (hence the scare quotes), but it is indeed WebFinger that's being extended, not ActivityPub itself.
@trwnh Your point is going over my head.
(a) Yes, the FEP specifies some behavior, with the goal being that different ActivityPub server software can implement it to achieve vendor-independent share (etc.) buttons.
(b) I've never implemented FEP-3b86 myself, so I'm probably the wrong person to discuss possible shortcomings. Going by the examples, its mapping of parameters to object properties appears to make it quite flexible. But I don't know – take it up with @benpate. 🙂
@julian we may just be using words differently. my confusion was regarding "activitypub-based" and "[not] implementation-specific". to me, both of those statements are false.
i think i may have already mentioned to @benpate the lack of flexibility with the FEP and also the explosion of one-off "intents", as i prefer a single outbox, much as i prefer my definition of "activitypub server" to involve publishing arbitrary activities without enumeration. ;)
I have a hard time visualizing what this UX would look like, and I'd *love* to dig through a drawing, or mock up, or product demo to showcase this idea. If it works, let's build it.
At the end of the day, I'll use whatever the best solution is for the end user, regardless of just about everything else. :)
I'd say "ActivityPub-based" is pretty close, though we could split hairs and say that #FEP3b86 does use the Activity Vocabulary.
The FEP just documents the real-world interfaces that we already have, so that websites can link to them remotely.
But I'm not sure you could make real "Share" "Like" or "Follow" buttons with just ActivityPub. It's fine for what it does, but there's a lot it DOESN'T do... and that's ok.
We're building an ecosystem, not a single protocol.
Mastodon's share button is a step forward. And we can celebrate that while also hoping that they don't stop here, and open it up to work with other Fediverse apps in the future.
@dansup is also working on a promising open implementation called @webintents. And hopefully someday I can publish my own share buttons, too.
The good news: everyone recognizes the need, and we're getting lots of ways to solve this problem.
@fediversereport @Mastodon Is this a failure of Mastodon for not being more open or on the great AP community for not stepping up and getting a more generic share button setup sooner?
🤔
@hiker @Gargron @Mastodon @fediversereport @swf
If everyone implemented the exact same features, what would be the point of having dozens of different fediverse software projects in the first place? The only thing they'd differ in would be the UI then.
Imo it's cool that we have so many different projects with different visions that still can do basic communication with each other without sacrificing their uniqueness. It feels very human.
The Mastodon API is open source, but it is not an open standard. It is designed, maintained, and changed by one project, without input from the rest of the ecosystem.
Not without. The design of this API is shaped by the needs Mastodon users. Sometimes PRs are submitted by developers of 3rd party clients and by developers of other servers. Independent implementers of Mastodon API often extend it, and copy each other's extensions, there is even a discussion about Mastodon API Enhancement Proposals (similar to FEPs).
So I think that by now it is very much an open standard.
ActivityPub API may have W3C's stamp or approval, but that doesn't mean anything if nobody uses it.
P.S. Does your blog not federate anymore?
@[email protected] yea I was about to ask, @[email protected]
AP.space has everything up until this one I think. @[email protected] isn't posting anymore.
@julian @silverpill @laurenshof
yeah, unfortunately I had to turn off federation for my wordpress blog. a persistent issue with how the cache interacts with ap makes the website show raw json when it gets popular. this has been a structural issue for a long time, and after it happened 4 times in a row on my most recent posts ive decided im done with it, because it was a major net negative on my distribution
It would probably be really good for the ecosystem if @Mastodon was explicit about reuse and reimplementation of its API.
In particular, a license or IP non-assertion pledge that says, as far as Mastodon is concerned, anyone can clone their API in a new implementation, regardless of code license, and Mastodon won't assert patent, trademark, copyright, or other rights against them.
@[email protected] can one even patent an API 🤔
That said, if the interface contract defines some behaviour that requires a patented technique, you might not be able to implement the interface correctly without violating the patent.
For example, back when the compression used in GIF format was patented, you couldn't implement a `encodeGIF(filename)` interface correctly without violating the patent.
A non-assertion pledge by Mastodon makes it clear that third-party developers don't have to worry about that. "We think you can clone this API without violating any of our patents [especially because we don't hold any!], nor trademarks or other IP protections. We will not make it hard for you to implement this API freely."
There was a huge fight about this (in US courts, at least) between Google and Oracle. It was over copyrights, not patents, but I think it still applies.
The US Supreme Court ruled that it was fair use to implement someone else’s API.
It should be “settled law” but that doesn’t stop someone else from suing you anyway, or making life difficult (as Apple does) for 3rd party API implementators in other ways.
More info for those interested: https://www.google.com/search?q=oracle+java+api+lawsuit
I think that’s why Mastodon’s pledge is important. They’re basically saying: you’re safe to use our API, no matter what we might be able to enforce legally.
It’s the right thing for them to do.
@benpate @julian @fediversereport there are a few tools for this. One of the easiest would be publishing the API definition as a Report from the W3C Social Web Community Group. The Contributor License Agreement (CLA) for community groups covers most of what you need and has been well reviewed by expensive lawyers:
This is a really nice read, and I would love to keep up with your stuff, but I don't do newsletters. Any chance you could implement an RSS feed, or did I just not see it?
Ty. You'd be surprised at how many article sites made for Fedi don't have RSS. It's pretty wild to me.