Supporto ActivityPub: RFC Fase 1

Capisco.
È piuttosto frustrante.

Gli amici hanno migrato a Discourse a causa dell’imminente ActivityPub.
Ora li vediamo denigrare Discourse di nuovo…

Inoltre, il forum ufficiale per ActivityPub è passato a Discourse e ora dobbiamo discutere su cosa fare…

Gli sviluppatori dietro Lemmy stanno compiendo un ottimo lavoro nell’adattare ActivityPub per renderlo utilizzabile dal software comunitario:

https://github.com/LemmyNet/lemmy-docs/blob/main/src/en/federation/overview.md

Tuttavia, hanno dovuto estenderlo, quindi non esiste altro software che implementi le loro attività.

La nostra implementazione della federazione è già completa a livello di funzionalità, ma finora non ci siamo affatto concentrati sulla conformità alla specifica ActivityPub. Di conseguenza, Lemmy probabilmente non è compatibile con implementazioni che si aspettano di inviare e ricevere attività valide.

Immagino che, se Lemmy riuscirà a renderlo compatibile con Mastodon, potremo implementare la stessa API utilizzata da Lemmy, mappando

Discourse ActivityPub di Lemmy
Categoria Community
Osservazione Segui
Argomento Post
Post Commento
Mi piace Mi piace
19 Mi Piace

Nel linguaggio di ActivityPub, questo sarebbe quindi una Pagina, il che ha molto senso se si considera la funzione di pubblicazione delle Pagine: la prima parte verrebbe annunciata come una Pagina, mentre qualsiasi risposta sarebbe una Nota.

Sono incerto riguardo a Categoria → Comunità. Dato che il supporto AP e l’SSO rendono tutto più fluido, tendo ad avere più di un’istanza di Discourse per una singola comunità.

5 Mi Piace

Voglio solo dire che le seguenti istanze di Discourse hanno iniziato a condividere sia utenti che discussioni, e ActivityPub in Discourse sarebbe molto utile per tutti noi:

https://love.public.cat/t/what-is-at-stake-with-interoperability/96

7 Mi Piace

Interessante, vale la pena notare che anche Mobilizon utilizza ActivityPub per la pianificazione di eventi, sviluppato da Framasoft… le stesse persone che hanno creato Peertube.

1 Mi Piace

È un peccato che Discourse non si stia muovendo verso l’implementazione di ActivityPub; sento che qui c’è un potenziale inespresso, dato che ci sono così tante comunità che già usano Discourse e ne beneficerebbero fin dal primo giorno… Anche se non lo sanno ancora! :sweat_smile:

3 Mi Piace

Ciao a tutti @rishabh, @riking, @codinghorror,

(Sì, c’è un TL;DR qui sotto)

Qualche tempo fa ho capito da @sl007 e @hellekin che non perseguirete questa Fase 1 nel breve termine, anche con il finanziamento NGI0. Come promotore della interoperabilità basata su ActivityPub, trovo anche io, naturalmente, che sia un peccato. Ma dal punto di vista di Discourse, il software per forum leader e più popolare, ci sono molte forze e altre priorità da considerare, e questa decisione aziendale, alla luce di ciò, probabilmente ha molto senso:

Decisione: Questa RFC, così com’è proposta, non era semplicemente abbastanza attraente per ottenere priorità e essere inserita nella Roadmap.

La RFC ha adottato un approccio MVP con “Iniziamo creando un feed di contenuti aggregati simile a Facebook tra i forum”, come proposto da @Falco. È solo una delle tante, moltissime funzionalità che potrebbero derivare dal supporto nativo di ActivityPub in una forma o nell’altra. Si può dire che avere una tale timeline sia una sorta di deviazione da ciò che normalmente si trova in un forum, e a me non sembra una vera funzionalità principale. Piuttosto un’estensione aggiuntiva e quindi un “nice-to-have”.

Un approccio diverso

Con la necessità di arrivare rapidamente a un MVP del supporto ActivityPub fuori dai giochi, forse potremmo seguire il processo opposto:

Ideazione: Brainstorming sui casi d’uso di interoperabilità e valutarne la fattibilità in termini di vantaggio commerciale e USP.

Cioè: quali funzionalità sarebbero davvero attraenti da avere in Discourse? O anche: Dove potrebbe Discourse perdere l’occasione se non fosse al corrente di ciò che è possibile?

