@ -162,6 +162,16 @@
< / section >
< section >
< section >
< img class = "stretch" src = "_images/socializing.jpeg" alt = "" >
< aside class = "notes" >
Apesar dos pesares, humanos são seres sociais e,
apesar dos pesares, a internet é uma forma de
socialização.
< / aside >
< / section >
< section >
< img class = "stretch" src = "_images/silo.jpeg" alt = "" >
@ -213,16 +223,6 @@
< / aside >
< / section >
< section >
< img class = "stretch" src = "_images/socializing.jpeg" alt = "" >
< aside class = "notes" >
Apesar dos pesares, humanos são seres sociais e,
apesar dos pesares, a internet é uma forma de
socialização.
< / aside >
< / section >
< section >
< h4 > Mas O Que é ActivityPub< / h4 >
@ -230,7 +230,7 @@
< li class = "fragment" > Protocolo certificado pela W3C.< / li >
< li class = "fragment" > Baseado em HTTP e JSON.< / li >
< li class = "fragment" > Tem vários conceitos iguais ao email.< / li >
< li class = "fragment" > Composto de outros protolocos (como WebFinger, ActivityStreams, ActivityVocabulary e JSON-LD) .< / li >
< li class = "fragment" > Composto de outros protolocos: WebFinger, ActivityStreams, ActivityVocabulary e JSON-LD.< / li >
< / ul >
< aside class = "notes" >
@ -257,13 +257,14 @@
< section >
< h4 > O Que é ActivityPub< / h4 >
< h3 > Activity Vocabulary< / h3 >
< ul >
< li class = "fragment" > Actors < span class = "fragment" > (Person, Bot, Company )< / span > < / li >
< li class = "fragment" > Actors < span class = "fragment" > (Person, Bot, Service )< / span > < / li >
< li class = "fragment" > Notes< / li >
< li class = "fragment" > Images< / li >
< li class = "fragment" > Links< / li >
< li class = "fragment" > (e mais, definidos no Vocabulary) < / li >
< li class = "fragment" > ... < / li >
< / ul >
< aside class = "notes" >
@ -277,6 +278,7 @@
< section >
< h4 > ActivityPub< / h4 >
< h3 > WebFinger< / h3 >
< pre > < code class = "hljs json" data-trim >
{"@context": "https://www.w3.org/ns/activitystreams",
@ -296,38 +298,6 @@
Essa é a estrutura de um ator. Existem algumas
opções importantes/interessantes aqui.
< / aside >
< / section >
< section >
< h4 > ActivityPub< / h4 >
< pre > < code class = "hljs json" data-trim >
{"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"id": "https://social.example/alyssa/posts/a29a6843",
"to": ["https://chatty.example/ben/"],
"actor": "https://social.example/alyssa/",
"object": {"type": "Note",
"id": "https://social.example/alyssa/posts/49e2d03d",
"attributedTo": "https://social.example/alyssa/",
"to": ["https://chatty.example/ben/"],
"content": "Did you finish reading that book?"}}
< / code > < / pre >
< aside class = "notes" >
E uma atividade -- por exemplo, nosso ator acima
enviando um texto para outro ator.
< / aside >
< / section >
< section >
< img class = "stretch" src = "_images/rewind.png" alt = "" >
< aside class = "notes" >
Mas vamos voltar um pouquinho para explicar como
ActivityPub é parecido com email.
< / aside >
< / section >
< section >
@ -384,66 +354,108 @@
< section >
< h4 > ActivityPub< / h4 >
< pre > < code class = "hljs json" data-trim data-line-numbers = "9" >
< h3 > Activity Stream< / h3 >
< pre > < code class = "hljs json" data-trim >
{"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://social.example/alyssa/",
"name": "Alyssa P. Hacker",
"preferredUsername": "alyssa",
"summary": "Lisp enthusiast hailing from MIT",
"inbox": "https://social.example/alyssa/inbox/",
"outbox": "https://social.example/alyssa/outbox/",
"followers": "https://social.example/alyssa/followers/",
"following": "https://social.example/alyssa/following/",
"liked": "https://social.example/alyssa/liked/"}
"type": "Create",
"id": "https://social.example/alyssa/posts/a29a6843",
"to": ["https://chatty.example/ben/"],
"actor": "https://social.example/alyssa/",
"object": {"type": "Note",
"id": "https://social.example/alyssa/posts/49e2d03d",
"attributedTo": "https://social.example/alyssa/",
"to": ["https://chatty.example/ben/"],
"content": "Did you finish reading that book?"}}
< / code > < / pre >
< aside class = "notes" >
A lista de seguidores do ator.
E uma atividade -- por exemplo, nosso ator acima
enviando um texto para outro ator.
< / aside >
< / section >
< section >
< h4 > ActivityPub< / h4 >
< pre > < code class = "hljs json" data-trim data-line-numbers = "10" >
{"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://social.example/alyssa/",
"name": "Alyssa P. Hacker",
"preferredUsername": "alyssa",
"summary": "Lisp enthusiast hailing from MIT",
"inbox": "https://social.example/alyssa/inbox/",
"outbox": "https://social.example/alyssa/outbox/",
"followers": "https://social.example/alyssa/followers/",
"following": "https://social.example/alyssa/following/",
"liked": "https://social.example/alyssa/liked/"}
< / code > < / pre >
< img class = "white stretch" src = "_images/ActivityPub-tutorial-image.png" alt = "" >
< / section >
< aside class = "notes" >
Follow com os atores que o ator segue.
< / aside >
< section >
< h4 > ActivityPub< / h4 >
< h3 > Client to Server Activities< / h3 >
< p class = "fragment" >
create, update, delete, follow, add, remove, like,
block, undo
< / p >
< / section >
< section >
< h4 > ActivityPub< / h4 >
< pre > < code class = "hljs json" data-trim data-line-numbers = "11" >
{"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://social.example/alyssa/",
"name": "Alyssa P. Hacker",
"preferredUsername": "alyssa",
"summary": "Lisp enthusiast hailing from MIT",
"inbox": "https://social.example/alyssa/inbox/",
"outbox": "https://social.example/alyssa/outbox/",
"followers": "https://social.example/alyssa/followers/",
"following": "https://social.example/alyssa/following/",
"liked": "https://social.example/alyssa/liked/"}
< / code > < / pre >
< h3 > Server to Server Activity< / h3 >
< aside class = "notes" >
E "liked" com o objetos que o ator marcou como
"like".
< / aside >
< p class = "fragment" >
create, update, delete, follow, accept (follow),
reject (to follow), add, remove, like, announce
(reposting/boosting), undo
< / p >
< / section >
< section >
< h4 > ActivityPub< / h4 >
< h3 > Public< / h3 >
< p class = "fragment" > https://www.w3.org/ns/activitystreams#Public< / p >
< / section >
< / section >
< section >
< section >
< h4 > Suporte ao ActivityPub< / h4 >
< ul >
< li class = "fragment" > ForgeFed (Código, Github)< / li >
< li class = "fragment" > PixelFed (Fotos, Instagram)< / li >
< li class = "fragment" > PeerTube (Videos, YouTube)< / li >
< li class = "fragment" > HubZilla/Plume/WordPress ActivityPub Plugin (Blogging, WordPress)< / li >
< li class = "fragment" > DistBin (Snippets, Pastebin/Gist)< / li >
< li class = "fragment" > Diaspora (Social, Facebook)< / li >
< li class = "fragment" > Microblog/Honk/Plemora/Mastodon (Micro-blogging, Twitter)< / li >
< / ul >
< / section >
< section >
< h4 > Suporte ao ActivityPub< / h4 >
< h3 > Mastodon< / h3 >
< ul >
< li class = "fragment" > 2.629 instâncias< / li >
< li class = "fragment" > 10.877.412 de contas criadas< / li >
< li class = "fragment" > 157.437 usuários ativos (última semana de novembro)< / li >
< li class = "fragment" > 1.562.887.737.129.765 toots< / li >
< / ul >
< / section >
< section >
< h4 > Suporte ao ActivityPub< / h4 >
< p >
< a href = "https://fediverse.party" > Fediverse< / a >
< / p >
< / section >
< / section >
< section >
< section >
< h4 > Informações Técnicas< / h4 >
< ul >
< li > < a href = "https://www.w3.org/TR/activitypub/" > ActivityPub, W3C Recommendation 23 January 2018< / a > < / li >
< li > < a href = "https://nextcloud.com/blog/activitypub-the-new-standard-for-decentralized-networks/" > NextCloud: ActivityPub: the new standard for decentralized networks< / a > < / li >
< li > < a href = "https://hacks.mozilla.org/2018/11/decentralizing-social-interactions-with-activitypub/" > Mozilla Hacks: Decentralizing Social Interactions with ActivityPub< / a > < / li >
< li > < a href = "https://activitypub.rocks/" > ActivityPub Rocks!< / a > < / li >
< li > < a href = "https://flak.tedunangst.com/post/ActivityPub-as-it-has-been-understood" > Honk: ActivityPub as it has been understood< / a > < / li >
< / ul >
< / section >
< / section >