pddBBs

E' un acronimo per “Portale Dei Desideri – Bulletin Board System”: un progetto portato avanti da tre MxB – un coder, un grafico e un sistemista – volto a superare i limiti oggettivi e soggettivi (quelli cioè percepiti dalla comunità MxB) dell'attuale strumento di community (phpBB).

Questi limiti possono essere sintetizzati come segue:

Visto tutto ciò, e non avendo trovato, o voluto sposare, un sistema differente in grado di rispondere in un modo o nell'altro a tutte queste necessità, si è deciso di sviluppare un sistema ex-novo.

Questo sistema chiaramente cerca di risolvere tutte le questioni sopra elencate, e di integrare tutte le idee sensate che nascono dal confronto con gli utilizzatori della board.

Tecnologie

Per quanto riguarda i linguaggi e gli ambienti utilizzati per sviluppare la board, possiamo dire che il cuore di tutto ruota attorno a php 5, Firebird 2 – scelto come dbms al posto del tanto gettonato MySQL per questioni puramente tecniche (a detta di chi lo usa, molto semplicemente, Firebird è un dbms, MySQL no), xml e javascript (in particolare prototype e scriptaculous).

Con php 5 è stato scritto un framework, ad oggetti, che implementa il pattern Model View Controller attraverso l'elaborazione di pagine xml contenenti tag particolari, mappati su classi php, in grado di gestire la presentazione e la gestione (in senso DML) dei dati presenti sul db.

Tutta la parte di presentazione utilizza prototype, e quindi tecniche AJAX, per organizzare i contenuti nello spazio ridotto di 1024 pixel, ridurre al minimo il traffico verso il server, e semplificare l'interazione dell'utente con la board.

Le pagine prodotte sono in standard XHTML 1.0 e CSS 2.0.

La documentazione degli aspetti strutturali della board è stata redatta in UML (Entity Relationship Diagrams, Class Diagrams).

Compatibilità con i browser

Per lo sviluppo è stato utilizzato Firefox, in particolare per la presenza di plugin che facilitano l'ispezione delle pagine e delle chiamate asincrone. Attualmente il codice prodotto funziona correttamente su:

Internet Explorer 7 attualmente non visualizza nulla, poiché si rifiuta di gestire il mime type text/xhtml.
Internet Explorer 6 potrebbe avere solo problemi di CSS, causa il suo modo di interprentare gli standars. Non voglio entrare in un discorso da “religion war”, ma il renderlo compatibile con i browser Microsoft sarà un lavoro affrontato nel futuro, in presenza di una versione stabile della board, e per nulla semplice, data la sostanziale assenza di strumenti di debug in quel mondo.

Features attuali

Caratteristiche salienti

Virtu-link

pddBBs usa Apache::mod_rewrite per far raggiungere ogni informazione tramite un collegamento virtuale nella barra degli indirizzi. I virtu-link sono usati nelle varie sezioni del profilo per impostare la propria home page e i propri feeds, e dai moderatori per le operazioni di manutenzione.
Questo permette all'utente di impostarsi come pagina di default l'elenco dei post nelle ultime due settimane:
people/my-login/recent.14

Esistono tre tipi di virtu-link: go, people e feed.

go serve per raggiungere un forum, un topic o un post:

ad esempio go/forum/gamezoo plaza/bazar


people serve per raggiungere i profili di altri utenti, oppure tutta una serie di pagine personali.

Ogni percorso dopo il login è valido solo per l'utente correntemente loggato.


feeds permette di raggiungere tutti gli stream di informazione disponibli all'utente correntemente loggato. Il secondo livello rappresenta il tipo di stream, attualmente esistono i canali new, last [0.4c] e top [0.4c], che forniscono i post non letti, gli ultimi n post o i primi n post di un oggetto (sito, ramo, topic).
Gli stream di informazione di tipo
new per essere attivi devono essere sottoscritti; i forum lo sono di default, un singolo topic deve essere sempre abilitato manualmente.

I feed sono generati in formato RSS 2.0.

Profili di utenza

Future evoluzioni del progetto

L'evoluzione del progetto è distribuita su vari orizzonti:

L'obiettivo finale è quello di rilasciare tutto il progetto sotto licenza GPL o simile e pubblicarlo su un sito come sourceforge per renderlo disponibile e coinvolgere, possibilmente, più persone di quelle attuali nella parte di sviluppo e manutenzione.