Comunidade não tem fronteira: Discourse-as-a-Fabric - ideação e brainstorm

Na Proposta de RFC: Fase 1 de Suporte ao ActivityPub, descrevi um exercício de ideação para avaliar o caso de negócios para ter suporte ao ActivityPub no Discourse, pensando além de um MVP, como se o Discourse tivesse sido construído desde o início com a federação em mente:

Portanto, darei início à ideação com algum brainstorming, sem levar em conta as praticidades técnicas dadas à base de código atual. Percebo que há muitos detalhes e casos extremos em tudo isso. Esta é uma visão de como o suporte nativo à federação poderia ser. Aqui vamos nós..

A Comunidade não tem fronteiras

(Foto de Pixabay, da Pexels)

Todos compartilhamos um único planeta :wink: misturando-nos em estruturas sociais complexas. Por que uma comunidade do Discourse estaria restrita a um único fórum?

Sou administrador da Comunidade de Tecnologia Humana (HTC) e cobrimos uma ampla gama de tópicos relacionados à tecnologia, tendo (sub)categorias como „Liberdade > Privacidade“, „Alinhamento > Ética“, „Alinhamento > Padrões“. Talvez seja muito amplo, e existem muitos outros fóruns do Discourse especializados nessas categorias, que fazem um trabalho melhor nesse campo. Mas para pessoas interessadas em obter uma visão geral de todo o campo da tecnologia humana, o posicionamento amplo faz sentido.

Federando categorias

E se eu pudesse federar nossa subcategoria „Privacidade“ com, por exemplo, a subcategoria „Publicações de Blog“ do fórum PrivacyTools? Talvez apenas sincronizar tópicos em uma direção — já que a subcategoria de privacidade da HTC é mais ampla em escopo — onde tópicos criados no PrivacyTools aparecem no fórum da HTC, e nossos membros podem interagir com eles. As postagens dos tópicos no fórum da HTC são então transferidas de volta para o tópico no PrivacyTools e vice-versa. Os tópicos em ambos os fóruns são mantidos sincronizados. Talvez eu queira até mesmo sincronizar unilateralmente várias subcategorias do PrivacyTools com „Privacidade“ na HTC. E por que não sincronizar com diferentes comunidades relacionadas à privacidade de forma semelhante?

Outro exemplo. Tanto o Feneas quanto o SocialHub compartilham uma categoria de nível superior „ActivityPub“. Há sobreposição nessas categorias, duplicação, membros de uma comunidade sem conhecimento do que está acontecendo na outra. Esta é uma oportunidade onde „ActivityPub“ é candidato para sincronização bidirecional, onde cada fórum contém então as mesmas listas de tópicos.

Federando tags e tópicos individuais

O mesmo pode ser aplicado a tags, onde uma tag específica é configurada para ser federada. Isso pode ser, por exemplo, configurado de modo que qualquer tópico com a tag #especificação no SocialHub seja federado para a subcategoria „Alinhamento > Padrões“ na HTC.

Os tópicos também podem ser federados caso a caso, acionados por um comando na barra de ferramentas, onde você especifica o fórum de destino para federar e talvez também selecione a categoria remota sob a qual o tópico deve aparecer (ou seja, a lista de Categorias do fórum também é federada para navegação remota).

Menções de membros e visualizações de perfil

Quando um tópico é federado para outro fórum, qualquer menção dentro dele precisa ser adaptada para refletir onde o membro reside. Meu identificador @aschrijver na HTC pode aparecer como @aschrijver@humanetech no fórum do SocialHub após a sincronização.

Como também sou usuário no SocialHub, posso conectar as contas nas configurações do meu perfil e, após uma verificação, isso significa que, nos tópicos sincronizados, meu identificador de conta local pode ser exibido.

Ao clicar em um identificador remoto ou avatar de membro, o cartão de perfil do fórum remoto é exibido. Ao clicar novamente para ver o resumo do perfil, ele pode mostrar apenas as métricas de atividade no fórum local que resultaram da interação com tópicos sincronizados. Alternativamente, e mais interessante, mostraria resumos de todos os fóruns conhecidos que fazem parte da configuração de federação. Por exemplo, eu poderia descobrir que a resposta veio de um membro muito ativo e especialista no outro fórum.

Mensagens diretas e notificações

Mensagens diretas (DMs) seriam possíveis em todos os fóruns federados, não apenas localmente, ao marcar/mencionar o membro remoto na DM. Fora isso, não haveria diferença na forma como a comunicação por DM ocorre. Funciona da mesma forma que as DMs locais atuais.

De todas as funcionalidades de federação descritas acima surge a necessidade de também federar notificações. Se eu responder a uma postagem de um membro remoto, curtir sua postagem ou mencioná-lo em um tópico sincronizado, uma notificação de interface pode aparecer no fórum remoto para notificar o membro. As notificações por e-mail também são tratadas pelo fórum remoto. No entanto, se o membro tiver contas vinculadas em ambos os fóruns, as notificações podem vir do fórum local onde a interação ocorreu primeiro.

