@FourOh-LLC I agree with this and really wish we would focus on things that are actionable. I wish we could turn this place into a haven for content creators, actual content creators
I think a good part of this is going to come in the form of custom Activity actions. I’m about to get into the underlying technicals of ActivityPub, so bear with me.
If you look under the hood, ActivityPub has a bunch of “Actions.” Like, Repeat, Note, and so on. They represent different things but they federate. Well, what if we made-up a bunch of new ones?
Example: chess. Actions for Start Game With So-In-So. Move one square to another, and so on. It wouldn’t just be generating text that the user sees, but it would be generating data that can be interpreted by a computer. The backend could evaluate if a move is legal or not, for example.
This plays into my fixation with rich presence this year, and why I got so pushy with the source code maintainers to not deprecate scrobbles. I think the future of fedi is in adding new things to it. If you look under the hood, you will quickly realize it can be so much more than federation of mere text and images.
It will happen, the key is to get as many people to host their own nodes as we can.
I call them residential owner-operators, as they post on their own time and host the VPS on their own dime. There are just too many great uses for the Fedi to be ignored, I have at least a half a dozen from discussing property taxes, to introducing the IPFS or other immutable storage into local government, to CAD design and 3D printing fundamental, everyday articles.
When you are creative, political discussions are really a waste of opportunity.
Lemmy does run on ActivityPub, but it illustrates my point, that the protocol can be used for anything that doesn’t require live streams of content like a chat room does.
Anyway, to illustrate ActivityPub, it’s really just a structure where these programs exchange JSON blobs. JSON is a text format designed to be both human-readable, but also easily interpreted by computers. Here’s an example of an ActivityPub object:
{
"@context": "https://www.w3.org/ns/activitystreams",
"summary": "NEETzsche listened to a piece of music",
"type": "Listen",
"actor": "https://iddqd.social/api/v1/accounts/NEETzsche",
"object": {
"type": "Audio",
"artist": "Outerspace",
"title": "Aprons Off",
"url": "https://www.youtube.com/watch?v=IB-04kIgFTc"
}
}
In this one, I listen to the song Aprons Off by Outerspace. This action was be “federated” – sent around to many nodes – and then those nodes can interpret this information how they like. I have attached two images: one on my instance, and one on Marine’s instance, breastmilk.club. This Listen action is now on both of them. It’s also on yours. The only difference being, yours isn’t configured to display it. See the two attached images on one way to potentially interpret this information.
Does this illustrate just how open-ended this protocol is, in a good way? This is a petty use of the protocol, but it’s still cool. We can do things that are not so petty.
I am not a coder and I am too old to master anything new, so these days I focus on Utility. What you wrote about ActivityPub I did not know before but I think I understand.
What about Zot, did you look into it? I maintain one Hubzilla node, and getting ready build another under a different DNS do document and demo its Nomadic Identity, Cloning, and Channels / Profiles features.
We positively need more protocols than just ActivityPub, and Zot has some truly useful features (to me at least).
On this note: I have no idea what happened to Lemmy.. I was under the impression they WERE creating their own protocol to mimic Reddit - they the next thing I noticed is they converted to ActivityPub! What a lost opportunity!
I understand JSON, it's pretty universal these days. I'm pretty sure I can learn to do this much, and its entirely awesome for sure! I was waiting to start with this for OpenSCAD, the next release will have more and better JSON support. What I will be doing is sharing 3D objects. Contrary to popular belief, 3D printed object must be designed for the nozzle-size, for the layer-height, for the slicer, for the printer. I designed and printed thousands of small to tiny models, and these are the facts.
Well, the thing about ActivityPub is that it’s ultimately about someone doing something. Sending a message, listening to a song, liking a post, and so on.
But here are a few things I was thinking could be sent over ActivityPub meaningfully (as in, the content is more structured than just a block of text in the content field of the JSON blob, but carefully structured into its own many fields, later to be interpreted by a client) but currently aren’t:
Measurements that take place at a certain time, like the temperature from a particular thermometer or the altitude of a drone
Moves in games like chess or Magic: the Gathering
Dice roll outcomes, deck shuffles
Legal filings, arrest blotters
Logistical details for things like flight takeoffs and landings or shipment arrivals and departures
Lurking data, like who glanced at a post and who clicked on a post to read it in isolation
These are just examples but hopefully my “vision” here is making sense. We techies should be endeavoring to create as many of these as possible and bake them right into the current implementations of Pleroma and so on