Post AxmN1HRzARfPVB2S0G by jdp23@neuromatch.social
(DIR) More posts by jdp23@neuromatch.social
(DIR) Post #AxdV6RJMyyGokBL9TE by cwebber@social.coop
2025-08-28T17:57:15Z
0 likes, 1 repeats
I'm handing https://activitypub.rocks over to the community! And I wrote a post about it https://activitypub.rocks/news/handing-off-activitypubrocks-to-the-activitypub-community.htmlI did the original design of activitypub.rocks 9 years ago and I haven't done much to keep it up to date. So the W3C SocialWG is taking over instead!As a nice sendoff, the blogpost also includes some fun AP history, which I detail a bit in this thread too ๐งต
(DIR) Post #AxdjOSCJpBrE3zWgam by cwebber@social.coop
2025-08-28T17:59:01Z
0 likes, 0 repeats
When activitypub.rocks was made, ActivityPub wasn't even yet a Candidate Recommendation in the W3C process. I talk a bit more in the post about how the spec got to where it was, and the players involved.But I also included some bonus material, some history few people have seen.Here it is...
(DIR) Post #AxdjOTdIUN22Vx9kHY by cwebber@social.coop
2025-08-28T18:00:48Z
0 likes, 0 repeats
For one thing, you may have heard the ahem "rumor" that the Official ActivityPub Test Suite, which was down for a long time because I am not a great sysadmin, was actually built out of the bones of a multiplayer text adventure game I had written.AND THOSE RUMORS ARE TRUE!It was kind of cool software though. It was kind of an interactive questionaire that would interrogate your implementation, and then generate a report that the activitypub.rocks site knew how to read
(DIR) Post #AxdjOUgWZrCvmFfpx2 by cwebber@social.coop
2025-08-28T18:02:37Z
0 likes, 0 repeats
ActivityPub grew out of Pump.io's Pump API, and then was converted to a spec: see the document for more history about what was involved.But I was also writing a lot of software to make sure things made sense. Not just the test suite! I also wrote several implmentations. Not only of the server-to-server protocol. Yes, the client-to-server too!
(DIR) Post #AxdjOVM05eNtqt4xbE by cwebber@social.coop
2025-08-28T18:04:44Z
0 likes, 0 repeats
One of those implementations was called Pubstrate, and it was my main test implementation of things at the time, also written in Guile Scheme. I don't recommend using it; it's spec-compatible, but isn't going to meet all the expectations that have evolved since. But it did work, and you still technically can run it, and I think it had some neat ideas.Here's the original messages from my test posts. I wrote them with my wife @mlemweb standing behind me, which you can see based on the text ๐
(DIR) Post #AxdjOW0le4zhtK9W8u by cwebber@social.coop
2025-08-28T18:09:51Z
0 likes, 0 repeats
But one of the other things Pubstrate took really seriously was the ActivityStreams type hierarchy. I had gotten involved in ActivityPub standardization because I was working on MediaGoblin and @tsyesika was doing the federation work, and we wanted something that could handle all kinds of media. So here you can see image support.The generic methods system in pubstrate tried to be very thoughtful about how things would render based off of a generic methods system I built for it.
(DIR) Post #AxdjOWYnbYDTas4hBg by cwebber@social.coop
2025-08-28T18:11:50Z
0 likes, 0 repeats
But Pubstrate supported the idea of many media types, and even if it encountered a media type it didn't know how to render, it would render as much information as it did know how, and use type inheritence chain as cleverly as it could.Pubstrate also supported video! So Peertube wasn't the first ActivityPub implementor of video in ActivityPub, I can claim that fame ;)But Pubstrate was pretty crude and had no users so, well, maybe I can't ;)
(DIR) Post #AxdjOXAjKWYdUVozJI by cwebber@social.coop
2025-08-28T18:15:32Z
0 likes, 0 repeats
Maybe you've heard: ActivityPub doesn't just have a server-to-server API, it also has a client-to-server API, which actually is pretty cool because it works almost just like the server-to-server API actually!But almost nobody implemented client-to-server.BUT I DIDEven more chaotically, I wrote an EMACS ACTIVITYPUB CLIENTAgain, pretty bare bones. But this is what I used to post to Pubstrate in the first post!As you can tell from the screenshot, ActivityPub really is just "like email"
(DIR) Post #AxdjOXi3KdDF9rPbFY by cwebber@social.coop
2025-08-28T18:18:27Z
0 likes, 0 repeats
Anyway. ActivityPub standardization was a large portion of my life for a long time. Ironically, it became much less of my focus in my life right around the time it started to take off (I'm much more focused on @spritely now)So over time, I've tried to hand over the reigns in bits and pieces. But activitypub.rocks was one last major pieces that was languishing sitting in my hands.But the fediverse is great, and I'm happy the site has much better chance of care now. Onwards and upwards!
(DIR) Post #AxdjOYW2KnC9esnW9w by cwebber@social.coop
2025-08-28T18:22:19Z
0 likes, 1 repeats
Oh, one more thing. There's a "joke" in the ActivityPub spec about having an ActivityPub client written in #emacs where you wrote the posts with the "source" language being in #orgmode (and as an even deeper joke, the character's name is an SICP character). https://www.w3.org/TR/activitypub/#source-propertyExcept who would actually do that haha lmaoI DID I DID THATThat screenshot of soci.el being used to compose posts that then rendered in Pubstrate?IT'S USING ORGMODE lmao
(DIR) Post #AxdjOhN9PCR17vi33g by cwebber@social.coop
2025-08-28T18:28:05Z
0 likes, 0 repeats
If you want to watch a talk about the MUD that ActivityPub's original test suite was semi-derived from, here's one I gave, scroll down a bit. There's some cool ideas in there, like the ability to update the world live https://www.gnu.org/software/8sync/And here's a blogpost about it https://www.gnu.org/software/8sync/news/mudsync-lisp-game-jam.htmlYou may notice that time is very shortly before ActivityPub's test suite came out, and that's no coincidence. I didn't have a lot of time, and i needed to borrow a lot of things
(DIR) Post #AxdjOpUtCJNWKFOLEO by cwebber@social.coop
2025-08-28T18:32:14Z
0 likes, 0 repeats
8sync basically was the predecessor to https://spritely.institute/ and so you can see that 2015-2018 was this incredibly busy time for me::- Contracting, to stay alive- Trying to run the MediaGoblin project which is WHY @tsyesika and I got involved in ActivityPub, but was overwhelmed by ActivityPub work- Was doing a ton of work on ActivityPub's standardization including writing mulltiple implementations, a test suite- Going through SICP- Developing 8sync, which informed Spritely- Making a MUD
(DIR) Post #AxdjOy9b0qh3AoUxn6 by cwebber@social.coop
2025-08-28T18:33:38Z
0 likes, 0 repeats
Anyway, history history history. Anyway, ActivityPub is not me, it's not about me, but this handoff is very personal in some ways, so I hope you'll forgive a bit of a personal detour. And anyway, I realize very few people know about all this stuff, and maybe it's interesting to someone, so I hope you enjoyed this tread. ๐
(DIR) Post #AxmN1HRzARfPVB2S0G by jdp23@neuromatch.social
2025-08-28T20:40:23Z
0 likes, 0 repeats
@cwebber thanks for everything you do -- including sharing this history. It's very interesting to me, and I'll be updating the "Mastodon partial history" to link to this thread! Looking forward to a few years from now when Spritely has a history that's as long and as rich.
(DIR) Post #AxmN1IaWwA611y2mxc by jdp23@neuromatch.social
2025-09-01T23:53:00Z
0 likes, 0 repeats
@cwebber done! I included a quote from the blog post at the start of the ActivityPub section of https://privacy.thenexus.today/mastodon-a-partial-history/#activitypub and linked out to the thread for history and artifacts.
(DIR) Post #AxmN1Jd34HhkG4EJWa by jdp23@neuromatch.social
2025-09-01T23:53:55Z
0 likes, 0 repeats
@cwebber Also, a question about your preference. The first time I mention you in that section, I refer to you as "Christine Lemmer-Webber". After that, do you prefer "Lemmer-Webber" or "Christine"? I currently have Lemmer-Webber, but am fine with whichever you prefer. Others in the article are a mix, basically whatever people prefer.
(DIR) Post #AxmN1KTVvDfismmDIm by cwebber@social.coop
2025-09-02T00:39:38Z
0 likes, 0 repeats
@jdp23 Either is fine. Christine is usually best if it's a nearby-mention, or Lemmer-Webber if it's distant from the first full name mention, but happy with whatever!
(DIR) Post #AxmN1LA3N3hR0igBbk by poopdotnet@blog.poop.net
2025-09-02T00:40:41.703790Z
0 likes, 0 repeats
@cwebber @jdp23 i had to turn around....