#activity-streams — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #activity-streams, aggregated by home.social.
-
Regarding the why: When coding Mastodon, Eugen used those parts of the #ActivityPub and #ActivityStreams standards he found useful. For functionality that was not (yet) covered by those standards, he came up with his own solutions and made them part of the Mastodon API which can be considered a quasi-standard now.
When Mastodon was a one person shop, this was a pragmatic way to make progress fast. Standardization bodies are famous for moving slowly, and maybe Eugen was also put off by some of the more eccentric personalities in the ActivityPub community. Now that Mastodon (the organisation) has grown, they should assume a more active role in standards bodies. Perhaps they have – I have not followed these processes closely in recent years.
At any rate, I think it is fair to say that the Mastodon makers and the Fediverse standards community have had a difficult relationship. This is my impression from visiting FediCamp and FediDay events (where Mastodon makers were absent), and some reading in the ActivityPub community forum, e.g.:
https://socialhub.activitypub.rocks/t/mastodon-monoculture-problem/3189/11
https://socialhub.activitypub.rocks/t/discussion-mastodon-and-the-fediverse/1967 -
Regarding the why: When coding Mastodon, Eugen used those parts of the #ActivityPub and #ActivityStreams standards he found useful. For functionality that was not (yet) covered by those standards, he came up with his own solutions and made them part of the Mastodon API which can be considered a quasi-standard now.
When Mastodon was a one person shop, this was a pragmatic way to make progress fast. Standardization bodies are famous for moving slowly, and maybe Eugen was also put off by some of the more eccentric personalities in the ActivityPub community. Now that Mastodon (the organisation) has grown, they should assume a more active role in standards bodies. Perhaps they have – I have not followed these processes closely in recent years.
At any rate, I think it is fair to say that the Mastodon makers and the Fediverse standards community have had a difficult relationship. This is my impression from visiting FediCamp and FediDay events (where Mastodon makers were absent), and some reading in the ActivityPub community forum, e.g.:
https://socialhub.activitypub.rocks/t/mastodon-monoculture-problem/3189/11
https://socialhub.activitypub.rocks/t/discussion-mastodon-and-the-fediverse/1967 -
Regarding the why: When coding Mastodon, Eugen used those parts of the #ActivityPub and #ActivityStreams standards he found useful. For functionality that was not (yet) covered by those standards, he came up with his own solutions and made them part of the Mastodon API which can be considered a quasi-standard now.
When Mastodon was a one person shop, this was a pragmatic way to make progress fast. Standardization bodies are famous for moving slowly, and maybe Eugen was also put off by some of the more eccentric personalities in the ActivityPub community. Now that Mastodon (the organisation) has grown, they should assume a more active role in standards bodies. Perhaps they have – I have not followed these processes closely in recent years.
At any rate, I think it is fair to say that the Mastodon makers and the Fediverse standards community have had a difficult relationship. This is my impression from visiting FediCamp and FediDay events (where Mastodon makers were absent), and some reading in the ActivityPub community forum, e.g.:
https://socialhub.activitypub.rocks/t/mastodon-monoculture-problem/3189/11
https://socialhub.activitypub.rocks/t/discussion-mastodon-and-the-fediverse/1967 -
Regarding the why: When coding Mastodon, Eugen used those parts of the #ActivityPub and #ActivityStreams standards he found useful. For functionality that was not (yet) covered by those standards, he came up with his own solutions and made them part of the Mastodon API which can be considered a quasi-standard now.
When Mastodon was a one person shop, this was a pragmatic way to make progress fast. Standardization bodies are famous for moving slowly, and maybe Eugen was also put off by some of the more eccentric personalities in the ActivityPub community. Now that Mastodon (the organisation) has grown, they should assume a more active role in standards bodies. Perhaps they have – I have not followed these processes closely in recent years.
At any rate, I think it is fair to say that the Mastodon makers and the Fediverse standards community have had a difficult relationship. This is my impression from visiting FediCamp and FediDay events (where Mastodon makers were absent), and some reading in the ActivityPub community forum, e.g.:
https://socialhub.activitypub.rocks/t/mastodon-monoculture-problem/3189/11
https://socialhub.activitypub.rocks/t/discussion-mastodon-and-the-fediverse/1967 -
Regarding the why: When coding Mastodon, Eugen used those parts of the #ActivityPub and #ActivityStreams standards he found useful. For functionality that was not (yet) covered by those standards, he came up with his own solutions and made them part of the Mastodon API which can be considered a quasi-standard now.
When Mastodon was a one person shop, this was a pragmatic way to make progress fast. Standardization bodies are famous for moving slowly, and maybe Eugen was also put off by some of the more eccentric personalities in the ActivityPub community. Now that Mastodon (the organisation) has grown, they should assume a more active role in standards bodies. Perhaps they have – I have not followed these processes closely in recent years.
At any rate, I think it is fair to say that the Mastodon makers and the Fediverse standards community have had a difficult relationship. This is my impression from visiting FediCamp and FediDay events (where Mastodon makers were absent), and some reading in the ActivityPub community forum, e.g.:
https://socialhub.activitypub.rocks/t/mastodon-monoculture-problem/3189/11
https://socialhub.activitypub.rocks/t/discussion-mastodon-and-the-fediverse/1967 -
Linked Data in HTTP Headers rather than in JSON (i.e., JSON-LD), etc
⁂
Many Fediverse servers will give you different content depending on the "Accept" header in the HTTP request.
If "application/activity+json" you get ActivityPub/ActivityStreams JSON-LD metadata. If something else, you get actual file/payload.
If we encoded Linked Data as HTTP headers (key-value pairs), we could include the Linked Data with the actual file/payload.
-
Linked Data in HTTP Headers rather than in JSON (i.e., JSON-LD), etc
⁂
Many Fediverse servers will give you different content depending on the "Accept" header in the HTTP request.
If "application/activity+json" you get ActivityPub/ActivityStreams JSON-LD metadata. If something else, you get actual file/payload.
If we encoded Linked Data as HTTP headers (key-value pairs), we could include the Linked Data with the actual file/payload.
-
Linked Data in HTTP Headers rather than in JSON (i.e., JSON-LD), etc
⁂
Many Fediverse servers will give you different content depending on the "Accept" header in the HTTP request.
If "application/activity+json" you get ActivityPub/ActivityStreams JSON-LD metadata. If something else, you get actual file/payload.
If we encoded Linked Data as HTTP headers (key-value pairs), we could include the Linked Data with the actual file/payload.
-
Linked Data in HTTP Headers rather than in JSON (i.e., JSON-LD), etc
⁂
Many Fediverse servers will give you different content depending on the "Accept" header in the HTTP request.
If "application/activity+json" you get ActivityPub/ActivityStreams JSON-LD metadata. If something else, you get actual file/payload.
If we encoded Linked Data as HTTP headers (key-value pairs), we could include the Linked Data with the actual file/payload.
-
Linked Data in HTTP Headers rather than in JSON (i.e., JSON-LD), etc
⁂
Many Fediverse servers will give you different content depending on the "Accept" header in the HTTP request.
If "application/activity+json" you get ActivityPub/ActivityStreams JSON-LD metadata. If something else, you get actual file/payload.
If we encoded Linked Data as HTTP headers (key-value pairs), we could include the Linked Data with the actual file/payload.
-
acct-URI like URI for content
⁂
We have acct-URI for referring to actors.
Ex: acct:[email protected]
We resolve this to an HTTP-URI using WebFinger.
⁂
We don't have an acct-URI like URI for referring to an actor's content.
Which would also be resolved with WebFinger.
Ex: obj:[email protected]/file.ext
⁂
I think there are many advantages to being able to refer to content separate from where it is stored.
-
acct-URI like URI for content
⁂
We have acct-URI for referring to actors.
Ex: acct:[email protected]
We resolve this to an HTTP-URI using WebFinger.
⁂
We don't have an acct-URI like URI for referring to an actor's content.
Which would also be resolved with WebFinger.
Ex: obj:[email protected]/file.ext
⁂
I think there are many advantages to being able to refer to content separate from where it is stored.
-
acct-URI like URI for content
⁂
We have acct-URI for referring to actors.
Ex: acct:[email protected]
We resolve this to an HTTP-URI using WebFinger.
⁂
We don't have an acct-URI like URI for referring to an actor's content.
Which would also be resolved with WebFinger.
Ex: obj:[email protected]/file.ext
⁂
I think there are many advantages to being able to refer to content separate from where it is stored.
-
acct-URI like URI for content
⁂
We have acct-URI for referring to actors.
Ex: acct:[email protected]
We resolve this to an HTTP-URI using WebFinger.
⁂
We don't have an acct-URI like URI for referring to an actor's content.
Which would also be resolved with WebFinger.
Ex: obj:[email protected]/file.ext
⁂
I think there are many advantages to being able to refer to content separate from where it is stored.
-
acct-URI like URI for content
⁂
We have acct-URI for referring to actors.
Ex: acct:[email protected]
We resolve this to an HTTP-URI using WebFinger.
⁂
We don't have an acct-URI like URI for referring to an actor's content.
Which would also be resolved with WebFinger.
Ex: obj:[email protected]/file.ext
⁂
I think there are many advantages to being able to refer to content separate from where it is stored.
-
Merging ActivityStreams Core & Vocabulary
It looks like there is an effort to try to merge the ActivityStreams Core specification with the ActivityStreams Vocabulary specification into a single specification 🎉
https://github.com/w3c/activitystreams/issues/707
...
(I think this merged specification should also rename "Activity Streams" (with a space) to "ActivityStreams" (without a space).)
-
Merging ActivityStreams Core & Vocabulary
It looks like there is an effort to try to merge the ActivityStreams Core specification with the ActivityStreams Vocabulary specification into a single specification 🎉
https://github.com/w3c/activitystreams/issues/707
...
(I think this merged specification should also rename "Activity Streams" (with a space) to "ActivityStreams" (without a space).)
-
Merging ActivityStreams Core & Vocabulary
It looks like there is an effort to try to merge the ActivityStreams Core specification with the ActivityStreams Vocabulary specification into a single specification 🎉
https://github.com/w3c/activitystreams/issues/707
...
(I think this merged specification should also rename "Activity Streams" (with a space) to "ActivityStreams" (without a space).)
-
Merging ActivityStreams Core & Vocabulary
It looks like there is an effort to try to merge the ActivityStreams Core specification with the ActivityStreams Vocabulary specification into a single specification 🎉
https://github.com/w3c/activitystreams/issues/707
...
(I think this merged specification should also rename "Activity Streams" (with a space) to "ActivityStreams" (without a space).)
-
Merging ActivityStreams Core & Vocabulary
It looks like there is an effort to try to merge the ActivityStreams Core specification with the ActivityStreams Vocabulary specification into a single specification 🎉
https://github.com/w3c/activitystreams/issues/707
...
(I think this merged specification should also rename "Activity Streams" (with a space) to "ActivityStreams" (without a space).)
-
Apparently there is another social-networking protocol (that is not ActivityPub) that uses ActivityStreams, named:
Distributed Social Networking Protocol (DSNP)
...
https://en.wikipedia.org/wiki/Distributed_Social_Networking_Protocol
https://web.archive.org/web/20130910101658/http://www.complang.org/pipermail/dsnp-interest/
-
Apparently there is another social-networking protocol (that is not ActivityPub) that uses ActivityStreams, named:
Distributed Social Networking Protocol (DSNP)
...
https://en.wikipedia.org/wiki/Distributed_Social_Networking_Protocol
https://web.archive.org/web/20130910101658/http://www.complang.org/pipermail/dsnp-interest/
-
Apparently there is another social-networking protocol (that is not ActivityPub) that uses ActivityStreams, named:
Distributed Social Networking Protocol (DSNP)
...
https://en.wikipedia.org/wiki/Distributed_Social_Networking_Protocol
https://web.archive.org/web/20130910101658/http://www.complang.org/pipermail/dsnp-interest/
-
Apparently there is another social-networking protocol (that is not ActivityPub) that uses ActivityStreams, named:
Distributed Social Networking Protocol (DSNP)
...
https://en.wikipedia.org/wiki/Distributed_Social_Networking_Protocol
https://web.archive.org/web/20130910101658/http://www.complang.org/pipermail/dsnp-interest/
-
Apparently there is another social-networking protocol (that is not ActivityPub) that uses ActivityStreams, named:
Distributed Social Networking Protocol (DSNP)
...
https://en.wikipedia.org/wiki/Distributed_Social_Networking_Protocol
https://web.archive.org/web/20130910101658/http://www.complang.org/pipermail/dsnp-interest/
-
The (over)use of "mastodon" is understandable. Mastodon played a pioneering role in implementing microblogging use cases with the #ActivityPub protocol and is also the most mature product at this point in that 'business domain'. Establishing itself as a brand.
#Fediverse is not a very descriptive name to people unfamiliar with it and the idea that it provides access to many apps that integrate with on a single social network (ideally) interoperably is foreign. They are used to 'platform thinking'. Fediverse weaves a social fabric that allows you to be "social together with others" online.
The europa.eu website now has a #Mastodon icon in its social channel list, that hides all that.
Perhaps most communicative is the name #ActivityStreams (name of W3C standard vocabulary of social actions to support). Then a person would subscribe to EU's activity streams and receive Posts, Articles, Videos, Events, Policies, News. Every service the EU offers adds to the stream.
-
The (over)use of "mastodon" is understandable. Mastodon played a pioneering role in implementing microblogging use cases with the #ActivityPub protocol and is also the most mature product at this point in that 'business domain'. Establishing itself as a brand.
#Fediverse is not a very descriptive name to people unfamiliar with it and the idea that it provides access to many apps that integrate with on a single social network (ideally) interoperably is foreign. They are used to 'platform thinking'. Fediverse weaves a social fabric that allows you to be "social together with others" online.
The europa.eu website now has a #Mastodon icon in its social channel list, that hides all that.
Perhaps most communicative is the name #ActivityStreams (name of W3C standard vocabulary of social actions to support). Then a person would subscribe to EU's activity streams and receive Posts, Articles, Videos, Events, Policies, News. Every service the EU offers adds to the stream.
-
The (over)use of "mastodon" is understandable. Mastodon played a pioneering role in implementing microblogging use cases with the #ActivityPub protocol and is also the most mature product at this point in that 'business domain'. Establishing itself as a brand.
#Fediverse is not a very descriptive name to people unfamiliar with it and the idea that it provides access to many apps that integrate with on a single social network (ideally) interoperably is foreign. They are used to 'platform thinking'. Fediverse weaves a social fabric that allows you to be "social together with others" online.
The europa.eu website now has a #Mastodon icon in its social channel list, that hides all that.
Perhaps most communicative is the name #ActivityStreams (name of W3C standard vocabulary of social actions to support). Then a person would subscribe to EU's activity streams and receive Posts, Articles, Videos, Events, Policies, News. Every service the EU offers adds to the stream.
-
The (over)use of "mastodon" is understandable. Mastodon played a pioneering role in implementing microblogging use cases with the #ActivityPub protocol and is also the most mature product at this point in that 'business domain'. Establishing itself as a brand.
#Fediverse is not a very descriptive name to people unfamiliar with it and the idea that it provides access to many apps that integrate with on a single social network (ideally) interoperably is foreign. They are used to 'platform thinking'. Fediverse weaves a social fabric that allows you to be "social together with others" online.
The europa.eu website now has a #Mastodon icon in its social channel list, that hides all that.
Perhaps most communicative is the name #ActivityStreams (name of W3C standard vocabulary of social actions to support). Then a person would subscribe to EU's activity streams and receive Posts, Articles, Videos, Events, Policies, News. Every service the EU offers adds to the stream.
-
The (over)use of "mastodon" is understandable. Mastodon played a pioneering role in implementing microblogging use cases with the #ActivityPub protocol and is also the most mature product at this point in that 'business domain'. Establishing itself as a brand.
#Fediverse is not a very descriptive name to people unfamiliar with it and the idea that it provides access to many apps that integrate with on a single social network (ideally) interoperably is foreign. They are used to 'platform thinking'. Fediverse weaves a social fabric that allows you to be "social together with others" online.
The europa.eu website now has a #Mastodon icon in its social channel list, that hides all that.
Perhaps most communicative is the name #ActivityStreams (name of W3C standard vocabulary of social actions to support). Then a person would subscribe to EU's activity streams and receive Posts, Articles, Videos, Events, Policies, News. Every service the EU offers adds to the stream.
-
Stable Outbox Collection Pages
5/
To me,, having the newest page of the collection be varying length one feels like a better strategy.
-
Stable Outbox Collection Pages
5/
To me,, having the newest page of the collection be varying length one feels like a better strategy.
-
Stable Outbox Collection Pages
5/
To me,, having the newest page of the collection be varying length one feels like a better strategy.
-
Stable Outbox Collection Pages
5/
To me,, having the newest page of the collection be varying length one feels like a better strategy.
-
Stable Outbox Collection Pages
5/
To me,, having the newest page of the collection be varying length one feels like a better strategy.
-
Stable Outbox Collection Pages
4/
BUT, if instead — if the page with 3 items contains the 3 newest items, then —
Only the newest page would have to be recached. I.e., only 1 page churns not all.
All the other collection pages stay as is, and any cached copies of them are still valid.
Etc.
-
Stable Outbox Collection Pages
4/
BUT, if instead — if the page with 3 items contains the 3 newest items, then —
Only the newest page would have to be recached. I.e., only 1 page churns not all.
All the other collection pages stay as is, and any cached copies of them are still valid.
Etc.
-
Stable Outbox Collection Pages
4/
BUT, if instead — if the page with 3 items contains the 3 newest items, then —
Only the newest page would have to be recached. I.e., only 1 page churns not all.
All the other collection pages stay as is, and any cached copies of them are still valid.
Etc.
-
Stable Outbox Collection Pages
4/
BUT, if instead — if the page with 3 items contains the 3 newest items, then —
Only the newest page would have to be recached. I.e., only 1 page churns not all.
All the other collection pages stay as is, and any cached copies of them are still valid.
Etc.
-
Stable Outbox Collection Pages
4/
BUT, if instead — if the page with 3 items contains the 3 newest items, then —
Only the newest page would have to be recached. I.e., only 1 page churns not all.
All the other collection pages stay as is, and any cached copies of them are still valid.
Etc.
-
Stable Outbox Collection Pages
3/
If the page with 3 items contains the 3 oldest items, then —
Every time a new items is added to the collection, then every single collection page will change. I.e., they all churn.
Which means that all cached copies of any collection pages will be invalidated.
Which means a static site generator will have to regenerate all of them again.
Etc.
BUT, if instead —
-
Stable Outbox Collection Pages
3/
If the page with 3 items contains the 3 oldest items, then —
Every time a new items is added to the collection, then every single collection page will change. I.e., they all churn.
Which means that all cached copies of any collection pages will be invalidated.
Which means a static site generator will have to regenerate all of them again.
Etc.
BUT, if instead —
-
Stable Outbox Collection Pages
3/
If the page with 3 items contains the 3 oldest items, then —
Every time a new items is added to the collection, then every single collection page will change. I.e., they all churn.
Which means that all cached copies of any collection pages will be invalidated.
Which means a static site generator will have to regenerate all of them again.
Etc.
BUT, if instead —
-
Stable Outbox Collection Pages
3/
If the page with 3 items contains the 3 oldest items, then —
Every time a new items is added to the collection, then every single collection page will change. I.e., they all churn.
Which means that all cached copies of any collection pages will be invalidated.
Which means a static site generator will have to regenerate all of them again.
Etc.
BUT, if instead —
-
Stable Outbox Collection Pages
3/
If the page with 3 items contains the 3 oldest items, then —
Every time a new items is added to the collection, then every single collection page will change. I.e., they all churn.
Which means that all cached copies of any collection pages will be invalidated.
Which means a static site generator will have to regenerate all of them again.
Etc.
BUT, if instead —
-
Stable Outbox Collection Pages
2/
Let's say a collection has 23 items, and each page 10 items in length.
That means you will have 2 pages with 10 items and 1 page with 3 items.
Should that page with 3 items be the 3 newest items or the 3 oldest items.
The choice affects caching and static site ease quite a bit.
Here is the answer...
-
Stable Outbox Collection Pages
2/
Let's say a collection has 23 items, and each page 10 items in length.
That means you will have 2 pages with 10 items and 1 page with 3 items.
Should that page with 3 items be the 3 newest items or the 3 oldest items.
The choice affects caching and static site ease quite a bit.
Here is the answer...
-
Stable Outbox Collection Pages
2/
Let's say a collection has 23 items, and each page 10 items in length.
That means you will have 2 pages with 10 items and 1 page with 3 items.
Should that page with 3 items be the 3 newest items or the 3 oldest items.
The choice affects caching and static site ease quite a bit.
Here is the answer...
-
Stable Outbox Collection Pages
2/
Let's say a collection has 23 items, and each page 10 items in length.
That means you will have 2 pages with 10 items and 1 page with 3 items.
Should that page with 3 items be the 3 newest items or the 3 oldest items.
The choice affects caching and static site ease quite a bit.
Here is the answer...
-
Stable Outbox Collection Pages
2/
Let's say a collection has 23 items, and each page 10 items in length.
That means you will have 2 pages with 10 items and 1 page with 3 items.
Should that page with 3 items be the 3 newest items or the 3 oldest items.
The choice affects caching and static site ease quite a bit.
Here is the answer...
-
Stable Outbox Collection Pages
1/
ActivityPub uses collections for a number of things:
• followers
• following
• inbox
• outboxAnd, rather than dump everything in the collection into a single document, ActivityPub paginates using collection pages.
That's great.
But, how you divide up a collection into pages matters and affects things. Such as: caching.
I'll explain.
-
Stable Outbox Collection Pages
1/
ActivityPub uses collections for a number of things:
• followers
• following
• inbox
• outboxAnd, rather than dump everything in the collection into a single document, ActivityPub paginates using collection pages.
That's great.
But, how you divide up a collection into pages matters and affects things. Such as: caching.
I'll explain.
-
Stable Outbox Collection Pages
1/
ActivityPub uses collections for a number of things:
• followers
• following
• inbox
• outboxAnd, rather than dump everything in the collection into a single document, ActivityPub paginates using collection pages.
That's great.
But, how you divide up a collection into pages matters and affects things. Such as: caching.
I'll explain.
-
Stable Outbox Collection Pages
1/
ActivityPub uses collections for a number of things:
• followers
• following
• inbox
• outboxAnd, rather than dump everything in the collection into a single document, ActivityPub paginates using collection pages.
That's great.
But, how you divide up a collection into pages matters and affects things. Such as: caching.
I'll explain.
-
Stable Outbox Collection Pages
1/
ActivityPub uses collections for a number of things:
• followers
• following
• inbox
• outboxAnd, rather than dump everything in the collection into a single document, ActivityPub paginates using collection pages.
That's great.
But, how you divide up a collection into pages matters and affects things. Such as: caching.
I'll explain.
-
Something missing from 'followers' and 'following' collections.
2/
I think this could be addressed by using the ActivityPub 'published' field:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published
Such as what is shown in the (new) attached screen-shot.
So that the date-time when person A followed person B is included.
-
Something missing from 'followers' and 'following' collections.
2/
I think this could be addressed by using the ActivityPub 'published' field:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published
Such as what is shown in the (new) attached screen-shot.
So that the date-time when person A followed person B is included.
-
Something missing from 'followers' and 'following' collections.
2/
I think this could be addressed by using the ActivityPub 'published' field:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published
Such as what is shown in the (new) attached screen-shot.
So that the date-time when person A followed person B is included.
-
Something missing from 'followers' and 'following' collections.
2/
I think this could be addressed by using the ActivityPub 'published' field:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published
Such as what is shown in the (new) attached screen-shot.
So that the date-time when person A followed person B is included.
-
Something missing from 'followers' and 'following' collections.
2/
I think this could be addressed by using the ActivityPub 'published' field:
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published
Such as what is shown in the (new) attached screen-shot.
So that the date-time when person A followed person B is included.