dice.camp is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon server for RPG folks to hang out and talk. Not owned by a billionaire.

Administered by:

Server stats:

1.6K
active users

#activitystreams

0 posts0 participants0 posts today
Replied in thread

@mamund thank you. I will also give the linked article on agentic systems a read.

Note that #ActivityPub here on the #fediverse has this need to discover and introspect the capabilities of actor endpoints on the network.

This entirely missing. With #ActivityStreams #LinkedData endlessly versatile, a player on the fediverse can freely invent their own flavours on-the-fly, introducing protocol decay and makes #interoperability harder.

Whack-a-mole driven development to moving targets ensues.

After toiling away at this for a few months, I'm releasing two new Go projects for the fediverse today:

  • longdistance, a JSON-LD processor.
  • pana, an ActivityStreams library built on longdistance.

I built these projects with the hope to make it easier for folks to get started building on the fediverse themselves. You can read a bit about this on my blog.

(If you happen to have computer touchers in your followers, I would appreciate a boost.)

Codeberg.orglongdistanceJSON-LD 1.0 and 1.1 library in Go

Is this a valid ActivityStreams note?

{"@type":["https://www.w3.org/ns/activitystreams#Note"],"https://www.w3.org/ns/activitystreams#name":[{"@type":"@json","@value":"NoLanguage1"},{"@type":"@json","@value":"NoLanguage2"},{"@language":"en","@value":"English1"},{"@language":"it","@value":"Italian1"}]}

Trying to figure out if my thingy outputs valid JSON-LD when language-tagged and language-untagged strings are present...

(@context is missing for now...)

#ShowerThought :blobhyperthink:

It is interesting how dogmatic our thinking is. If I imagine myself as a person, my awareness. I have a set of senses, and through them I receive streams of information through time.. timelines. And I do social networking my entire life, since birth. Yet in no way does my world look anything like #Xitter, or even #Mastodon for that matter. My initials are A.S. and I just `as:Like` to `as:Note` this now and then. 😅

Replied in thread

@frankstrater @dansup @peertube

Other than that.. I started calling current AS/AP fedi the "as soon as possible" fediverse, where necessarily early app implementations served as the de-facto reference implementations for the #W3C #ActivityStreams and #ActivityPub open standards.

At serious cost: Ever increasing #ProtocolDecay and subsequent #WhackaMoleAdoption i.e. retaining app-by-app interop pipes against moving release targets.

When is Video domain getting standardized? That's my question.

Continued thread

I started referring to the AS/AP or #ActivityStreams / #ActivityPub based #Fediverse as the "as soon as possible" #fedi.

It's the federated universe that was the lowest hanging fruit in the #FOSS community, where individual projects are great at producing compiled #code and #OpenSource #repositories to inspire others to produce more compiled code.

The fedi we can't get is the one where we all #collaborate and #cocreate at the level of the #OpenStandards #ecosystem, where the true potential is.

Continued thread

I started referring to the AS/AP or #ActivityStreams / #ActivityPub based #Fediverse as the "as soon as possible" #fedi.

It's the federated universe that was the lowest hanging fruit in the #FOSS community, where individual projects are great at producing compiled #code and #OpenSource #repositories to inspire others to produce more compiled code.

The fedi we can't get is the one where we all #collaborate and #cocreate at the level of the #OpenStandards #ecosystem, where the true potential is.

I'm looking for your opinions from the developers of the fediverse.

A common HTML web page can contain related links via the <link> tag. I would like to do the same for Activity Streams objects, for example:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json",
  "type": "Article",
  "name": "A year with the fediverse",
  "content": "2024 was truly a year where I was deeply immersed in the fediverse. …",
  "url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/",
  "attachment": [
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ko",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html",
      "mediaType": "text/html"
    },
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ja",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html",
      "mediaType": "text/html"
    }
  ]
}

Do you think this makes sense, and would it be appropriate to put Link objects in the attachment?

MDN Web Docs<link>: The External Resource Link element - HTML: HyperText Markup Language | MDNThe <link> HTML element specifies relationships between the current document and an external resource. This element is most commonly used to link to stylesheets, but is also used to establish site icons (both "favicon" style icons and icons for the home screen and apps on mobile devices) among other things.

@al1r4d

independent from any language, the checklist is

:digitalcourage: read the specifications in the correct order :)
This means you can read the protocol spec. first to get an overview w3.org/TR/activitypub/
but all of these W3C recommendations have "Normative References" and you need to understand them from the bottom up first, roughly the stack is
1) https (you can use other transport mechanisms but this is common)
2) Linked Data

3) JSON-LD (the underlying Linked Data format)
w3.org/TR/json-ld/
4) The definition of the Vocabulary
w3.org/TR/activitystreams-core
5) The Vocabulary
w3.org/TR/activitystreams-voca
6) The protocol
w3.org/TR/activitypub/

[and apart from it natural language values for multilanguage and rel links and e.g. webfinger for mastodon]

Then you can go on with nedjos checklist
socialhub.activitypub.rocks/t/

#activitypub #activitystreams #dev

PS
my language is JS / deno

www.w3.orgActivityPubThe ActivityPub protocol is a decentralized social networking protocol based upon the [ActivityStreams] 2.0 data format. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content.

The primer for #ActivityPub lists HTML elements which should be supported/used in a #ActivityStreams `summary`.

w3.org/wiki/ActivityPub/Primer

These are also (almost?) the HTML elements supported by #Mastodon

What do you think about adding support to the "The Description List element" `<dl>`? I really think that key-value pairs could be very useful in text summary if an object has many important properties.

www.w3.orgActivityPub/Primer/HTML - W3C Wiki
Continued thread

