@steve@social.technoetic.com
@steve@social.technoetic.com avatar

steve

@steve@social.technoetic.com

American living in Southern France. I'm interested in #computers, #SoftwareDevelopment, #SemanticWeb, #osint, #DistributedComputing, #pkm, #HomeAutomation, #PhysicalComputing, #iot, #rpi, #esp32, #hiking, #traveling, learning #french and lots of other stuff.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

bengo, to random
@bengo@mastodon.social avatar

new activitypub test: create-then-update-modifies-object-checked-by-get

https://bengo.is/blogging/new-activitypub-test-create-then-modify/

steve,
@steve@social.technoetic.com avatar

@bengo @naturzukunft Isn’t Section 6.3 describing C2S requirements (like partial update) rather than S2S behavior?

steve,
@steve@social.technoetic.com avatar

@bengo @naturzukunft Thanks
for the clarification. We need to better way to label C2S/Client vs C2S/Server requirements. In my experience most people mean the latter when they say “C2S”.

notroot, to fediverse

I wanna do an ActivityPub API that's really just that... a robust, general purpose backend capable of serving a variety of client apps.

Maybe v2 would have customizable API for compatibility with existing clients.

First things first though... I checked with Awesome ActivityPub to see if there were any active projects already doing something like this that I could just jump in on.

https://github.com/BasixKOR/awesome-activitypub

There used to be, but I can't find it now... so I've got a clear runway to start ANOTHER side project.

Heheheh.

steve,
@steve@social.technoetic.com avatar

@notroot @smallcircles Are you thinking of an AP Client-to-Server extension or a completely custom client API like Mastodon's (which supports many client implementations but is focused on microblogging)?

steve, to fediverse
@steve@social.technoetic.com avatar

AFAICT (and I could be wrong), the Activity Streams 2 data model was originally intended for social activity import/export and publication of activity descriptions via RSS/Atom. In this context, I think the generality and flexibility of the data model (and even JSON-LD) have some clear benefits. However, I also think that using that data model as a command language in the protocol is more problematic and has resulted in many interoperability challenges.

hrefna, to fediverse
@hrefna@hachyderm.io avatar

What's the best way to use this?

It's given no further specification and while it seems like it would be a good fit for what I am looking for, it is entirely unclear what the best way to use it would be such that others will be able to read it and understand what they are looking at it.

Tagged OrderedCollections maybe?

steve,
@steve@social.technoetic.com avatar

@hrefna FWIW, there's a W3C Primer for streams at https://www.w3.org/wiki/ActivityPub/Primer/Streams and a related Issue discussion at
https://github.com/w3c/activitypub/issues/299

steve, to fediverse
@steve@social.technoetic.com avatar

If the community effort to define problem domain-specific AP interop profiles proceeds past the discussion phase, some initial profile candidates are: microblogging, video sharing, image sharing, audio/music sharing, media review (books, movies, etc.), and event planning. Each of these has existing implementations and represents a specific AP use case. In the longer term, other profiles, like for forge federation, could be added as implementations evolve and mature.

steve,
@steve@social.technoetic.com avatar

@Brendanjones @smallcircles Yes, that would be one aspect of it. Ideally, it would include JSON Schema or LinkML definitions of the messages needed to support a specific community's interoperability requirements.

steve, to fediverse
@steve@social.technoetic.com avatar

@helge It looks like your Fun Fediverse support tables are currently focused on microblogging implementations. Do you plan to expand that to other federated solution domains? If so, I recommend taking a look at FunkWhale's implementation. It's different than the classic microblogging use case in several interesting ways.

devnull, to fediverse
@devnull@crag.social avatar

I'm noticing that Activities contain an id, but I am not certain whether it is a requirement. The AS spec notes that all objects MUST have an id provided, but I'm not 100% sure about activities...

steve,
@steve@social.technoetic.com avatar

@mariusor @devnull After you process a Follow Activity and have recorded the side-effects, it could be reasonable to discard the Activity unless you want it saved for audit trail purposes. Even for Undo(Follow), you just need to keep the original Activity ID (if any). Some implementations, like Mastodon, support this without an ID being specified for either the Follow or Undo(Follow). The Undo is based on the relationship being undone, not the ID, in this case.

steve, to fediverse
@steve@social.technoetic.com avatar

The sharedinbox is a strange concept. It's an inbox without an actor. I suppose one could think of it as being backed by an implicit, non-conformant (no outbox) actor-ish thing that routes messages to other inboxes. There's no requirement that there's zero or one sharedInbox per server. A server can have any number of them. You could have one per set of actors in a Group or Organization, for example. But then the sharedInbox would an Group/Org actor-specific inbox. 🤯

steve, to fediverse
@steve@social.technoetic.com avatar

developers... do you implement an actor (or actors) that provide server-level functionality other than resource fetching or a relay endpoint? Can they be followed? Do they process incoming activities? Is discovery of those actor URIs required by other servers? If so, what are the use cases?

steve,
@steve@social.technoetic.com avatar