Nel suo ultimo post sopra, @Falco menziona Lemmy, che è costruito da zero su un vocabolario di Dati Collegati dedicato che corrisponde al loro dominio aziendale. Hanno il loro MVP pronto e in produzione, e ora stanno valutando l’espansione del loro set di funzionalità sul loro stesso dominio. Questo potrebbe includere la federazione con un altro dominio del microblogging dove Mastodon, Pleroma e altri hanno molto successo.

L’approccio all’ideazione potrebbe seguire questo esercizio:

Esercizio: Immaginiamo come Discourse potrebbe essere apparso se fosse stato basato fin dall’inizio sul proprio dominio aziendale basato su ActivityPub (definito come un vocabolario di Dati Collegati).

Lasciamoci andare in questa sessione di brainstorming e lasciamo correre libera la nostra creatività.

L’elenco dei casi d’uso che ne risultano potrebbe essere abbastanza interessante dal punto di vista commerciale da entrare a far parte della Roadmap, ma se non lo fosse, potrebbe comunque ispirare la comunità a creare plugin e componenti, e porre le basi su cui costruire in una fase successiva.

ActivityPub contro Fediverse

Noto che c’è un diffuso malinteso su cosa significhi avere il supporto ActivityPub in un’applicazione. Molti pensano che il motivo per farlo sia diventare “parte del Fediverse”. E qui il pensiero va immediatamente alla federazione con le istanze di Mastodon, ovvero implementare l’interoperabilità con (cioè unirsi al) dominio federato del microblogging.

Sì, questa è un’opportunità molto attraente una volta ottenuto il supporto ActivityPub, e molte altre applicazioni come PixelFed (alternativa a Instagram), PeerTube (alternativa a YouTube) e anche Lemmy (alternativa a Reddit) mirano a farlo. Rendono il Fediverse un luogo più attraente in cui partecipare, e stanno prendendo forma molte innovazioni che rendono il futuro del fediverse davvero entusiasmante.

MA…

Si può obiettare che organizzazioni che mirano a grandi basi di utenti come Discourse potrebbero porsi domande come: “Perché dovrei voler integrare il Fediverse con solo circa 4 milioni di utenti?” o “Perché dovrei integrare il microblogging nel mio software che opera in un dominio completamente diverso?”. E avrebbero ragione a affermarlo, e a rinunciare all’implementazione di ActivityPub su quella premessa.

TUTTAVIA…

Le implementazioni di ActivityPub riguardano molto di più che diventare parte del (parte del microblogging del) Fediverse. Ha perfettamente senso implementare un vocabolario di Dati Collegati progettato in modo univoco per il proprio dominio aziendale e far federare insieme le proprie istanze di prodotto. O tutte le istanze del proprio prodotto e quelle dei concorrenti nel proprio settore che adottano lo stesso vocabolario, per l’appunto.

Un esempio qui è il progetto ForgeFed che mira a definire standard di interoperabilità per le forge di codice (github, gitlab, gitea, sourcehut, ecc.) da implementare. Fare questo ha un enorme senso, specialmente per i progetti di forge di codice più piccoli per offrire un’alternativa attraente a Github (che è diventato troppo dominante come piattaforma centralizzata e sempre più chiusa). Se adottato ampiamente, gli sviluppatori non dovranno più gestire una moltitudine di account forge su server sparsi per internet per partecipare a interessanti progetti di codice, aprire issue, commentare e inviare PR.

(Si noti che - come indicato sopra - lo stesso problema che le persone hanno con l’esistenza ovunque di forge di codice standalone è ciò che io e altri sperimentiamo anche nella nostra partecipazione a un mucchio di comunità Discourse.)

Opportunità: Discourse è in una posizione unica per prendere l’iniziativa nel definire gli standard di interoperabilità per il software di forum e plasmare lo standard in modo che si allinei perfettamente con l’attuale set di funzionalità di Discourse.

Ci sono alcuni concorrenti emergenti nel vostro settore, che sono innovativi, adottano approcci freschi e iterano rapidamente aggiungendo nuove funzionalità (voi di Discourse sapete meglio di chi si tratta :slight_smile: ). A mio parere, Discourse per completezza delle funzionalità è ancora ben al di sopra di ciò che i loro prodotti offrono. E avete una comunità come nessun’altra per aiutarvi a evolvere il prodotto.

