Up until recently, I've been looking at ActivityPub C2S mostly from the server perspective and it's been very abstract when I've thought of it from a client perspective
A consequence of this is that I never realized how much detail could be safely ignored in a targeted implementation for a single bespoke application. No inheritance. No unknown properties. No handling unknown media types. No parsing message bodies for implicit properties. Target and test the servers you want to support, one at a time
@yaaps Mind sharing a few links about your favorite reading about ActivityPub? If you have any laying around?
If only it was that easy. I wish Knuth had a book
After the specs, the forums are probably the next resource:
I'm of the opinion that ActivityPub is best understood as a semantic vocabulary and that servers should be oriented towards providing infrastructure in a thick client ecosystem. This is not popular, as evidenced by the proliferation of servers in the pattern of "a federated alternative to..." and it's hostile to working patterns of software development under capitalism, especially branding and time to market
@yaaps I've been thinking about the thick client/infrastructure servers thing re ActivityPub the last few days. That makes total sense to me. I think that's what I would like to see. Do you know any projects working on something like this?
I still have a lot of reading to do. Thanks for the links btw!
CommonsPub is the server project most unambiguously infrastructure-oriented
Pleroma back end leaned in that direction as an OStatus server, but that's been less of a focus while they've been working on ActivityPub
Also "gaming" is the lost city of federated social networks, so my work and that of @cwebber are going to be infrastructure. Composability is a key word, here. My project is going to look a lot like the Postfix MTA when it's mature. I haven't opened Chris's source code in a few months, but his code is distributed over multiple projects as well, which doesn't happen organically unless the design process is prioritizing reusability
@pukkamustard and it's written in one of my favourite languages!
There is a fantastic set of RDF library for Elixir (https://rdf-elixir.dev/) which make using semantic vocabularies very enjoyable.
For example the RDF.ex library has a macro that can read a RDF vocabulary and produce Elixir code from it:
chaos.social – a Fediverse instance for & by the Chaos community