+++ Title = "🐕‍🦺 Epicyon, piattaforma del Fediverso durata 2 giorni" Description = "Ho provato una certa piattaforma del Fediverso. Belle promesse di semplicità e leggerezza, ma dopo soli 3 giorni ho dovuto togliere baracca!" Date = 2022-12-26 Downsync = "/it/posts/Epicyon-Piattaforma-del-Fediverso-Durata-2-Giorni.html" Aliases = [ "/Posts/2022-12-26-Epicyon-Piattaforma-del-Fediverso-Durata-2-Giorni.html", ] Featured_Image = "@/Media/Epicyon-Dec-2022/Featured-LCD.png" Categories = [ "Internet" ] +++

Ormai, si sa, più passa il tempo e più finisco con l'esplorare dettagli sempre più minuti del Fediverso.
Oggi racconto un po' di una piattaforma di questo mondo abbastanza sconosciuta, e che aveva buone premesse, ma si è rivelata un buco nell'acqua: Epicyon.
Prima di iniziare, però, vediamo in che situazione disperata ero finita.

5 settimane fa avevo finalmente installato la mia istanza di Misskey, ad oggi una piattaforma di microblogging altamente rispettabile nel panorama ActivityPub, che negli ultimi tempi sta lentamente guadagnando sempre più utenti.
Uno dei motivi per cui Misskey sta crescendo è sicuramente il suo essere più leggero di Mastodon, ed è anche per questo che ho inizialmente prediletto la sua installazione. Ahimè, il destino ha comunque voluto maltrattarmi, decidendo di far finire tutto in un gran fiasco (con prima uno piccolo, di assaggio).
Senza entrare troppo nei dettagli - chi crede di volerli sapere può leggere le mie lagne fatte su Mastodon nelle giornate di Giovedì 1 e Martedì 13 (è chiaramente non una coincidenza...) (ma la discussione buona è partita 2 giorni dopo) di questo Dicembre, o aspettare un articolo che forse scriverò - dal fatidico giorno fino al 19 Dicembre sono stata di nuovo senza un'istanza mia mia mia. Di nuovo senza potere, poiché il mio regno era ridotto in cenere.

Dopo questa intera settimana, in cui ho provato e riprovato a rimettere in piedi il mio server, fallendo miseramente, ho capito chiaramente che serviva una riconfigurazione da capo, preferibilmente con qualche software più leggero di Misskey.
È stato a questo punto che mi son detta "ma sì, proviamolo questo Epicyon; che cosa potrebbe mai andare storto?". Eh eh, che cosa...

Un'occhiata ad Epicyon

Epicyon lo avevo scoperto settimane fa, totalmente a caso, mentre cercavo qualcosa, non ricordo cosa, sul Web.

Quell'elenco di punti a favore che figura sulla pagina principale del sito immediatamente cattura la mia attenzione: uno stack tecnologico non sbrilluccicante o usato solo perché di tendenza, con poca complessità lato server (e quindi richiedente poche risorse lì), addirittura con zero JavaScript lato client (quindi l'applicazione non pesa virtualmente nulla), adatto per l'installazione sui single-board computer, pensato anche per i browser con interfaccia terminale... le premesse erano buone.

I vantaggi della tecnologia a bassa scala sono stati immediatamente messi in mostra da questo programmino: l'installazione è ammontata all'installare alcune dipendenze da apt, scaricare i sorgenti dalla repository, e creare le configurazioni per il reverse proxy (Nginx) e il sistema di avvio (systemd).
Assolutamente zero problemi di percorso; le rogne, infatti, sono venute dopo!

Creati i miei account - prima quello "sysadmin", che detiene i permessi di amministrazione e che uso per scrivere in qualità di amministratrice d'istanza, e poi quello personale - man mano che inizio ad orientarmi nell'applicazione, diversi problemi minori si accorgono della mia presenza e, come spiritelli, uno alla volta iniziano a manifestarsi.

L'interfaccia utente

Iniziamo dall'interfaccia, che è la prima cosa con cui si fa i conti quando si usa qualunque applicazione; ebbene, è proprio strana!
Una volta imparata non è difficile, però ha certe cose che sembrano fatte apposta per indurre in confusione.

Sulla pagina del proprio profilo si va cliccando il banner (che spreca spazio, mi sento di dire, rispetto ad un bottoncino) in alto alla home.
Solo dalla pagina del profilo si possono poi aprire le impostazioni dell'account, che sono mischiate a quelle di amministrazione d'istanza senza netta divisione.1
Sulla schermata principale non tutte le sottosezioni (tra cui viste specifiche per i flussi di messaggi) sono visibili, bisogna cliccare un tasto per mostrare tutti i bottoni.
Scelte discutibili.