Login único (SSO)

Note que em todas as funcionalidades descritas até agora, não há necessidade de ter SSO. Um membro remoto não tem acesso privilegiado automático a outro fórum federado. Então, o que acontece se eles forem mencionados em um tópico sincronizado unilateralmente? Nesse caso, eles receberão uma notificação de interface e um e-mail vindo de sua própria instância de fórum e, ao clicar, serão direcionados para o outro fórum (talvez em uma nova aba do navegador), onde poderão apenas visualizar o tópico. Se quiserem responder, terão que se cadastrar primeiro e vincular as contas para poder responder.

Note que o SSO é algo complicado no Fediverse, que ainda não tem uma boa solução. Mas para a federação entre Discourse e Discourse, a funcionalidade de SSO pode ser muito mais fácil de implementar. Se houvesse integração de SSO, ao clicar na notificação, o tópico poderia ser aberto no contexto dentro do fórum atual (como uma „visão remota“), permitindo que o membro interaja com ele de forma transparente.

Gerenciamento e complexidade da federação

Todo esse caso de uso é descrito como se o Discourse tivesse sido construído desde o início com suporte à federação embutido. Se tudo isso for implementado, afetará quase todos os recursos do produto. Diferentemente do caso de uso que iniciou este tópico — para feeds personalizados semelhantes ao Facebook —, a federação aqui é cuidadosamente gerenciada pela equipe do fórum, não ao arbítrio de membros individuais.

Muita da configuração de federação é coisa apenas de administrador. Deve ser feita estrategicamente e com um bom plano, para manter a organização da comunidade e o conteúdo intuitivos e lógicos. A configuração de federação é construída gradualmente ao longo do tempo como parte do fluxo de trabalho de construção da comunidade, não algo que é adicionado casualmente.

Interoperabilidade

Claro, essa visão de suporte ao ActivityPub não precisa ser restrita ao Discourse. Qualquer projeto de software compatível poderia se tornar parte do tecido distribuído da comunidade. Por exemplo, o software de construção de comunidades de código aberto do forem e a plataforma de tomada de decisão colaborativa do loomio, ambos dos quais acabei de indicar na direção desta postagem. Mas o Discourse tem a oportunidade de assumir a liderança em tudo isso.

Integração com o Fediverse

Todo o suporte à federação até agora foi limitado ao domínio de negócios de fórum/comunidade, mas com a integração do ActivityPub, a interoperabilidade pode agora se expandir para abraçar o Fediverse mais amplo, permitindo numerosos casos de negócios emocionantes. Apenas listando alguns que surgem aleatoriamente comigo agora:

  • Anunciar postagens de fóruns em todo o Fediverse com „toots“ nas plataformas de microblogging Mastodon / Pleroma.
  • Imagens incorporadas são automaticamente carregadas no PixelFed e servidas a partir daí (ótimo para comunidades como a do Blender).
  • A barra de ferramentas de data/hora permite configurar um evento completo do Mobilizon voltado para o Fediverse, com recursos completos de RSVP.
    • A integração é habilitada em duas vias, onde Discussões do Mobilizon no evento são na verdade tópicos do Discourse.
  • Criar tópicos no PeerTube com recursos especiais de vídeo, onde as postagens são o thread de comentários no PeerTube.
    • O mesmo vale para o Owncast se eles adicionarem suporte ao AP (veja esta questão).
  • Seu tópico publicado automaticamente se torna uma postagem de blog no Writefreely mais thread de comentários.
  • Incorporar partes do seu fórum no Nextcloud como um aplicativo através de seu suporte ao ActivityPub.
  • Integrar recursos de podcast via Funkwhale (veja o recente vídeo sobre suporte a podcasts).
  • Obter informações de perfil do Flockingbird, rede social profissional em desenvolvimento (semelhante ao LinkedIn).

E olhe para o número crescente de aplicativos na Lista de Observação do ActivityPub e deixe sua imaginação guiar você :smiley:

Consequências

Esqueça por um momento todos os obstáculos e dificuldades técnicas e considere o que ter isso significa para o Discourse como produto. Ou melhor, como o Discourse deixando de ser „apenas um produto": O Discourse tornou-se um tecido distribuído de comunidade.

A equipe dos fóruns não é mais apenas isso. Eles adotarão uma perspectiva muito mais ampla para a construção da comunidade. Tanto a comunidade quanto o conteúdo da comunidade existem em todo o tecido do Discourse. A equipe olhará ativamente para outras instâncias do Discourse, abordando suas equipes para forjar parcerias e criar designs de federação interessantes para cortar e dividir a organização da comunidade e o conteúdo para torná-los mais interessantes para a base de membros da comunidade.

