hrefna, to fediverse
@hrefna@hachyderm.io avatar

My next piece that I'm finalizing for is a control structure.

I'm envisioning the control structure as kind of a parallel structure to the concepts of "actor" and "attributed to." It says "who do I talk to about the object" and can also provide information about "who has permission to act upon the object."

It may or may not be the actor of an action. For instance a server may have an endpoint for flags that has nothing to do with the actor.

hrefna, to fediverse
@hrefna@hachyderm.io avatar

Draft of my (to-be) FEP for audience targeting and filtering is up at https://github.com/larpconnect/featherpub/blob/main/feps/8f9c/index.md for those that are interested.

I haven't submitted as a FEP yet (and won't for a while), but that's the ultimate goal for it.

hrefna, to fediverse
@hrefna@hachyderm.io avatar

Idle thought: I'd like a way to group results together in a cohesive group.

What is the best way to do this?

  1. Have one FEP that references the ones under it?
  2. Have FEPs support a nested structure?
  3. Putting all of the FEPs in the group into one and having subsections that can be implemented independently?

My instinct is that (1) or (3) might be the best chocies here with the lowest impact on others?

hrefna, to random
@hrefna@hachyderm.io avatar

Last week was a rough week oncall so didn't get nearly as much done on as I had hoped. Still a week or two out on that.

Looking to finish up a FEP for audience targeting this weekend. Relatively straightforward and not too many surprises in that.

Hopefully can get some actual code written on my actual project once all is done there, but we'll see.

hrefna, to random
@hrefna@hachyderm.io avatar

I think I can get the first draft of what I'm thinking for out in the next… two weeks. It will probably be sans tests for the moment, but my goal is to have a set of gherkin .feature files to go along with it by the time I make significant headway.

For the sake of my own sanity I am not going to develop the logic behind the steps in public (that'll go into my personal project), but I'll at least release the feature files and base spec docs in public.

hrefna, to random
@hrefna@hachyderm.io avatar

I think for part of what I want to do is emphasize the role of typing.

In JSON-LD in general there's the concept that "@'context is not a type, @'type is a type." Which, sure.

But then we have things where you have the equivalent of a bunch of additional fields on our objects that are not discoverable from the type.

For example:

manuallyApprovesFollowers:false is a field in my actor profile, but you can never get that information from the type: Person.

1/

hrefna, to random
@hrefna@hachyderm.io avatar

What I'm kind of thinking for is to define one or more streams.

So the inbox is a stream, but there are additional streams that may have different semantics, at least one of which (defined in the spec) is essentially "posts only."

That way I can preserve the semantics of inbox but also define the capacity to read the relevant parts of the feed, and separately define what goes into one versus the other.

hrefna, to random
@hrefna@hachyderm.io avatar

Okay, adding new activities in my framework is easy so far and everything basically "just works."

That's what I'm going for, so good there.

I think I'll add a few more of them and add a couple of object types for testing purposes and then go on to build the pub/sub and event systems.

Basically if I do this right then I should be able to have my data layer independent from my event layer and my serving layer.

It's a Lot™ to set up, but if it works then it'll be very testable.

hrefna, to random
@hrefna@hachyderm.io avatar

Okay, getting closer to an actually submittable proposal.

Not done yet, still tweaking details and examples, but now open for comment.

https://codeberg.org/hrefna/fep/src/branch/6f55/fep/6f55/fep-6f55.md

hrefna, to random
@hrefna@hachyderm.io avatar

Thinking out loud: part of my thinking in how I am approaching is what I started thinking of as the "boids model" of federated software development.

"But Hrefna, I sure as hell didn't hear about the 'boids model' in my SE classes"

Yes, this is just kind of my own colloquial thinking about it.

For those who are unaware, boids is an artificial life simulator based around the flocking behavior of birds. The idea is that we can simulate general flocking with a few basic rules.

1/

hrefna, to random
@hrefna@hachyderm.io avatar

Okay, next steps on , I think:

  1. I have some serious testing to get written.

  2. I want to implement some control/system messages. Ack. Nack. Operation. I'll probably publish an update with what I'm thinking here once I get a little farther.

This is very "not RDF" in how I'm thinking of structuring it, but that's okay.

  1. Implement the rest of the objects. This will also probably be posted

  2. Start implementing activity flows sans API layer off of just a queue for my own part

hrefna, to fediverse
@hrefna@hachyderm.io avatar

Okay, here's all of the pieces that are currently required (it will get better before I move forward, but part of my goal in doing all of this is to figure out what parts are necessary and which are not.

  1. Define an interface for the object. Have it extend one of the base annotations (Any, Base, etc).
  2. Define a record that implements the interface in (1).
  3. On the interface put a @'JsonDeserialize annotation with as of the record and using=the deserializer.

1/

hrefna, to fediverse
@hrefna@hachyderm.io avatar

More progress: https://docs.google.com/document/d/13mtl9gFmcuL-0MS-Boaeh3i6WyzXOUcRsR8pspkRvWY/edit

This is a living document that will reflect what I decide to put into the parser, so things aren't stable until much later in the process, but I want the document to be ready to evolve.

The goal is to be almost entirely compatible with the implementations of mastodon and mobilizon in terms of objects, and so most elements will reflect similar decisions.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • tacticalgear
  • megavids
  • ngwrru68w68
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • lostlight
  • All magazines