Non pare affatto questo l'intento, ma mi piace pensare che questo sia un punto a favore, perché esegue una selezione artificiale degli utenti: quei profughi di Twitter, che mesi fa (ora la situazione si è calmata) arrivavano su Mastodon a comportarsi male - pubblicando messaggi pubblici come "ooo ma come cazzo si usa sto coso?", o "ma che social di merda non si capisce un cazzo", e non riporto altro - non cercheranno rifugio nemmeno per sbaglio da ciò che è "più di un cane" (questa l'etimologia del nome della piattaforma, secondo Wikipedia).

Personalizzazione grafica

Una delle cose che cercavo più ardentemente nelle impostazioni era la configurazione relativa ai temi.
Inizialmente scovo solo le opzioni di personalizzazione di colori e grandezza del testo del tema applicato, ma per fortuna non era tutto: era un po' nascosta, ma alla fine ho individuato l'opzione per passare ad un template completamente diverso.

Il tema predefinito, infatti, non mi piaceva granché, ma ne ho trovati alcuni gradevoli tra quegli altri già inclusi. Il mio preferito si chiama "Pixel", ed offre una vista che mi appare rilassante, con i suoi sfondi di un violetto pseudo-lavanda (#9ba0d4) ed il testo mostrato con un font particolare, con caratteri formati da quadratini messi assieme (appunto, a simulare dei pixel chiaramente visibili). L'effetto che fa è interessante, perché è evidentemente un tema non classificabile né come chiaro, né come scuro; esiste nella sua categoria. O forse lo si può definire chiaro, perché il testo è nero, allora lo sfondo è necessariamente chiaro per contrasto. Vabbè, non me ne frega: il punto fondamentale è che, per me, è davvero bello.

Lo strumento di personalizzazione del tema ("Theme Designer"), visto con caricato il tema "Pixel".

Un altro tema che ha attirato la mia attenzione è stato "LCD", che simula un vecchio schermo LCD monocromatico a sfondo verdognolo. Lo apprezzo molto a livello artistico, ma proprio non riesco ad usarlo, è troppo pesante sugli occhi usando uno schermo retroilluminato moderno!

È un peccato comunque, secondo me, che le modifiche alla grafica siano applicate a livello d'istanza, e quindi riservate solo agli amministratori (a chi ha il rango "Artist", precisamente). Altre piattaforme, ad esempio Friendica e Misskey, implementano i temi in modo più flessibile.

Problemi di scaling

Ci sono anche temi più adatti a chiunque, ma purtroppo la grafica dell'interfaccia ha un problema anche più grave di cosa può rientrare in desideri estetici non soddisfacibili: scala male.
Forse con alcuni dei temi il problema non si sente troppo, ma con altri il testo è spesso troppo grande, e capita diverse volte che bottoni o icone siano sproporzionati o per giunta disallineati.

Testando a schermo quasi intero (va quindi tenuto conto dello spazio a schermo occupato da elementi di browser e sistema operativo), su PC desktop con monitor 1360x768, e su mobile con display 9:18 da 6.2", penso che vorrei magari un po' meno di padding, anche se tutto sommato l'interfaccia è OK. L'inutilizzabilità arriva quando si tentano risoluzioni un po' più quadrate, ad esempio tenendo la finestra del browser non totalmente allargata in orizzontale sul mio monitor 16:9. In questo caso... beh, lascio parlare il video che segue. Anche sul mio smartphone possono uscire brutture, se lo giro in orizzontale.

Entrando nel vivo

Credo che sarebbe facile per me aggiustare l'interfaccia, visto che si tratterebbe di modificare un po' il CSS e fine della storia.
Prima che potessi anche solo pensarci, purtroppo, sono usciti però fuori altri problemi, stavolta di funzionalità.

Provando a pubblicare...

Il primissimo post che ho inviato dalla piattaforma, fatto senza toccare alcuna opzione oltre al semplice campo di testo, sembrava a posto.

Un attimo dopo, appena creato il secondo account, ho notato una funzione apprezzabile - che Mastodon ha introdotto solo qualche mese fa, mentre altre piattaforme popolari non presentano proprio: la scelta della lingua usata nel proprio post, utilizzata per permettere agli altri utenti di filtrare via i messaggi pubblici che appaiono in lingue non desiderate. Ho quindi impostato il mio nuovo messaggio in italiano, giusto per, ho pubblicato... ed il messaggio non mi appariva in alcuna timeline. Solo su Epicyon, però, e da entrambi i miei account; sulle altre istanze appariva normalmente.
Ci ho messo 10 minuti buoni a capire che no, non si era appena rotto il mio account, ma banalmente non posso vedere nemmeno i miei stessi messaggi se pubblicati in una lingua non presente nella lista di quelle da me accettate, che di default è solo inglese. Ho dovuto a mano aggiungere almeno l'italiano (ho aggiunto tutte le lingue, già che c'ero) nella lista bianca.
Sicuramente è una svista di programmazione, perché questo comportamento non avrebbe il minimo senso dal punto di vista della progettazione dell'esperienza utente... però non va mica bene!