Os próprios membros da comunidade também são muito melhor atendidos. Conteúdo mais interessante fluirá para o „portal" do fórum deles e o fórum será mais ativo do que se fosse apenas algo local. Os membros da comunidade poderão descobrir e interagir com membros de outras instâncias de fórum em todo o tecido. Na verdade, a fronteira da comunidade foi removida: A comunidade não tem fronteiras.

17 curtidas

Para ser justo, eu apenas folheei rapidamente, mas: que problema você está tentando resolver com essa ideia de tecido?

2 curtidas

Primeiramente, descrevi um grande número de possibilidades sem restrições, como entrada para o brainstorm. Mas, pessoalmente, tenho dois problemas nos quais gostaria de ver melhorias: um como membro geral da comunidade e outro como facilitador da comunidade (funcionário em 5 fóruns atualmente, onde faço cross-post de vez em quando):

  • Como membro da comunidade, tenho contas em 15 a 20 fóruns Discourse agora, alternando entre contas (algumas esquecidas) e senhas, e verificando as mais populares de forma semelhante a um carrossel, site por site. Todos eles acabam tendo muitas áreas de conteúdo sobrepostas, dado meus interesses. Agora, se você me pedisse para me juntar ao seu ótimo fórum sobre meu assunto favorito, eu ainda estaria muito hesitante em fazê-lo e criar mais uma conta.

  • Como facilitador da comunidade, tenho um problema semelhante e relacionado. Minha comunidade pode ser pequena, e você pode decidir se juntar àquela outra comunidade com conteúdo sobre assuntos semelhantes e parcialmente sobrepostos. Ou vice-versa. Ou você pode nem mesmo saber da existência daquela outra ótima comunidade (talvez eu, como facilitador da comunidade, saiba que ela existe, mas eu dedicaria um tópico fixado para informar meus membros?).

Com o suporte à federação em vigor, haveria uma situação ganha-ganha para facilitadores de comunidade cooperarem em parcerias e moldarem a organização do fórum para nossas audiências consecutivas, beneficiando-nos das forças uns dos outros. Concretamente, isso implicaria:

  • Capacidade de fornecer conteúdo de maior qualidade, selecionando as fontes mais adequadas para federar.
  • Base de membros maior — o agregado da federação — e, portanto, mais pessoas para ter discursos interessantes.
  • Níveis de atividade mais altos em todas as instâncias de fórum participantes da federação, o que ajuda a reter visitantes recorrentes.

Três aspectos — qualidade, quantidade e atividade — que são fundamentais para qualquer comunidade bem-sucedida :slight_smile:

8 curtidas

Concordo, isso pode ser realmente um incômodo. Eu resolvo esse problema adicionando o feed RSS das comunidades Discourse e ativando os e-mails de resumo semanal incorporados.

5 curtidas

Acabei de terminar recentemente ‘A Praça e a Torre’, de Niall Ferguson, que trata da influência das redes sociais (conexões sociais obscuras e informais entre indivíduos) ao longo da história mundial. Não é um livro perfeito, mas reforça consistentemente seu ponto de que ‘a comunidade não tem fronteiras’. Redes distribuídas são mais resilientes, inovadoras e igualitárias do que hierarquias. O Discourse se descreve como ‘uma reinicialização a partir do zero, uma tentativa de reimaginar como deve ser um fórum de discussão da internet moderna hoje, em um mundo de smartphones, tablets, Facebook e Twitter ubíquos’. A menos que a ambição do Discourse seja ser apenas o software de fórum mais recente e melhor por um tempo, a integração com ActivityPub é o caminho claro para desafiar seriamente o Facebook, o Google, o Twitter e outros, e reverter as expectativas sobre o que uma comunidade online pode ser.

8 curtidas

@aschrijver Claro, pessoalmente adoro as ideias e o raciocínio.

Isso parece ser alcançável de forma bastante “fácil”. Para a parte das contas, você poderia usar um Discourse principal que atuaria como provedor de SSO. Outros fóruns Discourse teriam apenas que se juntar ao sistema para construir uma base de usuários central: seu nome de usuário será reservado para você em todos os Discourse que o utilizarem. Idealmente, os administradores/donos dos fóruns se juntariam no momento da criação do seu fórum. Seria possível se juntar mais tarde; você “apenas” teria que resolver todos os nomes de usuários duplicados que apareceriam nesse momento: o administrador teria que fazer com que seus usuários alterassem seus nomes de usuário quando o nome já estiver em uso no sistema.

Para a parte da parceria, plugins que usam Matterbridge e/ou a API do Discourse deveriam ser capazes de fazer tudo. Haveria algum desenvolvimento e refinamento de plugins a ser feito aqui.