On that note, I think the need for a community owned, distributed search engine is higher than ever. Generative AI is going to continue filling Google, Bing, etc, with trash and it's pretty much a goal of any fascist or authoritarian regime to control information. One way you can do that is just totally sending the signal to noise ratio down to 0.

I believe we can use
#activityPub and #activityStreams as a basis for a distributed search engine. Human curation of data, strict integrity measures, opt-in federation and auditing can help keep relevant, genuine information in and bad actors out. I really think we need to do this.

I am working on it and have various pieces in place but it is admittedly slow going since I am also working on other things.

#search #searchEngines #knowledgePreservation #tech

so after a week off writing some stuff, I went back and realized I was going to have difficulty with my _extends idea of squashing normal inheritance from an object oriented schema into Rust (ActivityStreams and ActivityPub)

I realized, though, that since I actually know all the possible children and their variants, it's actually trivial to basically reverse inheritance and just do it that way. So, rather than children storing their parent object, i.e:

so this, in a generic OO schema, was done as:

class Parent()

class Child: Parent()
as
struct Parent {
  parent_field_1: Option<String>
}

struct Child {
  child_field_1: Option<String>, // etc
  _extends: Parent
}
followed by use of recursive getter/setter functions... I realized that this was going to be a problem because technically anything that accepted a type of Object from ActivityStreams really accepts anything that inherits or extends from Object in some fashion. So I switched it around:
class Object {
  id: Option<String>,
  ...
  _child: ObjectInheritance
}

enum ObjectInheritance {
  Actor {
    actor_specific_field: Option<String>
  },
  Activity {
    activity_specific_field: Option<String>
  }
}

This simplifies a hell of a lot of things: deserialization, and by extension serialization, become very trivial by simply making use of
flatten and untagged_enum. Then I just write a From implementation that can handle all the different ActivityStreams types that inherit from Object.

Since all the children are set in an an enum, I can now just do basic matching against the enum variants to handle incoming payloads.

There's a lot to clean up still but I just basically just... I won't say the work I did before was worthless, because it wasn't to understand ActivityStreams, ActivityPub, and Rust a little better but.

#techPosting #activityStreams #activityPub #rustLang

how many lines of code could it be to parse arbitrary JSON payloads w/ serde in Rust, Michael? 10 lines?

https://codeberg.org/Astatide/satyr/src/commit/0fb988877efef72a66a71e578b450ce73e30d8ab/src/primitives/activity_pub/core.rs#L369

(this is literally just a first pass to get 'known good values' from the context, so to speak. I'll then use the resulting
serde::Value with a 'known structure' and blessed values to construct AP objects fuuuuck)

Basically if it's not in the context or an actual known AP value I don't want it, I'm pretty sure, so it'll get dumped during this process.

#techPosting #rust #activityPub #activityStreams

Codeberg.orgsatyr/src/primitives/activity_pub/core.rs at 0fb988877efef72a66a71e578b450ce73e30d8absatyr

re: better handling of non-notes by Mastodon

Toward the end of a day 2 FediForum session, @pfefferle@mastodon.social, @manton@manton.org, and I sidetracked a bit and discussed once again the tendency for implementors to shift away from more suitable ActivityStreams Activities to as:Note.

Specifically, it was the demo/session by @samsethi@podcastindex.social re: TrueFans. Instead of federating out an as:Listen, they send as:Note, and it's a fairly safe bet that this is because the content cannot be richly represented in Mastodon. The same story played out with Mattias and the WordPress plugin, and myself with NodeBB.

Secondly, back in March/April and again in May, @renchap@oisaur.com mentioned that resolving this was of some interest to the Mastodon team:

We will work on improving the display of non-Note content in the next Mastodon version

To be clear, getting Mastodon to suitably process as:Article/as:Listen/as:Offer or any number of other activities is not what the ForumWG wants to accomplish. It's not up to Mastodon to adapt to the variety of content on the fediverse, but rather that its fallback handling needs to improve just enough so that its baseline rendering is acceptable to more implementors and their users.

As concise and actionable as I can make it:

  1. Mastodon allows a subset of HTML for as:Note. This subset is good enough, but content in non-notes has all html stripped. Keep consistency here and allow the same subset of HTML.
  2. Non-note content is truncated. This is no longer necessary due to the addition of the expand button. The wonderful thing is this standardization of behaviour actually simplifies Mastodon code.
  3. Instead of appending the object URL to the status content, promote the "Open Original Page" button out of the overflow menu. It's more than okay to defer to the original site vis-a-vis presentation and allow the user a smooth exit if desired (target="_top" would be okay too if you're worried!)

That's it.

You could even skip the third point, but even with 1 and 2 achieved this would sufficiently raise the baseline behaviour just enough that I would immediately update NodeBB to send as:Article for new topics, and I am certain @pfefferle@mastodon.social would adjust his defaults as well.

Lastly, @renchap@oisaur.com, I'm sure I can speak for everyone at FediForum when I say that it was wonderful to see representatives from Mastodon (that of course includes @andypiper@macaw.social as well) in attendance. It means a lot to me personally that you were there, and sends a signal that Mastodon continues to desire broader inter-compatibility.

GitHubFederation with Bookwyrm (hashtags, reviews) is essentially broken. · Issue #29981 · mastodon/mastodonBy fabiscafe

Dokieli's ( dokie.li/ ) Share feature now includes:

* granting and changing access controls;
* copy URL to clipboard;
* sending notifications to contacts' inbox about the article.

Screencast: dokie.li/media/video/dokieli-s

Implements:

* solidproject.org/TR/protocol
* solidproject.org/TR/wac
* w3.org/TR/ldn/
* w3.org/2005/Incubator/webid/sp

Source: github.com/linkeddata/dokieli