Comunque, le proprie pubblicazioni sono modificabili, ottima cosa. Anche qui siamo al pari di Mastodon, ma al di sopra di altre piattaforme federate.

I flussi di messaggi principali

Alcuni punti possono essere dei pro e dei contro, a seconda dei punti di vista.

L'assenza di una timeline federata è una cosa un po' scomoda, perché rende la scoperta di nuovi contenuti più difficile, ma non è la fine del mondo: come su altri servizi, nella home (che qui si chiama "Inbox") arrivano le condivisioni di messaggi di utenti sconosciuti per mano degli utenti che invece si seguono, quindi ogni tanto si possono scoprire nuovi profili da lì.
Allo stesso tempo, però, il server non rischia di doversi col tempo trovare a fare i conti con quantità ingestibili di traffico dati, che saranno invece proporzionali solo all'attività degli utenti sull'istanza e di quelli direttamente seguiti da questi.

La mancanza di una cronologia locale, però, probabilmente si sentirà se si vuole ospitare un server per un proprio gruppo di amici. Mah, forse nemmeno troppo: Epicyon sembra essere pensato per avere pochi utenti locali attivi, una dozzina al massimo, e a quel punto ci si segue semplicemente tutti a vicenda.

Una parte della cronologia home, vista su smartphone con il tema "Pixel".

Le ottime prestazioni

L'idea di far girare un programma di questo tipo senza alcun sistema di database centralizzato, facendogli memorizzare invece tutti i dati come file sparsi nel file system del sistema, piace concettualmente molto anche a me, ma ha dei limiti di scalabilità concreti.
Chissà che succederebbe se provassi a mettere in piedi un progetto del tipo di "Epicyon.uno" o "Epicyon.social"... immagino l'immane disastro.

