No, seriously, what the hell am I supposed to do with this object when it can literally be any of
A URI
An object
A list of either of those
A list that contains both of those.
An object of type collection which then contains either/both
Like…
just…
even a peripheral attempt here requires either/both just chucking a bunch of it out of the window and declaring an actual object model or building a billion custom serializers.
It'd be cool if one could open an EventSource on an OrderedCollection to subscribe for changes in a user's outbox, This could be used as a basis for real time chats and games.
Probably needs to be on top of HTTP2/3 to handle more subscriptions over a single connection.
Maybe even with a Triple Pattern Fragments querystring to filter by Activity type/author/cc/etc?
I'm trying to make sense of how audience is supposed to work in #ActivityPub and it feels like something is missing in the specification here both for AP and #ActivityStreams.
The documentation from AP:
Never uses audience targeting even in its audience targeting example.
Uses it almost identically to "to" or "cc"
On the part of AS it gets somewhat alluded to in 5.1.1, but not in the main section actually titled "Audience Targeting" (5.1) and says very little about it, just one example
What I really want is something more akin to the Wordpress plugin. i.e. a full integration with the protocol. A blog author that can be followed by a Mastodon user etc.
But because Mastodon only supports 8 of them (with only 2 of them being supported properly), there is "pressure" on other Fediverse software to restrict themselves to these 8.
Cool, even with relatively weird objects everything seems to be working.
Did discover some things that I need to tweak in terms of architecture, but all straightforward things (a factory here or there, mostly, to make it easier to test) and so far it has succeeded at everything I've thrown at it.
i'll say more about what this is in the morning, but anyway here's a #LinkML transcription of #ActivityStreams that will also get the implicit definition of an Actor in #ActivityPub later, along with all the other fun stuff that brings like generic dataclasses and pydantic models for programming with, sql, graphql, json schema... yno all the formats.
I'm going to guess that the #ActivityStreams authors never worked on, or didn't intend for this to be used for, #GIS :p
(not a criticism, just interesting to observe my mind going "wait, where are all of the other things you need for… oh wait this is probably meant for people who aren't familiar with Esri")
It is at this point that I noticed a lack of native supported for IRI in JVM languages. "Up the spec chain" situation was spotty; I found a couple of libs implementing parts of it. But lacking a standard representation of basic concept such as links seemed troublesome.
I'm excited to share a little thing I've been working on!
Over the past few months, I've been studying the various #ActivityPub OSS projects that are based on #DotNet / #CSharp. This started as personal research - I wanted to see how everyone else is tackling the unique challenge of implementing ActivityPub (with the oddities of #ActivityStreams and the structural incompatibility of #JSONLD) in a strongly-typed language like C#. It ended that way too - I got some ideas and moved on with my project. But I was unhappy with the overall state of .NET ActivityPub implementations, so I decided to continue the research in hope of encouraging development in this area.
As of yesterday, I've finally reviewed the very last project that I'm aware of. And to share those findings, I've put together a little website / index thing with information and links to all the project repositories. Its simple, its basic, but I hope its useful to the other #FediDev peeps out there!
You can get to the webpage itself at this link, and I welcome feedback, corrections, and contributions on GitHub.
I plan to do a bit more work on this, particularly to implement a search function. But I decided to go ahead and post it now because it turns out that there are way less of these projects than I'd hoped. :blobfoxsad:
As expected, when an instance attempts to respond to a Note with a larger audience than the note replied to, Mastodon will silently drop it from processing.
I don't actually know if this is codified anywhere in #ActivityPub or #ActivityStreams spec, but looking into it now. 💪
Edit: Might be it actually is processed, but doesn't link up to the more-restrictive parent. Also good I think. Not quite sure how I'd handle this in #nodebb ...
So, suppose I have an idea for an #ActivityPub implementation that guarantees more control over content and more privacy.
Who here knows enough about ActivityPub to help me break down the idea to detect any pitfalls and discuss viability? I could see myself coding a basic implementation but I don't have nearly enough experience to really assess its viability.
If you know anyone who could help me review a theoretical proof of concept on a really high level, please let me know.
Threads has added achievement badges during special events. I wondered if the fediverse has similar and sure enough there are ideas around this! I know Sharkey has achievements but not sure they are federated.
Every time I take a stab at building for the Fediverse, I'm immediately drained for motivation by the ambiguities and contradictions of the AP/AS2 family of specs.
Oh, you want to do some validation of the actor property of activities posted to the Outbox? Good luck. It can have any number of values, and can even (per examples in the AS2 spec) mention actors from different instances.