Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Recently, there was a discussion about generic #ActivityPub servers.

Moved Technical Discussion
3 3 0
  • Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.

    I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:

    FEP-fc48: Generic ActivityPub server

    This kind of server:

    - Can process any object type, and can process non-standard activities like EmojiReact.
    - Compatible with FEP-ae97 clients.
    - Does not require JSON-LD.

    I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.

    Special thanks to @mariusor and @trwnh for their input.

    #C2S

  • Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.

    I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:

    FEP-fc48: Generic ActivityPub server

    This kind of server:

    - Can process any object type, and can process non-standard activities like EmojiReact.
    - Compatible with FEP-ae97 clients.
    - Does not require JSON-LD.

    I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.

    Special thanks to @mariusor and @trwnh for their input.

    #C2S

    @silverpill lol, based on the "claims" at the begining, why do I feel like the "thanks" at the end should be in quotations?

    Also I take umbrage with calling what I've been doing for the past 8 years as "being not difficult to build nor an interesting concept". I feel like you, and other developers having the benefit of dynamically typed programming languages, underestimate how that can be worked into robust APIs when you're limited by less versatile stacks.

  • Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.

    I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:

    FEP-fc48: Generic ActivityPub server

    This kind of server:

    - Can process any object type, and can process non-standard activities like EmojiReact.
    - Compatible with FEP-ae97 clients.
    - Does not require JSON-LD.

    I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.

    Special thanks to @mariusor and @trwnh for their input.

    #C2S

    @silverpill@mitra.social I find it curious that this needs to be spelled out in an FEP.

    Isn't a generic AP server one that ingests anything and shoves it into the outbox... like a mail transfer agent?

    ... then delivers it dutifully?

    I mean, sure, you can do stuff in between, like spam detection, blocklists, etc etc etc...

    My quick read through of the FEP (and it was quick, because it was a short FEP :stuck_out_tongue:) seems to confirm this.

  • System moved this topic from General Discussion

Gli ultimi otto messaggi ricevuti dalla Federazione
  • @silverpill@mitra.social I find it curious that this needs to be spelled out in an FEP.

    Isn't a generic AP server one that ingests anything and shoves it into the outbox... like a mail transfer agent?

    ... then delivers it dutifully?

    I mean, sure, you can do stuff in between, like spam detection, blocklists, etc etc etc...

    My quick read through of the FEP (and it was quick, because it was a short FEP :stuck_out_tongue:) seems to confirm this.

    read more

  • @silverpill lol, based on the "claims" at the begining, why do I feel like the "thanks" at the end should be in quotations?

    Also I take umbrage with calling what I've been doing for the past 8 years as "being not difficult to build nor an interesting concept". I feel like you, and other developers having the benefit of dynamically typed programming languages, underestimate how that can be worked into robust APIs when you're limited by less versatile stacks.

    read more

  • Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.

    I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:

    FEP-fc48: Generic ActivityPub server

    This kind of server:

    - Can process any object type, and can process non-standard activities like EmojiReact.
    - Compatible with FEP-ae97 clients.
    - Does not require JSON-LD.

    I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.

    Special thanks to @mariusor and @trwnh for their input.

    #C2S

    read more

  • @evan that makes sense. I've just updated NodeBB to allow for the use of a manual override marker. The limit and even the marker is now customizable per-instance, and I do use the ellipsis when truncating text.

    Hopefully that resolves the engagement issue while still preserving the intent of b2b8 :smile:

    As for the use of an LLM to generate a summary, I think I will defer on that, since that might be a source of surprise for those not expecting the invocation of a LLM :sweat_smile:

    read more

  • @julian So, there are a few ways to handle this.

    First, the b2b8 recommendation on the summary is just a guideline, not a strict requirement (thus the 'about').

    A common practice in news-style text is that the first paragraph is a lede that summarizes the article's main points.

    For example, in this article, Lawrence Summers Will Resign From Harvard After Epstein Revelations, the first paragraph is:

    > Lawrence H. Summers, a Harvard University economist and the school’s former president, will resign from teaching at the end of the academic year, according to a Harvard spokesman.

    Some bloggers follow a similar practice, especially since blogging software often uses the first paragraph as the summary in RSS and Atom feeds.

    I think if I were generating a summary for long-form text, I'd use these techniques in roughly descending order:

    Manual override; an optional way for the user to define a summary manually - either with a marker in the text, or with a separate input element (I think WordPress does this). Use the whole text if it meets the rough guidelines (~1 paragraph, a few sentences, about 500 chars) in b2b8. Use the first paragraph if it meets the rough guidelines (a few sentences, about 500 chars) in b2b8. Truncate the first paragraph and include an ellipsis ().

    This is also something that LLMs are pretty good at. So, maybe rather than truncating (last option), consider using an LLM to generate a summary that meets the boundary requirements.

    read more

  • Hey @evan@cosocial.ca, I'm watching your lightning talk at FOSDEM! I'm simultaneously glad it's less than 10 minutes, but sad it's not longer too :stuck_out_tongue_closed_eyes:

    (Everyone else, want to watch it? Here it is)

    Some questions I'm jotting down while I'm watching it

    I can see the user on ActivityPub.Space, which is how it's supposed to work. Would I be able to follow this user from a non-Person? If integrating into NodeBB, I'd maybe want the Application actor itself to follow it.

    Love how you head off concerns about consent issues with a slide about how it's not scraping, mass-following, etc. So it uses relays, such as the ones on relaylist.com?

    Let's talk about how we can get NodeBB sharing data to tags.pub by default (or by admin opt-out switch.

    read more

  • read more

  • @julian @saskia @evan or do you think that anybody knows , that in the system is https://mastodon.social/tags/stupidhashtag and it's type is https://www.w3.org/ns/activitystreams/hashtag
    But as far as I know, this type is not specified at all!

    read more
Post suggeriti