Suporte a ActivityPub: RFC da Fase 1

Existem muitas instâncias do Discourse. Não sei exatamente quantas, mas tenho contas em algumas dezenas. É impossível acompanhar tudo e, muitas vezes, me deparo com tópicos em comunidades distintas, mas não tão diferentes, discutindo questões semelhantes que poderiam ser compartilhadas entre as instâncias, já que alguns participantes se repetem nas discussões. Seria realmente útil poder compartilhar esses tópicos entre instâncias sem precisar fazer login várias vezes, cruzar referências de tópicos e não ter uma discussão fluida com as partes interessadas.

Tratar usuários do ActivityPub como usuários em estágio, da mesma forma que usuários de e-mail externos a uma instância do Discourse são tratados, parece ser um bom compromisso para começar.

Um feed RSS certamente ajudaria a acompanhar tópicos em andamento em um único lugar, mas não traria nada diferente do aplicativo Discourse Hub, nem permitiria sua participação.

@hellekin Não tenho certeza sobre isso. Talvez você esteja certo, talvez não.
Existem muitos clubes noturnos, restaurantes, supermercados, softwares, etc. Alguns são até bastante próximos, geograficamente e/ou em termos do que oferecem. Alguém deveria considerar “estúpido” que lugares diferentes ofereçam a mesma coisa e estejam separados? E que esses lugares deveriam ser fundidos para ter apenas um centralizado?

Agora, aqui, é um pouco mais evoluído, pois as comunidades permaneceriam meio que separadas, mas estão vinculadas. Permanece a questão de saber se todas as comunidades são as “mesmas”: São as mesmas regras, a mesma atmosfera, o mesmo tipo de pessoa, etc? Isso pode ser o que faz de uma comunidade um “lugar especial” que vale a pena (ativamente) participar: O fato de ser única. Tem uma vibe única, um tipo único de humor acontecendo, etc. Uma IDENTIDADE única. As pessoas sendo um aspecto enorme disso: Quem vai aqui ou ali. Que tipo de pessoa.

Talvez isso seja uma visão sobre DIVERSIDADE: Misturar tudo e acabar com algo “igual” em todo lugar, porque está tão misturado.

Por outro lado, temos LINKS e CITAÇÕES. Nada impede ninguém de linkar, citar e resumir o que acontece em outro lugar. E aqui, você pode manter a identidade de cada lugar e não tornar tudo “igual”.

De qualquer forma, isso pode ser a questão central por trás do próprio princípio do ActivityPub e da vontade de implementá-lo com o Discourse. Claro, se for apenas opcional, qualquer um pode fazer como quiser. E opções geralmente são uma coisa boa, na minha opinião (não tenho muita certeza por que uma comunidade bem-sucedida gostaria que seu conteúdo fosse compartilhado fora, e que pessoas pudessem interagir com ele de fora).

[Isso é um pouco daquela coisa de “Demolition Man”, onde só restaram restaurantes Taco Bell, não é?]

1 curtida

Não tenho certeza de como sua visão se relaciona com minha postagem anterior. Eu não disse nada sobre mesclar comunidades, apenas sobre alguns tópicos em comum. E mesmo assim, apenas sugeri que contas de usuário poderiam ser o intermediário…

E não é isso, ‘fundir’ as ofertas de diferentes comunidades? Você ainda ‘fundir’ algum conteúdo, mesmo que, como dito na mensagem anterior:

Parece haver uma relutância em fazer isso por parte da equipe do Discourse, além de vantagens/caso de uso pouco claros sobre isso. Se você não vê como meu post anterior se relaciona com o assunto, tudo bem. Meus pedidos de desculpa. Esqueça isso.

Absolutamente não. Mas eu gostaria de ler sobre eles no meu jornal local ou, em um caso mais especializado, em um guia gastronômico italiano para conhecedores. O fato de as coisas não serem todas iguais é o que torna vale a pena assinar. Voltando à web e às comunidades, vincular e citar são, claro, valiosos. Mas são outro caso de uso, diferente de compartilhar um tópico entre fóruns e visualizar a discussão no contexto, talvez participando diretamente.

Você tem razão de que, em alguns casos, você não quer misturar identidades e certamente não quer fundir completamente comunidades dispersas. Mas você pode fundir seletivamente apenas as partes onde faz sentido. Seja tópico por tópico, certas (sub)categorias, tags ou grupos específicos de pessoas compartilhando conteúdo.

Na verdade, não se trata realmente do ActivityPub. O protocolo é de baixo nível, construído sobre o HTTP. Você pode construir qualquer coisa com ele. Muito frequentemente, ao mencionar o ActivityPub, as pessoas tendem automaticamente a pensar em microblogging (Mastodon), pois essa é a aplicação mais popular até agora. Se você considerar esse domínio, todo mundo está criando sua própria “comunidade única” com ele, definida por quem eles seguem. Isso cria sua linha do tempo pessoal. Além disso, eles podem ter escolhido criar sua conta em, por exemplo, mastodon.technology e a linha do tempo do servidor tem, de forma solta, o tema “tecnologia”. Mas esse domínio realmente não se encaixa no Discourse, claro. É microblogging, não fóruns de comunidade, afinal.

