ActivityPub Support: Phase 1 RFC

There are many instances of Discourse. I don’t know exactly but I have accounts on a few dozens. It’s impossible to keep track of everything and many times I come across topics in distinct but no so different communities discussing similar issues, that could well be shared across instances since some of the participants are repeating themselves across discussions. It would really help to be able to share such topics across instances without having to login several times, cross-reference topics and not have a fluid discussion with interested parties.

Having ActivityPub users treated as staged users the same way emails users foreign to a Discourse instance are treated seems to be a good compromise to start with.

An RSS feed would certainly help you track ongoing topics at a single place but would not bring anything different from the Discourse Hub app, nor would it allow you to participate.

@hellekin I don’t know about this. Maybe you’re right, maybe you aren’t.
There are lots of nightclubs, restaurants, supermarkets, softwares, etc. Some are even pretty close. Geographically and/or in term of what they offer. Should one have the view that it’s “stupid” different places offering the same thing are separated? And these places should be merged to only have a centralized one?

Now, here, it’s a bit more evolved as the communities would stay kind of separated, but they are linked. Remains the question if all communities are the “same”: It is the same rules, the same atmosphere, the same kind of people, etc? This may be what makes a community a “special place” worth (actively) participating on: The fact that it’s unique. It has a unique vibe, a unique kind of humor going on, etc. A unique IDENTITY. People being a huge aspect of this: Who goes here or there. What kind of person.

Maybe this is a view on DIVERSITY: Mixing up everything, and ending up with something the “same” everywhere, because it’s so mixed up.

On the other hand, we have LINKS and QUOTES. Nothing prevents anyone from linking, quoting and summarizing what happens somewhere else. And here, you can keep the identity of each place, and not render everything the “same”.

Anyway, this may be the core questions behind the ActivityPub principle itself, and the willingness to implement it with Discourse. Of course, if it’s only optional, anyone can do as he wishes. and options are generally a good thing, IMHO (I’m not really sure why a successful community would want its content to be shared outside, and people to be able to interact with it from the outside).

[That’s a little some “Demolition man” thing where there are only Taco Bell restaurants left, isn’t it?]

1 curtida

I’m not sure how your view relates to my previous post. I did not say anything about merging communities, simply some common topics. And even then I only suggested user accounts could be the proxy…

And isn’t this, “merging” the offerings of different communities? You still “merge” some content, even if, as said in the previous message:

There seem to be a unwillingness to do it from the Discourse team, and an unclear advantages/use case on top of this. If you don’t see how my previous post relates to the subject, then ok. My apologies. forget about it.

Absolutely not. But I would like to read about them in my local newspaper, or - in a more specialized case - an Italian gastronomy guide for connaisseurs. The fact that things are not all the same, are what makes it worth subscribing to them. Back to the web and communities, linking an quoting are valuable of course. But they are another use case, different than sharing a topic between forums and viewing the thread in context, maybe participate directly.

You are right that in some cases you don’t want to mix identities and certainly not completely merge dispersed communities altogether. But you may selectively merge only those parts where it makes sense. Be it on a topic-by-topic basis, certain (sub)categories, tags or specific groups of people sharing content.

It is not really about ActivityPub either. The protocol is quite low-level, building on top of HTTP. You can build anything with it. Very often when mentioning ActivityPub, people automatically tend to think of microblogging (Mastodon) as that is the most popular application until now. If you consider this domain, everyone is sort of creating their own ‘unique community’ with it, defined by who they follow. This creates their personal timeline. Other than that they may have chosen to create their account on e.g. mastodon.technology and their server timeline loosely has the theme “technology” to it. But this domain does not really fit Discourse, of course. It is microblogging, not community forums after all.

Currently some microblogging applications are extending their domain with the concept of Groups. You might see this as a community concept that extends across the server boundary. So while I’m on mastodon.technology I might subscribe to the “spaghetti” group, and “climate change”. But it is still just microblogging → everything is compressed and flattened into my timelines.

What is a succesful community? What are its bounderies, what is inside and outside? These may be very clearly defined, and relate to identity and diversity. One thing they do not relate to per se, are specific server boundaries!

Though I went very broad in Community has no boundary, it is thinking without these artificial server boundaries I addressed (and how that may increase quality, quantity and activity of the community. I did not go into identity, which is a good point to also address). Thanks for responding there @Mevo, I’ll reply in due time.

5 curtidas

Thanks @aschrijver , this is very helpful.
I take from the first paragraph the idea to “use it wisely”.
About the second paragraph, I was referring more to the idea of what it enables/does, than the protocol itself, when talking about “ActivityPub”. The “sharing/linking content” idea, or “freeing the content from servers boundaries”, like you talk about it.

The idea of some kind of shift of control/power is interesting: It would not really be the community owners who control anymore “their” users, “their” content (what they host, at least), what people have access to when coming to their place, how information is organized and grouped, etc. The users would be more in control and more free to pick what they want, from where they want, and make their “own menu”.

I can see how this may be appealing from the user’s POV, and how it may be a little scary/worrying from a community owner POV.

Taking a restaurant analogy, I agree I was probably getting a little too far with my point of merging several places, but I think your analogies are too soft: It’s more than what you describe, IMHO. It’s going to one restaurant and being able to order a dish from another place, made by the chef of that place. It may raise questions (which was a big part of my point) as to why the restaurant owner who pays well that chef, and maybe had troubles to attract him and retain him, would want to NOT have a clear reason for customers to come to HIS restaurant anymore. Your answer is kind of: It’s great from a customer POV. Yes, sure, I agree.

But anyway, you may be right on this, and the point I’m making looks quite like the fears of companies with open source in the past.

@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