Alternativamente, para novos fóruns, pode haver uma solução para uma abordagem de “multissítio”: criar categorias em um Discourse principal (que poderia ser o mesmo que o provedor de SSO da ideia acima), e uma categoria = um “fórum”. Ajustando algumas coisas, você poderia “trancar” um pequeno grupo de pessoas dentro da categoria, remover as menções às “categorias” principais e reaproveitá-las como “fóruns” diferentes. Ao ativar subcategorias, cada fórum ainda teria 2 níveis de categorias. Há ajustes a serem feitos, mas isso permite diretamente uma base de usuários comum e mensagens privadas entre eles (você está no mesmo Discourse!).

Você pode combinar as duas abordagens: ter fóruns hospedados no Discourse principal e fóruns externos vinculados a ele. Acho que traduzir sua visão em realidade é bastante possível. Estou potencialmente disposto a trabalhar nisso se houver interesse (embora eu precisasse de alguma ajuda). Registre o domínio webforum.link, que pode ser usado para isso.

Nota (após ver a postagem anterior): ActivityPub é algo “aberto”. As ideias acima seriam muito mais “fechadas” e restritas a fóruns Discourse. Também não seria tão fácil participar.

3 curtidas

@aschrijver, seguindo nossa troca de mensagens em ActivityPub Support: Phase 1 RFC - #50 by Mevo e tentando levar o assunto para cá (este é um tópico mais adequado):

Há algo que achei bastante interessante recentemente: algumas pessoas criaram um mercado livre e descentralizado chamado Openbazaar. A ideia era basicamente ter algo totalmente aberto, onde qualquer pessoa pudesse colocar qualquer coisa à venda, sem qualquer possibilidade de restrição ou censura. Ele se baseia em criptomoedas para pagamentos, há a possibilidade de avaliar vendedores e um sistema de moderadores para arbitrar, eventualmente, transações que deram errado ou apresentaram problemas. SEM TAXAS nas transações, o sistema é 100% gratuito (haveria uma pequena taxa para o moderador precisar intervir, caso fosse necessário).

Ou seja, no papel, essa coisa é fantástica, na minha opinião. No entanto, nunca realmente decolou. Por outro lado, eBay ou Amazon, que cobram taxas consideráveis em cada transação, funcionam muito bem.

O ponto é que ter alguém que controle algo, que tenha incentivo para fazê-lo funcionar porque lucra financeiramente com isso e que vai investir nesse objetivo, geralmente faz com que funcione melhor do que ideias livres, abertas e nobres. Pode ser muito triste, mas, na prática, é isso que parece acontecer na vida real.

O Mastodon substituiu o Facebook e o Twitter? Será que algum dia vai? Os usuários não parecem estar cansados da quantidade de anúncios que consomem no Facebook.

De qualquer forma, parece-me que você não levou em consideração esse aspecto em sua visão sobre federação. Então, aqui está para você considerar (ou pelo menos ficar ciente). Isso não significa que ter a opção de federar coisas ou entrar em parcerias não seja uma boa ideia. Mas ir por uma “federação total” também pode remover o apelo de executar um software, que se torna apenas um “nó” e deixa de ser algo que você controla. É bastante diferente, pelo menos.

1 curtida

A evolução do uso de uma plataforma não é linear. Pegue o exemplo do Signal: Snowden disse “use o Silent ou o Signal”, e o aplicativo avançou. Assim, ele permaneceu como um nicho. Quando uma Gafam faz uma comunicação ruim e Elon Musk diz “use o Signal”, centenas de milhares de usuários aparecem porque eles compararam sincronamente os mesmos critérios e o aplicativo de destino atende às suas necessidades.

Alguns usuários podem ter deixado o Twitter e o Facebook recentemente, sem muita cobertura da mídia, porque o principal provedor de reações em seu feed teve suas contas excluídas.

Quanto mais o sistema se torna caótico nas redes sociais, maior a probabilidade de que os usuários se envolvam sincronamente em um massivo “desinstalar aplicativo1, instalar aplicativo2”.

1 curtida

Não tenho certeza de que o exemplo do Signal seja realmente comparável. Aqui há um recurso claramente adicionado e um PORQUÊ para as pessoas usarem: “Use comunicação criptografada para que o que você diz permaneça privado e ninguém possa ouvi-lo”. Seria uma mudança de não criptografado para criptografado.

Mas, ao migrar de uma plataforma “fechada” e “isolada” para uma “aberta”, se pensarmos em “federação completa”, isso realmente traz algo aos usuários? Realmente adiciona um recurso para eles? Alguns podem dizer que sim, pois veem como participam de várias comunidades e isso poderia agregá-las (eu entendo o quão cansativo é fazer login em xx comunidades diferentes). Mas, ao mesmo tempo, se todos os usuários migrassem para uma única comunidade “fechada” que se tornasse dominante, seria praticamente o mesmo para eles. Não tenho certeza de que eles perceberiam a diferença ou desejariam a “abertura”.