Atualmente, algumas aplicações de microblogging estão expandindo seu domínio com o conceito de Grupos. Você pode ver isso como um conceito de comunidade que se estende além dos limites do servidor. Então, enquanto estou no mastodon.technology, posso me inscrever no grupo “espaguete” e em “mudanças climáticas”. Mas ainda é apenas microblogging → tudo é comprimido e achatado em minhas linhas do tempo.

O que é uma comunidade bem-sucedida? Quais são seus limites, o que está dentro e fora? Esses podem ser muito claramente definidos e relacionar-se com identidade e diversidade. Uma coisa com a qual eles não se relacionam por si só são limites específicos de servidor!

Embora eu tenha ido muito amplo em Comunidade não tem fronteira, é pensar sem esses limites artificiais de servidor que abordei (e como isso pode aumentar a qualidade, quantidade e atividade da comunidade. Não entrei em identidade, que é um bom ponto a ser abordado também). Obrigado por responder lá @Mevo, responderei em breve.

5 curtidas

Obrigado @aschrijver, isso é muito útil.
Com base no primeiro parágrafo, entendi a ideia de “usar com sabedoria”.
Quanto ao segundo parágrafo, quando falo em “ActivityPub”, estava me referindo mais ao que ele permite/faz do que ao protocolo em si. À ideia de “compartilhar/vincular conteúdo” ou de “liberar o conteúdo das fronteiras dos servidores”, como você menciona.

A ideia de uma certa mudança no controle/poder é interessante: não seriam mais os donos das comunidades quem controlam “seus” usuários, “seu” conteúdo (o que eles hospedam, pelo menos), o que as pessoas têm acesso ao chegar ao seu espaço, como as informações são organizadas e agrupadas, etc. Os usuários estariam mais no controle e mais livres para escolher o que querem, de onde querem, e montar seu “próprio cardápio”.

Conseguo ver como isso pode ser atraente do ponto de vista do usuário e como pode ser um pouco assustador/preocupante do ponto de vista do dono da comunidade.

Usando uma analogia com restaurantes, concordo que provavelmente fui um pouco longe demais ao falar em fundir vários lugares, mas acho que suas analogias são muito suaves: é mais do que o que você descreve, na minha opinião. Seria como ir a um restaurante e poder pedir um prato de outro lugar, feito pelo chef daquele lugar. Isso pode levantar questões (o que foi uma grande parte do meu ponto) sobre por que o dono do restaurante que paga bem a esse chef, e talvez tenha tido dificuldades para atraí-lo e mantê-lo, não teria interesse em não ter mais uma razão clara para os clientes virem ao SEU restaurante. Sua resposta é mais ou menos: é ótimo do ponto de vista do cliente. Sim, com certeza, concordo.

Mas, de qualquer forma, você pode estar certo nisso, e o ponto que estou levantando parece bastante com os medos de empresas em relação ao código aberto no passado.

@angus recebi notícias da bolsa NGI para apoiar o desenvolvimento desse recurso e a oferta foi rejeitada. Tentaremos nos inscrever em outra bolsa no próximo ano.

2 curtidas

Isso seria ótimo.

2 curtidas

Alguém pode resumir o status atual (a partir de 22/11) das ideias em torno da implementação do ActivityPub para o Discourse? Depois de passar por vários tópicos relacionados, meu quadro atual é assim:

  • Houve uma tentativa de obter financiamento da UE em 2019 para o trabalho de implementação, mas a candidatura foi retirada por alguns motivos
  • Até agora, não há código (plugin) que possa ser usado para testes
  • A equipe/equipe principal do Discourse.org não tem uma posição comum sobre a necessidade de um “discourse federado”

Este quadro está correto? Trabalho com um grande partido político na Alemanha e realmente precisaríamos de algum tipo de discurso descentralizado onde as notificações de atividade são compartilhadas entre instâncias. Portanto, estou interessado no status atual dessas ideias…

5 curtidas

Sim.

Usamos várias instâncias do Discourse para trabalhar no Discourse e os usuários recebem notificações centralizadas via:

  • Notificação Web Push (disponível no Android, Windows, Linux, MacOS)
  • DiscourseHub (disponível no iOS e Android para sites em nosso hospedagem)
  • E-mail (disponível em todos os lugares)

Sem mencionar a capacidade de assinar feeds RSS, sincronizar marcadores com seu calendário via endpoints .ics, etc.

Por que você precisaria de ActivityPub para isso?

5 curtidas

Sim, com base no OP, os feeds RSS são provavelmente a melhor solução para ter um feed universalmente agregado da internet. E com sites como rss.app e movimentos como openrss.org, você pode obter um feed RSS para qualquer site que desejar seguir hoje em dia.