@mariusor Makes sense. I’d think using an endpoint similar to a as:sharedInbox would serve that purpose and not require a full actor representation. Does this (or will this) moderation actor also federate the moderation activities?

steve,
@steve@social.technoetic.com avatar

@mariusor Interesting. So it’s a kind of anonymizing proxy for the people-related actors implementing the moderation actions? Will it also accept incoming activities or just proxy outgoing ones? Are the moderation actions federated outward using proxy Follow relationships or published to a known server list or …?

steve, to fediverse
@steve@social.technoetic.com avatar

If you're running your based server on a home network behind a CDN, be aware that AP's key retrieval behavior will leak your home network address. Mitigate this risk with custom firewall configurations or running your server with a reverse-proxy/tunnel so no server ports are open on the home network (ngrok, Cloudflare Tunnels, etc.). Any other suggestions?

arcanicanis, to fediverse
@arcanicanis@were.social avatar

One thing I don’t quite see the point of in the spec is the emphasis on the profile designation in the media type application/ld+json; profile="https://www.w3.org/ns/activitystreams"

Whereas it MUST respond to application/ld+json; profile="https://www.w3.org/ns/activitystreams"

And SHOULD also respond to application/activity+json

But not implied support for just plainly application/ld+json

I looked at the media type registration with IANA, and there’s only 6 standardized profiles for the media type, mainly as an emphasis on different representations (compacted, expanded, etc), which makes sense: https://www.iana.org/assignments/media-types/application/ld+json

All references of the profile parameter in the JSON-LD spec are just the same as the IANA registration (mainly as referential information): https://www.w3.org/TR/json-ld/#iana-considerations

But meanwhile I don’t see the point of profile="https://www.w3.org/ns/activitystreams", since an ActivityPub object is inherently a JSON-LD object and carries the semantic meaning already defined in it’s respective embedded @context, and I don’t see what value there’d be in distinguishing a query of application/ld+json; profile="https://www.w3.org/ns/activitystreams" that’d be so transformatively different than some other form.

Is the point that’d it allow the future case of a different incompatible vocabulary at the same URI, that’s also JSON-LD, that somehow wouldn’t just have a separate media type (just as DID resolution uses application/did+ld+json instead of a profile="" of the application/ld+json media type)?

Edit: Succinctly, ActivityStreams is a JSON-LD vocabulary, not a profile of JSON-LD, so it feels actually like an improper use of the profile media type parameter, codified into a standard.

steve,
@steve@social.technoetic.com avatar

@arcanicanis One possibility is that they defined the profile because AP JSON-LD is a special use of JSON-LD (must be compacted using AP context, special date format, ...). Theoretically, someone could send activity data using full JSON-LD if the server supported it. For example, I'm working on a server implementation that uses an RDF graph store. It can accept or serve general JSON-LD or AP JSON-LD. The media type allows me to route the requests to correct processing code.

hrefna, (edited ) to fediverse
@hrefna@hachyderm.io avatar

Reading archives of conversations on , and evidently the reason we have all of this Object | Link flexibility in the specification is in part because it helps make sure that name generates the same object (and not get turned into nameMap: {en-US: <whatever>}) when round-tripped through RDF in multilanguage scenarios?

I…

okay

steve,
@steve@social.technoetic.com avatar

@hrefna Interesting. Can you share a link to the archived discussion?

steve,
@steve@social.technoetic.com avatar

@hrefna My impression from reading that email is that the example issue was the merging of the two embedded fragments with the same URI, not the nameMap per se. It would be interesting to see whether that issue can happen with an AS2-conformant (wrt compaction) document. The quasi-reification support discussed in some of the related issues seems to me to be the primary purpose for Link.

steve,
@steve@social.technoetic.com avatar

@hrefna As another implementer, I see the benefit as being able to qualify relationships with relationship-specific properties (AKA "reification" in RDF, but potentially useful in plain JSON too). I believe that's why the fence is there. There are more general ways to do it (reification) but then the model becomes even more RDF-oriented and that's not good for plain JSON consumers.

silverpill, (edited ) to random
@silverpill@mitra.social avatar

Fediverse tech roadmap

