peppenna Attraverso matterbridge è possibile far interagire chat che funzionano su piattaforme e protocolli totalmente differenti, permettendo, ad esempio, di leggere e rispondere su di un canale IRC attraverso Telegram e viceversa!
Dopo soli 7 mesi (come vola il tempo!
) rompo il silenzio con una divertente vignetta di Mr. Xkcd Munroe che ci riporta alla proposta in oggetto:
In attesa che arrivi il remoto giorno in cui ci uniremo alla singolarità galattica, occorre dunque operare una nostra scelta e renderla quanto prima operativa.
Se scrivo ora è perché nelle ultime settimane ho avuto finalmente modo di testare Matterbridge su una mia VPS personale e posso confermarvi che funziona egregiamente!
Il sistema adempie perfettamente alla funzione di ponte tra i differenti sistemi di messaggistica, istantaneamente ed in maniera efficiente, richiedendo risorse irrissorie. È scritto in Go e pertanto non ha dipendenze, è estremamente semplice da configurare e stabile.
Non ho avuto modo di testare tutti i sistemi di messaggistica, ma solo quelli che probabilmente andremo ad utilizzare.
Dunque, espongo con il seguente schema la proposta nei dettagli:
| IRC | Matrix | Telegram |
utente | lugce | lugce | @lugce_bot |
stanza | #lugce su freenode.net | #lugce:matrix.org | @lugce_it |
L'utente è l'account che materialmente smista i messaggi delle chat collegate in entrata ed uscita sulla propria stanza, senza ridondanze.
Per intenderci, ecco uno scenario tipo, basato sulla configurazione proposta:
- Alice adopera IRC, Bob utilizza Matrix e Charlie usa Telegram;
- Alice scrive sul canale #lugce di freenode “Ciao da IRC”;
- Bob su #lugce:matrix.org legge il messaggio da parte dell'utente lugce che scrive “[irc] <Alice> Ciao da IRC”;
- Charlie sul gruppo Telegram @lugce_it legge il medesimo messaggio ma da parte di @lugce_bot e risponde “Ciao a te Alice, da Telegram”;
- Alice sul canale #lugce di freenode legge la risposta da parte di lugce che scrive “[telegram] <Charlie> Ciao a te Alice, da Telegram”;
Per osservare Matterbridge in azione, è possibile entrare in una delle stanze ufficiali del progetto, come il gruppo Telegram @Matterbridge.
L'oggetto dello scambio non è solo limitato ai messaggi di testo ma, qualora siano supportati, si estende a qualsiasi tipologia di file e dunque immagini, video, audio, documenti, etc. Ad esempio è possibile scambiare immagini da Matrix a Telegram e viceversa, ma non da e verso IRC (a meno che il servizio non generi un link esterno alla risorsa).
Affinché il tutto funzioni, è dunque necessario creare/registrare un utente o bot (Telegram) e un canale/stanza o gruppo (Telegram) adoperati da Matterbridge per connettersi alle chat e smistare i messaggi.
Ma entriamo nel dettaglio dei singoli servizi.
IRC - freenode
IRC è un protocollo di vecchia data ma, come accade per le email, è sempre attuale ed adoperato assiduamente, specialmente dai progetti che compongono la costellazione del software libero.
Freenode è un servizio storico offerto da volontari che oggi ospita circa 50 mila canali registrati relativi ai soli progetti liberi ed open source, compresa la FSF, le maggiori distribuzioni e comunità, come gli stessi Linux User Groups.
Per tale ragione, freenode da inoltre la possibilità a progetti o gruppi costituiti (nella fattispecie si fa anche esplicito riferimento ai LUG) di essere identificati univocamente per mezzo di un'apposita registrazione che ne ufficializza la presenza sul network. Tale riconoscimento include la possibilità per i membri di disporre di un cloak personalizzato, un identificativo associato ad ogni utente freenode che ne specifica l'appartenenza ad un progetto e/o ad un determinato ruolo in esso coperto.
Come già reso noto nella presente discussione, il canale #lugce fu registrato anni fa da un ex-membro dell'associazione e successivamente a me ceduto dallo stesso. Al fine di materializzare la proposta, occorre dunque registrare l'utente lugce e renderlo fondatore del medesimo canale.
La registrazione del gruppo può essere invece richiesta in un secondo momento, qualora decidessimo di avvalercene.
Matrix - matrix.org
Matrix è un protocollo relativamente giovane ma che già gode di una vasta utenza e supporto. A differenza di IRC, tra le tante copre il traffico voip e realizza un'infrastruttura apertamente federata, mirando a diventare l'email della messaggistica istantanea. Poiché il progetto non intende essere rivale di nessuno, ma inclusivo, gode già di bridging integrati per comunicare con IRC o XMPP.
Anche per Matrix, abbiamo bisogno di creare un'utenza lugce che interagirà sul canale #lugce:matrix.org (occorre specificare il server, perché si tratta di un sistema federato).
Telegram - telegram.org
Telegram, lo conosciamo tutti, è un sistema di messaggistica proprietario ma che a differenza del più noto e diffuso WhatsApp rilascia sotto licenze libere tutti i suoi client. Inoltre per il suo singolare quanto misterioso background filantropico al di fuori delle corporations, si vanta di essere il sistema più sicuro [citation needed] anche perché inamovibile nei confronti delle pressioni governative che hanno causato la sua censura in parte del pianeta.
Si tratta dunque di un sistema borderline, dal futuro incerto ma che, con le sue caratteristiche ed i suoi 300 milioni di utenti in costante crescita, rappresenta il compromesso più riuscito degli ultimi anni tra i sistemi liberi di nicchia ed il colosso di Facebook.
Tornando alla proposta, i requisiti di Telegram sono leggermente diversi in quanto contemplano la creazione di un bot e di un gruppo.
Il nome del bot può essere composto da lettere, numeri e underscores (questi ultimi non possono stare agli estremi), ma deve terminare con la parola bot, come ad esempio @lugce_bot, @lugcebot o @LUGCEBot (è case insensitive, dunque minuscole e maiuscole sono indifferenti).
Medesimi sono i requisiti per i nomi dei gruppi. Purtroppo il nome @lugce è già stato impegnato anni fa dal Lua User Group di Ceará (si, lua, avete letto bene) ma, nonostate le mie articolate e motivate richieste e pressioni, il gruppo brasiliano non ha acconsentito al cambio di denominazione suggerito, motivo per il quale attualmente il nostro canale Telegram ufficiale è ancora @lugcaserta.
Per tale ragione, occorre individuare un nome alternativo come può esserlo @lugce_it, @lugce_chat, @lugce_group, @parla_con_lugce, @lugce_risponde, @lugcelere, @lugcente, @lugcero, @lugcenno, @lugcerca, @lugcerta, @lugce_im o anche @im_lugce (giochi di parole, ad esempio im sta sia per io sono che per istant messaging).
Le possibilità sono molteplici, ma suggerisco di mantenerci sul semplice, orecchiabile e leggibile, come può essere per il bot @lugce_bot ed il gruppo @lugce_it (o se avete idee migliori, proponete).
XMPP e dintorni
Anche chiamato Jabber, nonostante sia uno dei protocolli liberi più diffusi al mondo per la non così positiva adozione da parte di Google e Facebook avvenuta nel corso degli anni, sebbene sia paragonabile a Matrix, a differenza di IRC non gode dell'esistenza di un'istanza accettabile al pari di freenode e dunque occorrerebbe crearne una ad hoc sulla nostra VPS.
Ho avuto modo di ospitare un'istanza di Prosody su una mia VPS e devo dire che si tratta di una soluzione leggera, duttile e stabile, ma dal momento che nessuno di coloro i quali sono venuti in contatto con la nostra associazione utilizza Jabber, non penso che al momento il gioco valga la candela, ma potrebbe in futuro.
Testing
Affinché la proposta non torni negli abissi del silenzio, sarebbe opportuno procedere speditamente ad una preliminare fase sperimentale ed ad una sua successiva valutazione confermativa in caso di successo della soluzione o abrogativa in caso di fallimento.
Chiedo dunque che si arrivi al massimo entro una settimana da oggi al consenso o al diniego della proposta in oggetto (non è necessaria l'unanimità) per una sua immediata esecutività. Ciò significa che eventuali perplessità o integrazioni, nel rispetto di questa comunità, pervengano in tempi che ne consentano una discussione entro i termini indicati.
È ora che la comunità di LUGCE possa finalmente dotarsi di una chat ufficiale ed universale che possa tenerci più assiduamente in contatto.