As pessoas se importam com o conteúdo, as interações e assim por diante, mas importa para elas como funciona tecnicamente e quem controla? A mudança para “federação” é, de certa forma, uma mudança de CONCORRER para COMPARTILHAR para as comunidades. Elas podem ser amigas entre si e aceitar enviar usuários de uma para a outra, mas ainda competem quando estão fechadas.

Seu segundo ponto é interessante: alguma “federação” impediria proibições, exclusões de contas e censura? ISSO pode ser um recurso adicional para as pessoas. Atualmente, com o ActivityPub, acho que você pode ser banido de sites individuais, mas pode continuar publicando no restante da federação… desde que o site em que você se registrou não o banisse? @aschrijver, você sabe como isso funciona? (Não conheço bem o ActivityPub). Você está registrado em algum nível de federação ou está registrado em um dos sites que pertencem à federação? Você pode ser banido no nível da federação? Ou isso é impossível? (Supostamente impossível?)

@jibe-b A questão não era realmente sobre ir de app1 para app2, mas sim sobre apps individuais fechados comparados a algo federado (algo aberto). Também podem existir apps individuais fechados com fortes políticas de liberdade de expressão e que não banem pessoas (é muito fácil dizer com o benefício da hindsight, mas o “provedor de reações” poderia ter previsto isso). Você pode garantir um ambiente livre de proibições descentralizando totalmente e removendo a capacidade de banir de qualquer pessoa. Não acho que prevenir a censura fosse o objetivo inicial de @aschrijver, embora.

1 curtida

(Quotei trechos para brevidade). A analogia do restaurante meio que falha aqui. É como se você estivesse sentado em duas mesas ao mesmo tempo, em um restaurante maior e “agregado”, com mais pessoas para celebrar. O que você diz pode ser verdade, mas também depende totalmente de como as coisas forem implementadas.

Enquanto o tópico RFC do ActivityPub e o caso de uso de @hellekin colocam indivíduos no controle total, na minha descrição acima, deixo a estrutura da comunidade totalmente nas mãos da equipe da comunidade. Eles estabelecem parcerias com outras comunidades e, possivelmente, só conseguem compartilhar seções transversais de sua comunidade com base no consentimento mútuo.

Achei que fazer isso estaria mais no interesse da Discourse (a empresa) e também dos gestores de comunidade que investem tanto esforço para construir sua identidade e base de membros. Ou seja, seria mais um caso de negócios. Assim, a equipe continuaria no controle total e também cuidaria de manter a organização da comunidade constituinte abrangente e intuitiva. Eles são os “editores do tecido da comunidade”.

Se você permitisse total liberdade aos usuários da Discourse para preencher seu “portal” vazio com conteúdo de fóruns de todos os lugares, você teria uma dinâmica de comunidade completamente diferente. O caso de uso tem valor, para casos específicos, mas é completamente diferente do caso de uso em que “a equipe mantém o controle”. Claro, todos os tons de cinza intermediários também são possíveis.

Sim, conheço-os e amo a ideia do OpenBazaar como um mercado descentralizado, mas foram as criptomoedas que me impediram de verificá-lo. É uma questão de confiança. Para muitas pessoas, isso também pode tê-las impedido. Mas, além disso, são os enormes efeitos de rede das grandes empresas de tecnologia estabelecidas que tornam muito difícil para novos entrantes fazerem sua entrada, onde lançam um novo serviço, anunciam em sites com milhões de visitantes diários e conseguem operar com grandes prejuízos até que a coisa finalmente decole.

Sim, concordo com isso. É por isso que não foquei na “total liberdade”, mas sim no caso de uso “equipe no controle”, conforme descrito acima. Onde o suporte ao ActivityPub adiciona um USP ao Discourse como produto para gestores de comunidade, os clientes pagantes. Bem… se eles escolherem uma assinatura hospedada na nuvem, claro.

Nesse sentido, a Discourse (a empresa) poderia tornar as assinaturas mais interessantes fornecendo serviços de valor agregado, como um serviço de descoberta e matchmaking onde gestores de comunidade de diferentes comunidades procuram ativamente parcerias e cooperações para enriquecer suas comunidades (e, implicitamente, as uns dos outros). O serviço pode ser acessível a qualquer pessoa ou apenas a clientes de um plano pago.

Eles deveriam querer? Por que isso deveria ser o objetivo? O ActivityPub, como protocolo, permite que muitos aplicativos diferentes em muitos domínios diferentes interoperem em qualquer nível. Cada projeto/app/produto perseguirá seus próprios objetivos e, para software comercial, seus próprios USPs.

A primeira parte é importante. Escolha sua federação com sabedoria. A federação total nunca deve ser o objetivo se você perder toda a sua identidade como produto ao fazê-lo.

