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?

@onymous
If only it was that easy. I wish Knuth had a book

After the specs, the forums are probably the next resource:

socialhub.activitypub.rocks

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!

@onymous
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

@yaaps The CommonsPub project doesn't look so active, unfortunately. Not many updates on Gitlab and the website certificate for commonspub.org has expired. :/

Choosing Erlang as the backend looked interesting though.

@cwebber

Follow

@onymous @yaaps

Shameless plug. But I am working on a general server and thick client. It's called CPub (gitlab.com/openengiadina/cpub). It's inspired by the ideas of CommonsPub but with a different technical approach.

@pukkamustard
I've been hoping to see the work being done along the lines suggested by the semantic web to begin showing up soon

What's your experience using Elixir and Phoenix with semantic vocabularies?
@onymous

@yaaps @onymous

There is a fantastic set of RDF library for Elixir (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:

```
use RDF.Vocabulary.Namespace

defvocab ActivityStreams,
base_iri: "w3.org/ns/activitystreams#",
file: "activitystreams2.ttl"
```

And then:

```
iex(5)> ActivityStreams.outbox
~I<w3.org/ns/activitystreams#outb>
```

Sign in to participate in the conversation
chaos.social

chaos.social – a Fediverse instance for & by the Chaos community