<- SL - SecurITy@uniROMA1 - Indice Generale - Copertina - SL - Sentry CD -> |
Sistemi Liberi
L'articoloUn' intervista a Barry Warsaw, leader del progetto Mailman, dove si presenta la sua storia e le possibili future migliorie al sistema |
GNU Mailman è un gestore di mailing list scritto in Python e
completo di interfaccia web. Il progetto nacque
all'università della Virginia, nel 1996.
John Viega amministrava su majordomo alcune liste molto popolari
dedicate ai gruppi musicali locali, ma era abbastanza frustrato a causa
della scarsa usabilità di majordomo da parte dei non
tecnici e per via della poca leggibilità del codice
sorgente.
Seguendo l'incoraggiante esempio del suo amico Hal Shneider, che aveva
scritto in python un piccolo e semplice prototipo di gestore di liste,
John inizia a scrivere una sua versione ripartendo da zero, con
l'obiettivo di superare i limiti di majordomo.
Mailman fu da subito rilasciato al pubblico come software libero, ma
non c'erano ancora veri utenti. L'anno successivo, nel 1997, Mailman era
ancora un progetto personale di John, che sfortunatamente iniziava a
perdere l'interesse nella cosa: aveva progettato Mailman solo
perchè non aveva un' alternativa migliore. Come se non bastasse,
un giorno il suo disco si ruppe e perse i sorgenti a cui aveva tanto
lavorato. Non aveva la forza di ricominciare da capo.
Fortunatamente Ken Manheimer qualche tempo prima si era procurato una
copia di Mailman e con Barry Warsaw (insieme amministravano le liste di
python.org) inizia a lavorarci sopra aggiungendo altre
funzionalità a seconda dei loro bisogni. Lo sviluppo
andava avanti ma i veri utenti erano ancora pochi.
Cercando un modo per farsi conoscere maggiormente, John, Ken e Barry
parlarono con Richard Stallman ed ottennero di rendere Mailman parte del
progetto GNU.
Ricordo che scoprii dell'esistenza di GNU Mailman proprio in questo
modo: leggendo un comunicato GNU. Siccome non era ancora 1.0 decisi di
tenerlo d'occhio in attesa che fosse maturo (all'epoca co-amministravo
alcune liste di FerraraLUG). Nel 1999 Ken fu assunto da Digital
Creations e Barry divenne velocemente il nuovo leader del progetto.
Nello stesso tempo, essi lavorarono per il completamento della versione
1.0, che fu rilasciata il 30 luglio.
L'interesse intorno a Mailman crebbe immediatamente e una solida
comunità di utenti iniziò a discutere di miglioramenti e
correzioni sulle liste dove Barry dirigeva uno sviluppo corale con un
approccio bazaar simile a quello del kernel di Linux.
La versione 1.1 era pronta a fine anno e si prevedeva principalmente la
correzione di alcuni problemi. A quel punto passai tutte le mie liste da
Majordomo a Mailman.
Oggi GNU Mailman è cresciuto fino alla versione 2.1: un
maturo e completo gestore di liste dotato di tonnellate di funzioni come
gli autorisponditori, il gateway per interfacciarsi ai news server, il
filtro sui contenuti, una architettura modulare basata su una pipeline
dinamica in cui è molto semplice aggiungere un proprio modulo
aggiuntivo, conversioni degli allegati HTML e molte altre.
Quando arrivi da Majordomo, il più grande impatto è
cambiare dall'amministrazione basata sulle email a quella basata su web,
ma immediatamente ti rendi conto di quanto il nuovo sistema sia
più potente e semplice per gli utenti novizi (un grande sollievo
per gli amministratori di lista!) Comparato con altri gestori di liste
largamente usati su internet, come ezmlm o yahoogroups, Mailman non ha
praticamente nulla da invidiare. L'installazione è semplicissima
e funziona praticamente al primo colpo. La personalizzazione può
essere ottenuta editando dei template di testo o html, così da
integrare facilmente il tutto con la grafica e lo stile del tuo sito. A
partire dalla versione 2.1, GNU Mailman è stato tradotto in
italiano oltre ad almeno altre 15 lingue, e questo semplifica
ulteriormente le cose per l'utente finale. Barry Warsaw, tutt'ora leader
del progetto, ha accettato di concederci un'intervista.
Barry, la versione 2.1 è
stata rilasciata il 30 dicembre dopo quasi 2 anni di lavoro dalla
versione 2.0. Come mai così tanto tempo? Cos'ha di nuovo 2.1?
Cos'ha di nuovo? Tonnellate e tonnellate di funzioni [sorride]: probabilmente non
ho lo spazio per elencare tutto, ma controlla sul sito web per i
dettagli. Tra le cose principali abbiamo la completa
internazionalizzazione, creazione e cancellazione delle liste via
interfaccia web, invii personalizzati, miglior rilevazione delle email
non consegnate, filtri per gli allegati MIME, filtri per argomento,
nuovi controlli per il moderatore e la conservazione della privacy,
supporto per i newsgroup moderati, associazione tra l'indirizzo email e
il nome e cognome degli iscritti, migliori controlli per gli iscritti
senza richiedere l'uso di password, moderazione d'emergenza, inviti, la
pace mondiale, e... Ok, mi son fatto prendere la mano. Mailman 2.1 avrebbe
dovuto chiamarsi Mailman 3, ma avevo promesso che la 2.1 sarebbe stata
la prima versione internazionalizzata, quindi ho dovuto mantenere la
parola!
Ci sono un sacco di ragioni per il lungo tempo che è stato necessario.
Prima di tutto l'internazionalizzazione è molto difficile, e
tocca tutti gli aspetti di Mailman. Abbiamo dovuto pensare, scrivere e
debuggare un nuovo pacchetto per la gestione delle email in Python,
necessario per implementare tutti gli standard RFC rilevanti. Abbiamo
dovuto implementare un sistema gettext per Python, ed assicurarci che
Mailman supportasse correttamente Unicode. Abbiamo dovuto ridisegnare il
sistema dei template e trovare gruppi di persone che traducessero i
testi, come quello fantastico che ha curato la traduzione italiana.
Abbiamo anche riscritto da zero il sistema di processamento dei
messaggi, per ottenere una migliore scalabilità , e rimaneggiato
quasi tutto il funzionamento interno. E' difficile essere disciplinati
rispetto alla voglia di inserire continuamente nuove funzioni quando usi
quello stesso sistema tutti i giorni. Io conosco i problemi che hanno
gli amministratori di liste, quindi so quello che è utile e
quello che non va.
Per ultimo, non sono attualmente pagato per lavorare a Mailman, quindi
devo dividere il mio tempo tra la mia famiglia, il lavoro e il mio hobby
da rock star [sorride]. La storia di Mailman inizia nel 1996 ed anche se
in breve è diventato meglio di Majordomo, c'è voluto molto
tempo prima che diventasse un gestore di liste largamente utilizzato.
A cosa credi sia dovuta questa partenza
lenta?
Principalmente inerzia. Mi è capitato di parlarne con Eric
Raymond alla Spam Conference dove sono appena stato. Lui ha interessanti
teorie che riguardano le GUI di Unix e che penso si possano applicare
anche ai linguaggi di programmazione e in questo caso ai gestori di
liste. Praticamente, devi avere una grande frustrazione nell'uso del
software precedente, o devi trovare qualcosa che è migliore di
molti ordini di grandezza per decidere di cambiare.
Non per parlar male di Majordomo, e neanche per sostenere che Mailman
sia così tanto superiore, ma certamente ha delle caratteristiche
che lo rendono più semplice sia per l'utente finale che per
l'amministratore di lista. Inoltre, il nostro budget per marketing e
relazioni pubbliche si trova da qualche parte a metà strada
tra quello di Microsoft e quello del club di backgammon di mia zia,
quindi ci basiamo veramente sul passaparola. Essere associati con il
progetto GNU ci ha aiutati molto in questo senso. Spero anche che con il
supporto internazionale inserito nella 2.1, noi si possa ottenere una
più veloce adozione nei paesi a lingua non inglese.
Il leader di Mailman è cambiato 2
volte in passato: tu hai preso il posto di Ken Manheimer che a sua volta
continuò il lavoro di John Viega. Credo che
l'opportunità di continuare il lavoro iniziato da altri sia
uno dei punti di forza maggiori nel free software. Sei d'accordo?
Assolutamente. Mailman non esisterebbe senza il lavoro di John e
Ken. Entrambi sono miei buoni amici e grandi programmatori, e la loro
impronta è ancora evidente nel codice sorgente, non importa
quanto io abbia fatto pipì sull'idrante. Ma la soddisfazione
è stata anche più grande: io ho una natura molto pigra,
come un gatto, e non mi piace molto viaggiare, quindi
l'opportunità di interagire e occasionalmente incontrare
dal vivo persone come me che abitano dappertutto nel mondo è
stata senza dubbio inestimabile.
Poco prima di 1.0, Mailman divenne
parte del progetto GNU. Come ha aiutato questo cambiamento?
Secondo me è stato abbastanza positivo. Essere sotto
l'ombrello GNU ci da un sacco di pubblicità.
Non sono un fanatico della GPL, ma credo che ci siano casi in cui
è perfetta. Per esempio, credo che sarebbe disastroso per Python
passare sotto licenza GPL, e le cose che Zope Corporation sta facendo
con la ZPL e la proprietà condivisa del copyright hanno
anch'esse molto senso. Credo che molti altri progetti di software libero
e open source dovrebbero guardare quel modello, ma per Mailman la GPL ed
essere associato al progetto GNU sembra la cosa migliore. Quali sono i
progetti e gli obiettivi per la 3.0? Ho un sacco di grandi idee per la
3.0 ma può darsi che il prossimo rilascio sia un più
modesto 2.2.
Sto giocando con l'integrazione di spambayes dentro Mailman, che ci
fornirà un potente strumento di lotta allo spam. Inoltre ho
alcune strane idee su un meccanismo di collegamento con i blog che
potrebbe essere molto carino per le liste di tipo newsletter. Tutte
queste cose potrebbero essere in una versione 2.2 Per arrivare a 3.0 ci
vorrà anche un database utenti unificato, in modo che tutte le
liste condividano lo stesso modello di lista iscritti. Ho alcune idee
sull'organizzazione degli iscritti in griglie e griglie in liste di
distribuzione, in modo che sia semplice definire liste, sotto liste e
superliste composte al volo, così come raccogliere le
informazioni sugli iscritti consultando un database esterno tipo LDAP o
SQL. Inoltre sto pensando a come ridisegnare il sistema in modo che sia
più facilmente integrabile con siti esistenti o ambienti di
sviluppo come Zope. Idealmente Mailman dovrebbe essere in maggior parte
una libreria standard di Python più una manciata di script che
permettano di fornire sofisticate funzioni di gestione della lista ad
ogni applicazione Python. E vorrei costruire Mailman su un vero motore
database, tipo ZODB o BerkeleyDB. Mi piacerebbe molto trovare il tempo
di ridisegnare o rimpiazzare Pipermail, aggiungendo un motore di ricerca
o il supporto per webmail. Ma vorrei anche rilasciare la 3.0 prima che
il mio bimbo di 5 anni arrivi al college.
Mailman e Python si sono evoluti
assieme, aiutandosi a vicenda. Come ti trovi essendo coinvolto in
entrambi i progetti?
Credo siano complementari. Lavorando ad una applicazione di largo
utilizzo come Mailman riesco ad avere una buona prospettiva
sull'utilità del linguaggio e delle sue librerie. Per via della
mia esperienza con Mailman, ho scritto nuove librerie e funzioni che poi
in alcuni casi sono divenute parte di Python, come il pacchetto email,
il modulo gettext e print.
Mi hanno detto che anche se tra le
tante lingue che parli non c'è l'italiano, spesso testi il
supporto internazionale di Mailman usando la lingua italiana: è
vero?
In realtà probabilmente parlo correttamente circa 0.75
lingue (sorride), ne ho studiate una manciata ma non sono riuscito a
trattenere molto. Forse sono state buttate fuori della mia testa dalla
musica rock troppo alta.
Ma in ogni caso sì, spesso testo le interfacce i18n usando
l'italiano. Credo che sia in parte perchè come lingua latina
posso capire alcune parole, ma anche perchè alle mie orecchie
l'italiano sembra una lingua così musicale... si attacca al mio
senso della melodia e Mailman non sembra più così noioso e
smanettone quando parla italiano.
L'autoreSimone Piunno È nato a Ferrara nel 1972, ingegnere elettronico confesso implicato nei progetti FerraraLUG, Deep Space 6 e GNU Mailman, trova pure il tempo per scrivere piccole guide o articoli. Dal 2000 è è complice di una società i mobile internet a Bologna dove si fa chiamare "chief architect". |
<- SL - SecurITy@uniROMA1 - Indice Generale - Copertina - SL - Sentry CD -> |