Ma l’opportunità di interoperabilità che esiste ora potrebbe anche diventare una minaccia. O i concorrenti potrebbero cogliere per primi l’opportunità, o - forse spinti dall’EU Digital Markets Act - le piattaforme Big Tech creeranno qualcosa con sovrapposizioni nel dominio del software di forum. In entrambi i casi sarebbe più difficile per Discourse allinearsi a questo standard e avere la voce più autorevole nella progettazione della sua specifica.

TL;DR

Questo è diventato un post più lungo di quanto intendessi. Mi scuso per questo :blush:

In sintesi, sostengo che, data l’attuale posizione sul supporto ActivityPub, potrebbe essere prudente passare da un focus di breve termine simile a un MVP, a una valutazione più ampia di ciò che l’interoperabilità di ActivityPub potrebbe portare a Discourse in termini di USP e posizionamento nel lungo termine. Cioè, elaborare il caso d’affari dell’adozione di ActivityPub, iniziando con una fase di ideazione.

(Come impostare al meglio questo processo - nel caso foste interessati - lo lascio in sospeso, ma potrebbe iniziare semplicemente con un nuovo argomento AP che abbia in alto un wiki riassuntivo dei casi d’uso raccolti e persone che discutono idee di casi d’uso nel thread)

11 Mi Piace

Per vostra informazione: Dansup, il lead developer di Pixelfed, ha appena annunciato la propria intenzione di aggiungere il supporto per i Forum Federati:

https://mastodon.social/@dansup/105425592966902917

5 Mi Piace

Arnold, cosa ti impedisce di commissionarlo come plugin se hai accesso ai finanziamenti?

A volte, sviluppare e dimostrare la funzionalità di un plugin favorisce un’adozione più ampia e l’integrazione nel core.

Un buon esempio è l’anteprima dell’elenco degli argomenti (un plugin). Le anteprime delle miniature incorporate erano inizialmente aggiunte in modo completamente artigianale. Ora il core di Discourse supporta nativamente le miniature grazie alla sua dimostrata popolarità.

Io e @angus l’abbiamo sviluppato fino al punto in cui il core ha deciso che l’idea era abbastanza matura e popolare da essere implementata direttamente.

Un approccio simile riduce i rischi e può aiutare a superare ostacoli pratici prima di entrare nella roadmap del core.

Solo un pensiero…

9 Mi Piace

C’era già una proposta di finanziamento sul marketplace, che è stata presa in carico da qualcuno del team di Discourse, ma poi la proposta accettata è stata abbandonata. L’offerta è ancora aperta, ma richiede che un’entità europea se ne faccia carico. Potrebbe trattarsi di un membro europeo di The Pavilion. Sarei felice di aiutare con la proposta, poiché riutilizzare quella esistente aiuterebbe sicuramente ad accelerare il processo verso un finanziamento di successo.

5 Mi Piace

Possiamo certamente discutere offline di come gestire la situazione.

4 Mi Piace

Il tuo link a Dansup mi ricorda i plugin ActivityPub per WordPress disponibili negli ultimi anni. Simile a questa persona, li ho eseguiti sul mio WordPress da quando sono stati lanciati: plugin ActivityPub e il ora piuttosto inattivo Pterotype.

Il tuo sito viene trasformato in un attore nel fediverso, come @latest@meta.discourse.org; puoi aggiungere una descrizione per il tuo account e l’icona del tuo sito viene visualizzata come immagine del profilo dell’utente federato. I post appariranno nella federazione per altri utenti e i loro commenti verranno mostrati sul nostro sito, visualizzando l’icona e il nome dell’utente federato.

Esempio di risposta:

@doug@mastodoon.social:
Mi è davvero piaciuto seguire questo thread sulla federazione! Continuate il buon lavoro

Molto comodo perché viene visualizzato su WordPress come un semplice commento, ma è anche un vero commento federato tramite ActivityPub.

Modifica: Dai un’occhiata a Prismo, una variante federata di Lemmy/Reddit costruita su Ruby / PostgreSQL che potrebbe allinearsi più da vicino a un design per Discourse.

3 Mi Piace

Ciao @merefield,