This is how I want our network to evolve in 2024. Some of the things listed here may have been implemented already by a small number of projects, but more work is required on standards and interoperability.

  • Data portability. In my opinion, this is the most important problem. I'm in favor of FEP-ef61, which also solves identity portability and unlocks many new features.
  • End-to-end encryption. MLS has become a standard, and it would be wise to adopt it. Issue 3 at fediverse-ideas provides a good overview of what we have at the moment (not much). Some variation of FEP-ae97 is likely needed to make end-to-end encryption work.
  • Connectivity. Improving connectivity means fighting indiscriminate instance-level blocks, expanding to overlay networks (Tor, I2P and others), maybe also developing standards for bridges. In many ways, these tasks are linked to data portability.
  • Moderation / spam resistance. Anything other than "list of instances I don't like" would be a huge improvement. Fediseer is an interesting development, but still leaves a lot to be desired. Additionally, standardization of reply controls is needed. FEP-5624 exists, but the mechanism described there has many flaws.
  • Scalability. How to publish to 1M followers from a single-user instance running on cheap hardware? FEP-8b32 should make various optimizations possible (inbox forwarding, efficient reposts, etc).
  • Plugins. Something like Pleroma MRF, but cross-platform (e.g. Wasm-based). Also, pluggable timeline algorithms.
  • Discovery. Content discovery on small instances: relays and related standards, decentralized search.
  • Developer experience. Documentation of de-facto standards (HTTP signatures, WebFinger). Simplified ActivityPub spec. Error reporting.
  • Groups. We have several competing standards for groups: FEP-1b12, FEP-400e, Mastodon developers are working on their own standard. It would be nice to converge on a single standard, that also supports private groups.
  • URL handlers. Again, competing standards: FediLinks, FEP-07d7 and several other proposals.
  • Quoting. FEP-e232 is a proposed standard, but most fediverse applications still use non-standard properties. Mastodon developers are trying to invent something completely different.
  • Synchronization of replies. Various approaches are being considered, but there's no clear winner.
  • Markets. So far there's only one server implementation capable of processing payments. FEP-0837 (a protocol for federated marketplace) was designed, but lacking adoption.
  • Forge federation. ForgeFed is being implemented in Forgejo, although the work is progressing very slowly.
steve,
@steve@social.technoetic.com avatar

@evan Like @silverpill said, the AP MinCore "Profile" is not a fork. It is/was a thought experiment in the context of domain-specific interop profiles with a common AP foundation. You and I have discussed how conformance is not binary, but more of a continuum. The question explored in the MinCore is "what's the minimal set of features a server could implement and still be AP-conformant?". Other protocols, like Mastodon AP interop, would be a layer on top of that.

smallcircles, to fediverse
@smallcircles@social.coop avatar

For #ActivityPub the question of "Why use #LinkedData?" has never been answered. There should be clear merits to wade through all the complexity that this choice brings, right?

Yes, its ultra flexible, and you can define your own semantic #ontologies, and theoretically it could provide a robust extension mechanism to AP protocol. Except that right now it doesn't.

What's the vision of a Linked Data #Fediverse? What great innovative #SocialNetworking #UX would it bring, that makes it worthwhile?

steve,
@steve@social.technoetic.com avatar

@smallcircles The data is literally "linked data". Although there are other options for working with distributed linked data than using Linked Data tech, I'm wondering what alternative you have in mind. Many developers use ad hoc implementation-specific techniques to manage it, but it's not clear to me that this is an improvement over LD.

steve,
@steve@social.technoetic.com avatar

@smallcircles @evan One of my concerns about the FEP process is that it is actually too tightly coupled to SocialHub for the purpose of FEP discussions. It's natural to comment on an FEP "issue" in the issue tracker. The current approach means the discussion is sometimes fragmented between SocialHub and Codeberg. I think SocialHub is very valuable. I'm just not convinced this is the best way to use it for FEPs.

steve,
@steve@social.technoetic.com avatar

@smallcircles @evan I've already discussed it on SocialHub. I personally have benefited greatly from seeing W3C and Mastodon discussions about issues in the issue comments (same for many other projects). But that is a tangent. My point is that SocialHub is a required element of the current FEP process.

steve,
@steve@social.technoetic.com avatar

@smallcircles @evan Ah, thanks. I see now it's not explicitly required by the process meta-FEP. I had a different impression based on related discussions on SocialHub. So the FEP process allows the FEP discussions to happen anywhere: SocialHub, the FEP issue comments, the SocialCG mailing list, Matrix, here, any combination of these, ... good to know. 😉

linos, to fediverse German
@linos@graz.social avatar

Why are we using json-ld in the world at all? Almost no application parses it, and even fewer seem to do it right.

steve,
@steve@social.technoetic.com avatar

@linos There are least two primary reasons for using JSON-LD in : extensibility (property namespaces) and to support integration with the myriad existing vocabularies for various domains (schema.org, vcard, dublin core, ...). A secondary benefit is optional use with Linked Data technology like graph stores, reasoning engines. and so on. Of course, all these benefits are mostly only applicable if the software is doing JSON-LD processing rather than simple JSON parsing/processing.

underlap, to fediverse
@underlap@fosstodon.org avatar

Account portability and the social web https://underlap.org/account-portability-in-the-social-web

I believe this is an important topic for the Fediverse. Please boost for visibility.

Thanks to @dottorblaster @jamesravey @hcj @mima @hirad @devnull for commenting on my earlier survey on this topic (https://fosstodon.org/@underlap/111617691764389915)

steve,
@steve@social.technoetic.com avatar

@devnull @underlap "a common format for data portability". ActivityStreams was originally created for that purpose, among others (before ActivityPub). Mastodon uses AS2 for post exports, for example. The primary technical issue is that AP/AS2 objects are identified by URIs that use DNS domain names. Those identifiers are spread throughout the AP Fediverse, so it's a challenge to migrate them to a different DNS domain. However, the social issues may be more challenging than the technical ones.

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