Di che stiamo parlando?
Inziamo dai motivi per la nascita del progetto:
.
Si', Dudeswave e' un progetto ambizioso, nato da uno scazzo che ebbi un po' di tempo fa con un po' di sicofanti di lain (quello di Pleroma) e insomma; ho capito che erano solo pieni di merda.
In particolare, la loro incompetenza emerse quando, alla domanda: "pleroma puo' funzionare in un cluster?", risposero che no, non poteva. Compresi quindi che erano dei coglioni che programmavano in Elixir solo perche' era fico in quel periodo.
Ma li' si fermavano.
Cosi', discutendo con @amigaunicorn decisi di dare il la' ad un progetto, il cui nome venne dato dal sommo gestore di questo sito per dimostrare quanto incompetenti fossero lain e tutti i suoi seguaci e quanto fichi siamo invece noi Dudi.
Siccome sono un testardo e se mi pianto su una cosa non mi fermo finche' non e' finita, posso dire che dudeswave va gia' avanti da un pochino (tempo a disposizione permettendo).
Perche' lo posto qui?
Perche' noi Dudi siamo quelli che rendono il mondo un posto migliore e perche' programmare mi diverte. Inoltre, sia mai che qualcuno abbia voglia di partecipare, anche se non lo pretendo.
Onestamente, anche solo ricevere idee di cose che piacerebbe vedere ai dudi qui presenti sarebbe un gran bell'andare. Gia'.
Di che si tratta, di preciso?
Dudeswave come detto, e' un progetto che parte da un design ambizioso e che vuole superare i limiti della gran parte dei software che si vedono nel fediverso. Infatti:
- Vuole essere un CMS (anche se minimale).
- Vuole essere un Blog engine.
- Vuole essere social (anche se usando NodeBB mi sa che virero' ad un formato Forum).
- Vuole essere multi-host.
- Vuole federare con ActivityPub nella sua interezza.
- Vuole diventare una piattaforma per esperimenti, magari. O anche solo cose bizzarre.
- Vuole essere Open Source.
- Si', vuole essere totalmente clusterizzabile, o distribuibile in un qualsiasi setup che meglio vi aggrada.
Insomma, piu' che un software, vuole essere una piattaforma che fa dell'estrema verticalizzazione il suo punto di forza.
Vabe', ti stai sparando un sacco di seghe. In concreto?
In concreto:
- Dudeswave e' scritto in Erlang.
- Tutto lo stack funziona sotto la stessa VM (si', anche il database, che fa da storage persistente, basato su mnesia).
- Il codice esiste ed e' nel mio laboratorio. Al momento il codice non e' pubblico. Se volete un'utenza anche solo per curiosita', scrivete qui sotto o mandatemi una e-mail. Provvedero'.
- Allo stato attuale, esiste il layer di storage persistente, la gestione degli utenti, la gestione dei post, la gestione dei contenuti statici (inclusiva di deduplica dei files), un templating engine ed un control plane. Queste sono comprensive di test suite e funzionano.
- Abbozzato: Gestione delle risorse web (web server etc.), gestione dei contenuti in markdown (sto scrivendo un parser apposito e gestione delle API (anche se le API esistono in una piccola specifica apposta).
Da aggiungere the io non sono un programmatore web, quindi per questo progetto sto studiando un sacco di tecnologie semi-nuove o, per me, semi-sconosciute da utilizzare in modo sicuro, per quello ci vorra' un po'.
Alla fine, che cosa intendi ottenere?
Una piattaforma dove poter costruire un sito web, con annesso un blog, che federa via activitypub e dove i contenuti possono essere visualizzati in diverse forme (pare ovvio che il sistema di commenti di un blog su Dudeswave diventino i commenti della parte social al post federato).
Voglio una piattaforma scalabile orizzontalmente, in modi diversi e gestibile tramite un piccolo ma crudele control plane e lo voglio perche' si sa', Lain e' un coglione.
E poi a me piacciono, le sfide difficili 
P.S.: ovviamente quando il tutto stara' in piedi, andranno aggiunte le funzionalita' di gestione dei permessi e altre amenita' carine. Ma a quel punto, il sistema sara' perlomeno funzionante ed usabile come singolo utente.