Primeiro de tudo, há uma diferença entre “federação” e “fediverso”. Se você construir uma federação usando o ActivityPub, pode construí-la de qualquer maneira que desejar. Se você construir com o objetivo de integrar-se ao Fediverso, existem alguns padrões de fato estabelecidos sobre como as coisas funcionam. Um banimento em nível de usuário em todo o fediverso não é possível, e os banimentos em instâncias específicas são baseados em decisões dos moderadores de cada outra instância, configurados em listas de bloqueio e permissão. Essas listas são frequentemente compartilhadas (como listas de bloqueio de anúncios) e podem levar a certas instâncias sendo totalmente bloqueadas em todo o fediverso (“elas são empurradas para as margens do fediverso”).

Um bom vídeo que explica o conceito é:

Como fóruns, cada instância federada no Fediverso é moderada. E acho que isso é uma coisa boa. Ainda há total liberdade, porque você pode criar sua própria instância de fórum/servidor sem moderação, onde tudo vale. Outros têm a liberdade de bloqueá-lo com base nisso.

4 curtidas

Delegando a gestão da comunidade

Como isso é um brainstorm livre, e eu acabei de ver este tópico Chamando voluntários para serem Gerentes de Comunidade :mega:   … eu pensei:

E se a gestão da comunidade fosse federada?

Você é um gerente de comunidade novato em um fórum Discourse recém-instalado, um completo iniciante na interface de administração e nas práticas de construção de comunidade. E se você pudesse chamar a ajuda de um gerente de comunidade experiente por um certo período para aconselhá-lo e supervisionar seu trabalho?

Agora eu sei que vocês vão dizer: “Por que não criar apenas uma conta de equipe naquele fórum.. sem necessidade de federação!” e vocês estariam certos. Mas vamos inverter a lógica e talvez tornar isso mais interessante: E se eu quisesse oferecer minhas habilidades em Discourse e gestão de comunidade, seja como voluntário ou profissional (ou seja, pago)?

Eu gostaria de poder gerenciar de forma produtiva o maior número possível de comunidades no meu ‘portfólio de clientes’. Isso leva a um ganho triplo:

  • Novos gerentes de comunidade podem obter um serviço de integração para começar mais rapidamente.
  • Gerentes de comunidade podem se beneficiar mais amplamente de suas habilidades, além de sua própria comunidade.
  • Os dois pontos anteriores significam que o Discourse adicionou mais um Diferencial Único de Venda (USP) ao seu produto.

Como isso seria então? Eu não sei… muitas possibilidades. Algumas sugestões, onde em cada uma delas o administrador delegado trabalha a partir de seu próprio portal de fórum via federação, gerenciando potencialmente muitas comunidades:

  • O administrador delegado pode configurar as Configurações do fórum, instalar plugins/componentes/css, que o administrador real aprova antes que entrem em vigor.
  • O administrador delegado tem acesso a categorias e grupos restritos à equipe e participa de discussões para dar seu conselho.
  • O administrador delegado lida com as denúncias (flags) levantadas no fórum, onde apenas o tópico com a denúncia é federado para o seu portal.
  • O administrador delegado, conhecendo o cenário da comunidade, ajuda a organizar parcerias com outras comunidades e o compartilhamento de conteúdo.

Considere o seguinte a partir do acima:

Isso também pode ser um serviço de valor agregado e pode ser combinado com o acima. Todas as partes envolvidas têm interesse em que os administradores delegados sejam avaliados como bons gerentes de comunidade até certo ponto. O Discourse (a empresa) pode permitir que apenas pessoas se tornem administradores delegados se estiverem em uma assinatura (paga?). O Discourse ou um parceiro pode oferecer um curso de gestão de comunidade que, quando aprovado, recompensa com um certificado com o selo de aprovação de @codinghorror.

Bem.. se você gosta da ideia ou não. Foi uma boa sessão de brainstorm para mim, haha :grinning_face_with_smiling_eyes:
Talvez você possa melhorar isso?


Edição:

O próprio Discourse usaria esse serviço também. No início da nossa assinatura paga, um membro da equipe do Discourse fazia parte da equipe do nosso fórum para oferecer o mesmo tipo de ajuda. Com isso, eles podem fazer isso a partir de seu próprio ‘cockpit’ remoto, ou… delegar.

Outra coisa que lida com o compartilhamento de partes de uma comunidade… Várias vezes, quando publiquei um tópico no Meta pedindo ajuda específica, o tópico foi tornado privado (às vezes porque continha informações sensíveis) e tratado como um ‘ticket de suporte’ pela equipe do Discourse. Com a federação, eu poderia ter a parte de Suporte do Meta integrada ao meu próprio fórum.

4 curtidas