3 curtidas

Estamos bem no meio da discussão aqui e talvez eu ainda não tenha compreendido todos os aspectos da discussão anterior.\n\nSe mudarmos de uma configuração centralizada para uma descentralizada com várias instâncias do Discourse (elas devem ser hospedadas localmente na Europa, a AWS não é uma opção), um tipo de mensagem de atividade de "servidor para servidor" permitiria que os usuários fizessem login em apenas um sistema e ainda recebessem informações sobre atividades interessantes de outro.\n\nO e-mail está "superlotado" e vemos um declínio na cobertura de informações que fluem por "newsletters padrão". O ActivityPub (usando a API de servidor para servidor) permitiria coletar informações de diferentes fontes em um "servidor preferido".\n\nOs feeds RSS são de fato uma solução possível, mas isso requer registro/autenticação em diferentes servidores. E trabalho manual com uma tecnologia diferente, a maioria dos usuários "não técnicos" não está familiarizada com isso.

2 curtidas

Eu adoraria convidar pessoas do fediverso para participar do meu servidor Discourse de uma forma mais rica do que o oneboxing manual.

Embora eu use um feed RSS (e, de fato, o use para rastrear novo conteúdo em várias instâncias do Discourse), um plugin somente de saída ActivityPub / ActivityStream atenderia às pessoas onde elas têm ido em massa e ajudaria a aumentar a acessibilidade das informações nos fóruns do Discourse.

Reconheço que a equipe do Discourse discorda fundamentalmente disso, e essa é a prerrogativa deles. Uma das enormes forças do Discourse é que, como um verdadeiro código aberto que é realmente construído publicamente e não jogado por cima do muro, não precisamos concordar com tudo. :smiling_face:

3 curtidas

Talvez os pensamentos em torno do ActivityPub no Discourse precisem de um pouco mais de amadurecimento, tanto técnica quanto estrategicamente.

Espero que o atual “desastre do Twitter” force mais pessoas (especialmente as de nível político) a repensar o que está errado com sua própria “soberania digital”. E, talvez, isso também inclua novas chances para soluções reais de código aberto na área de discussões digitais públicas e baseadas na comunidade…

3 curtidas

Até agora, temos defendido o ActivityPub no Discourse e ouvido muitas vozes tentando explicar por que precisam do ActivityPub… Mas não ouvimos da equipe do @Discourse por que eles não querem implementá-lo. Cada argumento apresentado foi abordado com alguma abordagem plausível, mas, no final, não há clareza sobre por que os identificadores remotos mudariam algo nos níveis de confiança, dado que as contas remotas ainda podem ser consideradas preparadas localmente e limitadas como usuários preparados são agora.

Existem vários tópicos relacionados. Eu queria destacar que @sam deixou claro que minha caracterização aqui de que “a equipe do Discourse discorda fundamentalmente disso” estava errada ou desatualizada:

Eu esperaria que a razão pela qual a CDCK não está aplicando seus recursos para fazer esse trabalho é que poucos ou nenhum de seus clientes pagantes se importam com isso, ou pelo menos o priorizam sobre outros trabalhos de recursos. Suspeito que há muito mais interesse da comunidade do que interesse corporativo neste trabalho no momento e no futuro previsível. Se a CDCK assumir esse trabalho, os custos de oportunidade de não construir outros recursos que seus clientes estão solicitando podem ser significativos. (Não tenho conhecimento interno aqui.)

Dado o comentário de Sam vinculado acima, se um grupo de desenvolvedores da comunidade Discourse se importar o suficiente para construir um plugin, eu esperaria que a CDCK investisse na cooperação com esses desenvolvedores para revisar e mesclar quaisquer alterações principais necessárias para tornar esse plugin eficaz. Minha experiência com as pequenas contribuições que fiz para o Discourse é que eles priorizaram o esforço para revisar e ajudar com trabalhos que eles não teriam priorizado fazer eles mesmos. :heart:

7 curtidas

Sendo apenas um usuário do Discourse (hospedando uma instância menor) e um usuário recente, não tenho nada concreto a oferecer em termos de como abordar isso tecnicamente. Mas notei que o WordPress, através de seu plugin, está se tornando uma presença importante no fediverso. Em fevereiro de 2023, há mais de 750 sites federando, o que já é maior do que muitas plataformas de federação dedicadas. Portanto, o potencial existe para “magicamente” tornar todas as comunidades do Discourse (que assim desejarem) parte de algo mais integrado. A principal ressalva é que (muito provavelmente) os protocolos de federação evoluirão com mais adoção, então isso seria realmente um compromisso para que a funcionalidade relacionada evolua junto.

2 curtidas

@SeriousFun01 leia Federation support for Discourse - #87 by angus e as postagens seguintes para uma atualização aqui. :tada:

3 curtidas