next up previous contents
Next: 3 File di configurazione Up: Manuale di FreePOPs Previous: 1 Introduzione   Contents

2 Storia

FreePOPs non nasce dal nulla. Un progetto simile (solo nella situazione d' uso principale) è LiberoPOPs.

L' antenato di FreePOPs è completamente scritto in C per ragioni poco interessanti. LiberoPOPs supporta ``plugin'' ma in maniera più statica e complessa. Il frontend al server POP3 potrebbe essere collegato ad un backend scritto in C, questo significa che dovreste ricompilare e far ripartire LiberoPOPs ogni volta che cambiate una riga in un plugin. Un altro punto interessante è che LiberoPOPs era stato creato dal nulla in un tempo molto breve (dovete essere Italiani e usare un indirizzo di posta @libero.it per capire perché), ciò vuol dire che era nato con molti bug e FIX-ME nel codice.

Il progetto LiberoPOPs ebbe un rapido successo, perché tutti ne avevano bisogno, quindi avevamo molti utenti. Nella filosofia della comunità opensource (e anche di Linux) devi rilasciare il software frequentemente, e questo è ciò che facevamo: rilasciavamo nuove versioni ogni due giorni. Non avevamo a che fare con utenti Unix, né hacker, ma per la maggior parte utenti Win32. Ad un certo punto capimmo che questi erano pigri/stufi di aggiornare il software ogni due giorni. Il brutto mondo Win insegna che il software si auto-aggiorna, si auto-installa e probabilmente si auto-scrive.

Cercammo di risolvere il problema tirando fuori dal motore in C la maggior parte del codice che cambiava più spesso, ma questo era molto difficile visto che il C non è pensato per questo genere di cose. Una volta che LiberoPOPs si fu stabilizzato iniziammo a pensare a come risolvere meglio la cosa.

Un linguaggio di scripting/interpretato sembro' una buona scelta e dopo una lunga ricerca in rete e nei newsgroup universitari trovai LUA.. Questo non è il luogo per dire al mondo quanto sia bello questo linguaggio quindi non ne parlerò oltre qui. Integrare l' interprete LUA in LiberoPOPs non fu cosi' difficile e FreePOPs ne è il risultato. Ora è davvero più facile scrivere/testare un plugin e (anche se non è ancora implementato) un sistema di auto-aggiornamento è molto facile da scrivere dato che non c'è bisogno di ricompilare il nucleo C in quasi nessun caso.


next up previous contents
Next: 3 File di configurazione Up: Manuale di FreePOPs Previous: 1 Introduzione   Contents
Enrico Tassi 2008-11-01