(Minha formatação). Eu realmente gosto dessa definição, @JE-FF, e ela se encaixa perfeitamente na abordagem inovadora a ser adotada com os conceitos de ‘comunidade sem fronteiras’ e ‘discourse como uma malha’. No entanto, duvido, como também mencionei ao @Mevo, se o Discourse realmente deseja desafiar as grandes empresas de tecnologia em redes sociais. Eles poderiam, se quisessem, mas não há necessidade. O Discourse é bastante bem-sucedido por mérito próprio e está posicionado de forma diferente agora, ou seja, como um SaaS multi-inquilino, uma ‘nuvem de fóruns de comunidade independentes’. Embora, ao expandir os conceitos de comunidade além das fronteiras dos inquilinos, eles possam estar melhor posicionados contra seus rivais, tanto no espaço de fóruns quanto no de redes sociais.

2 curtidas

Muito obrigado, @aschrijver. Está muito claro e, honestamente, concordo quase totalmente com tudo o que você disse. Escrevi minhas mensagens com a ideia de que o que você estava propondo era um “degrau” rumo ao objetivo final de “federação plena (e totalmente aberta)”. Agora, nem mesmo tenho certeza de onde surgiu essa ideia; é possível que você nunca tenha dito nada disso. Pode ter sido uma interpretação equivocada (e uma ideia criada por mim) ou talvez eu tenha misturado coisas ditas por outras pessoas.

O ActivityPub permitiria fazer tudo isso, enquanto você ainda pode escolher como quer fazer as coisas; sim, tudo isso soa incrível para mim. Acho que você tem razão: pode haver confusão entre ActivityPub e Fediverso (você já explicou isso no outro tópico sobre o ActivityPub).

Pessoalmente, adoro todas as ideias que você trouxe. No que diz respeito à “gestão de comunidade” federada, também seria muito útil ter acesso a moderadores dessa forma. Moderadores que você poderia usar temporariamente quando sua comunidade estiver em alta ou quando houver, por exemplo, um evento especial que exija mais moderadores (tudo isso talvez estivesse incluído na “gestão de comunidade” na sua mente. Você falou sobre bandeiras, mas também poderia ter acesso a mais pessoas do tipo “administrador”, além de “moderadores” ou “gestores de comunidade”, se você definir essas tarefas como diferentes).

Como já foi dito anteriormente, tudo isso pode ser alcançado “à parte”, por meio de plugins e/ou um site lateral (poderia haver um site lateral de “freelancers” listando e oferecendo serviços com pessoas que trabalhariam diretamente na comunidade. Não é tão bom quanto ter sua própria plataforma, de onde possam gerenciar tudo remotamente e de forma agregada graças ao ActivityPub, mas já seria um bom começo).

Tudo depende se a equipe do Discourse deseja ou não usar algumas dessas ideias para implementá-las diretamente no Discourse.

4 curtidas

Não concordo aqui. Tenho usado configurações de múltiplos sites para facilitar a propriedade em grupo de uma instância do Discourse, onde um grupo próximo pode se tornar parte da equipe, mantendo um vínculo direto com a comunidade maior. Na minha opinião, brincar com as fronteiras da comunidade empodera a comunidade ao usar o princípio da subsidiariedade: que as decisões são tomadas o mais próximo possível da prática.

Primeiro, você parece interpretar o que ele disse como ‘os usuários vão se comportar mal sem algum tipo de ‘controle da equipe’’, o que, na minha opinião, não é o que ele disse. Segundo, ele apenas falou sobre uma ‘dinâmica comunitária totalmente diferente’, sem nenhum julgamento sobre isso ser bom ou ruim. Na verdade, você parece concordar com ele ao dizer que é algo bom (ainda é ‘diferente’).

Mas essa não era a discussão. Não se tratava desse ‘controle’, nem de ter algum problema com os usuários.

Sim, a maior parte tratou-se de mostrar quão ampla é a variedade de opções disponíveis e a total flexibilidade para ajustar a cenários específicos. Se eu mantiver o foco exclusivamente na bola do ActivityPub, isso permite ao implementador de recursos de federação ter controle total sobre a ‘bola’. Os casos de uso implementados são todos igualmente válidos (assumindo que tenham sido projetados deliberadamente como parte do desenvolvimento do produto).

Percebo que o caso de @hellekin, de fato, não está na extremidade de maior liberdade do espectro, e seria interessante elaborar mais sobre isso. @hellekin está gerenciando mais fóruns do que eu, e de maneiras criativas, como pode ser visto no fórum do SocialHub, onde equipes individuais de software ActivityPub têm controle sobre suas próprias seções do fórum. Essas equipes frequentemente possuem outro fórum independente (como no caso do Mastodon). Elas devem ser incentivadas a realizar esse ‘trabalho duplo’ para manter a comunidade do AP informada sobre as extensões de federação personalizadas que incorporam em seus próprios softwares. Além disso, o SocialHub possui o que pode ser considerado fóruns satélites.

