Webmention already exists and is service agnostic and interoperable. My assertion is that protocols for handling the social function of ActivityPub predate ActivityPub's development and could be unified by a client without creating any new protocols that aren't already in use, so what is it that ActivityPub is doing better than those protocols that justifies intermediating the social graph with group servers? I'm sure there are good answers to this question, I just want to know what they are with more clarity.
- Posts
- 5
- Comments
- 123
- Joined
- 1 yr. ago
- Posts
- 5
- Comments
- 123
- Joined
- 1 yr. ago
If you read the post you'll note I mention Webmention, email, and XMPP, which all handle bidirectional communication in different ways. Webmention in particular enables implementation of both on-site comments and pulling comments from off-site services to display locally on a post/page, as well as replies to those comments.
I'm not suggesting RSS alone is sufficient, but rather that existing solutions/protocols appear to exist for the problems ActivityPub seems to be solving, but without the step of intermediating publishing through federated servers. A client could be built tying these protocols together as a social networking front end.
My question is, what is ActivityPub solving that the combination of these existing services do not? Unidirectionality isn't it, though someone's prior comment pointed out the efficiency of push vs pull in terms of content distribution and I do see that point.
Good to know.
Regarding polling efficiency, that makes sense. As I understand it ActivityPub uses a combination of push notifications at time of publishing and pull notifications at time of subscription/query for objects? I can see how offloading that to an instance for multiple users vs every user definitely increases efficiency for content discovery/inboxing. I know there are protocols like websub to add push notifications to blog publishing, but they are required to be done at the publisher/host side. I do see this as a big nudge in ActivityPub's favor.
Duration of caching is set by the instance admin I take it?
At a minimum this is adding the number of instances that federate a given content streams to the multiple of storage needed to host the content, even if that storage is ephemeral. Not so big a problem at 100,000 users, but at 100,000,000 users this is a lot of storage cost we are talking about. Unless somehow the user/client doesnt cache the content they pull from an instance locally on their device when they view it?
Regarding Authorship, if there wasn't an issue then ATProtocol devs wouldn't have made it the cornerstone feature of their network. The ability to move accounts between instances and maintain content control permissions is currently one of the big focuses of development on ActivityPub as I understand it. Also as I understand it many Fediverse instances dont have edit functionaly enabled, meaning once the content goes out it is out of Author control. I'd like to know how delete requests propagate, when the "Object" is deleted does a request to clear cache go out to all federating instances?
My point was this isn't an issue when all content is self-hosted, because the author as the host can edit, delete, or migrate all they want and maintain full direct control over the source of that content the client interacts with whenever a pull request comes in. Yes the user Caches the content when they read it, but there is no intermediary copy.
@rglullis@communick.news I think you might have some insight.
I just read through your article in detail rather than skimming, and what you outline is perfectly mirroring my current sentiments. I just posted a post asking a related question: why build ActivityPub instead of feature rich clients built on-top of existing protocols like RSS/Atom/email which are already built around self-hosting?
There is something about the server/instance intermediation of ActivityPub that strikes me as antithetical to the goals of distributed social networking, but I do understand the advantages of offloading moderation and server admin to specialists. Instance as nexus for message routing is an interesting way to look at it, I have been thinking of it as Instance as Aggregator, essentially providing group moderation and directory services but offloading all content distribution back to the host/client format of the open web/blogosphere. It would solve the authorship issue among other problems if Syndication was actually just linkback to the original host.
LOL, what? My brother, this is like using a microwave an complaining it doesnt brown your pie. Don't blame the pie, you picked the tool.
As I had to have crammed into my understanding a few times, all ActivityPub posts are in fact the same, they are completely interoperable, it is only the Instance and Client which determine how you can interact with that content.
If you use your instance webclient as the only way to interact with ActivityPub content, you are choosing to defer the decisions of how you interact with the content to your Instance admin. It's not a FediVerse problem, it's a you problem.
Also keep on mind many Clients, including Insterstellar and FediLab, allow you to log in to multiple accounts on different instances and switch between them easily.
If you want more features, use a broader based client, and subscribe to the users/communities on the instance you like to keep continuity of content.
This does remind me that I wish that Fediverse clients would have RSS reader functionality built in by default. I have a sneaking suspicion some do and I just don't know how to use the feature. Effectively allowing people to "boost" aka repost with backlink RSS updates on a Fediverse client would enable most of what a blogger would want from the Fediverse, with the exception of receiving all the comments on the posts they share.
Bridgy does that, but then it is essentially just a mirror so it does have the server inefficiency of redundant hosting built in.
That you might say is the fundamental design decision of Activity pub, shifting the hosting burden from a single host to a distributed network of server instances. This enables a more robust network, with instances holding content the users have interacted with regardless of if the original host instance goes down. It also reduces time to load for content after it has beed federated to a user's local instance, assuming it is closer in proximity and capable enough. At the same time, this makes content ownership and control a challenge.
Functionally the Fediverse is a public commons with content ownership practically distributed across the network of instances, whether copyright says so or not. Attempts to impose universal author controls on this framework face a lot of dissonance because it is fundamentally at odds with the underlying concept of federation as distributed hosting. The minute a host begins hosting content over which they have no control (such as encrypted posts) the potential for abuse skyrockets.
Since the popularization of the Distributed Social Network concept I have wondered whether pre-existing content distribution infrastructure like RSS might not be more advantageous as a backbone for social networking, with the development load entirely shifted to the client side and away from protocols. The IndieWeb project is playing with some of these ideas, and I have seen some prototypes online of RSS based social networks, so my question is, what is the fundamental advantage of ActivityPub over the combination of these other existing protocols with longer histories and broader existing implementation? RSS, email, XMPP, etc. Is lower latency really a good enough justification for widely redundant data distribution?
This question becomes increasingly relevant when it comes to multimedia, and the minute that you offload multimedia to central servers by link embedding instead of hosting within the instance, boom you are back to the old centralized architecture and why are you federating?
So I am going to pose this question to the Fediverse myself, what is the reason that federated content distribution should be adopted for general use rather than distributed aggregation? That is to say of a client performed with the same features as a Fediverse front end, but all of the content was self-hosted and listed via RSS or Atom with comments handled via Webmention, direct messages via email or XMPP, and moderation handled at the level of aggregation via instances (meaning a user "joins" or "subscribes" to an instance, and that instance provides a ban list, list of feeds subscribed to by its users for discovery, provides a user directory) what would be the features that this type of system would lack that ActivityPub based systems have in place?
There are three advantages I see, and I'm not completely sure they justify mass adoption vs. the cost of broad redundancy of content and authorship issues.:
- Choosing local instance for faster loading, but this only is an advantage after content is brought in for the first time, in which case it actually is slower as first the instance has to pull the cintent and then serve it to the user.
- "all" content in the protocol is of the same type, allowing for easier interoperability between clients and services. I'm thinking this is the root of what most people will say is the big advantage of ActivityPub vs. older protocols, but I'd like to hear more about why this is enough of a reason to overcome the inertia of existing mass adoption and support of the alternatives.
- It isn't based in XML, and modern devs don't want to use XML. As I'm not a coder, I cant say how big an influence this has, but from what I have seen it seems to be a substantial factor. Can anyone explain why?
Very interesting, so just with a tweak to the client you could treat communities as basically (hash)tags instead of forums? I suppose what I'm thinking of amounts to unique tag identifiers that are computer identifiable based on subject matter / content. I know that effectively this is what is going on under the hood of the social graph at the large social media sites, but rather than connecting the content together into transparent collections they instead serve it to individuals through the suggestion engine as part of feeds.
Something both "spontaneous" and somewhat transparent in at least the grouping/collection is what I think would differentiate the feature, but how to defend it from manipulation is a big question. How do you protect algorithm/AI guided curation from AI guided manipulation seeking to maximize placement of content in as many groups/collections as possible? Even a reputation system could just be used to reenforce more advanced content placement techniques.
I guess there is always the big shrug, if it is relevant it is relevant.
The difference is that I'm talking about the automation creating completely new groupings, most akin to a community on Lemmy, that coordinated across multiple users, in my mind "simultaneously" with the user still agreeing to opt in to inclusion in that group.
There is an alternative way to do this, which would be that the automation groups the posts after posting, however there is a question there about opt-in, will users want to opt existing posts in after the fact?
One way that definitely would be easiest to implement would be if these groupings are essentially threads with a single piece of content as the "start" / "seed" of the thread and the other posts relating to that thread. Regarding opt-in for that I suppose it could be as easy as enabling/disabling "thread seeding"
Yes, the automation datastream would need to be segregated, and probably ephemeral.
The point is that if you want posts to spontaneously coalesce with some kind of shared Metadata, you want the ML content analysis information of the post to go out before the actual post is published so the final post Metadata can include the "group" tag or whatever you want to call it.
Alternately you could do it after the fact by editing the post, but that seems like there would probably be some degree of chicken and egg scenario.
All of this could be done by the client completely independent of post metadata of course, but then how do you make the relation of the posts to each other consistent between multiple users? Is that even a desireable/necessary goal is a question I suppose.
Regarding "where content should go", I mean like which community to post a lemmy post in, or which account to post to if a person manages multiple topical accounts (or accounts in different instances specialized for specific services), or whether to format it for loops vs peertube for video, etc.
Gossip wise, I'm imagining compressed data posted in a format only intended to be ready by the automation systems which happens before the suggestions are made, so that the suggestions can include dynamicly grouping content before publication by appending the relevant metadata/format (like posting in a lemmy community).
I'm going to have to dive into push notification handling, I basically minimize the use of push notifications at my desktop level to only push work related content, and use the notification system of the clients to handle the "recreational" content which leaves me checking lots of platforms separately.
It makes sense that there should be the ability to create separate profiles with different filters and behaviors at the push notification manager level, I just haven't thought to look into it before.
Regarding killer apps for ActivityPub, and unified clients, I have a second idea which I didn't want to cloud this thread with that seems somewhat inevitable that will require a central portal with access to all services (and accounts?). That is a single publishing UI where the user creates/uploads any piece of content and then it suggests what venue/service/account to publish it on and related add-ons like hash tags, etc. With the Fediverse the APIs are open and multiplatform publishing clients (like FediPlan) already exist, so a level of light ML/AI for publication seems inevitable.
The next level of this, and what could be a "Killer App" is spontaneously generated affinity grouping via content aware publishing, meaning that the publishing client not only suggests where the posts should go, but also has a metalayer where the publishing clients instances "gossip" about the content being published and then create brand new "spontaneous" venues to publish that content in alongside other similar content being published by other users. Suddenly your text post about a super-niche interest or problem is pooled with posts by other users on the same topic, and bam you have a relevant discussion group of commenters/posters.
Problems of course arrise from this re:advertisers/promoters as well as unsavory/harmful mutual interests, but to be honest I think this is more of an inevitability than a possibility, so getting ahead to architect it in a way that minimizes potential abuse before the corpos get on it is probably a good idea.
I use mbin for threads and microblogs, but it is missing some multimedia support. Someone told me that it can follow peertube accounts, but it only populates text, so I'm going to check that out next. Maybe it will evolve/build steam fast enough to really become the does-it-all platform with tons of devs putting in the necessary work, but right now I don't think it qualifies.
As a side note, what I'm talking about would be an alternative approach for a specific reason, dedicated UIs for specific content streams can be chosen by the user rather than baked in to the platform. For some people, this modular approach is going to be better.
Yes, basically a browser plugin and a skin would do it. Someone just commented that push notifications at the desktop level handle this for them, and that was an aha moment. The extension could just be a push notification log woth the ability to filter for a group of designated sources.
Why don't the highest use rate clients for Fediverse services look like standard browsers? There is a level of pure aesthetic sensibility at play.
I'm interested in what you mean by your desktop handling your notifications, do you have a central log of notifications you can access via your desktop?
This is actually a pretty great angle I hadn't fully thought out, most clients do push notifications, so is what I'm really talking about just a push notification log with the ability to filter for a set of designated sources? That would definitely handle a hefty chunk of what I'm getting at, the rest is basically just a browser skin and some extensions.
Yes, thank you.
The core of my proposal is to minimize the dev burden of a unified platform by utilizing the siloed web clients for content interaction while centralizing notifications/inbox.
This should please both camps because the platform people will just keep doing the same thing they have been doing, while the browser folks get a single point of interaction with notifications but multiplatform capability on content interaction/graph navigation.
This is an issue of reading comprehension, I'm talking about a browser with a UI customized to fit Fediverse needs first and websites second, plus a service embedded in the browser to pull unification from each service into a single stream.
Preserving website functionality is still essential to the browser, because both the fediverse clients and the links posted on them should in my opinion be opened in that same browser by default (or set to open a different browser if the user prefers).
Im just talking about UI, no one said anything about blocking websites. Just because the address bar doesnt live onscreen by default doesn't mean it should be eliminated entirely.
If I look at ActivityPub as simply a push notification layer for publishing then it makes me think it could be implemented straightforwardly without needing intermediating instance servers? I got some hint of this via IndieWeb discussions but haven't seen a great description of how it would work, would it basically just cache all activity/content/objects from "subscribed" federated sources on the local host, basically a one-person instance?
Does ActivityPub provide the ability to receive notice that content has been posted without caching the full content, essentially indexing posts?