A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.
A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.
Currently, the way I am determining if content is valid ActivityPub / ActivityStreams content is —
№1:
Determining if it is valid JSON.
№2:
Checking if it has a "type" field.
And that is it.
Dealing with JSON-LD would be easier in many ways if everything was defined inline.
Rather than having to get the content from a URL in the context, parse it, etc.
The ActivityPub specification does not have an example of the "sharedInbox" field in use.
Although it does say "An optional endpoint..." — I suspect a lot of people won't know (with confidence) that it can go under the "endpoints" field. For example:
"endpoints": {
"sharedInbox": "https://social.example/inbox"
},
Especially if the person is still trying to understand ActivityPub, and isn't aware of the "endpoints" field yet.
"Activities addressed to this special [public address] URI shall be accessible to all users, without authentication."
https://www.w3.org/TR/activitypub/#public-addressing
The "public address" is:
https://www.w3.org/ns/activitystreams#Public
(Yes, I am posting this for a reason.)
2/
I think there is a need for a "dumb" document format.
HTML is no longer that.
Markdown probably isn't it.
No one really uses enriched-text (IETF RFC 1896).
(I prefer wiki like formats, for various reasons, but —)
I don't think there is an obvious choice for a "dumb" document format, right now.
1/
I think HTML being the default content type for ActivityPub / ActivityStreams is unfortunate in some ways.
HTML was originally a "dumb" document format. But, it is now a "smart" application format — with privacy & security concerns.
https://mastodon.social/@reiver/108237663610634862
You should NOT just take whatever HTML is in the 'content', and put it in the web-browser to view it.
You have to sanitize it. Or, render (unsafe) HTML to (safe) HTML.
Previews in ActivityPub / ActivityStreams is what should bind the disparate software and user-experiences on the Fediverse.
Not the ActivityStreams 'Note'.
...
Previews using 'icon', 'image', 'name', 'summary', etc.
3/
I think it would be better for the Fediverse if back-end servers and front-end clients were not only decoupled, but separate projects.
https://mastodon.social/@reiver/111030466318220760
https://mastodon.social/@reiver/111223320383410948
https://mastodon.social/@reiver/112746651794313514
https://mastodon.social/@reiver/112921051726027193
People being able to have a service acting on their behalf as (at least part of) the back-end could be a path towards this back-end / front-end decoupling and separation.
2/
In fact, it is an old idea. I remember ideas like this floating around in the 1990s. Including in the P2P scene.
(It is common for ideas to get rediscovered over and over and over again. Different people trying to solve similar problems, and independently coming up with similar solutions.)
1/
In many ways, I like the basic idea of ActivityPods, Bluesky PDS, Account Abstraction.
https://mastodon.social/@reiver/114216978158867263
A service acting on your behalf, and in many ways representing you (the user), with other software.
And something to which data gets "attached".
Federated Badges! Very early stages but cool to see new ideas outside of a social media timelines.
#Fediverse #FediDevs #ActivityPub
https://badges.vocalcat.com/record/20
What about the Fediverse or Mastodon, etc, frustrates you or confuses you?
Do something nice and drop a star on Owncast’s GitHub repository. More stars, more credits.
#FediDevs #Fediverse #ActivityPub
https://fosstodon.org/@owncast/114083484919105292
Fun! I like this style of these live streams, more casual and more focused on the person rather than just the code. Check it out.