Però, di base, quando non portato allo stremo, questo software performa davvero come promesso.
Con htop possiamo entrare nei dettagli: sul mio Raspberry Pi 3, in momenti di quasi-stallo (in cui non sto usando l'applicazione, ma il server ha evidentemente dei compiti da svolgere), l'utilizzo CPU si aggira attorno al 3% (su un massimo totale teorico di 400%, considerando i 4 core), e la RAM utilizzata tra i 40 e i 70 MB (circa dal 4.5 al 7.5 % della RAM di un Pi3). L'HTML generato dal server, poi, è essenziale, e il client impiega quindi giusto qualche istante per riceverlo.

Il software non aveva promesso di non avere bug terrificanti, quindi in effetti su quello non ci si può lamentare, ma quelle poche promesse che ha fatto le ha mantenute benissimo. Oddio, il programma a dirla tutta si dichiara essere in stato "Production/Stable", per cui questa scusa regge fino a un certo punto...

Reazioni ai post

Le cose buone, per fortuna, non finiscono mica qui!
Ho con piacere subito notato che la piattaforma permette di reagire ai messaggi usando emoji, oltre a permettere il classico invio di un apprezzamento per il post - il "mi piace" standard, per intenderci, che qui è un cuore.

Schermata di selezione di una reazione ad un messaggio (vista con il tema "LCD").

Purtroppo, la separazione delle reazioni dall'apprezzamento è decisamente poco intelligente.
Questo parere non è solo mio, ma anche degli sviluppatori di Misskey e, credo (non ho mai verificato di persona) anche Pleroma: il reagire da lì ad un messaggio proveniente da una piattaforma che non supporta le reazioni (come Mastodon) si traduce in un apprezzamento ricevuto da quell'altro server. Su Epicyon, invece, reagire ad una pubblicazione che viene da istanze meno ricche di funzionalità è virtualmente inutile.
In cima a tutto ciò, non mi pare ci sia nemmeno un modo per consultare un elenco di tutti i messaggi a cui si ha reagito; per cui, addio all'idea di usare le reazioni almeno come filtro personale dei post letti e graditi nel tempo.

La ricerca

Nel ritrovare pubblicazioni altrui tramite l'interfaccia della piattaforma, abbiamo giusto qualche limitazione in meno rispetto a cosa si vede su Mastodon.
La ricerca nel testo con parole chiave normali è purtroppo limitata ai propri messaggi, ma ci sono altre opzioni per le altre situazioni: oltre a poter cercare per hashtag (che, tralaltro, l'interfaccia di ricerca consiglia), a quanto pare si può cercare addirittura per emoji! Non ho però testato quest'ulteriore funzione, avendola notata solo troppo tardi.
Infine, si possono cercare elementi relativi alle funzioni di economia della condivisione (a cui ora arrivo): abilità, oppure oggetti e servizi.

La schermata per iniziare una ricerca (vista dal tema "Pixel").

Le caratteristiche avanzate

Da Epicyon, continuando, ci sono diverse modalità che si possono impostare per un messaggio. Non serve spiegare quelle in comune con le piattaforme maggiori, ma alcune meritano un occhio di riguardo.

Economia collaborativa

Uno dei punti cardine di Epicyon, almeno questa sarebbe l'idea, è costituito dalle sue funzionalità orientate alla cosiddetta "economia della condivisione".
È possibile creare post che descrivono oggetti o servizi, che si sta cercando oppure si sta mettendo a disposizione, specificando la relativa categoria e (opzionalmente) un prezzo.
Questi messaggi possono apparire nelle timeline a loro dedicate, e di default non sono federati; l'admin del server può specificare una lista di istanze terze con le quali federare questo tipo di post.
Sul proprio profilo, poi, si può indicare una lista di proprie abilità (skill), con un livello percentuale.

Purtroppo - e qui ormai si inizia a notare una tendenza, con i malfunzionamenti - a me pubblicare la richiesta di qualcosa ha funzionato, mentre provare a postare un'offerta (come nuovo messaggio, non correlato al precedente) non sortito effetti. Ci ho provato 2 volte ma, proprio no, il nuovo post non compariva.

Miscuglio di modalità

Mannaggia, perché anche qui è stata fatta un'indigesta insalata: quelle che sono modalità definibili come "di ricezione", cioè che determinano a chi il messaggio arriverà e come verrà visualizzato - pubblico, non in elenco, solo-seguaci, o diretto - sono mischiate alle modalità che posso definire "di tipologia", cioè che impostano il post come normale (contenente testo e/o file allegati), o come di una categoria speciale.

Schermata di pubblicazione, con il menu di selezione di modalità aperto (vista con il tema "Pixel").

Nella pratica, questo vuol dire che non si può cambiare il livello di privacy di quei post di tipo speciale.
Se questa cosa non è magari un problema per le funzioni di sharing economy, che non piazzano nemmeno elementi sulla pagina del profilo utente, può esserlo invece per i sondaggi, purtroppo implementati come tipo di post e non come opzione aggiuntiva per i normali.

Problemi coi sondaggi

Il fatto che debbano essere per forza pubblici non è la cosa più bizzarra dell'implementazione dei sondaggi, perché c'è di peggio.

Pare che selezionare (con i bottoncini dedicati, ovviamente) una delle opzioni disponibili, per poi premere salva, non sortisca nel backend lo stesso effetto che le altre piattaforme presentano; si va a creare un commento di risposta (visibile come tale da altri server), come se a mano si fosse scritta l'opzione desiderata in un nuovo messaggio sotto la stessa discussione.
Non solo questo manda in vacca l'anonimità dei sondaggi come previsti da tutte le altre applicazioni, ma non funziona e basta: ai contatori dei voti sul sondaggio non viene sommata quella strana risposta.

Un sondaggio creato da Epicyon, votato e mostrato sia da Epicyon che da Mastodon. Notare il problema descritto.

Sguardo agli eventi

Ad ogni modo, per qualsiasi tipo di pubblicazione si possono opzionalmente impostare una posizione (inserendo un link di OpenStreetMap - cosa che a me non ha funzionato per nulla) ed una data, entrambe cose potenzialmente utili se si vuole segnalare un evento, qualcosa che Epicyon prevede.

I post con data dovrebbero manifestarsi anche nella sezione calendario dell'app. Non ho verificato se almeno questa cosa funzionasse, purtroppo, ma ho provato il messaggio "promemoria", e va: un messaggio di questa tipologia arriva dal proprio account, come diretto, all'orario stabilito; oltre a comparire nel calendario, è accessibile in un bottone (evidenziato con un colore alternativo) che appare nella barra di navigazione in cima alla home.

La schermata che mostra un promemoria scattato (vista con il tema "Pixel").

Blogging non-micro

L'ultima modalità impostabile per i post è quella di "articolo", quindi aventi un titolo e nessun limite stretto per il corpo; qualcosa di previsto da ActivityPub, adatto al blogging più classico, e che già si osserva in giro da tempo con WriteFreely, Plume, Lemmy, o Friendica.

Gli articoli dovrebbero finire sulla pagina del proprio profilo... ma a me non succede. La funzionalità è rotta e l'unico modo per trovare gli articoli, propri o degli altri utenti d'istanza, è di passare per la timeline dedicata.
Ah, oltre a questa qui, che è effettivamente una linea del tempo a visualizzazione speciale, ce n'è anche una che mette in mostra solo i messaggi multimediali, un po' come se fosse Pixelfed.

Contenuti a livello d'istanza

Queste visualizzazioni speciali qui possono, tra l'altro, essere impostate come modalità dell'istanza, in un modo che rende possibile la navigazione dei post locali a chi visita il sito senza fare login.

A dire il vero, c'è anche una terza opzione per il tipo di istanza: "news". Questa mette in primo piano le notizie che arrivano dai flussi impostati dagli amministratori del server.
Proprio così, in questo senso Epicyon mette a disposizione degli strumenti particolarmente interessanti: le notizie, impostate da fonti RSS, appaiono in una barra laterale su desktop. In base ad un'ulteriore configurazione possono essere soggette a filtri, che aggiungono in automatico hashtag oppure avvisi sui contenuti (content warnings) in base al testo.
Il server espone, inoltre, un feed che aggrega tutte le notizie che man mano scarica.

Dal lato opposto, sempre su desktop, figura infine un'ulteriore barra, che mette invece a comoda disposizione dei link esterni. Alcuni riportano ad informazioni o documentazione dell'istanza, mentre altri possono essere impostati dagli amministratori e puntare a qualunque URL.

La schermata "Featured", che appare selezionabile da un bottone dedicato nella barra di navigazione quando l'istanza è impostata in modalità "news" (vista dal tema "LCD"). Al centro compare il flusso di articoli scritti dai membri del server.

Vagonata di casini!

Fino a qui, tutto sommato, questo pezzo di software non sembrava affatto malvagio: con qualche piccolo inconveniente, certo, ma nessun programma più complesso di un Hello World potrà mai essere perfetto, e questo Epicyon ha comunque dei solidi punti a suo favore.
Il problema, il grosso casino, è che quelle rogne serie che ci sono sono enormi. Oserei dire mastodontiche, per una piattaforma il cui animale è si grosso, ma non elefantiaco!

Qui non c'è molto spazio per discutere, quindi preferisco fare una carrellata veloce.
Qualcosa a riguardo di buona parte di questi errori usciva nei log del server, ma in modo troppo generico, e quindi (anche se pure io non è che ho voluto perderci troppo tempo) non sono riuscita a decifrare il perché certi determinati problemi si verificassero.

E adesso?

Il sogno di un server ActivityPub leggero ma ricco di funzioni è inesorabilmente crollato, non c'è veramente altro da poter dire. Dopo aver visto appena soltanto i primi problemini pensavo di voler tenere Epicyon per almeno una settimana, così da testarlo per bene, ma alla fine ha iniziato a comportarsi troppo male. Ho dovuto farlo fuori dopo appena 2 giorni.
È davvero un peccato, allora, che si sia dimostrato troppo scassato per essere realisticamente utilizzabile. Per ora devo quindi optare per altri software, e forse qualcosa di buono l'ho trovato - e questa è una storia per una prossima volta - ma spero davvero che Epicyon possa in futuro diventare utilizzabile.

Fortunatamente, anche se per mano di una sola persona, quindi lentamente, lo sviluppo va avanti ad un ritmo di diversi commit al giorno.
A proposito di ciò, dopo aver fatto una guardata tocca e fuggi ai sorgenti, una cosa devo dirla: in confronto ai server più affermati, il codice di questo qui mi sembra messo parecchio male. I file non sono ben suddivisi in cartelle, ce ne sono alcuni che arrivano a centinaia (o persino un migliaio!) di kilobyte, e ci sono funzioni enormi in cui figurano loop e controlli sotto tanti, troppi livelli di indentazione.
Non vorrei essere nei panni di colui che lo sta mantenendo perché, per come stanno le cose, temo che sistemare questo software per farlo funzionare a dovere non sarà una cosa semplice, e non prenderà affatto poco tempo...

[:HNotesRefsHTML:]

  1. Guardare tutte le impostazioni disponibili può dare una buona visione su quali sono alcune delle potenzialità di una qualsiasi piattaforma. Commentarle tutte, specialmente quelle che non ho testato, sarebbe follia; ho però pensato di lasciare qui una schermata 🖼️ completa, chi vuole può almeno leggere le varie opzioni per conto proprio.