Sviluppare plugin è certamente un’opzione molto valida. Nel mio esercizio ho proposto di pensare “come se” Discourse fosse stato costruito da zero con la federazione in mente, come mezzo per esplorare con mente aperta tutte le possibilità, senza guardare - per il momento - a ciò che è possibile/fattibile/non fattibile rispetto al prodotto e all’ecosistema attuali. Ciascuna delle idee che emergeranno potrebbe adattarsi perfettamente a un’implementazione come plugin.

Sto lavorando principalmente su diversi aspetti di questo Fediverso. La mia risposta è stata quella di un appassionato sostenitore e promotore di Discourse e al tempo stesso di un fautore del Fediverso, che - con tutta la sua innovazione - vedo come _l’_opportunità per diventare il panorama dei social media di nuova generazione, guidato dalle persone e più umano.

Tuttavia, nel mio post sopra volevo sottolineare che esiste un caso d’uso di interoperabilità completamente indipendente dall’integrazione con il Fediverso, direttamente tra comunità Discourse disparate. PS: Ho seguito la discussione nel forum di SocialHub per sensibilizzare su questo aspetto del supporto ActivityPub: Positioning ActivityPub: De-Emphasize "Being Part of the Fediverse" as primary USP - Fediverse Futures - SocialHub

Grazie, molto apprezzato. È un’ottima idea e spero che questo thread ispiri qualsiasi sviluppatore di plugin a scoprire le possibilità.

:sparkling_heart:

Sì, mi piace molto. Questi progetti possono essere una buona ispirazione per ciò che potrebbe esserci nel tipo di Discourse di cui parla @merefield, quando ci si concentra sul supporto al Fediverso.

4 Mi Piace

In passato abbiamo concluso che la federazione Discourse-Discourse è del tutto poco interessante; abbiamo già un’interoperabilità di base tramite OpenGraph, che sembra essere sufficiente. Se qualcuno ha un caso d’uso convincente, mi piacerebbe sentirlo, ma finora non ne ho visti presentati. Avete parlato solo delle possibilità tecniche e non di quali funzionalità di prodotto questa tecnologia renda effettivamente possibili.

4 Mi Piace

Ottimi punti! Se l’obiettivo è sincronizzare un post su un forum con un post su un altro forum Discourse… puoi già utilizzare matterbabble con matterbridge.

1 Mi Piace

No, hai ragione. È proprio questo che proponevo di fare (nel mio TL;DR con “elaborare il caso di business dell’adozione di ActivityPub, partendo da una fase di ideazione”).

Dato che questa proposta di brainstorming va ben oltre l’argomento di questo thread e non si riferisce a una singola funzionalità o RFC, ma piuttosto a una Visione, ho creato un argomento separato nella categoria #community:

5 Mi Piace

Si prega di consultare una proposta per definire un caso d’uso aziendale che possa costituire un punto di partenza convincente per @riking riguardo all’interesse nell’implementare il supporto ActivityPub in Discourse :slight_smile: @merefield, vorresti unirti alla conversazione lì? – Sarebbe molto semplice se AP fosse supportato, naturalmente!

4 Mi Piace

Scusate se è errato, ma perché non convertire i feed RSS in ActivityPub con feed2toot? Vedo che supporta Mastodon e Pleroma. Discourse genera feed RSS per categorie e gruppi di default. Il supporto per RSS è anche integrato in Hubzilla e Friendica.

Non sarebbe solo “unidirezionale”? “In uscita” da Discourse verso le istanze di ActivityPub, ma non il contrario.

@hellekin Scusami, ma non vedo davvero il “caso d’uso” qui. Voglio dire, perché farlo, quali sono i vantaggi, ecc.

Rileggendo la discussione e dopo aver esplorato Community has no boundary: Discourse-as-a-Fabric - ideation & brainstorm e iniziato a riflettere su Shaping Up a Business Use-Case for ActivityPub in Discourse - Fediverse Futures - SocialHub, mi rendo conto che nessuno ha chiesto di approfondire le ragioni qui, il che è stato, immagino, un mio errore e di altri sostenitori di AP. Me ne scuso.

Potresti fornire maggiori dettagli su cosa impedisce a Discourse di esaminare più a fondo le funzionalità di federazione e quali sarebbero gli ambiti più interessanti in cui la comunità ActivityPub può fornirti ulteriori informazioni e supporto?

3 Mi Piace