5 ms·
Wow, I always imagined Activitypub to be the better protocol and AT a cheap knock-off, but reading this article made me realize at is, actually, way better - pr
by ceayo 1y ago
Wow, I always imagined Activitypub to be the better protocol and AT a cheap knock-off, but reading this article made me realize at is, actually, way better - primarily because multiple programs can access the same identity. This is really a great feature to have! This article was a real mind-opener for me.
- verdverm 1y agoYou'd probably like this article too, same ideas from the distributed engineer perspective https://atproto.com/articles/atproto-for-distsys-engineers https://atproto.com/articles/atproto-for-distsys-engineers
- danabramov 1y agoThanks! I’m glad it’s clicking. The comparisons with AP are always frustrating for this reason as it doesn’t try to do anything similar in scope.
- psnehanshu 1y agoimo ActivityPub sounds better than ATProto, hence people assume the former is superior. This is a branding issue.
- danabramov 1y agoYea maybe! I think at:// is an even stronger brand in a sense though. Actually makes sense as something browsers may support one day, “at://alice.com” makes sense at “stuff at alice dot com”, “authenticated transfer” is a decent acronym, “atmosphere” for the ecosystem is just great (and wasn’t even coined by the team).
- paulryanrogers 1y agoDoes that mean there is a centralized identity service?
- steveklabnik 1y agoYou have two choices of identity service: did:plc, which is, and did:web, which is not. In theory additional dids could come into existence too, those are just the two that blueksy supports at the moment.
- danabramov 1y agoThat’s correct. PLC is being split into an independent entity but that is ongoing: https://docs.bsky.app/blog/plc-directory-org https://docs.bsky.app/blog/plc-directory-org It’s worth noting that PLC can’t fake your data because each edit is recursively signed. So you can verify a chain of updates. However, PLC can in theory deny you service or ignore your updates.
- verdverm 1y agoit's def not doing that right now lol, more than half the ops are adversarial and still accepted (the vast majority contain invalid contents)
- psionides 1y agoYeah, there are tens of thousands of records referencing a PDS with a certain… controversial president's name in the hostname, which doesn't actually exist at all. Also someone from Nostr made a tool that let you upload image files and encode them (split into parts) into plc directory records…
- verdverm 1y agoOh is Nostr the other one, why do these groups feel the need to try and ruin what other people enjoy?
- jazzyjackson 1y agoBlessed are the troublemakers, for they expose your vulnerabilities
- analogpixel 1y ago[dead]
- all2 1y agoSo email threads but on a web page, and filtered by subscription instead of senders/receivers. Clever. How can I add this to my website? How do you facilitate discovery? IE, what if I want to know about replies people have made without subscribing to their /social page?
- dragonwriter 1y agoResponding to the proposal (which is unjustly flagged to death, even if I agree that it isn’t a good idea): > I came up with a solution that eliminates centralized control, trolls, advertising, and really all forms of harassment, and it doesn't even require a special server. If it behaved as you describe (only followers see top-level updates and only followers of every person i the chain see replies; which I don’t think the concrete features you describe actually support, but I’ll get to that next), then it also eliminates the thing that makes social media work for both audiences and the people looking for audiences—there is zero discoverability, you can’t even encounter people through conversations. Of course, with public outgoing feeds where visibility limits are a decision of the viewer’s client (to which all the visibility-deciding work of a server is outsourced, to avoid having a dedicated social server and just rely on regular web pages), it can’t be guaranteed to work that way. It can work that way for a viewer who wants to see that restrictive of a view, but that doesn’t prevent other people from having a more expansive view. You can choose what you see, but not who can see your stuff or who can engage with it (if you have a client that behaves in the described restrictive manner, you won’t see engagement from people you don’t follow, but they can engage and others with a permissive client can see that engagement.)
- analogpixel 1y ago> there is zero discoverability, you can’t even encounter people through conversations. based on the spam and harassment on most social sites, I'd call this a feature. If you read something interesting you can email the person with your thoughts , and if they find it interesting they'll follow you. If you are a troll, they'll delete your message and they don't need to use their platform to support your comments. If everyone used this system, trolls wouldn't have a platform anymore. Here is a great example of discoverability without comments : https://herman.bearblog.dev/misc-updates/ https://herman.bearblog.dev/misc-updates/ Herman from bear blog posted about a topic, a bunch of people emailed him their thoughts, and he created a follow up post with the best of those thoughts listed out. This system definitely won't work for people that have FOMO, or need validation through votes on their comments.
- _cart 1y agoThe AT vs AP issue is full of nuance. Our community has gone back and forth on this: https://github.com/bevyengine/bevy/discussions/18302 https://github.com/bevyengine/bevy/discussions/18302
- the_gipsy 1y agoReally nice analysis, thank you.
- doctorpangloss 1y agoThis is not meant as a criticism at all, I like Bevy. Are you familiar with the Mr. Beast PowerPoint that said: > Your goal here is to make the best YOUTUBE videos possible. That’s the number one goal of this production company. It’s not to make the best produced videos. Not to make the funniest videos. Not to make the best looking videos. Not the highest quality videos.. It’s to make the best YOUTUBE videos possible. When I glance at the Bevy discussion link you shared, my reaction is: > Your goal here is to make the best GITHUB OPEN SOURCE game engine possible. It's not to make the most performant game engine. Not to make the game engine that powers the best games. Not to make the best looking graphics in a game engine. Not the highest quality game engine or game editing experience. It's to make the best GITHUB OPEN SOURCE game engine.
- cropcirclbureau 1y agoCommunity drama has always been the achilles heel of large, open-source projects which are volunteer driven. Focus on community is critical to delivering this, especially when your product relies on mind share.
- debugnik 1y agoIn my experience, focus on community is how you get community drama in the first place.
- CaptainOfCoit 1y ago> Your goal here is to make the best GITHUB OPEN SOURCE game engine possible. That sounds awful if applied to Bevy, and seems you misunderstand what "Mr. Beast" is trying to say. They're not saying make the best game engine, but make the game engine that would do best by GitHub-popular metrics, which is absolutely the wrong way to go. I hope they continue to simply make the best game engine available, as before, and ignore useful metrics or focusing on where it's hosted.
- nightpool 1y agoEvery one of these "How AT proto works" explainers focuses on data ownership—which is where ATProto shines—and glosses over data processing, where ATProto is decidedly weaker than ActivityPub. ATProto is built on a global, public view of the world, where all events are visible to a trusted global "AppServer" that can make all of the decisions for you—how to create your feed, who can see who's posts, etc—all of those decisions have to be made by a trusted intermediary. ActivityPub is more like RSS or email—your local server only has to manage the feeds you subscribe to, and your inbox is directly built from all of the posts you have access to. People you subscribe to send you your posts, and you don't have to process them at all. This is why Bluesky could never have "private likes" in the same way Twitter or ActivityPub does—every AppView needs to track the like counts of every post in the network manually. It's a huge hassle! I just don't see this architecture winning out in the long term, when compared to the AP feed-subscription architecture. primarily because multiple programs can access the same identity Actually, this was how AP was originally designed as well—it was just that the most popular early implementations took shortcuts to remove that functionality to fit them into their existing architecture. This is a direct consequence of the fact that the biggest AP implementations when it was initially adopted were descendants of older OStatus social networks, and not built to be "ActivityPub-native" from the ground up.
- zenmac 1y agoWow thanks for the valuable info. Would you recommend, for people who wants to add AP to their existing username/password application? We are currently working on something based on https://fedify.dev https://fedify.dev Would you consider that can provide more complete AP functionality?
- 1dom 1y agoI mess around with fedify a lot, it's great. It's fun to integrate with existing websites. I've thought a lot about ATProto and integrating it in similar ways. I'd love to have a look at what you're doing and how. The struggle I have is that I think the ATProto repos have a fairly strong cryptographic structure compared to AP If someone requests an object over AP, that object contents can come from anywhere easily, and can be signed easy. So for me, when someone requests an activitypub object of one of my notes via fedify, it just reads the truth from my markdown note files and returns it. If I edit my markdown files, it's no real issue, the next request gets the latest version of that markdown (there's some signing nuances in places, but it's generally straightforward) With ATProto PDS and repositories use things like Merkle Search Trees and other things which I assume means the backend data needs to be a lot more... consistent. Like the data has to live in the PDS, and that has to become the source of truth to maintain the merkle structures, including updates. But with AP via fedify, it feels super easy and nice for my source of truth to be whatever backend store I like (markdown notes). I've done enough with crypto to see the benefits provided by the transparent verifiable history of merkle like structures, but honestly, this is social media not cash: I don't care if someone wants to subtly change something to manage how they come across with their own social media. In that respect, I feel the ATProto repositories overcomplicate things a bit.
- viraptor 1y ago> primarily because multiple programs can access the same identity Why do you think that's different in ActivityPub? As far as I know there's nothing preventing (for example) Mastodon and Pixelfed using the same identity.