3 curtidas

Acabei de decidir me cadastrar em mais um fórum Discourse, apenas para ajudá-los e fornecer (copiar/colar) algumas dicas úteis sobre tópicos em outros fóruns. Mais uma conta de usuário Discourse para gerenciar.

O fórum é o Fedeproxy, um novo projeto ActivityPub que visa sincronizar forjas de código (repositórios do Github, Gitlab, Gitea, etc.) entre si. Pode se tornar uma implementação do protocolo Forgefed e é interessante mencioná-lo aqui por dois motivos:

  1. Este é mais um exemplo de um domínio de negócios completamente diferente que pode se beneficiar enormemente da federação ActivityPub.
  2. Se o Discourse tivesse suporte a federação, a categoria #development deste fórum poderia ser sincronizada em duas vias com a subcategoria #software do SocialHub, sem necessidade de trabalhar em dois fóruns e duplicar discussões.

Atualização:

No fórum Fedeproxy, um usuário (que, aliás, não quis se cadastrar aqui, apenas para deixar um único post) me apontou para uma ontologia interessante de Dados Vinculados para comunidades, a Especificação da Ontologia Central SIOC, onde o projeto SIOC significa “Comunidades Online Semanticamente Interligadas”. A ontologia define as seguintes semânticas em Dados Vinculados:


Menciono aqui porque destaca o pensamento em domínio de negócios/vocabulários e pode ser uma inspiração para o brainstorm :slight_smile:

(PS. Não se deixe levar pelo termo “Web Semântica” nas especificações do SIOC. Não é sobre isso — muito complexo — mas sim buscar vocabulários de Dados Vinculados fechados para definir um domínio específico.)

Atualização 2:

Encontrei um ótimo projeto hoje, também em um domínio semelhante ao do Discourse, e iniciei uma discussão sobre “Comunidade não tem fronteiras” lá:

O PubPub faz parte do Knowledge Futures Group, que também está trabalhando no projeto Open Distributed Knowledge Graph Underlay (que se aproxima de uma ideia que tenho para agregação de conhecimento a partir de fóruns Discourse).

Atualização 3:

Percebi que a discussão sobre Comunidade é muito mais ampla do que apenas o Discourse, pois os conceitos de comunidade são tão universais em nossa sociedade. Para o Fediverse, iniciei uma discussão sobre a padronização de um domínio de Comunidade e a modelagem de uma extensão ActivityPub com base nele:

7 curtidas

O ActivityPub é uma boa ideia, mas até mesmo softwares recém-lançados que o implementam como cidadãos de primeira classe precisam corrigir algumas falhas nas especificações — então, para nós, faz sentido esperar e observar.

Além disso, isso é totalmente viável como um plugin, caso seja algo pelo qual um grupo específico tenha grande paixão.

13 curtidas

Seria incrível ver essa integração sendo solicitada via pull request no app chat-integration, para que possamos simplesmente fazer um cross-post por tag, categoria ou menção, após adicionar nossas credenciais. Abraços!

7 curtidas

Obrigado, @codinghorror. Sim, de fato, há lacunas na especificação ActivityPub. Mas elas estão presentes mais ou menos de forma deliberada, tanto porque os autores da especificação não queriam criar um padrão tecnológico enorme e complexo que abrangesse tudo, quanto porque, no momento da redação, eles não sabiam como a especificação evoluiria. Então, eles aguardaram implementações de referência (isso também teve algumas desvantagens, como, por exemplo, o Mastodon usar uma API de cliente personalizada em vez da parte de Cliente para Servidor da especificação, mas o Mastodon também definiu algumas extensões de namespace práticas para serem usadas).

Atualmente, a maioria dessas lacunas foi preenchida por outros padrões abertos (embora ainda haja algumas a serem preenchidas). Existem Assinaturas HTTP para federação de Servidor para Servidor (ou, menos usadas, assinaturas JSON-LD). Para menções de usuário federadas, usa-se Webfinger. O acesso de Cliente para Servidor utiliza OAuth2 com Credenciais de Cliente, e existem especificações de fato NodeInfo / NodeInfo2 para comunicar as capacidades do servidor.

Concordo que grande parte das coisas discutidas neste tópico (a maioria, provavelmente) pode ser implementada usando Plugins e a excelente API do Discourse. Seria mesmo incrível, como diz @sunjam, se alguém se aventurasse nisso :slight_smile:


Com base nesse brainstorming, iniciei algumas discussões mais gerais no fórum SocialHub, às quais gostaria de fazer referência:

Atualização 07/03/2021: No SocialHub, no tópico sobre a criação de uma extensão AP de vocabulário para Comunidade, detalhei um pouco mais como o Discourse se encaixaria em um modelo de comunidade. Veja minha postagem:

7 curtidas