Issuu on Google+

Cms per tutti. software open source (gratis) per gestire il vostro sito, blog dinamicamente

PDF generato attraverso il toolkit opensource ''mwlib''. Per maggiori informazioni, vedi [[http://code.pediapress.com/ http://code.pediapress.com/]]. PDF generated at: Thu, 05 Jul 2012 15:24:45 UTC


Indice Voci Definizioni

1

Content management system

1

Software

5

Software libero

10

PHP

17

MySQL

25

i tipi di licenza

33

GNU General Public License

33

Open source

40

i software free, gratuiti.

48

WordPress

48

Joomla!

50

Drupal

56

phpBB

61

PHPNuke

65

Lista di content management system

69

i software a pagamento vBulletin

77 77

Note Fonti e autori delle voci

80

Fonti, licenze e autori delle immagini

81

Licenze della voce Licenza

82


1

Definizioni Content management system Un Content management system, in acronimo CMS, in italiano Sistema di gestione dei contenuti, è uno strumento software, installato su un server web, il cui compito è facilitare la gestione dei contenuti di siti web, svincolando l'amministratore da conoscenze tecniche di programmazione Web. Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (un'enciclopedia on-line, un blog, un forum, una rivista ecc.) e CMS generici, che tendono a essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti. Tecnicamente, un CMS è un'applicazione lato server che si appoggia su un database preesistente per lo stoccaggio dei contenuti; l'applicazione è suddivisa in due parti: la sezione di amministrazione (back end), che serve ad organizzare e supervisionare la produzione dei contenuti, e la sezione applicativa (front end), che l'utente web usa per fruire dei contenuti e delle applicazioni del sito. L'amministratore del CMS gestisce dal proprio terminale, tramite un pannello di interfaccia e controllo, i contenuti da inserire o modificare. I CMS possono essere realizzati tramite programmazione in vari linguaggi web tra cui, più comunemente, ASP, PHP, Microsoft .NET; il tipo di linguaggio adoperato è indifferente a livello di funzionalità. Alcuni linguaggi rendono il CMS multipiattaforma, mentre altri lo rendono usufruibile solo su piattaforme proprietarie.

Cenni storici I content management system sono nati negli Stati Uniti e sono stati inizialmente sviluppati, per uso interno, da alcune organizzazioni che producevano notevoli quantità di pubblicazioni. Nel 1995 la CNET rese pubblici gli studi e i prodotti sviluppati internamente, distribuendoli con l'etichetta Vignette. La compagnia cominciò a mettere a disposizione il proprio software come sistema di gestione dei contenuti via web. Per la prima volta un utente poteva creare il proprio sito direttamente dal Web, usando l'interfaccia CNET. Nel 1998, la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati (DTS-Data Transformation Services) Metaphoria, che permetteva agli sviluppatori Java di scrivere applicazioni che si potevano collegare ai contenuti e permettevano di distribuire tali contenuti su canali diversi. Il prodotto non ebbe successo, ma il concetto che era stato introdotto costituì le basi di ciò che è diventato il CMS odierno.

Il problema della gestione dei contenuti In un approccio sistematizzato al problema della gestione dell'informazione si affrontano le seguenti fasi: • Identificazione degli utenti di back-end e dei relativi ruoli di produzione o fruizione dell'informazione, di controllo e coordinamento; • Assegnazione di responsabilità e permessi a differenti categorie di utenti per distinti tipi di contenuti (in un progetto complesso il prodotto finito non è frutto del lavoro del singolo, che pertanto non ha possibilità o esigenza di intervenire in tutti gli ambiti); • Definizione delle attività di flusso di lavoro, cioè formalizzazione di un percorso per l'assemblaggio del prodotto finale che, in quanto frutto di produzione frammentaria, deve acquisire la sua unitarietà sottostando a opportune procedure di supervisione. Più prosaicamente, per poter rendere efficiente la comunicazione tra i vari livelli della gerarchia, è necessaria un'infrastruttura di messaggistica, con la quale i gestori del contenuto possono ricevere notifica degli avvenuti aggiornamenti;


Content management system • Tracciamento e gestione delle versioni del contenuto; • Pubblicazione del contenuto; • Definizione del palinsesto editoriale. La descrizione appena data è perfettamente applicabile anche a MediaWiki, il software di gestione di Wikipedia.

I web content management system L'utilizzo più diffuso dei CMS è rivolto alla gestione di siti web, soprattutto se sono di grandi dimensioni e richiedono un frequente aggiornamento. Una delle applicazioni più utili dei sistemi di WCMS, infatti, è nella gestione dei portali (Intranet, Extranet, community, siti di E-commerce...), dove vengono impiegati come strumento di pubblicazione flessibile e multiutente. Ad esempio, gestione di contenuti testuali (notizie, articoli ecc.), link, immagini, liste di discussione, forum, materiale scaricabile. Può essere modificata anche la struttura stessa delle pagine in numero ed organizzazione. A volte i WCMS danno la possibilità di gestire anche più versioni dello stesso sito (ad esempio, HTML o WAP). I WCMS consentono di definire utenti, gruppi e diritti in modo da poter permettere una distribuzione del lavoro tra più persone. Per esempio, è possibile definire una classe di utenti abilitati esclusivamente all'inserimento delle notizie, mentre si può riservare la scrittura di articoli ad un altro gruppo, e limitare tutti gli altri alla sola consultazione. L'introduzione di un web content management system in azienda richiede la definizione di chiari processi interni di approvazione dei contenuti. La scelta di un software di WCMS è strategica per le aziende che generano la maggior parte di volume d'affari su Internet, ma - in proporzione diversa - è molto importante anche per il libero professionista che vuole utilizzare il medium Internet per farsi conoscere. In letteratura esistono numerosi modelli che aiutano a valutare il ritorno di un investimento in un WCMS. I costi di adozione sono spesso elevati, quindi non sono sostenibili per i professionisti o i privati che non fanno del Web la loro competenza di base. Per rispondere a questa necessità di mercato sono nati alcuni application service provider (ASP) che offrono questo servizio direttamente via Web, senza richiedere alcun investimento hardware o software. Gli ASP costano ai loro clienti un canone annuale per il servizio di WCMS erogato.

Vantaggi dei CMS Un CMS permette di costruire e aggiornare un sito dinamico, anche molto grande, senza necessità di scrivere una riga di HTML e senza conoscere linguaggi di programmazione lato server (come PHP) o progettare un apposito database. L'aspetto esteriore delle pagine può essere personalizzato scegliendo un foglio di stile CSS appositamente progettato per un determinato CMS. I flat file CMS, altrimenti noti come text-based CMS, sono dei content management system che si basano su file di testo (il più delle volte file XML) e che perciò non necessitano di alcun database come MySQL, PostgreSQL, ecc. Questi CMS sono facilmente installabili e dunque sono particolarmente adatti per siti personali o per piccole comunità.

2


Content management system

3

Limiti dei CMS Un CMS è tanto più efficiente quanto più è specializzato. Molti piccoli portali fanno ricorso a CMS (scritti da altri e messi a disposizione gratuitamente o a pagamento) di tipo generico; per quanto un CMS possa essere flessibile, un sito basato su questa struttura in genere presenta un aspetto poco personalizzato se non è possibile intervenire direttamente sul codice sorgente del prodotto per modificarlo. Analogamente i contenuti saranno sempre ancorati a quanto previsto da chi ha progettato il CMS e non alle esigenze di chi pubblica il sito. Problemi di gestione possono derivare dal fatto che chi pubblica o gestisce il sito può usare il CMS per intervenire sui contenuti e sull'aspetto, ma generalmente (caso del software proprietario) non è in grado di intervenire direttamente (o far intervenire) sulla struttura del CMS stesso; questo è un limite strettamente connesso al vantaggio primario dei CMS: pubblicare un portale senza doverne progettare la struttura o senza possedere le conoscenze tecniche (o le risorse finanziarie) per uno sviluppo personalizzato. Tuttavia esistono anche CMS particolarmente evoluti che permettono di scrivere direttamente sul database. È il caso per esempio di alcuni CMS proprietari. Questi problemi sono risolvibili utilizzando software open source: la possibilità di accedere al codice sorgente del prodotto permette di personalizzare il software sulla base delle proprie esigenze a patto di non avere necessità di apportare modifiche al prodotto adottato. Anche in questo caso, vanno messi in conto i costi per lo sviluppo di moduli personalizzati o funzioni particolari a meno di non possedere in proprio o nella propria struttura aziendale le conoscenze tecniche per intervenire nel codice sorgente. Esistono anche programmi e database progettati su misura, ovvero "CMS personalizzati" e dunque necessariamente specializzati; in questo modo la struttura e la presentazione vengono realizzate tenendo presenti i contenuti che il sito dovrà ospitare e potranno essere modificati in seguito a nuove esigenze.

Premiazioni Dal 2006 la casa editrice inglese Packt Publishing organizza ogni anno il Open Source Content Management System Award dove vengono premiati con piccole somme di denaro i migliori CMS Open Source di varie categorie in base al una votazione effettuata sia da una giuria che dagli utenti. Le categorie sono 5, quella generale e 4 sottocategorie: 1. 2. 3. 4. 5.

Overall Award (classifica generale) Hall of Fame (i più gloriosi) Most Promising (i più promettenti) PHP (i migliori scritti in PHP) Other (i migliori scritti in altri linguaggi di programmazione)

È possibile vedere sul sito internet di Packt Publishing sia i risultati dell'ultima edizione [2] .

[1]

che di quelle precedenti

Dynamic Content Management System Come evoluzione applicativa, il Dynamic Content Management System (DCMS), oltre alle funzioni tipiche del CMS, offre la possibilità di generazione e di riutilizzo di un intero flusso documentale, permettendo così con un unico programma applicativo la realizzazione di documenti tipo cataloghi, manuali, listini e tutto ciò che è composto da immagini, tabelle e testi. Il DCMS trova applicazione soprattutto nell'ambito industriale, come strumento interno di produzione e gestione della documentazione. Il capostipite di questa evoluzione è un progetto tutto italiano denominato SKS (Structured Knowledge Software).


Content management system

Note [1] http:/ / www. packtpub. com/ award [2] http:/ / www. packtpub. com/ open-source-cms-award-previous-winners

Bibliografia • Ulrich Kampffmeyer, ECM Enterprise Content Management, Hamburg 2006, ISBN 3-936534-09-8. Definitions, Scope, Architecture, Components and ECM-Suites in English, French, and German PDF (http://www. project-consult.net/Files/ECM_White Paper_kff_2006.pdf)

Voci correlate • • • • • •

Lista di CMS Architettura telematica Accessibilità Content management Gestione della conoscenza aziendale Learning management system

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:Content management systems

Collegamenti esterni • Content management (http://www.dmoz.org/Computers/Software/Internet/Site_Management/ Content_Management/) su Open Directory Project ( Segnala (http://www.dmoz.org/cgi-bin/add. cgi?where=Computers/Software/Internet/Site_Management/Content_Management/) su DMoz un collegamento pertinente all'argomento "Content management")

4


Software

Software Il software è l'informazione o le informazioni utilizzate da uno o più sistemi informatici e memorizzate su uno o più supporti informatici. Tali informazioni possono essere quindi rappresentate da uno o più programmi, oppure da uno o più dati, oppure da una combinazione delle due. Il termine si contrappone tradizionalmente a hardware (la componente fisica di un sistema di calcolo). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il firmware. OpenOffice.org Writer, un software di videoscrittura. Il suffisso -ware viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio middleware); del tipo di licenza con cui sono distribuiti (freeware, shareware); e altro.

Etimologia Il termine "software" è un prestito dell'inglese. Nella ligua inglese "software" nasce per imitazione del termine "hardware" e dalla composizione delle parole "soft" (in italiano "morbido", "tenero", "leggero")[1] e "ware" (in italiano "merci", "articoli", "prodotti", "mercanzie").[2] La paternità della coniazione del termine "software" non è certa. L'americano Paul Niquette la rivendica sostenendo di aver coniato il termine "software" nel 1953.[3] Certa invece è la prima apparizione del termine "software" in una pubblicazione scritta: un articolo dell'American Mathematical Monthly scritto nel 1958 dallo statistico americano John Wilder Tukey.[4]

Storia del software Il termine software ha origine durante la seconda guerra mondiale. I tecnici dell'esercito inglese erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere. Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma. Dato che queste istruzioni erano scritte su pagine solubili nell'acqua (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate software (componente tenera), in contrapposizione all'hardware. Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato utilizzato per la prima volta nel 1957 da John Wilder Tukey, noto statistico statunitense. Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing ha sostenuto che il progresso tecnologico sarebbe riuscito a creare, entro il 2000, delle macchine intelligenti (in grado cioè di "pensare" autonomamente) atte alla risoluzione dei problemi.

5


Software

Aumento del codice e potenziamento dell'hardware Alla storia dell'evoluzione del software è legato lo sviluppo dell'hardware. Come evidenziato dalla seconda legge di Moore, una minaccia alla velocità di elaborazione, oltre ai costi, proviene dal software. Infatti ciò che conta per un utente non è tanto la velocità di elaborazione del processore, quanto la velocità effettiva di elaborazione del codice, calcolata in base al tempo che occorre alla CPU per eseguire un'operazione (come la scrittura di un testo, la creazione di una cartella, ecc.). Nathan Myhrvold, direttore dell'Advanced Technology Group della Microsoft, ha effettuato uno studio sui prodotti Microsoft calcolando le linee di codifica per le successive release dello stesso software: • Basic: da 4.000 linee di codice nel 1975 a 500.000 nel 1995 • Word: da 27.000 linee di codice nel 1982 a 2.000.000 nel 2002 La continua aggiunta di nuove funzionalità al software esistente giustifica la costante richiesta di processori più veloci, memorie sempre più grandi e più ampie capacità di I/O (Input/Output). Infatti, anche le altre tecnologie si sono evolute di pari passo: • i dischi rigidi da 10 MB (1982) a 1 TB (2007); • i modem analogici da 110 bit/sec a 56 kbit/sec. Myhrvold traccia un parallelismo con la legge di Moore: "abbiamo aumentato la dimensione e la complessità del software ancora più rapidamente di quanto non prevedeva la legge di Moore", "gli utenti del software hanno sempre consumato le maggiori capacità di elaborazione ad una velocità uguale o superiore a quella con cui i produttori di chip le mettevano a disposizione" (Stewart Brand, 1995).

Classificazione I software possono essere classificati in base a diverse loro caratteristiche: • • • • •

funzione (videoscrittura, foglio elettronico, database management system, grafica ecc.); grado di apertura della licenza (software libero o software proprietario); sistema operativo su cui possono essere utilizzati (Unix, Mac OS, Windows ecc.); da installare o portabile; tipo di interfaccia utente (testuale o grafica).

I software possono essere divisi in quattro categorie principali: • • • •

software di base (che a sua volta si divide in sistemi operativi, compilatori e interpreti, librerie); driver; firmware; programmi applicativi (cioè tutti quei software che vengono utilizzati nel quotidiano, dai programmi per l'ufficio, ai videogiochi).

Realizzazione del software Un software viene normalmente realizzato utilizzando uno o più linguaggi di programmazione. Se il progetto diventa complesso, è opportuno dividere il programma in uno o più moduli, che possono essere così affidati a diversi programmatori, modificati più semplicemente e riutilizzati in altri progetti. La fase detta di compilazione, traduce ogni file del codice sorgente, scritto nel o nei linguaggi di programmazione, in un file oggetto contenente il programma in linguaggio macchina adeguato all'architettura hardware di destinazione. In seguito tutti i file oggetto attraversano una fase di linking per giungere al prodotto finale: il file eseguibile. Alcuni software non vengono compilati in quanto le istruzioni contenute nel codice sorgente vengono eseguite utilizzando un software detto interprete.

6


Software La gestione del processo di sviluppo è caratterizzato dalla scelta di un modello di sviluppo del software codificato nell'ambito dell'Ingegneria del Software (Software Engineering), esistono: • Il modello classico, o a cascata (water-fall) • Il modello a spirale (object oriented) La realizzazione del software è un'attività complessa articolata in più fasi, per questo motivo spesso il software è associato ad un prodotto ingegneristico, ma se ne differenzia soprattutto per alcune caratteristiche: • è molto "malleabile"; • è un prodotto human intensive (e cioè un prodotto che richiede un considerevole sforzo in risorse umane perché si concentra soprattutto sulla progettazione e sull'implementazione).

Licenze d'utilizzo e distribuzione La licenza d'uso è un documento che accompagna il software e specifica i diritti e i doveri di chi lo riceve e di chi lo diffonde. Tutte le licenze d'uso traggono il loro valore legale dalle norme sul diritto d'autore (il copyright). Esistono licenze libere, le licenze Open Source e licenze proprietarie. Nasce in seguito anche l'Open content che ha come scopo quello di trasferire le licenze su opere diverse dal software. Le licenze di utilizzo e distribuzione del software libere ed Open Source sono Le differenti categorie del software numerose, ma quelle effettivamente diffuse sono poche. Per l'89% si tratta di GPL, LGPL e BSD (licenza storica di Unix, tornata in uso dall'avvento di Linux). Alcune licenze libere: • • • •

GNU-GPL (la licenza libera più diffusa) GNU-LGPL BSD Creative Commons

Ogni tipo di licenza differisce dagli altri per vari aspetti

7


Software

8

Brevettabilità del software Nell'Unione europea, i software non possono essere oggetto di brevetto. Il 6 luglio 2005, il Parlamento Europeo ha respinto la proposta di direttiva per la "Brevettabilità delle invenzioni attuate per mezzo di elaboratori elettronici", sostenuta dalla Commissione[5][6]. La proposta è stata rigettata alla prima votazione con 648 voti contrari, 32 favorevoli, rispetto a 680 schede scrutinate. Il giorno prima della votazione, la Commissione Europea ha confermato che, in caso di bocciatura, non sarebbe stato presentato un nuovo testo sull'argomento.

Note [1] [2] [3] [4]

Confronta il lemma "soft" su «Il Sansoni - Inglese» (http:/ / dizionari. corriere. it/ dizionario_inglese/ Inglese/ S/ soft. shtml). Confronta il lemma "ware1" su «Il Sansoni - Inglese» (http:/ / dizionari. corriere. it/ dizionario_inglese/ Inglese/ W/ ware_1. shtml). Paul Niquette, Introduction: the software age (http:/ / niquette. com/ books/ softword/ part0. htm), «Sophisticated: The Magazine», 1995. David Leonhardt, John Tukey, 85, statistician; coined the word 'software' (http:/ / www. nytimes. com/ 2000/ 07/ 28/ us/ john-tukey-85-statistician-coined-the-word-software. html), «New York Times», 28 luglio 2000.

[5] Testo della proposta di Direttiva per la brevettabilità del software (http:/ / 64. 233. 183. 104/ search?q=cache:SQehO9LJHPQJ:www. europarl. europa. eu/ pv2/ pv2?PRG=CALDOC& TPV=DEF& FILE=20030924& SDOCTA=2& TXTLST=2& POS=1& LASTCHAP=3& Type_Doc=FIRST& LANGUE=IT+ proposta+ di+ direttiva+ del+ Parlamento+ europeo+ e+ del+ Consiglio+ relativa+ alla+ brevettabilità+ delle+ invenzioni+ attuate+ per+ mezzo+ di+ elaboratori+ elettronici+ N+ A5-0238/ 2003& hl=it& ct=clnk& cd=2& gl=it/ ) [6] Argomenti della Commissione Europea a sostegno della brevettabilità (http:/ / 64. 233. 183. 104/ search?q=cache:-m-a_LyBYg0J:www. europarl. europa. eu/ hearings/ 20021107/ juri/ wd_directive_it. pdf+ direttiva+ brevettabilità+ invenzioni+ attuate+ per+ mezzo+ di+ elaboratori+ elettronici& hl=it& ct=clnk& cd=1& gl=it/ )

Bibliografia • G. Guglielmetti, L'invenzione di software. Brevetto e diritto d'autore, 2ª ed., Milano, Giuffrè, 1997.

Voci correlate Sviluppo del software • Ingegneria del software • Progettazione (ingegneria del software) • Metodologia di sviluppo del software • Processo software • Ciclo di vita del software • • • •

Modello di sviluppo del software Localizzazione Manutenzione Collaudo

• Tecniche di controllo • Ispezione


Software

9

Strumenti • Compilatore • Computer-aided software engineering • Software development kit

Tipi di software in relazione alla licenza d'uso • • • •

Freeware Shareware Software proprietario Software libero

• Elenco di casi di adozione di software libero • Software libero/draft • Software Free/Libero/Open-Source (FLOSS) • Free Software Users Group (FSUG) • Free and Open Source Software (FOSS) • Differenza tra Software Libero e Open Source

Tipi di software • Elenco di tipi di software • Software per l'office automation

Professioni correlate • Sviluppatore • Programmatore • Webmaster

Fondazioni e aziende • Creative Commons • Free Software Foundation (FSF)

Altri progetti • Wikizionario contiene la voce di dizionario: http://it.wiktionary.org/wiki/software •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:Software

Collegamenti esterni • Software (http://www.dmoz.org/World/Italiano/Computer/Software/) su Open Directory Project ( Segnala (http://www.dmoz.org/cgi-bin/add.cgi?where=World/Italiano/Computer/Software/) su DMoz un collegamento pertinente all'argomento "Software")

• Oscon.it (http://www.oscon.it) Oscon, facsimile di contratto per la vendita di software. • Lista di software gratuiti per pc (http://unikgeek.com/software/) • La Software University (http://www.softwareuniversity.net)


Software libero

Software libero Il software libero è software pubblicato con una licenza che permette a chiunque di utilizzarlo e che ne incoraggia lo studio, le modifiche e la redistribuzione; per le sue caratteristiche, si contrappone al software proprietario ed è differente dalla concezione open source, incentrandosi sulla libertà dell'utente e non solo sull'apertura del codice sorgente, che è comunque un pre-requisito del software libero.[1]

Caratteristiche La parola libero non implica la possibilità di utilizzare tale software in maniera indiscriminata: il software libero è comunque soggetto ad una licenza d'uso, a differenza ad esempio del software di pubblico dominio. Rispetto al software proprietario, la licenza d'uso del software libero permette di: • eseguire il programma per qualsiasi scopo; • accedere alla struttura interna del programma (codice sorgente), studiarla ed eventualmente modificarla; • ridistribuirlo in un numero di copie illimitato. La licenza d'uso pone in genere i seguenti vincoli: • gli autori precedenti del software devono essere menzionati anche Stallman durante il suo intervento a Wikimania [2] nelle versioni modificate, lasciando intatto il loro copyright; 2005 (Francoforte sul Meno) • in seguito ad una modifica, non è possibile applicare una licenza d'uso incompatibile con la licenza originaria o che vada contro le norme della licenza stessa. Per esempio chiunque può riemettere del software pubblicato sotto LGPL usando la licenza GPL (tale operazione è anche chiamata upgrade della licenza), mentre non è possibile fare il contrario (naturalmente se non si è il detentore unico del copyright); • normalmente, nella licenza, vi è una clausola che sancisce la non usabilità del software se non si rispetta la licenza d'uso o se una o più norme della stessa licenza non sono valide per termini di legge; • quando si distribuisce un codice binario occorre o distribuire insieme anche i sorgenti o garantire per iscritto la possibilità a tutti gli utenti di venirne in possesso dietro richiesta ed al solo costo del supporto

Le "quattro libertà" Secondo Richard Stallman e la Free Software Foundation da lui fondata, un software si può definire libero solo se garantisce quattro "libertà fondamentali"[3]: 1. Libertà 0 Libertà di eseguire il programma per qualsiasi scopo. 2. Libertà 1 Libertà di studiare il programma e modificarlo[4]. 3. Libertà 2 Libertà di ridistribuire copie del programma in modo da aiutare il prossimo. 4. Libertà 3 Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio[4]. Un programma è software libero se l'utente ha tutte queste libertà. In particolare, se è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a chiunque ed ovunque. Essere liberi di fare queste cose significa (tra l'altro) che non bisogna chiedere o pagare nessun permesso.

10


Software libero

Licenze d'uso libere Buona parte del software libero viene distribuito con la licenza GNU GPL (GNU General Public License), scritta da Richard Stallman e Eben Moglen per garantire legalmente a tutti gli utenti le quattro libertà fondamentali. Dal punto di vista dello sviluppo software, la licenza GPL viene considerata una delle più restrittive, poiché impone che necessariamente ogni prodotto software derivato - ovvero, che modifica o usa codice sotto GPL - venga a sua volta distribuito con la stessa licenza. Anche MediaWiki, il software usato per Wikipedia, è distribuito con licenza GPL. Una licenza simile, ma meno restrittiva, è la GNU LGPL (GNU Lesser General Public License), che permette di utilizzare il codice anche in software proprietario e sotto altre licenze opensource, purché le parti coperte da LGPL anche se modificate - vengano comunque distribuite sotto la medesima licenza. In genere è utilizzata per librerie software. Non tutte le licenze ritenute libere sono compatibili tra di loro, cioè in alcuni casi non è possibile prendere due sorgenti con due licenze libere ed unirle per ottenere un prodotto unico. Questo avviene quando non esista e non sia possibile creare una licenza che possa soddisfare i requisiti delle licenze originali. Ad esempio la licenza BSD originale, pur essendo considerata licenza di software libero, è incompatibile con la GPL[5]; per ovviare al problema è stato necessario creare una "licenza BSD modificata" compatibile con la GPL. Un'altra licenza degna di nota è l'Apache License, prodotta dalla Apache Software Foundation; la versione 2 di questa licenza è compatibile con la GPL versione 3 ma non con la GPL versione 2[6]. L'Apache License considera un prodotto derivato alla stregua della LGPL, ma è più liberale nella concessione delle proprietà intellettuali. Le varie licenze libere possono contenere ulteriori limitazioni per alcune situazioni particolari; per esempio la GPL prevede che si possa esplicitamente vietare l'uso del software nelle nazioni dove tale licenza non è valida o dove dei brevetti software impediscono la distribuzione di tale software. Le licenze d'uso non vietano in genere di vendere software libero e di solito non stabiliscono minimamente il possibile prezzo di vendita.

Differenze rispetto all'open source Essendo la disponibilità del codice sorgente uno dei requisiti fondamentali che accomuna il software libero ed il software open source, spesso si è indotti a considerare i due concetti equivalenti, ma in realtà non lo sono. Un software è open source se i termini secondo i quali viene distribuito rispondono alla Open Source Definition dell'Open Source Initiative (OSI): in particolare, se una licenza rientra in tale definizione, allora tale licenza può essere dichiarata licenza open source. La definizione potrebbe cambiare nel tempo (nessuno garantisce che questo non possa accadere) e quindi è possibile che una licenza attualmente open source non lo sia nel futuro o viceversa. OSI è anche l'organizzazione che su richiesta certifica con il relativo marchio registrato il fatto che una licenza sia effettivamente aderente alla Open Source Definition. Recentemente l'OSI ha posto un freno al proliferare delle licenze dichiarando che cercherà di limitare il numero di licenze che nel futuro saranno ritenute licenze open source. Questo potrebbe, in linea teorica, far sì che una licenza ritenuta libera non venga ritenuta open source. Una licenza invece è libera (o meglio, una versione di una licenza è libera) se e solo se rispetta le quattro libertà fondamentali. Pertanto se una versione di una licenza è libera, allora lo sarà per sempre. Naturalmente è sempre complesso, almeno per un cittadino "normale" (non esperto di leggi), stabilire se una licenza è libera o meno perché entrano in gioco i termini legali utilizzati nella stessa. Il progetto GNU si occupa tra l'altro anche di indicare se una licenza è libera o meno e se è compatibile con le licenze GNU o meno[7]. Il software libero inoltre non deve essere confuso con il software freeware, che è distribuibile gratuitamente ma che non è né software libero né open source. In ogni caso, gli insiemi di applicativi designati da software libero e open source coincidono a meno di poche eccezioni. La differenza fondamentale è nel tipo di approccio: parlando di software libero si pone l'accento sugli aspetti sociologici ed etici, che sono volutamente rimossi nella visione open source.

11


Software libero

Storia L'idea di software libero nasce agli inizi degli anni ottanta, quando lo sviluppo del software cominciò a passare di mano dalle università alle aziende (software proprietario), ponendo un pesante freno alla collaborazione che caratterizzava il lavoro di gran parte dei programmatori e dei sistemisti dell'epoca, soprattutto con i patti di non divulgazione che le aziende facevano firmare ai programmatori che assumevano. In realtà il software "commerciale" esisteva da sempre, ma i costi elevati dell'hardware facevano sì che il business delle aziende non fosse concentrato sul software, che era considerato una parte naturale del prodotto, ed i cui sorgenti erano in genere pubblici. Con il passare del tempo il software diventò sempre più complesso e difficile da realizzare e le aziende iniziarono a non distribuire i sorgenti e obbligare i propri dipendenti a non rivelare nulla per non avvantaggiare la concorrenza; inoltre con il crollo dei costi dell'hardware, lo sviluppo commerciale del software divenne un business notevole, ed il codice sorgente era divenuto un investimento prezioso che poteva da un lato far acquisire una fetta di tale mercato in rapida crescita e dall'altro legare i propri utenti al proprio software mantenendo il segreto sui metodi utilizzati per lo sviluppo di sistemi e applicazioni. In questo modo le aziende cominciavano ad utilizzare la legge sul diritto d'autore per impedire ai concorrenti di leggere e modificare i loro prodotti, assicurandosi il controllo dei propri clienti che, senza più poter vedere e modificare il codice sorgente del software, non potevano più adattarlo alle loro esigenze ma dovevano chiedere alle aziende di farlo per loro. Nel 1983 Stallman fondò il Progetto GNU con l'intenzione di creare un sistema operativo completamente libero. Grazie alla collaborazione di molti sviluppatori volontari, all'uso di Internet per la coordinazione del progetto e al kernel Linux di Linus Torvalds, nel 1991 nacque GNU/Linux, un clone di UNIX liberamente distribuibile e modificabile. In Italia si riscontra una sempre maggiore attenzione per il software libero, vi sono associazioni che giornalmente dedicano molte attenzioni ed energie nella tutela e nel rispetto delle norme che regolano (o dovrebbero regolare) l'utilizzo del software libero nelle varie strutture pubbliche, come anche la Pubblica Amministrazione. Una delle più importanti sentenze registrate negli ultimi giorni riguarda l'Associazione per il Software Libero: con una sentenza a lungo attesa il Tribunale Amministrativo Regionale del Lazio riconosce ad Assoli il diritto di perseguire i suoi scopi statutari agendo anche in giudizio ove fosse necessario.

Aspetti filosofici e sociali Nel software libero il significato della parola libero ha un'accezione particolare. Si è già sottolineato che la libertà del software libero non è incondizionata, perché è soggetta ai precisi vincoli della licenza d'uso, come qualsiasi altra licenza d'uso, solo che in questo caso l'autore si "espropria" di alcuni diritti per cederli agli utenti. Questi vincoli sono studiati in maniera tale da favorire il tipo di libertà cosiddetta copyleft, ovvero che ha come obiettivo la condivisione del sapere. Pertanto il software libero parte da considerazione sociali e per molti aspetti è una forma di filosofia. Le implicazioni sociali del software libero sono notevoli. La condivisione del sapere non permette a un gruppo ristretto di persone di sfruttare la conoscenza (in questo caso tecnologica) per acquisire una posizione di potere. Inoltre, è promossa la cooperazione delle persone, che tendono naturalmente ad organizzarsi in comunità, cioè in gruppi animati da un interesse comune. Il modello del software libero si è naturalmente esteso ad altri campi del sapere. Chi crede nel modello copyleft pensa che questo possa essere applicato ad esempio alla musica o alla divulgazione. L'esempio più riuscito di applicazione di questo modello ad un campo differente dal software è oggi Wikipedia, che promuove la condivisione del sapere e la formazione di una comunità.

12


Software libero

Differenti correnti di pensiero Tra i sostenitori del software libero, e più in generale del copyleft, vi sono diverse correnti di pensiero, che spaziano da una visione radicale ad una più moderata. La visione più radicale tende ad un modello che si spinge molto oltre a quello del software libero, arrivando in alcuni casi ad auspicare una completa abolizione del software proprietario, considerato una limitazione inaccettabile della libertà e dei diritti dell'uomo. Questa ideologia è stata, erroneamente o almeno impropriamente, paragonata a correnti politiche quali il comunismo, sebbene solitamente i sostenitori del software libero non entrino in questioni politiche. Chi è su posizioni più moderate considera il software libero un ideale a cui tendere, non negando la possibilità di esistere al software proprietario e più in generale allo sfruttamento commerciale del diritto d'autore, sfruttamento che può essere fatto anche usando software libero, come dimostrano vari casi di successo (es: MySQL). La licenza LGPL è stata concepita per permettere una certa integrazione tra software libero e software non libero. C'è chi ritiene inopportuno un suo utilizzo perché permette l'integrazione, sotto determinate condizioni, di software libero da parte di software non libero[8]; tuttavia ogni autore di software può decidere liberamente che licenza scegliere e quindi sotto quali condizioni permettere l'uso del proprio lavoro.

Vantaggi del software libero A prescindere dalle implicazioni sociali, secondo i suoi sostenitori il software libero presenta numerosi vantaggi rispetto al software proprietario: • essendo possibile modificare liberamente il software, è possibile personalizzarlo ed adattarlo alla proprie esigenze • il codice sorgente è sottoposto ad una revisione da parte di moltissime persone, pertanto è più difficile che contenga bachi e malfunzionamenti. In ogni caso, è sempre possibile per chiunque tenere un indice pubblico dei problemi, in modo che gli utenti li conoscano • se viene scoperto un baco o una falla di sicurezza, la sua correzione di solito è molto rapida[9] • essendo il sorgente liberamente consultabile, è molto difficile inserire intenzionalmente nel software backdoor, cavalli di Troia o spyware senza che questi vengano prontamente scoperti ed eliminati, come invece è accaduto per alcune applicazioni commerciali (ad esempio il caso del database Firebird della Borland che conteneva una backdoor scoperta quando di tale software sono stati pubblicati i sorgenti) • non esistendo standard proprietari, le cui specifiche sono normalmente segrete, è molto più facile costruire software interoperabile • permettere a chiunque di modificare i sorgenti garantisce che ogni nuova funzionalità o copertura di un baco possa essere proposta da chiunque e immediatamente applicata dagli sviluppatori. Questo permette di avere rapidamente a disposizione un software che rispetta le esigenze di chi ha richiesto le modifiche in caso di necessità[9] • la complessità e le dimensioni di alcune applicazioni di software libero (ad esempio, dei sistemi operativi) è tale che è necessario il supporto commerciale di un'azienda; il software libero si presta a creare nuove opportunità di business nel campo della formazione e del supporto, oltre che della eventuale personalizzazione del software. • collaborando con sviluppatori volontari e utilizzando il lavoro della comunità, anche le piccole e medie imprese sono in grado di sviluppare e vendere prodotti di alta qualità, senza dover ampliare il loro organico.

13


Software libero

Critiche al software libero Secondo alcuni il software libero avrebbe delle limitazioni e degli svantaggi rispetto al software proprietario: • essendo un lavoro volontario, lo sviluppo del software libero sarebbe più lento rispetto al software proprietario; tesi espressa da Bill Gates nella sua lettera aperta ai programmatori dilettanti[10]. Bill Gates ha inoltre particolarmente criticato la GPL in quanto licenza virale e non economicamente sostenibile[11]. • alcune tipologie di software, soprattutto di nicchia, non sarebbero disponibili come software libero; infatti il software di nicchia non avrebbe abbastanza utenti per la creazione di una comunità che supporti lo sviluppo del software. • lo sviluppo del software libero avrebbe una struttura anarchica, che porta a risultati incoerenti e ad una mancanza di uniformità e consistenza[12]. • nonostante il codice sorgente sia liberamente disponibile, non tutti sono in grado di apportarvi modifiche[13] Alcune di queste critiche sono talvolta frutto di un'errata comprensione del software libero. Molte persone tendono infatti a considerare il software libero come prodotto esclusivamente da volontari, mentre sono molti i casi in cui è semplicemente un modello di sviluppo adottato a livello aziendale.

Applicazioni commerciali del software libero Il software libero non deve necessariamente essere sviluppato a titolo gratuito o a fondo perduto. Purché si rispettino i vincoli della licenza d'uso, è possibile vendere del software libero; all'interno dei documenti del progetto GNU, Stallman incoraggia la vendita di software libero. Stando alla GPL, però, il primo che compra un software libero ha il diritto di redistribuirlo gratis, è quello che succede ad esempio con REHL e CentOS, quindi il modello non è sostenibile. Infatti non c'è alcuna azienda che fa business sulla vendita di Free Software, ma semmai su servizi e assistenza. Vi sono inoltre alcune aziende che adottano il modello di sviluppo del software libero per i propri prodotti commerciali. Il ritorno economico in questo caso può derivare dalla fornitura di assistenza e di know-how. Un caso diverso è quello di alcuni esempi di software che vengono pubblicati con un sistema di "licenze multiple". In pratica lo stesso software viene licenziato sia come proprietario, sia come software libero. La versione libera talvolta dispone di meno funzionalità, o è limitata ad un numero ristretto di piattaforme. Esempi celebri di software a doppia licenza sono il database MySQL, di cui esiste una versione "Pro Certified Server" a pagamento e una versione "Community Edition" pubblicata con licenza GPL, e la libreria Qt[14]. Vi sono poi aziende che sono strutturate integralmente per la vendita e l'assistenza di un determinato software libero: esempi classici sono alcune distribuzioni di GNU/Linux, come Red Hat o SUSE. Queste aziende utilizzano come base il software sviluppato dalla comunità, aggiungendo una serie di tool di configurazione o sviluppo, curando gli aspetti più tecnici e dando agli utenti finali un'assistenza mirata. Sfruttando le caratteristiche della licenza BSD, alcune aziende preferiscono invece partire da software libero per sviluppare un prodotto non libero. Per esempio il sistema operativo proprietario Microsoft Windows implementava, fino alla versione NT 4.0, lo stack di rete utilizzando codice sotto licenza BSD.

14


Software libero

Note [1] [2] [3] [4] [5] [6]

Perché l'Open Source manca l'obiettivo del Software Libero, di Richard Stallman http:/ / wikimania2005. wikimedia. org/ wiki/ Main_Page Definizione di Software Libero (http:/ / www. gnu. org/ philosophy/ free-sw. it. html) L'accesso al codice sorgente ne è un prerequisito. BSD License Problem (http:/ / www. gnu. org/ philosophy/ bsd. html). URL consultato in data 23-12-2007. Apache License Version 2.0 and GPL compatibility (http:/ / www. gnu. org/ licenses/ license-list. html#apache2). URL consultato in data 14-04-2009. [7] Various Licenses and Comment about Them (http:/ / www. gnu. org/ licenses/ license-list. html). URL consultato in data 23-12-2007. [8] Why you shouldn't use the Lesser GPL for your next library (http:/ / www. gnu. org/ licenses/ why-not-lgpl. html). URL consultato in data 23-12-2007. [9] Use of Free and Open Source Software in the U.S. Department of Defence (http:/ / www. terrybollinger. com/ dodfoss/ dodfoss_pdf. pdf). URL consultato in data 23-12-2007. [10] An open Letter to Hobbysts (http:/ / www. flora. ca/ gates_letter. txt). URL consultato in data 23-12-2007. [11] Gates: GPL will eat your economy, but BSD's cool (http:/ / www. theregister. co. uk/ 2002/ 04/ 22/ gates_gpl_will_eat_your/ ). URL consultato in data 23-12-2007. [12] Some Vulnerabilities of The Cathedral and the Bazaar (http:/ / www. softpanorama. org/ Articles/ a_second_look_at_the_cathedral_and_the_bazaar. shtml#Some_Vulnerabilities). URL consultato in data 23-12-2007. [13] Open Source Problems and Limitations (http:/ / www. softpanorama. org/ Articles/ oss_as_academic_research. shtml#b4). URL consultato in data 23-12-2007. [14] Business Model (http:/ / www. trolltech. com/ trolltech/ company/ about/ businessmodel). URL consultato in data 23-12-2007.

Bibliografia • Simone Aliprandi, Apriti standard! Interoperabilità e formati aperti per l'innovazione tecnologica (http://www. aliprandi.org/apriti-standard), Ledizioni/Copyleft-Italia.it, 2010. Disponibile anche su Wikimedia Commons a questo link (http://commons.wikimedia.org/wiki/ File:Apriti_Standard!_Interoperabilità_e_formati_aperti_per_l'innovazione_tecnologica.pdf) • AA.VV., Revolution OS. Voci dal codice libero. A cura di A.Mari, S. Romagnolo. Apogeo Editore, 2003. ISBN 88-503-2154-6 • Simone Aliprandi, Copyleft & opencontent - L'altra faccia del copyright (http://www.copyleft-italia.it/it/libri/ copyleft-opencontent.html), ed. PrimaOra, 2005 • Simone Aliprandi (a cura di), Compendio di libertà informatica e cultura open (http://www.copyleft-italia.it/ libri/liberta-cultura-open), PrimaOra/Copyleft-Italia.it, 2006. ISBN 88-901724-3-6. Disponibile anche su Wikimedia Biblioteca a questo link (http://biblioteca.wikimedia.it/wiki/ File:Compendio_di_liberta_informatica.pdf) • (con Alessandro Gilioli), Arturo Di Corinto I nemici della rete , BUR-Biblioteca Universale Rizzoli, 2010 ISBN 978-88-17-04275-8 • Arturo Di Corinto, Revolution OS II. Software libero, proprietà intellettuale, cultura e politica. Apogeo, 2006, EAN: 9788850323272). • Lawrence Lessig, Cultura libera. Un equilibrio fra anarchia e controllo, contro l'estremismo della proprietà intellettuale (http://www.copyleft-italia.it/pubblicazioni/Lessig-CulturaLibera.pdf), Apogeo, 2005. ISBN 978-88-503-2250-3. • Lawrence Lessig, Il futuro delle idee. Feltrinelli, 2006. ISBN 978-88-07-17123-9. • Richard M. Stallman, Software libero pensiero libero - Volume primo, Viterbo, Stampa Alternativa, 2003. ISBN 978-88-7226-754-7. • Richard M. Stallman, Software libero pensiero libero - Volume secondo, Viterbo, Stampa Alternativa, 2004. ISBN 978-88-7226-786-8. • Giovanni Ziccardi, Libertà del codice e della cultura (Giuffrè, 2006). • Gruppo Ippolita, Open non è Free, Comunità digitali tra etica hacker e mercato globale (http://www.ippolita. net/files/open_non_e_free_ippolita.pdf), Elèuthera, 2005

15


Software libero • Gerardo Pastore, Democrazia Informazione. Una riflessione sui movimenti free software e open source, Erreci Edizioni, Anzi-Potenza 2009

Presentazioni • Nicola Asuni, Software Libero (http://www.slideshare.net/tecnickcom/software-libero) - Introduzione al Software Libero, LinuxDay CA, 2010

Documentazione • Daniele Medri. Linux facile (http://linuxfacile.medri.org/download/linuxfacile_5.0-1.pdf) (copyleft) • Daniele Giacomini. Appunti di informatica libera (copyleft)

Voci correlate • • • •

GNU, Free Software Foundation e Richard Stallman GNU GPL, GNU LGPL, GNU FDL, Licenza artistica Licenza open source, Licenza libera Comparazione di licenze libere

• • • • •

GNU/Linux, FreeBSD, OpenBSD, NetBSD Copyright e Copyleft Elenco di casi di adozione di software libero FLOSS e FOSS Free Software Song

Altri progetti • •

Wikisource contiene opere originali: http://it.wikisource.org/wiki/:Categoria:Software Libero Wikinotizie contiene notizie di attualità: http://it.wikinews.org/wiki/Categoria:Software libero

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:Free software • Wikiquote contiene citazioni: http://it.wikiquote.org/wiki/Software libero

Collegamenti esterni • • • • • •

GNU.org (http://www.gnu.org/home.it.html) GNUvox - La voce del software libero (http://www.gnuvox.info/) AsSoLi - Associazione per il Software Libero (http://www.softwarelibero.it/) (FR) Storia del Software Libero (http://www.web-libre.org/) Guida al software libero per l'ufficio (http://www.ufficioopen.it/) Lezione sul Software Libero (http://www.bononia.it/~renzo/fortic/) di Renzo Davoli

16


PHP

17

PHP

PHP Sviluppatore Ultima versione

The PHP Group 5.4.4 (14 giugno 2012)

Sistema operativo Multipiattaforma Genere

Linguaggio di scripting

Licenza

PHP License 3.01 (Licenza libera)

Sito web

http:/ / www. php. net

[1]

PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page"[2]) è un linguaggio di scripting interpretato, con licenza open source e libera (ma incompatibile con la GPL), originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica. L'elaborazione di codice PHP sul server produce codice HTML da inviare al browser dell'utente che ne fa richiesta. Il vantaggio dell'uso di PHP e degli altri linguaggi Web come ASP e .NET rispetto al classico HTML derivano dalle differenze profonde che sussistono tra Web dinamico e Web statico. Un esempio di software scritto in php è MediaWiki, su cui si basano progetti wiki come Wikipedia e Wikizionario.

Cenni storici Nato nel 1994 ad opera del danese Rasmus Lerdorf, PHP era in origine una raccolta di script CGI che permettevano una facile gestione delle pagine personali. Il significato originario dell'acronimo era Personal Home Page (secondo l'annuncio originale di PHP 1.0 da parte dell'autore sul newsgroup comp.infosystems.www.authoring.cgi[3]). Il pacchetto originario venne in seguito esteso e riscritto dallo stesso Lerdorf in C, aggiungendo funzionalità quali il supporto al database mSQL e prese a chiamarsi PHP/FI, dove FI sta per Form Interpreter (interprete di form), prevedendo la possibilità di integrare il codice PHP nel codice HTML in modo da semplificare la realizzazione di pagine dinamiche. In quel periodo, 50.000 domini Internet annunciavano di aver installato PHP. A questo punto il linguaggio cominciò a godere di una certa popolarità tra i progetti open source del web, e venne così notato da due giovani programmatori: Zeev Suraski e Andi Gutmans. I due collaborarono nel 1998 con Lerdorf allo sviluppo della terza versione di PHP (il cui acronimo assunse il significato attuale) riscrivendone il motore che fu battezzato Zend da una contrazione dei loro nomi. Le caratteristiche chiave della versione PHP 3.0, frutto del loro lavoro, erano la straordinaria estensibilità, la connettività ai database e il supporto iniziale per il paradigma a oggetti. Verso la fine del 1998 PHP 3.0 era installato su circa il 10% dei server web presenti su Internet. PHP diventò a questo punto talmente maturo da competere con ASP, linguaggio lato server analogo a PHP sviluppato da Microsoft, e cominciò ad essere usato su larga scala. La versione 4 di PHP venne rilasciata nel 2000 e prevedeva notevoli migliorie. Attualmente siamo alla quinta versione, sviluppata da un team [4] di programmatori,


PHP

18 che comprende ancora Lerdorf, oltre a Suraski e Gutmans. La popolarità del linguaggio PHP è in costante crescita grazie alla sua flessibilità: nel Giugno 2001, ha superato il milione di siti che lo utilizzano [5]. Nell'ottobre 2002, più del 45% [6] dei server Apache usavano PHP. Nel gennaio 2005 è stato insignito del titolo di "Programming Language of 2004" dal TIOBE Programming Community Index, classifica che valuta la popolarità dei linguaggi di programmazione sulla base di informazioni raccolte dai motori di ricerca. Nel 2005 la configurazione LAMP (Linux, Apache, MySQL, PHP) supera il 50% del totale dei server sulla rete mondiale. Nel 2008 PHP 5 è diventata l'unica versione stabile in fase di sviluppo. A partire da PHP 5.3.0, PHP implementa una funzione chiamata "late static binding" che può essere utilizzata per fare riferimento alla classe chiamata in un contesto di eredità statica. A partire dal 5 febbraio 2008, a causa dell'iniziativa GoPHP5, sostenuta da una serie di sviluppatori PHP, molti dei progetti open-source di alto profilo cessano di supportare PHP 4 nel nuovo codice e promuovono il passaggio da PHP 4 a PHP 5.

Caratteristiche PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre 3.000 funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, Oracle, Firebird, IBM DB2, Microsoft SQL Server, solo per citarne alcuni, e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e .NET e si può dire che esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL ed altro. Fornisce un'API specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite. Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL [7] che raccoglie tutte le estensioni conosciute scritte in C. PHP non ha ancora un supporto nativo per le stringhe Unicode o multibyte; il supporto Unicode è in fase di sviluppo per una futura versione di PHP, e consentirà di usare caratteri non ASCII in stringhe e nomi di funzioni, classi e metodi.

Sicurezza La percentuale di software non sicuro scritto in PHP, sul totale di tutte le falle nei software elencate dal Common Vulnerabilities and Exposures, ammontava al: 12% nel 2003, 20% nel 2004, 28% nel 2005, 43% nel 2006, 36% nel 2007, 34.8% nel 2008, 29.9% nel 2009 e 27.2% nel 2010.[8] La maggior parte di questi punti vulnerabili possono essere sfruttati tramite remoto, ovvero senza accedere al computer che ospita l'applicazione vulnerabile. Le falle più comuni sono dovute al mancato adempimento delle best practice nella programmazione e da vulnerabilità presenti in codice scritto in versioni vecchie di PHP.


PHP

19

Gestione dei parametri Il PHP permette il passaggio di parametri da una pagina all'altra attraverso tre array di variabili: $_GET, $_POST e $_SESSION. Il primo tipo di parametro viene passato tramite la stringa che compare nella barra dell'indirizzo del browser; il secondo viene passato in background, mentre il terzo rimane persistente durante la sessione.

Esempi di codice Utilizzo delle variabili $title = "Wikipedia";

Con questa istruzione viene definita una variabile e le viene assegnato il valore stringa "Wikipedia". L'istruzione seguente: echo $title;

visualizzerà il contenuto della variabile title, ossia la scritta “Wikipedia”. Se invece la variabile non esiste, l'istruzione non visualizzerà nulla. E' anche possibile includere una pagina PHP all'interno di un'altra (e quindi ad esempio di poterne utilizzare le variabili) con l'istruzione require 'otherPage.php';

Hello World! in PHP <?php echo "Hello World!\n"; //scrive nella pagina "Hello World!". Il simbolo ''\n'' inserisce un ''newline'', andando a capo. ?>

Una funzione con controllo sugli argomenti <?php function get_hello_world($value1, $value2) { $result = ""; if ($value1 != "") { $result .= $value1; } // .= è un operatore di concatenazione; // Il "." (punto) deriva dall'operazione di concatenazione delle stringhe nella teoria dei linguaggi; if (($value1 != " ") && ($value2 != " ")) { $result .= " "; }


PHP

20

if ($value2 != "") { $result .= $value2; } return $result; } echo get_hello_world("Hello", "world"); ?>

Il Ciclo for <?php // In questo caso la variabile $n viene stampata a video, successivamente // viene incrementata di 1, il ciclo termina quando $n è uguale a 9. for($n = 0; $n <= 9; $n++){ echo $n; } //Output -> 0123456789 ?>

I cicli while <?php //In questo caso vediamo come stampare a video dei risultati estratti //da una query sql $esempio = mysql_query("SELECT id FROM persone"); while($example = mysql_fetch_array($esempio)){ echo $example[0];?><br /><? } /*In questo modo estraiamo dei dati da un database sql sotto forma di array che verrĂ  poi stampato tramite un ciclo while */ ?>


PHP

21

99 Bottles of Beer Il seguente esempio stampa il testo della canzone 99 Bottles of Beer. <?php /* * Questo è un commento. Altri modi per commentare sono i simboli // e # * Questo tipo di commenti non ha bisogno degli asterischi (*) all'inizio * di ogni riga, ma lo si fa per convenzione. I simboli // e # * commentano solo il testo che si trova dopo di essi e fino alla fine della riga; * non c'è bisogno di finire il commento con qualche carattere speciale. */ /* * Prima definiamo una funzione chiamata "plural". * Restituisce una "s" se l'argomento passato non è 1. */ function plural($number) { // L'operatore ternario (!= ? :) è una struttura condizionale // simile a if-else: (condizione ? true : false) return ($number != 1 ? "s" : ""); } // Definiamo una variabile chiamata $a_capo che contiene un a capo HTML, // un carattere di ritorno e uno di nuova riga: $a_capo = "<br />\r\n"; for ($i = 99; $i > 0; $i--) { print "$i bottle" . plural($i) . " of beer on the wall,$a_capo"; // Non abbiamo bisogno di ripetere il comando print per ogni riga: print "$i bottle" . plural($i) . " of beer.$a_capo Take one down, pass it around,$a_capo" . ($i - 1 != 0 ? $i - 1 : "no more") . " bottle" . plural($i - 1) . " of beer on the wall.$a_capo$a_capo"; /* * PHP permette di creare stringhe su più righe, finché * trova un punto e virgola (;) che termina l'istruzione. * Un punto (.) concatena insieme più stringhe. * Le variabili, che iniziano con il carattere "$", sono interpretate * anche dentro i doppi apici ("), ma non dentro gli apici singoli


PHP

22 ('). * Le funzioni, come plural(), non sono interpretate fra gli apici. */ }

print "Go to the store, $a_capo buy some more, $a_capo 99 bottles of beer on the wall!"; ?>

php.ini Il file di configurazione di PHP, chiamato php3.ini in PHP 3, e poi semplicemente php.ini nelle versioni successive, è letto all'avvio dell'interprete del linguaggio e fornisce le impostazioni dei vari moduli con cui l'interprete è stato compilato. Nella versione server modulare di PHP, questo avviene solo una volta, all'avvio del server web. Per le versioni CGI e CLI, invece, è invocato ad ogni richiesta. Per visualizzare tutte le opzioni di configurazione è possibile utilizzare la funzione phpinfo().

Ambienti di sviluppo • • • • • • • • • • • • • • • • • • • • • • • •

(EN) Aptana [9] (EN) Delphi4php [10] (EN) Bluefish [11] (EN) Dreamweaver CS5.5 [12] (EN) WeBuilder 2007 [13] (EN) Maguma Workbench [14] (EN) NuSphere PHPEd [15] (EN) PHP Designer 2008 [16] (EN) PDT (Eclipse Platform) [17] (EN) PHPEclipse (Eclipse Platform) [18] (EN) NetBeans [19] (EN) Dev-PHP [20] (EN) PHPEdit [21] (EN) Quanta Plus [22] (EN) Side [23] (EN) Xored TruStudio [24] (EN) Zend Studio [25] (EN) Antechinus PHP Editor [26] (EN) gPHPEdit [27] (EN) jEdit [28] PSPad [29] (EN) Vim [30] (EN) Emacs [31] (EN) SciTE [32]

• HAP EDIT [33] • (EN) Komodo IDE [34]


PHP

23 • • • • • • •

(EN) Komodo Edit [35] Notepad++ [36] Notepad (blocco note di Windows) Notepad2 (evoluzione del notepad di Windows) gedit PhpGedView Qualsiasi altro editor di testo

Note [1] http:/ / www. php. net/ license/ 3_01. txt [2] The PHP Group. History of PHP and related projects (http:/ / it. php. net/ history). URL consultato in data 26 aprile 2011. [3] Announce: Personal Home Page Tools (PHP Tools) (http:/ / groups. google. ch/ group/ comp. infosystems. www. authoring. cgi/ msg/ cc7d43454d64d133?oe=UTF-8& output=gplain). 8 giugno 1995. URL consultato in data 6 luglio 2011. [4] http:/ / www. php. net/ credits. php [5] http:/ / www. php. net/ usage. php [6] http:/ / www. securityspace. com/ s_survey/ data/ man. 200210/ apachemods. html [7] http:/ / pecl. php. net [8] PHP-related vulnerabilities on the National Vulnerability Database (http:/ / www. coelho. net/ php_cve. html). URL consultato in data 6 luglio 2011. [9] http:/ / www. aptana. com [10] http:/ / www. embarcadero. com/ products/ delphi_for_php/ [11] http:/ / bluefish. openoffice. nl [12] http:/ / www. dreamweaver. com [13] http:/ / www. blumentals. net/ webuilder/ [14] http:/ / www. maguma. com [15] http:/ / www. nusphere. com [16] http:/ / www. mpsoftware. dk [17] http:/ / www. eclipse. org/ pdt [18] http:/ / www. phpeclipse. de [19] http:/ / netbeans. org [20] http:/ / devphp. sourceforge. net [21] http:/ / www. waterproof. fr [22] http:/ / quanta. kdewebdev. org [23] http:/ / www. phpside. org [24] http:/ / www. xored. com/ trustudio [25] http:/ / www. zend. com/ store/ products/ zend-studio. php [26] http:/ / www. c-point. com/ php_editor. php [27] http:/ / www. gphpedit. org [28] http:/ / www. jedit. org [29] http:/ / www. pspad. com/ it [30] http:/ / www. vim. org [31] http:/ / www. gnu. org/ software/ emacs/ [32] http:/ / www. scintilla. org/ SciTE. html [33] http:/ / hapedit. free. fr [34] http:/ / www. activestate. com/ Products/ komodo_ide/ index. mhtml [35] http:/ / www. activestate. com/ Products/ komodo_ide/ komodo_edit. mhtml [36] http:/ / notepad-plus. sourceforge. net/ it/ site. htm


PHP

24

Bibliografia • Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch (2002): PHP Functions Essential Reference, Sams, ISBN 0-7357-0970-X • Luke Welling, Laura Thomson (2004): PHP and MySQL Web Development, 3rd ed., SAMS, ISBN 0-672-32672-8 • Matt Zandstra (2004): PHP 5 Objects, Patterns, and Practice, Apress, ISBN 1-59059-380-4 • Eric Rosebrock, Eric Filson (2004): Setting Up LAMP: Getting Linux, Apache, MySQL, and PHP Working Together, SYBEX, ISBN 0-7821-4337-7 • Cristian Darie, Mihai Bucica (2004): Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional, Apress, ISBN 1-59059-392-8 • David Powers (2005): Foundation PHP 5 for Flash, Friends of ED, ISBN 1-59059-466-5 • Elizabeth Naramore, (2005): Beginning PHP5, Apache, and MySQL Web Development, Wrox, ISBN 0-7645-7966-5 • Thomas Myer (2005): No Nonsense XML Web Development With PHP, SitePoint, ISBN 0-9752402-0-X • Marc Wandschneider (2005): Core Web Application Development with PHP and MySQL, Prentice-Hall, ISBN 0-13-186716-4 • Steven Holzner (2005): Spring Into PHP 5 , Addison-Wesley, ISBN 0-13-149862-2 • (2005): Building Online Communities with phpBB 2 , Packt Publishing, ISBN 1-904811-13-2 • (2005): Web Standards Programmer's Reference : HTML, CSS, JavaScript, Perl, Python, and PHP, Wrox, ISBN 0-7645-8820-6 • Chris Newman (2005): Sams Teach Yourself PHP in 10 Minutes, ISBN 0-672-32762-7 • Paul Hudson (2005): PHP in a Nutshell, O'Reilly, ISBN 0-596-10067-1 • Andi Gutmans, Stig S. Bakken, Derick Rethans (2005): PHP 5: Guida completa, Apogeo, ISBN 88-503-2304-2 • Jack Herrington (2006), PHP Trucchi e segreti, Tecniche Nuove Hops, ISBN 88-481-1951-4 • Rasmus Lerdorf (2003), PHP Pocket Reference, Tecniche Nuove Hops, ISBN 88-8378-070-1 • Peter B. MacIntyre (2010), PHP – Le tecniche per scrivere il codice migliore, Tecniche Nuove, ISBN 978-88-481-2505-5

Voci correlate • Perl • Active Server Pages

Altri progetti • •

Wikibooks contiene testi o manuali: http://it.wikibooks.org/wiki/PHP Wikiversità contiene informazioni: http://it.wikiversity.org/wiki/PHP

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:PHP

Collegamenti esterni • PHP.net (http://php.net/) • Php (http://www.dmoz.org/World/Italiano/Computer/Programmazione/Php/) su Open Directory Project ( Segnala (http:/ / www. dmoz. org/ cgi-bin/ add. cgi?where=World/ Italiano/ Computer/ Programmazione/ Php/ ) su DMoz un collegamento pertinente all'argomento "Php")


MySQL

25

MySQL

MySQL Sviluppatore Ultima versione Ultima beta

Oracle Corporation 5.5.24 (7 maggio 2012) 5.6.5 (10 aprile 2012)

Sistema operativo Multipiattaforma Genere

RDBMS

Licenza

GNU GPL o Licenza commerciale [1] (Licenza libera)

Sito web

http:/ / www. mysql. com/

MySQL, definito Oracle MySQL, è un Relational database management system (RDBMS), composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java, un driver per Mono e .NET ed una libreria per python. Il codice di MySQL venne sviluppato fin dal 1979 dalla ditta TcX ataconsult, poi rinominata MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: mSQL. MySQL AB è stata rilevata da Sun Microsystems nel 2008, mentre nel 2010 quest'ultima è stata acquisita da Oracle Corporation. MySQL svolge il compito di DBMS anche nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche.

Storia Il codice di MySQL era inizialmente di proprietà della società MySQL AB, veniva però distribuito con la licenza GNU GPL oltre che con una licenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato anche per applicazioni proprietarie. Dalla versione 4.1 in poi, anche il codice del client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva [2] che consente l'utilizzo di MySQL con una vasta gamma di licenze libere. Nel luglio 2007 la società svedese MySQL AB aveva 385 dipendenti in numerosi paesi. I suoi principali introiti provenivano dal supporto agli utilizzatori di MySQL tramite il pacchetto Enterprise [3], dalla vendita delle licenze commerciali e dall'utilizzo da parte di terzi del marchio MySQL. Il 16 gennaio 2008 Sun Microsystems ha acquistato la società per un miliardo di dollari,[4] stimando il mercato del database in 15 miliardi di dollari. Il 20 aprile 2009 alla stessa Sun Microsystems è stata proposta l'acquisizione da parte di Oracle per 7,4 miliardi di dollari. L'accordo, approvato dall'antitrust USA, è poi passato al vaglio degli organi corrispondenti dell'Unione Europea, preoccupati dal conflitto di interessi costituito dai database commerciali Oracle rispetto a MySQL. Il padre di MySQL, Michael Widenius, ha lanciato una petizione online per opporsi alla fusione. Nonostante ciò l'Unione


MySQL Europea ha dato parere favorevole, e l'acquisizione è stata completata il 27 gennaio 2010[5]. Il software MediaWiki, che gestisce i siti del progetto Wikipedia, è basato su database MySQL.

Amministrazione Esistono diversi tipi di MySQL Manager, ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è phpMyAdmin (richiede un server web come Apache HTTP Server ed il supporto del linguaggio PHP). Si può utilizzare facilmente tramite un qualsiasi browser. Alcune offerte di terze parti sono HeidiSQL, SQLYog o Toad for MySQL. In alternativa la stessa MySQL AB offre programmi quali MySQL Administrator (amministrazione del database, degli utenti, operazioni pianificate, Pagina iniziale di phpMyAdmin carico del server, ...) e MySQL Query Browser (esecuzione di svariati tipi di query), MySQL Migration Toolkit per importare da altri DBMS. Per il disegno e la modellazione di database MySQL esiste MySQL Workbench: integra il disegno, la modellazione, la creazione e l'aggiornamento di database in un unico ambiente di lavoro. In passato veniva sviluppato anche MySQLcc (MySQL control center), sostituito da MySQL Query Browser.

Sviluppo Fino a qualche anno fa lo sviluppo del programma era opera soprattutto dei suoi sviluppatori iniziali: David Axmark, Allan Larsson e Michael Widenius. Quest'ultimo era il principale autore del codice - oltre che principale socio della società - e tuttora coordina il progetto, tra l'altro vagliando i contributi che pervengono dai volontari. I contributi vengono accettati a condizione che il loro autore condivida i diritti d'autore con la società. Da luglio 2007 la società impiega un centinaio di sviluppatori a tempo pieno.

Versioni 3.23 La prima versione alfa del ramo 3.23.x è stata rilasciata nel luglio 1999. La prima versione di produzione è del gennaio 2001. Nelle versioni 3.23.x sono stati aggiunti i tipi di tabella MyISAM (che rimpiazza il vecchio Isam), HEAP (ora MEMORY), InnoDB e BDB. Inoltre sono state aggiunte la ricerca fulltext e la replica dei database.

4.0 Nell'ottobre 2001 è stata rilasciata la prima versione alfa del ramo 4.0.x, mentre nel marzo 2003 è entrata in produzione. Le aggiunte più significative sono: • una cache per le query • le query di tipo UNION • DELETE multitabella • migliorate le tabelle Merge perché supportino le INSERT e i campi autoincrementanti

26


MySQL

27

• limitazione delle risorse utilizzabili da ogni singolo utente • variabili d'ambiente reimpostabili con il comando SET • una libreria per incorporare le funzioni di MySQL in un altro programma

4.1 La prima versione del ramo 4.1.x risale all'aprile 2003, mentre nell'ottobre del 2004 è entrato in produzione. Le aggiunte più significative sono: • le Subquery. Queste sono delle query SQL nidificate. Si ha dunque la possibilità di scrivere: SELECT * FROM tabella1 WHERE

colonna1 = (SELECT colonna1 FROM tabella2)

• • • •

dati geografici memorizzati secondo il modello OpenGIS i Prepared Statements le connessioni SSL/TLS set di caratteri impostabili a livello di database, tabella e colonna; aggiunto il supporto per Unicode (UTF8 e UCS2) • commenti a livello di colonna

5.0 Il 22 dicembre 2003 viene rilasciata la prima versione della serie 5.0, che è entrata in produzione il 19 ottobre 2005. Le aggiunte più significative sono: • le viste, tabelle virtuali ricavate da una query SQL, aggiornabili quando possibile • le stored procedure, un vero e proprio linguaggio di programmazione per interagire con i dati del database. Oltre ai soliti parametri di ricerca e selezione è possibile inserire costrutti [IF ... THEN ... ELSE], tanto per fare un esempio. • i trigger, istruzioni SQL che vengono lanciate automaticamente prima o dopo l'esecuzione di determinate query su determinate tabelle • INFORMATION_SCHEMA, un database virtuale che descrive la struttura di tutti gli altri database; inoltre i comandi SHOW, che anch'essi restituiscono informazioni sulla struttura dei database, sono stati potenziati • il tipo di dati BIT • gestione appropriata del fuso orario (timezone) • i tipi di tabella Archive e Federated • un'API ben strutturata per sviluppare nuovi tipi di tabelle

5.1 La prima alfa pubblica è uscita il 29 novembre 2005. Le principali nuove caratteristiche sono: • • • • • • • •

il partizionamento delle tabelle un'API per scrivere nuovi parser per le ricerche FULLTEXT gli eventi replica basata sui dati (anziché sulle query) i log possono essere scritti in un database, oltre che nei file di testo supporto per Xpath campi AUTOINCREMENT e varie ottimizzazioni per le tabelle ARCHIVE ClusterDB ora può scrivere i dati su disco, oltre che conservarli nella RAM; supporta inoltre MontaVista

• ALTER TABLE, CREATE INDEX e DROP INDEX sono molto più performanti


MySQL

5.2 La versione 5.2 è in fase alfa e le principali novità sono il nuovo storage engine Falcon e il backup online. Sul sito di MySQL è scomparso ogni riferimento alla versione 5.2 e le novità che avrebbe dovuto introdurre sono state pianificate per la versione 6.0.

5.4 Si tratta del primo ramo sviluppato sotto l'egida della Sun - ora Oracle. Non è quindi un caso che questa versione abbia avuto come unico scopo l'ottimizzazione del server su sistemi Solaris e su hardware SPARC, nonché l'ottimizzazione di InnoDB - in particolare della sua configurazione di default, che prima aveva notevoli difetti.

5.5 Una versione di preview, pensata per testare alcune funzionalità prima dell'uscita della versione 6.0 stabile.

5.6 Una versione di preview, pensata per testare alcune funzionalità prima dell'uscita della versione 6.0 stabile.

Tipi tabelle MYSQL (storage engine) In MySQL una tabella può essere di diversi tipi (o storage engine). Ogni tipo di tabella presenta proprietà e caratteristiche differenti (transazionale o meno, migliori prestazioni, diverse strategie di locking, funzioni particolari, ecc). Esiste poi un'API che si può utilizzare per creare in modo relativamente facile un nuovo tipo di tabella, che poi si può installare senza dover ricompilare o riavviare il server.

Storage Engine ufficiali I tipi di tabella predefiniti sono: • • • • • • • • • • •

MyISAM InnoDB (transazionale, sviluppata da InnoBase Oy, società ora comprata da Oracle) Memory (una volta si chiamava Heap) Merge NDB, o ClusterDB (introdotta nella 5.0) CSV (introdotta nella 5.1) Federated (introdotta nella 5.0) Archive (introdotta nella 5.0) Blackhole (introdotta nella 5.0) Falcon (transazionale, è ancora in sviluppo) Maria (un "MyISAM a prova di crash"; è ancora in sviluppo)

Storage Engine Obsoleti • Isam (non più supportata; era il motore di default prima di essere sostituita da MyISAM) • BDB (transazionale, sviluppata da SleepyCat, società ora acquisita da Oracle; dalla versione 5.1.12 non è più presente in MySQL) • Gemini (non più supportato e non più compatibile con le API di MySQL da molti anni, una volta era importantissimo in quanto motore transazionale; era prodotto dalla NuSphere, la quale non ha mai rispettato la licenza GPLv2 di MySQL e in tribunale ha tentato di negarne la validità giuridica, salvo poi accordarsi con MySQL per il pagamento dei danni economici e ritirare il prodotto dal mercato)

28


MySQL

Storage Engine prodotti da terze parti Esistono anche storage engine prodotti da terze parti. Eccone alcuni: • PrimeBase XT Engine [6] - Motore transazionale progettato per applicazioni web ad alta concorrenza • solidDB [7] - Motore transazionale • RitmarkFS [8] - Permette di accedere al filesystem in lettura e in scrittura tramite comandi SQL, supporta anche la replica del filesystem • Distributed Data Engine [9] - Motore per dati distribuiti, per gestire meglio il carico di lavoro • mdbtools [10] - Permette di leggere e scrivere un file .mdb (Access) Una volta esisteva il tipo Gemini, sviluppato dalla NuSphere. Poiché però il suo codice non è mai stato rilasciato, MySQL ha intentato una causa legale, in seguito alla quale lo sviluppo e il supporto per Gemini sono cessati.

Compatibilità MySQL, essendo scritto in linguaggio C e C++, è disponibile su molti differenti sistemi operativi tra cui AIX, AmigaOS, BSDi, Digital Unix, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, SGI Irix, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows 7, Windows 8. Le piattaforme di riferimento sono Linux e Solaris. La documentazione di MySQL offre comunque un aiuto per chi avesse bisogno di provare a compilare il software su qualsiasi sistema operativo discretamente diffuso. MySQL utilizza anche i tool automake, autoconf e libtools per aumentare la compatibilità. Le tabelle di tipo BDB funzioneranno solo sui seguenti sistemi operativi: GNU/Linux 2.x Intel, Solaris (SPARC and x86), FreeBSD 4.x/5.x (x86, sparc64), AIX 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x Sono disponibili dei driver per i linguaggi C, C++, C#, Eiffel, Java, Perl, PHP, Python, Ruby, Tcl e per le piattaforme Mono e .Net. Infine, il linguaggio SQL di MySQL comprende numerose estensioni che sono tipiche di altri DBMS, quali PostgreSQL, Oracle e Sybase. In questo modo le query non standard scritte per altri DBMS in alcuni casi funzioneranno senza problemi.

Fork MySQL non è mai stato realmente aperto ai contributi dei volontari esterni, i quali devono aspettare mesi o anni (generalmente invano) nella speranza di poter vedere pubblicati i loro seppur minimi bug fix. Ora che MySQL è stata acquistata da Sun (a sua volta acquisita da Oracle) sembra che l'edizione Community abbia sempre meno importanza, in favore di quella enterprise. Dall'insofferenza di alcuni utenti, perfino di molti lavoratori di MySQL, verso questi problemi, nascono i fork di MySQL.

Drizzle Nato da Brian Aker tra l'aprile e il maggio del 2008, questo fork è un DBMS incredibilmente leggero. Partendo da MySQL 6, alcuni sviluppatori hanno eliminato la maggior parte delle sue funzioni, mantenendo il cuore, ripulendolo e modificando la sua architettura. L'idea è quella di creare un microkernel con numerose interfacce che può utilizzare per caricare funzionalità esterne. Pare che durante il processo di pulizia il codice sia arrivato a dimensioni inferiori ai 200 KB. Le funzionalità eliminate sono moltissime: stored procedure, viste, trigger, prepared statement, cache, MyISAM. Tutte queste potrebbero essere reimplementate sotto forma di plugin, senza appesantire inutilmente (enormemente…) tutti gli utenti che non le utilizzano. Perché, nonostante queste caratteristiche siano insostituibili in

29


MySQL particolari situazioni, ognuna di esse è completamente inutile per la quasi totalità degli utenti di MySQL. Si vedano: • il progetto su Launchpad [11] • il wiki italiano [12]

MariaDB Questo fork[13] è stato creato da Monty Widenius nel 2009 dopo la sua fuoriuscita dalla Sun Microsystems, dovuta in parte a problemi con questa società e in parte all'acquisizione della stessa da parte della concorrente Oracle. Quest'ultima motivazione ha portato molti dei principali sviluppatori di MySQL a seguire Widenius nel Monty Program, la nuova società da lui avviata per supportare il fork. Come suggerisce il nome, MariaDB si focalizza principalmente sullo sviluppo dello Storage Engine Aria (il cui vecchio nome era Maria, dedicato alla terza figlia di Widenius), una sorta di evoluzione di MyISAM. Sono stati inclusi anche Storage Engine e altre patch realizzati da terze parti, in particolare quelli distribuiti con OurDelta. Inoltre altre migliorie al server sono state create appositamente, alcune evoluzioni sviluppate per MySQL sono state importate nel fork e alcuni bug presenti nel programma originale sono stati corretti.

Percona Server Percona Server with ExtraDB, o semplicemente Percona Server, è un fork sviluppato da Percona che contiene, oltre allo Storage Engine XtraDB (fork di InnoDB) diverse patch sviluppate principalmente dalla stessa società.

OurDelta Si tratta di una distribuzione sviluppata da Open Query. Il ramo 5.0 (prima versione del programma) si basa sul codice di MySQL 5.0, mentre il ramo 5.1 si basa su MariaDB 5.1. OurDelta applica diverse patch sviluppate da terze parti e crea pacchetti per le distribuzioni GNU/Linux Debian, Ubuntu, Red Hat e CentOS.

Proven Scaling Ne parla nel luglio del 2008 sul blog delle performance di MySQL Peter Zaitsev, ma esisteva già. Il fork nasce dalla constatazione che MySQL Community Edition è quasi defunto: annunci ufficiali prospettano solo due release annuali più qualche security fix che non potrà essere considerato una vera e propria versione. Dunque, un utente dovrebbe utilizzare MySQL Enterprise Edition, oppure rassegnarsi ad utilizzare prodotti sempre un po' vecchi, superati e con molti bug che sono già stati individuati o risolti da mesi. Proven Scaling però si ingegna, scarica l'edizione enterprise, vi aggiunge vari plugin del caso che provengono dalla comunità del software libero e ne fa un plugin. Il repository contiene le versioni (anche datate) per tutti i sistemi operativi supportati da MySQL. • Il repository [14]

30


MySQL

31

Note [1] [2] [3] [4]

http:/ / www-it. mysql. com/ company/ legal/ licensing/ commercial-license. html http:/ / www. mysql. com/ company/ legal/ licensing/ foss-exception. html http:/ / www. mysql. com/ products/ enterprise/ (EN) Sun Microsystems Announces Agreement to Acquire MYSQL (http:/ / www. sun. com/ aboutsun/ pr/ 2008-01/ sunflash. 20080116. 1. xml) [5] (EN) Oracle Completes Acquisition of Sun (http:/ / finance. yahoo. com/ news/ Oracle-Completes-Acquisition-iw-2658323391. html?x=0& . v=1). Yahoo Finance, 27 gennaio 2010. URL consultato in data 04 febbraio 2010. [6] http:/ / www. primebase. com/ xt [7] http:/ / dev. soliddb. com/ [8] http:/ / www. ritmark. com/ [9] http:/ / ddengine. org/ [10] http:/ / sourceforge. net/ projects/ mdbtools [11] http:/ / www. launchpad. net/ drizzle [12] http:/ / it. drizzle. wikia. com/ [13] (EN) intervista a Widenius riguardo a Mysql ed al recente fork da lui creato: MariaDB (http:/ / monty-says. blogspot. com/ 2009/ 12/ help-keep-internet-free. html) [14] http:/ / mirror. provenscaling. com/

Voci correlate • • • • • • •

Database management system SQL MariaDB mSQL MySQL Manager MySQL Proxy MySQL Workbench

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:MySQL

Collegamenti esterni • • • • • • • • • • • • • • •

Sito ufficiale (http://www-it.mysql.com/) (EN) Petizione per salvare MySQL da Oracle (http://www.helpmysql.org) (EN) MySQL Forge (http://forge.mysql.com/) Progetti Open Source legati a MySQL (EN) MySQL Wiki (http://forge.mysql.com/wiki/Main_Page) Il Wiki ufficiale dedicato a MySQL Manuale di MySQL Administrator (http://dev.mysql.com/doc/administrator/it/index.html) Manuale di MySQL Query Browser (http://dev.mysql.com/doc/query-browser/it/index.html) (EN) Manuale di MySQL Migration Toolkit (http://dev.mysql.com/doc/migration-toolkit/en/index.html) (EN) Sito ufficiale di MariaDB (http://askmonty.org/) (EN) Download per phpMyAdmin (http://www.phpmyadmin.net/) (EN) Planet MySQL (http://www.planetmysql.org/) Raccolta di blog su MySQL (EN) Heidi SQL (http://www.heidisql.com/) (EN) SQL Yog (http://www.webyog.com/en/) (EN) Toad for MySQL (http://www.quest.com/toad-for-mysql/) Guida per phpMyAdmin (http://freephp.html.it/guide/lezioni.asp?idguida=9) Soluzione problema codifica utf-8 da MySQL > 4.1.x (http://www.massimo-caselli.com/2006/01/28/ soluzione-problema-codifica-caratteri-mysql/)


MySQL • Convertire un file di Access (.MDB) a MySQL (http://www.tarantovillage.it/forum/manuali/ guida-convertire-un-file-di-access-mdb-mysql-vt2434.html) • Community italiana su MySQL (http://www.mysqlitalia.it/) • Oracle compra Sun Microsystems: quale futuro per MySQL, Openoffice e Virtualbox? (http://www. matteomoro.net/2009/04/21/oracle-compra-sun-microsystems-quale-futuro-per-mysql-openoffice-e-virtualbox/ )

32


33

i tipi di licenza GNU General Public License GNU General Public License

GNU GPLv3 Logo Autore

Free Software Foundation

Versione

3

Editore

Free Software Foundation, Inc.

Data di pubblicazione

29 giugno 2007

Compatibile con DFSG

Si

Software Libero

Si

Approvata OSI

Si

Copyleft

Si

Linking da codice sotto differente licenza No

La GNU General Public License, comunemente indicata con l'acronimo GNU GPL o semplicemente GPL, è una licenza per software libero, originariamente stesa nel 1989 da Richard Stallman per distribuire i programmi creati nell'ambito del Progetto GNU della Free Software Foundation (FSF). La versione 2.0 di tale licenza è attualmente la licenza di software libero per antonomasia. Contrapponendosi alle licenze per software proprietario, la GNU GPL assicura all'utente libertà di utilizzo, copia, modifica e distribuzione. La GPL ha incontrato un gran successo fra gli autori di software sin dalla sua creazione, ed è oggi la più diffusa licenza per il software libero, arrivata ormai alla versione 3.


GNU General Public License

Storia La questione GNU Emacs Nei primi anni del Progetto GNU, i singoli software venivano rilasciati ciascuno con una licenza specifica, valevole unicamente per quel programma. Chi avesse voluto riutilizzare una licenza, avrebbe dovuto ricopiare il testo cambiando i parametri specifici (ad esempio il nome del software, l'autore, ecc.) Nel 1984, Richard Stallman viene intimato da UniPress di cessare la distribuzione dell'editor testuale GNU Emacs, che riutilizzava del codice di Gosling Emacs. In realtà Gosling aveva inizialmente Stallman durante il suo intervento a Wikimania [2] 2005 (Francoforte sul Meno) distribuito il software senza restrizioni, vendendolo solo successivamente ad Unipress. Stallman è costretto a sostituire le parti sotto copyright con nuovo codice. Tuttavia l'esperienza negativa lo avvicina per la prima volta all'idea di una licenza che impedisca una simile appropriazione di software libero.[1]

La Versione 1 e 2 Nel 1989 Stallman, riprendendo i contenuti delle licenze dei software GNU (in particolare GNU Emacs), insieme a Eben Moglen, realizza la prima versione della GNU General Public License (GNU GPLv1), applicabile senza modifiche a chiunque lo dichiari nel programma stesso[2]. Tale versione contiene già tutte le caratteristiche principali della licenza.[3] Nel 1991 viene rilasciata la GNU GPLv2.[4] Secondo Richard Stallman, la modifica più importante di questa versione è la clausola da lui denominata "Libertà o morte". Tale clausola impone che, qualora ci siano restrizioni di qualsiasi tipo sulla libera distribuzione del software nei termini indicati nella licenza, il software non possa essere distribuito affatto. Ad esempio se una legge impedisce di distribuire il codice sorgente, l'intero software protetto da Eben Moglen, coautore insieme a Stallman del GNU GPLv2 non può essere distribuito.[5] primo testo della GNU GPL Contemporaneamente a GPLv2, viene rilasciata una versione della licenza modificata per adattarsi alle librerie, la GNU Library General Public License, la quale si evolverà poi nella GNU Lesser General Public License (GNU LGPL) seguendo un percorso parallelo rispetto alla licenza principale.

34


GNU General Public License

35

La diffusione La GNU GPLv2 riscuote subito un gran successo nel mondo del software libero, raggiungendo il primo posto fra le licenze più comuni nei progetti Open Source,[6] tra i quali il famoso sistema operativo GNU/Linux. Nel 1997 appare fra le licenze conformi alle Debian Free Software Guidelines (DFSG), ovvero le linee guida del progetto Debian. Nel 1998, alla nascita della Open Source Initiative, appare nel primo elenco di licenze open source.

La Versione 3 Il 29 giugno 2007 la Free Software Foundation pubblica la versione 3 della licenza (GNU GPLv3), che introduce misure contro la tivoization, contro alcuni effetti del Digital rights management, oltre ad una protezione maggiore dai brevetti software. Quest'ultimo punto mira a risolvere possibili problemi derivanti da accordi come quello del novembre 2006 tra la casa di software Novell (che sviluppa Suse, una delle distribuzioni di GNU/Linux) e Microsoft.[7] Durante la gestazione della GPLv3 era stata discussa l'introduzione dell'obbligo di distribuire il codice per i programmi che girano su un computer remoto (come ad esempio un sito web). La decisione finale fu di non includere l'obbligo nella GPLv3, ma di creare una nuova licenza che lo prevedesse, la GNU Affero General Public License, compatibile con questa versione.

Principali caratteristiche Come ogni licenza software, la GPL è un documento legale associato al programma rilasciato sotto tale licenza. Come ogni licenza di software libero, essa concede ai licenziatari il permesso di modificare il programma, di copiarlo e di ridistribuirlo con o senza modifiche, gratuitamente o a pagamento. L'utente è tenuto a rendere disponibile il codice sorgente del software alle persone che ne hanno ricevuto una copia o, in alternativa, accompagnare il software con una offerta scritta di rendere disponibile il sorgente su richiesta a prezzo nominale. La GPL impone delle condizioni a chi ridistribuisce il software. La base giuridica di questo sta nella licenza specifica: qualora l'utente non accetti le condizioni specificate, essa diventa nulla e quindi non concede alcun permesso. In particolare, essendo il software protetto dalla legge sul diritto d'autore e dalle norme internazionali sul copyright, l'utente non ha alcun diritto di modifica, copia o ridistribuzione al di fuori di quelle concesse dalla licenza. Rispetto alle altre licenze di software libero, la GPL è classificabile come: • "persistente" perché impone un vincolo alla redistribuzione: se l'utente distribuisce copie del software, deve farlo secondo i termini della GPL stessa. In pratica, deve distribuire il testo della GPL assieme al software e corredarlo del codice sorgente o di istruzioni per poterlo ottenere ad un costo nominale. Questa è la caratteristica principe della GPL, il concetto ideato da Richard Stallman e da lui battezzato copyleft. L'effetto che realizza è l'esatto opposto di quello che produce invece il termine copyright: infatti il suo scopo è mantenere libero un programma una volta che esso è stato posto sotto GPL, anche se viene migliorato correggendolo e ampliandolo. Si noti che, escludendo la possibilità che l'output sia un lavoro derivato del programma, il copyleft si applica solo al software e non alla sua uscita.

La c rovesciata dentro un cerchio è il simbolo del copyleft.

• "propagativa" perché definisce nel testo una particolare interpretazione di "codice derivato", tale che in generale l'unione di un programma coperto da GPL con un altro programma coperto da altra licenza può essere distribuita sotto GPL, o in alternativa non essere distribuita affatto. Nel primo caso si dice che l'altra licenza è "compatibile con la GPL"; nel secondo caso che non lo è. Questa caratteristica è indicata come strong copyleft nella terminologia della FSF. Il suo scopo è evitare che la persistenza venga via via indebolita apportando modifiche coperte da un'altra licenza meno libera, inficiando così lo scopo di mantenere libero il software coperto dalla GPL.


GNU General Public License Le versioni modificate di un programma sotto GNU GPL sono soggette al vincolo di copyleft solo in caso di distribuzione, cioè quando il software viene ceduto da un'entità giuridica ad un'altra. Non esiste alcun obbligo di distribuzione, in nessun caso. La GPL non consente la creazione di brevetti proprietari relativi alla modifica del software ed esige che gli stessi termini di libera distribuzione siano inclusi nello stesso per ridistribuire il software o anche derivazioni di esso. Per esempio il diffuso compilatore GNU e qualsiasi suo strumento integrato è provvisto di licenza GPL. Ciò significa che tutti coloro che operano miglioramenti al compilatore GNU dovranno poi rendere pubblico il nuovo codice agli altri utenti. E' importante comunque sottolineare che ciò non significa che il software aggiornato debba essere free e che quindi sia assolutamente legale utilizzare uno strumento free software per rilasciare un software proprietario (in questo caso bisogna fare attenzione a non confondere il concetto di free da quello di open source).

Garanzia Non esiste alcun tipo di garanzia per il programma concesso, che viene dato in uso gratuitamente. Viene distribuito "così com'è", privo di garanzia alcuna da parte del detentore di copyright. Sarà l'acquirente a rischiare sulla qualità e le prestazioni del programma che sta utilizzando. Nel caso in cui ci fossero delle malfunzionalità o difetti, sarà lo stesso acquirente che dovrà provvedere a sue spese ad una eventuale riparazione. Infatti, in questi casi, non vi è nessun responsabile perseguibile per la mancanza, la malfunzionalità o i danni che può riscontrare l'acquirente (dalla corruzione e perdita dei dati, all'impossibilità di utilizzare propriamente il programma), a meno che non sia richiesto dalle leggi dello Stato o sia dichiarato in un accordo ufficiale scritto in precedenza.

Caratteristiche presenti a partire dalla GNU GPLv3 La GPL versione 3 chiarisce alcuni concetti utilizzati nel testo della licenza in modo da renderla più facilmente applicabile a legislazioni diverse da quella americana. Le innovazioni più significative della GPLv3 sono[8]: • la difesa contro un aggiramento della GPLv2 noto come tivoization. Esso che consiste nel distribuire il codice sorgente assieme ad un programma che gira su una piattaforma proprietaria e che impedisce via hardware di eseguire versioni modificate di un dato programma, rendendo di fatto nulla la libertà di modifica. • la neutralizzazione di alcuni effetti negativi sulla libertà del software da parte di leggi sul Digital rights management (DRM), come il Digital Millennium Copyright Act e la Direttiva Europea sul Copyright [9]. La GPLv3 non impedisce l'uso di tecnologie DRM da parte degli autori di software libero, ma impedisce che le eventuali restrizioni introdotte siano automaticamente imposte a tutti gli utenti, anche di versioni modificate, del software. In altre parole, il software sotto GPLv3 consente a qualsiasi sviluppatore successivo di inserire o eliminare le tecnologie DRM, rispettando la sua libertà. • una protezione legale più forte per gli autori e gli utilizzatori di software libero coperto dalla nuova licenza, da possibili aggressioni di chi intentasse cause per pretese violazioni di brevetti software. In particolare, gli sviluppatori di software coperto da GPLv3 devono rilasciare insieme al software anche eventuali licenze di brevetto necessarie ad esercitare i diritti previsti dalla licenza. Questo eviterà che uno degli sviluppatori denunci utenti o sviluppatori successivi per aver infranto un diritto di brevetto. • l'esplicitazione di una compatibilità de facto, ossia risultano compatibili tutte quelle licenze che aggiungono restrizioni "facili da rispettare" (come il non utilizzo di un certo marchio registrato, non utilizzabile in ogni caso). • l'indicazione di nuove licenze compatibili e di nuovi metodi di distribuzione del codice sorgente, in particolare per la condivisione tramite BitTorrent. • l'eliminazione dell'obbligo di distribuire componenti di facile reperibilità, come le librerie di supporto comuni (es. libreria C, Python e Ruby).

36


GNU General Public License

37

Modalità di utilizzo La maggior parte dei programmi con licenza GPLv2 utilizza il seguente testo approvato dalla FSF: «This program is free software; you can redistribuite it and/or modify it under the terms of the GNU/General Pubblic License as published the Free software Foundation; either version 2 of the License, or (at your opinion) any later version». Questo testo non significa che i programmi passeranno automaticamente alla versione successiva della licenza, ma solo che questi programmi ottengono automaticamente i permessi aggiuntivi della licenza successiva e non le eventuali clausole restrittive. Quindi, se lo sviluppatore vorrà far valere per intero la licenza successiva dovrà cambiare il testo in «[...] either version 3 of the License, or (at your opinion) any later version». Tuttavia, altri programmi specificano esplicitamente l'utilizzo della versione 2 della GPL (tra questi, il kernel Linux) o della sola versione 3[10] per mantenere il controllo esplicito sulla licenza utilizzata e per evitare di assecondare implicitamente l'evoluzione futura della licenza GNU GPL nelle versioni a venire.

Compatibilità Una licenza è compatibile con GNU GPL se non aggiunge ulteriori restrizioni non già presenti nella versione di GPL in questione. In particolare, ogni versione successiva di GPL è compatibile con la precedente per la presenza della dicitura «or (at your opinion) any later version» (non è vero il viceversa). Quindi la GPLv3 è compatibile con la GPLv2 e, per transitività, con tutte le licenze compatibili con quest'ultima. Inoltre la GPLv3 è compatibile con nuove licenze di software libero come la Licenza Apache. La FSF redige un elenco di licenze compatibili e incompatibili con le licenze GNU GPL.[11]

Guida della compatibilità delle licenze con GPL


GNU General Public License

Linus Torvalds, tivoization e la critica alla GPLv3 Linus Torvalds, autore della prima versione del kernel Linux, è stato ad esempio inizialmente contrario alla licenza GPLv3 per la rigida determinazione etica delle prime bozze della licenza, da lui ritenuta di "crociata" contro la tivoization. «Secondo me uno dei motivi per cui Linux ha avuto tanto successo è la qualità del progetto, non certo l'atteggiamento di crociata che molti gli vogliono attribuire» ha dichiarato Linus Torvalds. Infine ha ribaltato la posizione di Richard Stallman: «non è la GPL ad aver reso famoso GNU/Linux, ma è Linux ad aver reso "presentabile" la GPL, essendo dannatamente meno integralista di quello che la FSF vuole». Pur dopo il rilascio della nuova versione della licenza, Torvalds è rimasto scettico, dichiarando che Linux non verrà distribuito con licenza GPLv3[12]. Stallman nel settembre 2007 ha commentato riguardo la posizione di Torvald ritenendola una conseguenza della posizione filosofica che differenzia in modo decisivo la comunità che promuove il software libero da chi favorisce l'open source: «Il termine open source è stato promosso nel 1998 da gente che non voleva dire libero o libertà. Associavano quel Linus Torvalds nel 2002. termine ad una filosofia che riguarda solo valori di convenienza pratica [...] Non dico che sbaglino ma non colgono il punto. Se si negano i valori della libertà e della solidarietà, e si apprezza soltanto software potente ed affidabile, si compie un errore terribile. [...] Il fatto che Torvalds dica open source invece di software libero dimostra da dove viene. Ho scritto la GNU GPL per difendere la libertà di tutti gli utenti di tutte le versioni di un programma. Ho sviluppato la versione 3 per farlo meglio e per proteggerla contro nuove minacce [..] Torvalds dice che non persegue questo obiettivo; e questo è probabilmente il motivo per il quale non apprezza la GPL versione 3. Rispetto il suo diritto di esprimere le proprie idee, anche se penso che siano folli. Comunque, se non vogliamo perdere la nostra libertà, è meglio non seguirlo»[13].

Diritti sul testo della licenza La Free Software Foundation (FSF) detiene i diritti di copyright sul testo della GNU GPL, ma non detiene alcun diritto sul software da essa coperto. La GNU GPL non è liberamente modificabile: solo la copia e la distribuzione sono permesse. La FSF permette di creare nuove licenze basate sulla GNU GPL, a patto che tali licenze non usino lo stesso preambolo senza permesso. Dato che, solitamente, la nuova licenza non è compatibile con la GNU GPL, la FSF sconsiglia di creare versioni modificate.

38


GNU General Public License

Note [1] (EN) RMS lecture at KTH (Sweden), 30 October 1986 (http:/ / www. gnu. org/ philosophy/ stallman-kth. html)(Conferenza di Richard Stallman al Royal Institute of Technology(Svezia), 30 Ottobre 1986), URL visitato il 22 aprile 2012 [2] (EN) GNU's Bulletin, vol. 1 no. 5 (http:/ / www. gnu. org/ bulletins/ bull5. html), URL visitato il 22 aprile 2012 [3] (EN) Il testo della GNU GPLv1 (http:/ / www. gnu. org/ licenses/ old-licenses/ gpl-1. 0. html), URL visitato il 22 aprile 2012 [4] (EN) Il testo della GNU GPLv2 (http:/ / www. gnu. org/ licenses/ old-licenses/ gpl-2. 0. html), URL visitato il 22 aprile 2012 [5] (EN) L'importanza della clausola "Libertà o morte" (http:/ / fsfe. org/ projects/ gplv3/ fisl-rms-transcript. en. html#liberty-or-death) Discorso di Richard Stallman alla Seconda Conferenza Internazionale sul GPLv3 del 21 aprile 2006, URL visitato il 22 aprile 2012 [6] (EN) Open Source License Data (http:/ / osrc. blackducksoftware. com/ data/ licenses/ index. php) Blackducksoftware.com, URL visitato il 22 aprile 2012 [7] (EN) Why Upgrade to GPLv3 (http:/ / www. gnu. org/ licenses/ rms-why-gplv3. html), dichiarazione di Richard Stallman sui motivi di GPLv3, URL visitato il 22 aprile 2012 [8] (EN) Brett Smith, A Quick Guide to GPLv3 (http:/ / www. gnu. org/ licenses/ quick-guide-gplv3. html) (Una guida veloce alla GPLv3), GNU Operating System. [9] http:/ / eur-lex. europa. eu/ LexUriServ/ LexUriServ. do?uri=CELEX:32001L0029:IT:HTML [10] Ad esempio la Free Software Directory elenca più di 130 (http:/ / directory. fsf. org/ wiki/ Special:Ask/ -5B-5BLicense::GPLv3-5D-5D/ -3FShort-20description=Description/ -3FHomepage-20URL=Homepage/ -3FLicense) progetti internazionali di software libero che adottano la sola versione 3 della licenza GNU GPL, senza la formula «or (at your opinion) any later version». (link visitato il 21 aprile 2012). [11] Various Licenses and Comments about Them (http:/ / www. gnu. org/ licenses/ license-list. en. html), elenco di licenze compatibili o no con GNU GPL, URL visitato il 22 aprile 2012 [12] (EN) Linux non verrà distribuito con licenza GPLv3 (https:/ / lkml. org/ lkml/ 2006/ 1/ 25/ 273), Linux Kernel Mailing List. [13] Punto Informatico, 13 settembre 2007. Stallman: Torvalds? Non seguitelo. Se avete a cuore le libertà, spiega mr.GNU, il papà di Linux non fa per voi. Lui dice open source, noi diciamo software libero (http:/ / punto-informatico. it/ 2063232/ PI/ News/ stallman-torvalds-non-seguitelo. aspx)

Voci correlate • • • • • •

GNU Copyright Copyleft Software libero Software proprietario GNU Affero General Public License

Altri progetti • •

Wikisource contiene opere originali: http://it.wikisource.org/wiki/ Licenza_pubblica_generica_(GPL)_del_progetto_GNU Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:GPL

Collegamenti esterni • (EN) Testo originale dell'ultima versione della licenza (http://www.gnu.org/licenses/gpl.html) • (EN) Testi originali delle licenze GNU precedenti (http://www.gnu.org/licenses/old-licenses/old-licenses. html) • Testo in italiano della licenza v.2 (http://www.softwarelibero.it/gnudoc/gpl.it.txt) (non ufficiale) • Testo in italiano della licenza v.3 (http://katolaz.homeunix.net/gplv3/gplv3-it-final.html) (non ufficiale) • Le FAQ della GNU GPL in italiano (http://www.gnu.org/licenses/gpl-faq.it.html) • Violazioni delle licenze GPL, LGPL e GFDL (http://www.gnu.org/licenses/gpl-violation.it.html) • (EN) Il Quiz sulla GNU GPL e GNU LGPL (http://www.gnu.org/cgi-bin/license-quiz.cgi)

39


Open source

Open source In informatica, open source (termine inglese che significa sorgente aperta) indica un software i cui autori (più precisamente i detentori dei diritti) ne permettono, anzi ne favoriscono il libero studio e l'apporto di modifiche da parte di altri programmatori indipendenti. Questo è realizzato mediante l'applicazione di apposite licenze d'uso. L'open source ha tratto grande beneficio da Internet, perché esso permette a programmatori geograficamente distanti di coordinarsi e lavorare allo stesso progetto. I software open source attualmente più diffusi sono Firefox, VLC, Gimp, 7-Zip, oltre ad un gran numero di progetti rivolti non all'utente finale ma ad altri programmatori.[1] Sono inoltre degne di nota le famiglie di sistemi operativi BSD, GNU, Android e il kernel Linux i cui autori e fautori hanno contribuito in modo fondamentale alla nascita del movimento. La comunità open source è molto attiva, comprende decine di migliaia di progetti,[2] numero tendenzialmente in crescita. Alla filosofia del movimento open source si ispira il movimento open content (contenuti aperti): in questo caso ad essere liberamente disponibile non è il codice sorgente di un software ma contenuti editoriali quali testi, immagini, video e musica. Wikipedia è un chiaro esempio dei frutti di questo movimento. Attualmente l'open source tende ad assumere rilievo filosofico, consistendo di una nuova concezione della vita, aperta e refrattaria ad ogni oscurantismo, che l'open source si propone di superare mediante la condivisione della conoscenza.

Storia La condivisione del codice fino agli anni settanta A partire dagli anni cinquanta, e soprattutto negli anni sessanta, è stato possibile riusare lo stesso codice e distribuirlo anche se in modo oggi ritenuto piuttosto artigianale, ovvero con nastri e schede perforate. Questo fenomeno diventò evidente soprattutto quando si affermò il vantaggio di usare una stessa porzione di codice, il che presupponeva di avere macchine uguali e problemi simili. Fino a tutti gli anni settanta, anche se in misura decrescente, la componente principale e costosa di un computer era l'hardware, il quale era comunque inutile in assenza di software. Da ciò la scelta dei produttori di hardware di vendere il loro prodotto accompagnato da più software possibile e di facilitarne la diffusione, fenomeno che rendeva più utili le loro macchine e dunque più concorrenziali. Il software, tra l'altro, non poteva avvantaggiare la concorrenza in quanto funzionava solo su un preciso tipo di computer e non su altri, neanche dello stesso produttore. L'introduzione dei sistemi operativi rese i programmi sempre più portabili, in quanto lo stesso sistema operativo veniva offerto dal produttore di diversi modelli di hardware. La presenza di sistemi operativi funzionanti per macchine di differenti produttori hardware ampliava ulteriormente le possibilità di usare lo stesso codice in modo relativamente indipendente dall'hardware usato. Uno di questi sistemi operativi era Unix, iniziato nel 1969 come progetto all'interno di un'impresa delle telecomunicazioni, la AT&T. Una famosa causa antitrust contro la AT&T le vietò di entrare nel settore dell'informatica. Questo fece sì che Unix venisse distribuito ad un prezzo simbolico a buona parte delle istituzioni universitarie, le quali si ritrovarono ad avere una piattaforma comune, ma senza alcun supporto da parte del produttore. Si creò spontaneamente una rete di collaborazioni attorno al codice di questo sistema operativo, coordinata dall'Università di Berkeley, da dove sarebbe poi uscita la versione BSD di Unix, che diventa da un lato un centro di sviluppo ed innovazione, dall'altro è la base di partenza per numerosi fork.

40


Open source

La nascita del software proprietario Considerato che la condivisione del codice è nata insieme all'informatica, piuttosto che di origini dell'Open Source potrebbe essere più appropriato parlare, invece, di origine del software proprietario, ed esaminare il contesto storico in cui questa origine ha avuto luogo. L'utilità principale delle licenze restrittive consiste nella possibilità di rivendere un programma più volte, se necessario con alcune modifiche purché non rilevanti. Questo presuppone che esistano clienti diversi con esigenze simili, oltre che l'esistenza di più computer sul quale poter far eseguire il programma. Queste condizioni cominciano a determinarsi negli anni sessanta, grazie al fatto che esisteva un maggior numero di utilizzatori con esigenze standardizzabili come lo erano quelle delle organizzazioni economiche nell'area della contabilità, la logistica o delle statistiche. L'introduzione dei sistemi operativi rese inoltre possibile l'utilizzo dello stesso programma anche su hardware differente aumentando così le possibilità di riutilizzo dello stesso codice e dunque l'utilità nell'impedire la duplicazione non autorizzata dei programmi. La suddivisione della AT&T in 26 società, le cosiddette BabyBell, permise alla AT&T di usare logiche prettamente commerciali nella distribuzione del suo sistema operativo Unix, innalzando notevolmente i costi delle licenze e impedendo la pratica delle patch. Il 1982 fu anche l'anno della divisione delle diverse versioni commerciali di Unix, portate avanti dai singoli produttori di hardware. Questi ultimi, effettuando delle piccole modifiche alla propria versione del sistema operativo, impedirono ai propri utenti l'utilizzo di altri sistemi, facendo in modo che i programmi scritti per la propria versione di Unix non funzionassero su versioni concorrenti.

Gli anni ottanta: Stallman, la Free Software Foundation e l'innovazione dei PC Al MIT la sostituzione dei computer fece sì che i programmatori non potessero accedere al sorgente del nuovo driver di una stampante Xerox per implementarvi una funzionalità gradita in passato: la segnalazione automatica che vi erano problemi con la carta inceppata. Contemporaneamente, società private cominciarono ad assumere diversi programmatori del MIT, e si diffuse la pratica di non rendere disponibili i sorgenti dei programmi firmando accordi di non divulgazione (in inglese: NDA, ovvero Non-Disclosure Agreement). In questo contesto molti programmatori - fra i quali Richard Stallman che sarebbe diventato il portabandiera del software libero - si rifiutarono di lavorare per una società privata. Stallman fondò nel 1985 la Free Software Foundation (FSF), una organizzazione senza fini di lucro per lo sviluppo e la distribuzione di software libero. In particolare lo sviluppo di un sistema operativo completo, compatibile con UNIX, ma distribuito con una licenza permissiva, con tutti gli strumenti necessari altrettanto liberi. Si tratta del progetto nato l'anno precedente, ovvero GNU, acronimo ricorsivo per contemporaneamente collegarsi e distinguersi da UNIX, ovvero "GNU's Not UNIX". «L'obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto alcun vantaggio tecnico su UNIX, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà.» Tale progetto, finanziato dalla FSF, venne pertanto prodotto da programmatori appositamente stipendiati. I principali contributi vennero da Stallman stesso: il compilatore gcc e l'editor di testo Emacs. Furono sviluppate anche altre componenti di sistema UNIX, alle quali si sono aggiunte applicazioni per veri e propri giochi. Questi programmi furono distribuiti per circa 150$ che oltre a coprire i costi di riproduzione garantivano un servizio di supporto al cliente. L'unica condizione era che tutte le modifiche eventualmente effettuate su tali programmi venissero notificate agli sviluppatori. Nacque così la GNU General Public License (GPL), il preambolo del cui manifesto comincia con:

« 'Le licenze per la maggioranza dei programmi hanno lo scopo di togliere all'utente la libertà di condividerlo e di modificarlo. Al contrario, la GPL è intesa a garantire la libertà di condividere e modificare il free software, al fine di assicurare che i programmi siano "liberi" per tutti i loro utenti. »

41


Open source Gli anni ottanta sono caratterizzati da alcuni eventi importanti, tra i quali l'introduzione nel mercato di quello che verrà chiamato Personal Computer (PC), ovvero un elaboratore con un proprio processore concepito per essere utilizzato da un solo utente alla volta. Il prodotto di maggior successo, il PC della IBM, si differenziava dai progetti precedenti in quanto non utilizzava componenti IBM, ma sia per il software che per l'hardware si affidava alla produzione da parte di terzi. Ciò rese possibile da un lato ad altre imprese di clonare il PC IBM, abbattendone notevolmente i costi, dall'altro permise a parecchie società di produrre dei software applicativi standard, in concorrenza gli uni con gli altri, basandosi su un unico sistema operativo, anche se inizialmente i principali produttori di software erano identificabili con prodotti per specifiche applicazioni. Il notevole ampliamento del mercato rese possibili economie di scala e si instaurò una sorta di sinergia tra quelli che sarebbero diventati i principali attori del settore: il produttore dei processori Intel e il produttore del sistema operativo e di applicativi per ufficio Microsoft. La maggiore potenza dei processori rese possibile lo sviluppo di programmi più complessi, la maggiore complessità degli applicativi e del sistema operativo richiesero processori più potenti instaurando in un certo modo un circolo vizioso di aggiornamenti continui. Sia il sistema operativo che gli applicativi furono subito caratterizzati dall'essere destinati ad utenti con conoscenze informatiche relativamente scarse e dall'avere licenze d'uso strettamente commerciali, vietando da un lato agli utenti di farne delle copie, dall'altro agli sviluppatori di vedere o modificare il codice. Sempre negli anni ottanta vennero introdotte le workstation, ovvero un sistema basato su terminali (i client) e computer centrali (i server). Si tratta di sistemi derivati concettualmente dai mainframe e basati essenzialmente su sistemi operativi UNIX proprietari. L'hardware stesso varia sul lato server dai mainframe ai PC, mentre su lato client vengono impiegati soprattutto i PC. Ciò favorì lo sviluppo di software sia per i client, utilizzati spesso da persone con scarse conoscenze informatiche, che per i server, il cui funzionamento viene solitamente garantito da personale informatico particolarmente qualificato.

Gli anni novanta: Internet, Linux e la Open Source Definition Benché Internet avesse visto la luce già negli anni settanta, è soltanto agli inizi degli anni novanta, con la diffusione del protocollo HTTP e la nascita dei primi browser, che Internet cominciò ad essere diffuso prima in ambito accademico e poi in modo sempre più capillare anche tra semplici privati. All'inizio degli anni novanta, il progetto GNU non aveva ancora raggiunto il suo obiettivo principale, mancando di completare il kernel del suo sistema operativo (HURD). Per sopperire a tale mancanza, William e Lynne Jolitz riuscirono ad effettuare il porting di UNIX BSD su piattaforma Intel 386 nel 1991. Purtroppo, negli anni successivi tale porting si trovò ad affrontare problemi di natura legale USL v. BSDi che ne ritardarono temporaneamente lo sviluppo. Nello stesso anno, Linus Torvalds, studente al secondo anno di informatica presso l'Università di Helsinki, decise di sviluppare un proprio sistema operativo imitando le funzionalità di Unix su un PC con un processore Intel 386. Tale processore venne scelto per il suo minor costo e per la sua maggiore diffusione rispetto alle piattaforme hardware per le quali erano disponibili i sistemi operativi Unix. Torvalds era spinto dall'insoddisfazione riguardante alcuni applicativi di Minix (un sistema Unix-like su piattaforma PC), dal desiderio di approfondire le proprie conoscenze del processore Intel 386, e dall'entusiasmo per le caratteristiche tecniche di Unix. Torvalds distribuì il proprio lavoro tramite Internet e ricevette immediatamente un ampio riscontro positivo da parte di altri programmatori, i quali apportarono nuove funzionalità e contribuirono a correggere errori riscontrati. Nacque così il kernel Linux, il quale fu subito distribuito con una licenza liberale. Internet dal canto suo, rende possibile la comunicazione tra persone molto distanti in tempi rapidi e a basso costo. Inoltre rende possibile la distribuzione di software direttamente dalla rete, riducendo ulteriormente i costi di duplicazione e le difficoltà a reperire il software stesso. La diffusione dei CD-ROM come supporto privilegiato di raccolte di software rese possibile il fenomeno delle cosiddette distribuzioni.

42


Open source Linux può essere considerato come il primo vero progetto "open source" cioè come il primo progetto che faceva affidamento essenzialmente sulla collaborazione via Internet per progredire; fino ad allora, infatti, anche i progetti di software libero come Emacs erano stati sviluppati in maniera centralizzata seguendo un progetto prestabilito da un ristretto numero di persone, in base cioè ai principi 'standard' di ingegneria del software. Si assumeva valida anche per i progetti open source la 'legge di Brooks', secondo cui "aggiungere sviluppatori a un progetto in corso di implementazione in realtà rallenta il suo sviluppo", legge che ovviamente non è applicabile a un progetto di sviluppo open source. Agli inizi degli anni novanta, l'idea delle licenze liberali era rappresentata soprattutto da Richard Stallman e la sua FSF, ovvero le licenze liberali per eccellenza erano la GPL e la LGPL che però venivano ritenute "contagiose", in quanto a partire da un codice licenziato con la GPL qualsiasi ulteriore modifica deve avere la stessa licenza. Le idee stesse di Stallman venivano viste con sospetto dall'ambiente commerciale statunitense, il che non facilitava la diffusione del software libero. Per favorire dunque l'idea delle licenze liberali nel mondo degli affari, Bruce Perens, Eric S. Raymond, Ockman e altri cominciarono nel 1997 a pensare di creare una sorta di lobby a favore di una ridefinizione ideologica del software libero, evidenziandone cioè i vantaggi pratici per le aziende e coniarono il termine "Open Source". Ciò anche al fine di evitare l'equivoco dovuto al doppio significato di free nella lingua inglese, visto che spesso veniva interpretato come "gratuito" invece che come "libero". L'iniziativa venne portata avanti soprattutto da parte di Raymond che, in occasione della liberalizzazione del codice sorgente di Netscape, voleva utilizzare un tipo di licenza meno restrittivo per le aziende di quanto fosse il GPL. La scelta a favore dell'Open Source da parte di alcune importanti imprese del settore come la Netscape, l'IBM, la Sun Microsystems e l'HP, facilitarono inoltre l'accettazione del movimento Open Source presso l'industria del software, facendo uscire l'idea della "condivisione del codice" dalla cerchia ristretta nella quale era rimasta relegata fino ad allora. Venne cioè accettata l'idea che l'open source fosse una metodologia di produzione software efficace, nonostante nel suo famoso saggio La Cattedrale e il Bazaar, Eric S. Raymond avesse esplicitamente criticato i tradizionali metodi di ingegneria del software, metodi che fino a quel momento avevano dato buoni frutti. Va notato come i primi programmi 'liberi', come il GCC, seguivano ancora il modello a cattedrale; solo successivamente progetti come EGCS adottarono il modello a bazaar.

Commissioni e audizione alla Commissione Cultura della Camera italiana L'attività della “Commissione per il software a codice sorgente aperto nella Pubblica Amministrazione”, detta anche “Commissione Meo”, ha prodotto, nel maggio 2003, la pubblicazione dell'"Indagine conoscitiva sul software open source" che, accanto ad un quadro generale, contiene interessanti proposte per la diffusione del software open source nella PA italiana. La più rilevante tra le proposte è che le PP.AA. non devono vietare né penalizzare l'utilizzo di pacchetti open source: il criterio che deve valere al momento della selezione di una qualsivoglia soluzione software è quello del “value for money”. Queste conclusioni hanno fortemente orientato il legislatore italiano. La prima ricaduta legislativa, esito diretto dell'indagine conoscitiva sui programmi informatici a codice sorgente aperto, è la cosiddetta “Direttiva Stanca”: il 19 dicembre 2003 l'allora Ministro per l'Innovazione e le Tecnologie, On. Stanca, adottava la direttiva “Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni” il cui contenuto sostanziale veniva successivamente trasfuso nel D. Lgs. 82/05 (Codice dell'amministrazione digitale) con l'intenzione di comportare vantaggi nella scelta dei programmi più efficienti e convenienti, ma anche risparmi derivanti dalla condivisione conseguente al riuso all'interno delle amministrazioni pubbliche. I principali contenuti della "Direttiva Stanca” sono i seguenti (in particolare derivanti dagli articoli 3, 4 e 7): • analisi comparativa delle soluzioni. La direttiva dispone che le Pubbliche Amministrazioni acquisiscano programmi informatici sulla base di una valutazione comparativa tecnica ed economica tra le diverse soluzioni disponibili sul mercato, tenendo conto della rispondenza alle proprie esigenze.

43


Open source • Criteri tecnici di comparazione. Le Pubbliche Amministrazioni nell'acquisto dei programmi informatici devono privilegiare le soluzioni che assicurino l'interoperabilità e la cooperazione applicativa tra i diversi sistemi informatici della Pubblica Amministrazione, salvo che ricorrano peculiari ed eccezionali esigenze di sicurezza e di segreto. • Rendere i sistemi informatici non dipendenti da un unico fornitore o da un'unica tecnologia proprietaria. • Garantire la disponibilità del codice sorgente per l'ispezione e la tracciabilità da parte delle Pubbliche Amministrazioni. • Esportare dati e documenti in più formati, di cui almeno uno di tipo aperto. Oltre alla Direttiva menzionata, altri sono gli interventi legislativi che considerano l'Open Source come meritevole di attenzione economica e tecnica come, ad esempio, il già citato Decreto Legislativo 7 marzo 2005, n. 82, art. 68, comma 1, lettera d) “Codice dell'amministrazione digitale” e le successive integrazioni e modificazioni (Decreto Legislativo 4 aprile 2006, n. 159 “Disposizioni integrative e correttive al decreto legislativo 7 marzo 2005, n. 82, recante codice dell'amministrazione digitale”) e, recentemente, la Legge 27 dicembre 2006, n.296 - Disposizioni per la formazione del bilancio annuale e pluriennale dello Stato (legge finanziaria 2007). Quest'ultima istituiva un Fondo di 10 milioni di Euro (comma 892) al fine di sostenere la realizzazione di progetti per la società dell'informazione, la cui destinazione prioritaria era rivolta a progetti che "utilizzano o sviluppano applicazioni software a codice aperto". Recentemente vi è stata la riproposizione della Commissione Open Source 2007, sempre presieduta dal Prof. Angelo Raffaele Meo, presso il Ministero per le Riforme e le Innovazioni nella Pubblica Amministrazione è stata istituita la Commissione Nazionale per il software Open Source nella PA. Il decreto ministeriale istitutivo della Commissione (16 maggio 2007), a firma del Ministro Nicolais, ha definito tre obiettivi prioritari: • un'analisi dello scenario europeo ed italiano del settore; • la definizione di linee guida operative per supportare le Amministrazioni negli approvvigionamenti di software open source; • un'analisi dell'approccio open source per favorire cooperazione applicativa, interoperabilità e riuso. I lavori della Commissione, presieduta dal prof. Meo, si sono svolti essenzialmente in modalità on-line supportati dall'Osservatorio OSS del CNIPA. Si sono svolte anche attività di audizione, in particolare la Commissione ha supportato l'organizzazione del convegno Open Source Open Ideas for Public Administration [3] - OSPA 2008 promosso dall'Associazione Concreta-Mente [4]. Nell'aprile 2008 la Commissione ha prodotto una prima bozza di Relazione.[5] Nel 2007 il tema dell'open source è stato portato autorevolmente presso il Parlamento italiano. La commissione cultura della Camera ha ascoltato, nella forma di una audizione, il prof. Arturo Di Corinto, Richard Stallman e Bruce Perens [6] in una audizione ufficiale dalla commissione cultura della Camera dei deputati. Anche il convegno Condividi la conoscenza (organizzato in più edizioni) ha tentato di allargare la base di adesione del mondo accademico sull'open source e sull'Open content con l'obiettivo di fare ascoltare la propria voce anche dal mondo politico.

Modalità di guadagno Lo sviluppo opensource ha tra le sue caratteristiche quello di essere quasi sempre gratuito, tanto da creare confusione tra alcuni che credono che opensource e gratuito siano sinonimi. Ci si potrebbe chiedere perché delle persone si dedichino allo sviluppo di progetti talvolta semplici, talvolta impegnativi e complessi, senza una remunerazione. In realtà, ci possono essere delle forme di guadagno (non sempre) e si può ricorrere ad una o più strategie per questo scopo. Nella seguente lista, con "sviluppatore" si può intendere sia uno o più privati, sia un'azienda che crea ed eventualmente si occupa di migliorare il programma o prodotto software: 1. donazioni: lo sviluppatore dà la possibilità di fare delle donazioni non obbligatorie a chi usa il suo programma, come ringraziamento o come incoraggiamento per un ulteriore sviluppo

44


Open source 2. servizio di supporto a pagamento: il programma è gratuito ma si paga per avere il supporto dello sviluppatore; se il supporto prevede donazioni, si può ritenere simile al punto precedente 3. sponsorizzazione: il programma o il sito che lo ospita può contenere il nome o altro tipo di pubblicità ad un'azienda che supporta economicamente lo sviluppatore; può anche succedere che un'azienda si occupi dello sviluppo di un programma gratuito e conti sulla pubblicità che riscuoterà da esso per farsi conoscere 4. guadagni grazie alla didattica: se il prodotto creato è particolarmente complesso, spesso si tratta di un linguaggio di programmazione nuovo o una libreria (o framework ecc.) con scopi particolari per un linguaggio di programmazione, lo sviluppatore può guadagnare grazie all'organizzazione di corsi di apprendimento del prodotto, la vendita di libri eccetera. Questo tipo di guadagno può risentire della concorrenza di guide che sono o saranno pubblicate gratuitamente in rete da parte di utenti, e può dar vita ad una strategia di mercato piuttosto complessa. Nei casi di librerie (o framework) che vogliono fare concorrenza a prodotti esistenti, si deve convincere che essi siano efficaci e più facili degli altri prodotti disponibili. Può anche essere che il produttore metta in rete delle introduzioni all'apprendimento del proprio prodotto che però non coprono tutte le potenzialità dello stesso. Allo stesso tempo si cerca di creare una comunità di supporto e contemporaneamente un gergo che la accomuni. Il gergo può far uso di termini nuovi che rimpiazzano quelli in uso, giustificati con motivazioni diverse (ad esempio, le funzioni in Java sono chiamate metodi nonostante compiano azioni o restituiscano un risultato dopo un'elaborazione che in matematica ed informatica sono chiamate funzioni). Talvolta può dar vita ad una serie di acronimi che rendono quasi criptico il linguaggio (vedasi il framework Spring). In tal modo si riesce a far diminuire il numero degli autodidatti che imparano in rete, spingendo chi vuole apprendere a comprare libri per l'apprendimento e le pratiche ottimali da seguire e/o seguire corsi ed allo stesso tempo si crea una comunità di sviluppatori fedele nel tempo, spesso unita anche da una "filosofia" di programmazione.

Studi e Ricerche OSPA (Open Studies for Public Administration) è un gruppo di lavoro dell'Associazione Concreta-Mente [4] orientato a studiare il tema dell'innovazione organizzativa e tecnologica nella Pubblica Amministrazione. Integra competenze verticali di origine accademica e professionale con l'obiettivo di formulare proposte concrete e presentarle ai decisori istituzionali nel contesto di eventi pubblici. Il gruppo di lavoro OSPA organizza annualmente dal 2008 un convegno nel quale sono presentati e discussi con interlocutori di diverse estrazioni i risultati delle ricerche sull'innovazione nelle Pubbliche Amministrazioni. Ad oggi ha coinvolto nelle sue attività: 6 Università e Centri di Ricerca Nazionali, più di 50 aziende del settore privato, oltre 250 Amministrazioni Pubbliche sia locali che centrali. OSPA 2008 [3] è stato il primo momento in Italia di incontro e confronto tra PA, imprese e università sul tema dell'open source nelle Pubbliche Amministrazioni. L'iniziativa dei convegni OSPA è poi proseguita negli anni successivi. A partire dagli spunti raccolti nel corso della prima edizione, il convegno OSPA 2009 è stato dedicato a verificare l'esistenza di interrelazioni tra cambiamento organizzativo e adozione di soluzioni open in 16 diverse amministrazioni, e ad approfondirne la natura. I casi di studio esaminati, i risultati della ricerca e le discussioni attivate sono stati raccolti nel volume Open Source nella Pubblica Amministrazione - OSPA '09 [7], che è anche possibile scaricare gratuitamente [8]. L'edizione OSPA 2010[7] è stata orientata all'approfondimento verticale su due temi di grande rilevanza per la promozione e valutazione dell'innovazione nella PA: il Riuso di soluzioni software tra amministrazioni diverse, e il Total Cost of Ownership, come strumento per supportare le decisioni di adozione. Anche in questo caso, i risultati delle ricerche presentati al convegno e le riflessioni degli esperti intervenuti sono stati raccolti in un volume, OSPA 10 - Strumenti per l'Innovazione nella PA [9], che si può anche scaricare gratuitamente [10].

45


Open source

Note [1] [2] [3] [4] [5] [6] [7]

The Open Source Census (http:/ / www. osscensus. org/ packages-rank-public. php) Freecode directory (cfr. numero di progetti con una licenza approvata da OSI) (http:/ / freecode. com/ ) http:/ / www. concreta-mente. it/ images/ opensource/ concretamente_ospa08_callforideas_v07-cp. pdf http:/ / www. concreta-mente. it Archivio Notizie (http:/ / www. innovazionepa. gov. it/ ministro/ salastampa/ notizie/ 1022. htm) Rassegna stampa (http:/ / www. dicorinto. it/ wp-content/ uploads/ 2007/ 06/ rassegna-stampa-rep-sw. pdf) http:/ / www. lulu. com/ product/ a-copertina-morbida/ open-source-nella-pubblica-amministrazione---ospa-09/ 6270404?productTrackingContext=search_results/ search_shelf/ center/ 3 [8] http:/ / www. lulu. com/ product/ ebook/ open-source-nella-pubblica-amministrazione---ospa-09/ 17377833?productTrackingContext=search_results/ search_shelf/ center/ 4 [9] http:/ / www. lulu. com/ product/ a-copertina-morbida/ ospa-10---strumenti-per-linnovazione-nella-pa/ 18661303?productTrackingContext=search_results/ search_shelf/ center/ 1 [10] http:/ / www. lulu. com/ product/ ebook/ ospa-10---strumenti-per-linnovazione-nella-pa/ 18852634?productTrackingContext=search_results/ search_shelf/ center/ 2

Bibliografia • Simone Aliprandi, Copyleft & opencontent. L'altra faccia del copyright, PrimaOra, 2005, disponibile on line su www.copyleft-italia.it/libro (http://www.copyleft-italia.it/libro) (CCpl) • Mariella Berra, Angelo Raffaele Meo, Informatica solidale. Storia e prospettive del software libero, 2001, Bollati Boringhieri, ISBN 8833913635 (copyright) • Mariella Berra, Angelo Raffaele Meo, Libertà di software, hardware e conoscenza. Informatica solidale 2, 2006, Bollati Boringhieri, ISBN 8833916464 (copyright) • Arturo Di Corinto, Tommaso Tozzi, "Hacktivism. La libertà nelle maglie della rete", 2002, Manifestolibri, ISBN 88-7285-249-8 (copyleft) • Arturo Di Corinto, Revolution OS II. Software libero, proprietà intellettuale, cultura e politica, Apogeo Editore, 2005 ISBN 88-503-2327-1 (CCpl) • Giovanna Frigimelica, Andrea Marchitelli, Open source in biblioteca: how to? (http://bollettino.cilea.it/ viewarticle.php?id=786). "Bollettino del CILEA", 114. • Gruppo di ricerca Ippolita, Open non è free. Comunità digitali tra etica hacker e mercato globale, Eleuthera, 2005, ISBN 88-89490-04-7, (copyleft) (http://ippolita.net/onf) • Pekka Himanen, L'etica hacker e lo spirito dell'età dell'informazione, 2001, Feltrinelli, ISBN 88-07-17059-0 (copyright) • Daniele Medri, Linux Facile, (copyleft) (http://linuxfacile.medri.org) • Carlo Piana, Simone Aliprandi, Italy in Ywein Van den Brande, Shane Coughlan, Till Jaeger (a cura di), International Free and Open Source Software Law Review, Open Source Press GmbH, 2011. URL consultato il 15 settembre 2011.

• Revolution OS: Voci dal codice libero, Apogeo Editore, 2003, ISBN 88-503-2154-6 (copyleft) • Paolo Spagnoletti, Tommaso Federici (2011), Exploring the Interplay Between FLOSS Adoption and Organizational Innovation (http://aisel.aisnet.org/cais/vol29/iss1/15/), Communications of the Association for Information Systems (CAIS), Vol. 29, Art. 15, pp. 279–298 • Linus Torvalds - David Diamond, Rivoluzionario per caso. Come ho creato Linux (solo per divertirmi), 2001, Garzanti, ISBN 88-11-73896-2 (copyright) • Sam Williams, Free as in Freedom. Richard Stallman's crusade for free software, 2002, O'Reilly, ISBN 0-596-00287-4 (copyleft) • CNIPA (a cura di), Linee guida allo sviluppo di software riusabile multiuso nella Pubblica Amministrazione (i Quaderni n.38) (http://archivio.cnipa.gov.it/html/docs/cnipa_quad_38_int_a.pdf), Roma, CNIPA, gennaio 2009. URL consultato il 3 maggio 2011.

46


Open source

Voci correlate • • • • • • •

Metodologia agile Open content Licenza open source Open Source Definition Differenza tra software libero e open source Hardware open source Software libero

Altri progetti •

Wikisource contiene opere originali: http://it.wikisource.org/wiki/Categoria:Open Source

Wikiquote contiene citazioni: http://it.wikiquote.org/wiki/Open source

Collegamenti esterni • Open source (http://www.dmoz.org/World/Italiano/Computer/Programmazione/Open_Source) su Open Directory Project ( Segnala (http://www.dmoz.org/cgi-bin/add.cgi?where=World/Italiano/Computer/ Programmazione/Open_Source) su DMoz un collegamento pertinente all'argomento "Open source") • gioblu.com - Tutorials Open Source Arduino / Elettronica in Italiano (http://www.gioblu.com) • Effetti del brevetto sull'Open Source (http://www.nosoftwarepatents.com/it/m/dangers/linux.html) • "Riflessioni sull'open source in Svizzera" - Articolo di swissinfo (http://www.swissinfo.ch/ita/ scienza_e_technologia/detail/La_Svizzera_riflette_sull_open_source.html?siteSect=511&sid=8645439& cKey=1200921748000&ty=st) • Tutorials in Italiano sui sistemi operativi Open source (http://www.oscene.net/) • Open Source Software (http://www.myopensource.org/it/) • (EN) Come gestire un progetto open source (http://www.tldp.org/HOWTO/Software-Proj-Mgmt-HOWTO/ index.html) • (EN) Open Source Software List (http://www.webi.org) • (EN) Open Source Web Design (http://www.oswd.org)

47


48

i software free, gratuiti. WordPress

WordPress

Visualizzazione di default di WordPress 3.0 (tema TwentyTen) Sviluppatore

Matt Mullenweg Ryan Boren Donncha O Caoimh Mark Jaquith Andrew Ozz Peter Westwood

Ultima versione

3.4 (13 giugno 2012)

Ultima beta Sistema operativo

3.4 B3 (21 aprile 2012) Web / PHP / MySQL

Genere

Blogging

Licenza

GPL (Licenza libera)

Sito web

it.wordpress.org

[1]

WordPress è una piattaforma di "personal publishing" e content management system (CMS), scritta in PHP e che usa come database MySQL o Microsoft SQL Server, che consente la creazione di un sito internet formato da contenuti testuali o multimediali, facilmente gestibili ed aggiornabili. Creata da Matt Mullenweg, è distribuita con la licenza GNU General Public License. Ogni versione del programma è dedicata ad un musicista jazz. WordPress supporta un solo blog per installazione, ma ne esiste anche una versione multi-utente, WordPress MU, anch'essa distribuita con la stessa licenza. Dalla versione 3.0 WordPress MU non esiste più e tutte le funzionalità sono state inglobate in WordPress nella modalità Network [2].


WordPress

49

Caratteristiche • Estensione delle funzionalità tramite plugin[3]; • Disponibilità di migliaia di temi gratuiti[4] per personalizzare l'aspetto del blog; • Gestione delle pagine a template; • URL permanenti che aiutano l'ottimizzazione nei motori di ricerca; • Gestione delle categorie; • Funzioni di Trackback e Pingback; • Editor WYSIWYG per la formattazione dei testi; • Creazione di pagine statiche; • Supporto multi-autori; • Log degli utenti che visitano il blog; • Blocco di utenti in base all'indirizzo ip; • Possibilità di specificare meta-tag; • Dalla versione 2.7 è presente un sistema di aggiornamento automatico.

Interfaccia di amministrazione di WordPress, versione 2.8

Storia Il nome WordPress fu suggerito da Christine Selleck, ma le varie versioni furono chiamate con nomi legati al jazz: per esempio la versione 1.5 fu chiamata in codice Strayhorn da Billy Strayhorn, e la 2.1 Ella, da Ella Fitzgerald. Finora soltanto la versione 2.0.5 ha interrotto questa tradizione in onore della nascita del figlio di uno degli sviluppatori, il nome del quale è appunto Ronan.

Multi-blogging WordPress permette di creare un blog per ogni installazione, anche se diverse installazioni possono convivere sullo stesso server e sullo stesso dominio, in directory e database separati. WordPress Multi-User o WordPress MU è la piattaforma multi-blogging derivata da WordPress. Consente infatti di gestire con una sola installazione un network di blog, amministrati tutti tramite un unico pannello. Nonostante non sia supportato dal core di WordPress è possibile avere anche più installazioni di WordPress che condividono gli stessi utenti e lo stesso database con un' unica autenticazione [5]. Dalla Versione 3.0 le versioni di WordPress e WordPress MU vengono integrate in quanto tramite la modifica del file wp-config.php [6] è possibile attivare la modalità network nella propria installazione di WordPress.


WordPress

50

Note [1] [2] [3] [4] [5] [6]

http:/ / it. wordpress. org http:/ / codex. wordpress. org/ Create_A_Network Plugin directory (http:/ / wordpress. org/ extend/ plugins/ ) su wordpress.org Free Themes Directory (http:/ / wordpress. org/ extend/ themes/ ) su wordpress.org http:/ / codex. wordpress. org/ Editing_wp-config. php#Custom_User_and_Usermeta_Tables http:/ / codex. wordpress. org/ Editing_wp-config. php#Enable_Multisite_. 2F_Network_Ability

Voci correlate • BBpress piattaforma per forum • CMS ASP NET CMS completo con piattaforma per forum, blog, chat, album fotografici, modulo IPN PayPal • Wordpress.com Servizio per la creazione di Blog basato su WordPress MU

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/ Category:Wordpress

Collegamenti esterni • (EN) Sito ufficiale (http://wordpress.org/) • Community italiana (http://it.wordpress.org/)

Joomla! Joomla!

Installazione di default di Joomla! 1.5 Sviluppatore Ultima versione Sistema operativo

OSM Development Team 2.5 (24 gennaio 2012) indipendente

Genere

CMS

Licenza

GPL v.2 (Licenza libera)

Sito web

joomla.org

[1]

Joomla! è un software di content management (CMS) per siti web, realizzato completamente in linguaggio PHP. È pubblicato con licenza open source GNU GPL v.2. È nato nel settembre 2005 da una scissione (fork) dal codice del CMS (Content Management System) Mambo; attualmente è in rapido sviluppo, sotto la guida di un gruppo di programmatori (per buona parte ex-sviluppatori di Mambo) riuniti nell'associazione no-profit Open Source Matters[2].


Joomla!

51

Caratteristiche Il CMS è distribuito sotto forma di pacchetto compresso. È sufficiente scompattare l'archivio in una cartella pubblica di un server Web dotato di supporto a PHP ed avere a disposizione un database MySQL per i dati del programma. Dopo un processo di installazione (più propriamente, di prima configurazione) di pochi minuti, il sito è operativo. Tra le caratteristiche proposte ci sono:

principali

Il Pannello di Controllo di Joomla! 1.6

• Alto grado di personalizzazione grazie alle numerose estensioni moduli, componenti e plugin (vedi più sotto) disponibili sia come Software libero che con altre licenze; • Caching delle pagine per incrementare le prestazioni; • Funzioni di Search Engine Optimization, per facilitare l'indicizzazione dei contenuti da parte dei motori di ricerca; • Feeding RSS, che permette ai visitatori di essere avvisati degli aggiornamenti dei contenuti mediante l'utilizzo di un feed reader; • Versione stampabile delle pagine; • Esportazione delle pagine in formato PDF; • Pubblicazione tipo Blog; • Sondaggi; • Ricerca testuale su tutti i contenuti inseriti; • Localizzazione internazionale, che permette la traduzione di ogni funzionalità del software nella propria lingua; Altri componenti open source disponibili separatamente, sponsorizzati dal team di sviluppo di Joomla! ma non sviluppati dallo stesso team consentono, fra le altre cose, di: • Creare e gestire forum di discussione (Joomlaboard / Fireboard / Kunena); • Tradurre l'intero contenuto del sito per renderlo fruibile in più lingue (Joom!Fish); • Migliorare la gestione degli utenti registrati e potenziare loro interazioni, creando un effetto community (Community Builder).

Estensioni Uno dei punti di forza di Joomla! è la vivacità della comunità che lo supporta, sia in termini di discussione e capacità di aiuto (il forum ufficiale supera i 100.000 post mensili) che di ampia disponibilità di componenti aggiuntivi per personalizzare la funzionalità del motore. Tutte le estensioni vengono distribuite sotto forma di pacchetti compressi, la cui installazione è gestita in maniera completamente automatica da uno script apposito, disponibile nella sezione di amministrazione del proprio sito Joomla!, che permette anche di disinstallare estensioni già installate. Ne esistono di tre tipi: componenti, moduli e plugin (che in Joomla! 1.0 si chiamavano mambot). Molte estensioni (nell'ordine delle migliaia) sono scaricabili dall'archivio ufficiale http://extensions.joomla.org [3].


Joomla!

Componenti I componenti di Joomla! sono estensioni specifiche che permettono di aggiungere funzionalità complesse a un sito realizzato usando il CMS Joomla!. I componenti per Joomla! differiscono dai moduli essenzialmente per il livello di complessità supportato. Tradizionalmente, i moduli vengono utilizzati per implementare funzionalità elementari mentre i componenti possono aggregare più moduli per realizzare funzionalità più complesse e più complete. In generale, l'aggiunta di un componente corrisponde all'aggiunta di un'intera sezione al sito dove viene installato. Per esempio, nel caso della gestione di una newsletter i moduli coprono funzioni tipo "iscrizione (aggiunta) di un nuovo utente", "cancellazione di un utente" eccetera mentre un componente potrebbe gestire la newsletter nel suo complesso. A loro volta, secondo il medesimo schema modulare, i componenti possono essere usati da applicazioni che coprono livelli di funzionalità ancora più complessi. I componenti possono essere realizzati da qualsiasi utente di Joomla!. In rete si possono inoltre trovare componenti già pronti, prodotti da sviluppatori indipendenti. Compatibilità dei componenti Per l'impiego di un componente riveste un ruolo fondamentale la versione di Joomla! per cui esso è stato sviluppato. Infatti, la versione Joomla! 1.0, per limitazioni intrinseche al framework, pone dei limiti anche alla complessità dei componenti, limiti che la versione 1.5 ha consentito di superare con l'adozione del modello MVC (model-view-controller). Un componente sviluppato espressamente per una specifica versione di Joomla! viene detto anche "componente nativo" per quella versione. Fra la versione 1.0 e la versione 1.5 di Joomla! è supportata solo la compatibilità in avanti dei componenti, ossia è possibile usare su Joomla! 1.5 componenti originariamente sviluppati per Joomla! 1.0, grazie anche a un plugin chiamato Legacy Mode. L'uso di questo plugin può avere un impatto sul livello di sicurezza e sulle prestazioni dei componenti, tuttavia ha consentito di evitare la riscrittura di molti componenti nativi. I componenti nativi per Joomla! 1.5 non supportano la compatibilità all'indietro, non sono cioè utilizzabili su Joomla! 1.0, per via dei notevoli cambiamenti al framework e per il cambio di modello. La versione Joomla! 1.6 non è retrocompatibile con le versioni precedenti. Componenti per Joomla! 1.0 Tra i componenti di terze parti più diffusi per questa versione vi sono: • • • • • • •

Community Builder, per la gestione di comunità on-line e di gruppi di utenti JoomlaXplorer, con funzioni di cliente FTP e di file manager direttamente dall'installazione di Joomla! Akeeba Backup (precedentemente denominato Joomlapack), per la gestione dei backup del sito Joom!Fish, per gestire siti multi-lingua Virtuemart, per allestire siti di commercio on-line FireBoard, per integrare un forum nel sito sh404SEF, per la gestione delle URL (riscrittura, redirect) e per la personalizzazione delle pagine di errore del server • DOCman, file manager per consentire ai visitatori lo scaricamento di documenti e archivi • MisterEstate, dedicato per siti di gestione commerciale degli immobili (affitti, compravendite eccetera).

52


Joomla! Componenti per Joomla! 1.5 Fra i componenti maggiormente diffusi ed utilizzati vi sono: • Fabrik, il più avanzato tra i pochissimi componenti per incapsulare database ad essere GNU General Public License 2.0 • Community Builder, per la gestione di comunità on-line e di gruppi di utenti • eXtplorer, con funzioni di client FTP e di file manager direttamente dall'installazione di Joomla! • Akeeba Backup (precedentemente denominato Joomlapack), per la gestione dei backup del sito • XCloner, per la gestione dei backup del sito • Joom!Fish, per gestire siti multi-lingua • JCE, un editor alternativo molto utilizzato • Virtuemart, per allestire siti di commercio on-line • Qcontacts, per estendere i campi del componente standard di gestione dei contatti • CiviCRM, per la gestione integrata di database/eventi/newsletter/donazioni/associati, rilasciato con licenza GNU AGPL 3

Moduli I moduli di Joomla! sono estensioni che permettono l'aggiunta di piccole porzioni di HTML a un sito realizzato usando Joomla!. Sono usati per mostrare elementi di informazione o funzionalità interattive all'interno di un sito Joomla!, in maniera collaterale al contenuto principale. Si possono considerare come finestre aggiuntive attraverso le quali dare informazioni non necessariamente correlate alla pagina visualizzata, magari per mostrare le altre funzionalità del sito. I moduli recuperano le informazioni, o parti di informazioni definite attraverso parametri, e le visualizzano nella zona di loro competenza; ad esempio il modulo "ultime notizie" recupera di default i soli titoli degli articoli per visualizzarli nel sito come lista, dando la possibilità di anticipare al visitatore ciò che si trova all'interno del sito stesso e quali sono le notizie più recenti. All'utente viene data la possibilità di scegliere quali moduli visualizzare e dove collocarli all'interno del layout della pagina, in accordo con un template (vedi sotto). Moduli sono anche i menu di navigazione all'interno di un sito Joomla!. Agendo direttamente nella sezione Gestione Moduli (Module Manager) dell'amministrazione, possono essere creati semplici moduli in HTML. Nel caso di script più complessi, essi sono in genere preparati per essere installati con le apposite procedure. Esistono moltissimi moduli di grande utilità già programmati e pronti all'uso, messi gratuitamente a disposizione nell'apposita sezione del sito ufficiale delle estensioni. Fra i moduli standard si possono segnalare il modulo main menu (il menu principale), il modulo di login (per l'accesso riservato degli utenti), quello per i sondaggi (poll) e quello per la distribuzione dei feed RSS (syndicate). Struttura moduli Generalmente, un modulo è composto da un file XML che funge da installer e che contiene le informazioni sullo sviluppatore dell'estensione e sugli altri file che lo compongono. È affiancato da uno o più file PHP che ne svolgono la funzione principale, ovvero quella di generare il codice html che verrà poi riproposto sul sito. È possibile includere file .ini per consentire una più facile localizzazione del modulo. Tutti i file sopra elencati vengono poi compattati in un archivio di tipo .tgz o .zip, poi installabile sul CMS.

53


Joomla!

Plugin I mambot sono nella versione 1.0 l'equivalente dei plugin della versione 1.5x, quando richiamati, attivano un programma, uno script o eseguono una specifica funzione. Spesso agiscono in background nell'intero sito. Possono essere semplicissimi come la funzione che sostituisce un certo testo digitato con una funzione codificata (ad esempio posizionare una immagine precaricata impaginandola in un testo o spezzare in due pagine il contenuto di un lungo articolo), ma possono anche avere effetti molto più evidenti, come richiamare, all'interno delle finestre dei form per l'inserimento dei contenuti, le funzionalità di sofisticati editor di testo in modalità WYSIWYG elaborati da terze parti. Possono inoltre permettere collegamenti tra diversi componenti; una galleria di immagini, ad esempio, può avere un mambot collegato che renda la descrizione delle immagini disponibile alle funzioni di ricerca sul sito. Esistono mambot per inserire funzioni Flash, per collegare automaticamente un glossario alle parole contenute nei testi degli articoli, per generare miniature delle immagini inserite nei testi in modo che alla selezione appaia una finestra con l'immagine a maggiore risoluzione, e molti altri.

Template Un template è un documento HTML/CSS che contiene il codice necessario a guidare Joomla! e ad impaginare i contenuti: ad esempio contiene il codice che permette il caricamento dei vari moduli in posizioni predefinite, codice per caricare il cosiddetto mainbody (la zona in cui vengono presentati i contenuti principali generati da Joomla! o dai componenti aggiuntivi) e cosi via. Per ottenere l'aspetto desiderato molti template contengono anche una serie di immagini (per gli sfondi, i bordi eccetera). Ogni template può essere scaricato da appositi siti gratuitamente o a pagamento ed installato attraverso l'apposita area admin.

Storia Una schermata di Joomla! Joomla! nasce come risultato di un fork di Mambo tra l'australiana Miro Corporation, la proprietaria del trademark Mambo, e un gruppo di programmatori volontari, inclusi tutti i componenti il team di sviluppo. I due gruppi si separarono il 17 agosto 2005. La Miro Corporation fondò una fondazione no-profit con lo scopo di finanziare il progetto e proteggersi da problemi legali. Il team di sviluppo affermò che molti fondi dati alla fondazione andavano contro gli accordi precedenti fatti dall'eletto Mambo Steering Committee, mancando la necessaria consultazione con i principali membri del progetto e includendo clausole che violavano i valori dell'Open Source.

Il team di sviluppo creò un sito web chiamato OpenSourceMatters [4] per distribuire informazioni agli utenti, agli sviluppatori, ai web designers e alla comunità in generale. Il capo progetto, Andrew Eddie, "MasterChief", scrisse una Lettera aperta alla comunità [5] che apparve nella sezione degli annunci nel forum pubblico di mamboserver.com. Il giorno successivo 1000 persone sottoscrissero il forum opensourcematters.org, la maggior parte delle quali inviarono parole di incoraggiamento e supporto alle azioni del Team di sviluppo. Il nuovo sito web ricevette un certo riscontro e fu citato in numerosi articoli di news riguardanti gli eventi apparsi su newsforge.com, eweek.com e ZDnet.com.

54


Joomla! Questo evento innescò profonde riflessioni nella Comunità Open Source riguardo a ciò che poteva costituire il concetto stesso di Open Source. Forum e numerosi altri progetti Open Source si attivarono inviando commenti pro e contro le azioni di entrambe le parti. Le accuse contro Miro e la Mambo Foundation furono accese. Nelle due settimane successive all'annuncio di Eddie i team vennero riorganizzati e la comunità continuò a crescere. Il giorno 1º settembre 2005 il nuovo nome del progetto fu annunciato a più di 3000 seguaci del team di sviluppo. Il nome del progetto è una interpretazione fonetica della parola swahili jumla che significa "tutti insieme" o "come un'unica entità". Questo termine fu scelto in quanto rifletteva i propositi del team di lavoro che presiede tuttora insieme alla comunità alla realizzazione del progetto. La prima release di Joomla fu annunciata il 16 settembre 2005: si trattava di un clone della versione di Mambo 4.5.2.3 combinata con una certa quantità di patch di sicurezza di livello moderato. L'obiettivo primario era quello di riscrivere completamente il codice per renderlo completamente compatibile con la versione del DB MySQL 5. Joomla è rilasciato sotto licenza GNU General Public License versione 2.

Cronologia delle release La cronologia completa può essere seguita efficacemente sul portale del progetto[6].

Riconoscimenti Joomla! dal 2005 è vincitore di numerosi premi internazionali: • • • • •

2005: Best Linux / Open Source Project 2006: Open Source Content Management System Award 2006: Best Linux / Open Source Project 2007: Best PHP Open Source Content Management System[7] 2011: Best Source Content Management System Award[8]

Futuro Il development team di Joomla! ha annunciato, ad inizio ottobre 2008, la fine del supporto per la versione 1.0 che è definitivamente stata sospesa dal 22 luglio 2009[9], mentre l'ultima versione stabile, la 1.5 terminerà il suo supporto entro aprile 2012. Entrambe le versioni citate sono da considerarsi come LTS (Long Time Support). L'ultima versione Joomla! 1.7[10] precede la 2.5 che verrà considerata come LTS. Le versioni transitorie sono stimate in 6 mesi di durata ciascuna.

Note [1] [2] [3] [4] [5] [6] [7]

http:/ / www. joomla. org/ Open Source Matters (http:/ / opensourcematters. org/ ) http:/ / extensions. joomla. org/ http:/ / opensourcematters. org http:/ / www. opensourcematters. org/ index. php?option=com_content& task=view& id=1& Itemid=1 Cronologia portale del progetto (http:/ / www. joomla. org/ content/ blogcategory/ 32/ 66/ ) Best PHP Open Source Content Management System (http:/ / www. packtpub. com/ article/ joomla-wins-best-php-open-source-content-management-system) [8] 2011 Open Source Awards Winner news: Open Source CMS | Packt Publishing Technical & IT Book and eBook Store (http:/ / www. packtpub. com/ blog/ 2011-open-source-awards-winner-news-open-source-cms) [9] (EN) Annuncio ufficiale (http:/ / community. joomla. org/ contributor-blogs/ 64-developer-team-blog/ 509-an-old-friend-comes-of-age. html) [10] (EN) (http:/ / www. joomla. org/ announcements/ release-news/ 5387-joomla-171-released. html)

55


Joomla!

56

Voci correlate • Shellmanager

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:Joomla!

Collegamenti esterni • (EN) Sito ufficiale (http://www.joomla.org) • Sito di Joomla in italiano (http://www.joomla.it)

Drupal

Drupal

Home page di una installazione predefinita di Drupal Sviluppatore Ultima versione

Drupal community [2]

7.12

[1]

(1 febbraio 2012)

Sistema operativo Multipiattaforma Linguaggio

PHP

Genere

content management framework, content management system, community e blog software

Licenza

GNU GPL (Licenza libera)

Sito web

http:/ / drupal. org

Drupal è un content management framework, content management system (CMS) modulare scritto in linguaggio PHP e distribuito sotto licenza GNU GPL. Un CMS è uno strumento usato dai webmaster per gestire un sito web evitando di dover programmare dinamicamente l'intero software lato server che gestisce il sito. Molti CMS contemporanei, compreso Drupal, offrono un'interfaccia di amministrazione con cui l'amministratore può gestire ogni aspetto del sito web, senza il bisogno di possedere conoscenze tecniche particolari di programmazione Web. Drupal funziona su diversi sistemi operativi, tra cui Windows, Mac OS X, Linux e qualsiasi piattaforma che supporti i web server Apache (versione 1.3 o superiore) o IIS (versione 5 o superiore) e il linguaggio PHP (versione 4.3.3 o superiore). Drupal utilizza inoltre un database per memorizzare i contenuti, e necessita dunque di un software come MySQL e PostgreSQL che sono gli unici DBMS al momento supportati. I requisiti dettagliati sono disponibili sul sito ufficiale di Drupal[3].


Drupal

Storia Creato originariamente da Dries Buytaert[4] come bulletin board system, divenne un progetto libero nel 2001. Il nome Drupal è la traslitterazione inglese per la parola olandese druppel che significa goccia. Il nome nasce dal defunto drop.org, sito il cui codice si evolvette lentamente fino a trasformarsi in Drupal. Buytaert voleva chiamare il sito «dorp» (in olandese «villaggio», riferendosi all'orientamento «per community» del progetto), ma commise un errore di digitazione quando controllò la disponibilità del dominio. Rileggendo, decise che drupal suonava meglio.[5] Negli anni Drupal ha acquistato popolarità. Da maggio 2006 ad aprile 2007, Drupal è stato scaricato più di 600.000 volte.[6] Ora lo sviluppo di Drupal gode dell'apporto di una grande comunità.[7] Dal novembre 2009 il sito della Casa Bianca WhiteHouse.gov [8] utilizza Drupal.[9]

La struttura di Drupal Drupal ha ricevuto elogi da webmaster, progettisti e programmatori, in parte grazie al suo design modulare che permette al suo livello base, o «core» di fornire solo le funzioni essenziali nella sua configurazione predefinita. Funzioni e capacità di visualizzazione aggiuntive possono estendere il «core» tramite l'installazione di moduli e temi.[10]

Moduli Il «core» di Drupal contiene i propri moduli. I moduli sviluppati dalla comunità possono comunque essere scaricati e installati in un'area dell'installazione di Drupal non destinata al «core». Il «core» di Drupal è stato progettato con un sistema di «hook» (ganci) o callback, che permettono ai moduli sviluppati dalla comunità di inserire funzioni nel processo di esecuzione di Drupal. I moduli inclusi nel «core» forniscono le seguenti funzionalità: • • • • • • • • • • • • • • • • • •

Inserire, modificare e catalogare i contenuti Eseguire ricerche Inserire commenti Partecipare a forum Rispondere a sondaggi Lavorare a progetti di scrittura collaborativa Inserire e visualizzare i profili degli utenti Comunicare tra gli utenti e con gli amministratori del sito Modificare l'aspetto del sito utilizzando temi grafici già sviluppati e pronti all'uso Creare menu su più livelli della struttura di navigazione Localizzare l'interfaccia in diverse lingue, permettendo all'utente di scegliere Fornire feed RSS Aggregare e presentare i contenuti RSS di altri siti Registrare nuovi utenti e gestirne gli account Gestire in modo granulare permessi e ruoli per i singoli utenti o per interi gruppi Usare regole per impedire l'accesso al sito a determinati utenti in base a nome, indirizzo e-mail, indirizzo IP Collezionare e presentare statistiche dettagliate del sito Gestire il caching delle pagine ed il throttling, funzionalità che permette di disabilitare alcuni moduli/blocchi in caso di alto traffico del sito • Creare e specificare vari filtri sull'input degli utenti e diversi modelli di contenuto • Generare indirizzi semplici da ricordare, permettendo una migliore catalogazione ai motori di ricerca Inoltre, il sito di Drupal contiene centinaia di moduli gratuiti sviluppati dalla comunità. Alcune delle funzionalità fornite o migliorate dai moduli sviluppati dagli utenti:

57


Drupal • • • • • • • • •

58 Sistemi e-commerce Flusso di lavoro redazionale Gallerie fotografiche Gruppi autogestiti Sitemap di Google Gestione di mailing list Integrazione con CVS Gestire immagini e video Gestire servizi di terze parti (Adsense, AuctionAds, Technorati, etc.)

Tracciamento delle Versioni del Sistema update_status, un nuovo modulo disponibile per Drupal 5.x (parte del «core» in Drupal 6.0) notifica automaticamente il gestore del sito quando vengono rilasciate nuove versioni dei moduli e temi installati.

Temi La maggior parte dei temi per Drupal sono creati usando il sistema PHPTemplate[11] o il sistema XTemplate[12]. In passato, si usavano temi sviluppati in solo PHP. Versioni precedenti del meccanismo per i temi di Drupal sono state criticate[13] per essere meno orientate al design e più complesse rispetto ai sistemi di Mambo e Plone. L'inclusione in Drupal dei sistemi PHPTemplate e XTemplate sono state una risposta ad alcune di queste critiche.

Traduzioni In agosto 2007, le traduzioni dell'interfaccia di Drupal sono disponibili in 37 lingue oltre all'inglese (la lingua predefinita).[14] I linguaggi supportati ne comprendono alcuni con scrittura da destra a sinistra, come l'arabo e l'ebraico.

Critiche L'installazione di Drupal (e dei suoi moduli) richiede l'accesso a un database ed alcuni permessi avanzati, ad esempio la possibilità di usare comandi SQL come SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER e LOCK TABLES. Alcuni fornitori di hosting web non offrono queste funzioni. Chi voglia usare Drupal deve accertarsi che il suo server offra queste funzioni prima di installare. Come per altri sistemi di gestione dei contenuti, è possibile configurare il database di partenza da riga di comando [15] oppure con phpMyAdmin/PhpPgAdmin. A partire dalla versione 5.0, è possibile installare Drupal e configurare il database quasi interamente tramite un'interfaccia web. Alcuni[16] considerano più difficile imparare a usare Drupal e installarlo, rispetto ad altri CMS o a semplici piattaforme per blog come WordPress. Drupal 5.0, rilasciato il 15 gennaio 2007, contiene un assistente all'installazione utilizzabile con il browser, per rispondere in parte a queste critiche; Drupal 6.0, pubblicato il 13 febbraio 2008, rende ancora più semplice l'installazione.[17] Alcuni programmatori criticano Drupal perché non lo considerano sviluppato con la Programmazione orientata agli oggetti (OOP), ma Programmare Drupal da una prospettiva orientata agli oggetti (in inglese) [18] spiega come i principi della OOP e della Programmazione orientata agli aspetti (AOP) siano applicati anche a Drupal.


Drupal

Distribuzioni Per semplificare il processo di installazione a coloro che vogliano usare Drupal in un contesto specifico (un negozio online, un sito di recensioni musicali, un blog, ecc.), la comunità di Drupal ha discusso se distribuire installazioni di Drupal pronte all'uso, pre-configurate con moduli di terze parti e impostate per un tipo particolare di sito. Ci sono già diverse distribuzioni personalizzate di Drupal. Molte sono semplicemente costituite da Drupal con l'aggiunta di moduli di terze parti, ma alcune includono anche modifiche al «core». Un esempio di queste distribuzioni è vbDrupal [19], che è Drupal integrato con vBulletin. Drupal 4.2[20] è stato usato da DeanSpace, che ha ospitato molti siti web indipendenti a supporto della campagna presidenziale di Howard Dean nel 2004. Dopo la fine della campagna di Dean, il progetto DeanSpace si è trasformato in CivicSpace, una «piattaforma per l'organizzazione di movimenti dal basso che fornisce strumenti all'azione collettiva nelle comunità e connette e ravvicina gruppi distanti di sostenitori» basata su Drupal. Quindi CivicSpace è una distribuzione derivata, basata su Drupal 4.2. Molte innovazioni di CivicSpace sono state poi riportate all'interno del progetto di Drupal[21]. Funzioni particolarmente utili per organizzazioni no-profit e campagne politiche sono disponibili nel modulo CiviCRM per Drupal 5.0 e versioni seguenti.

Bibliografia Drupal è stato trattato in molti libri sullo sviluppo di applicazioni web. Al momento non ne esistono delle traduzioni in italiano. • (EN) Pro Drupal Development [22] di John K. VanDyk e Matt Westgate (ISBN 1590597559) • (EN) Drupal: Creating Blogs, Forums, Portals, And Community Websites di David Mercer (ISBN 1904811809) • (EN) Building Online Communities With Drupal, phpBB, and WordPress di Robert T. Douglass, Mike Little, e Jared W. Smith (ISBN 1590595629) • (EN) The revolution will not be televised: democracy, the internet, and the overthrow of everything di Joe Trippi (ISBN 0-06-076155-5) • (EN) The power of many: how the living web is transforming politics, business, and everyday life di Christian Crumlish (ISBN 0782143466) • (EN) We the media: grassroots journalism by the people, for the people di Dan Gillmor (ISBN 0-596-00733-7) • (DE) Drupal. Community-Websites entwickeln und verwalten mit dem Open Source-CMS di Hagen Graf (ISBN 3827323215)

Note [1] [2] [3] [4] [5] [6] [7] [8] [9]

http:/ / drupal. org/ community CHANGELOG.txt | Drupal 7 | Drupal API (http:/ / api. drupal. org/ api/ drupal/ CHANGELOG. txt/ 7) (EN) Requisiti di Drupal (http:/ / drupal. org/ requirements) Dries Buytaert | Personal website of Dries Buytaert (http:/ / buytaert. net/ ) History | drupal.org (http:/ / drupal. org/ node/ 769) "Drupal Download Statistics," http:/ / buytaert. net/ tag/ statistics "Grafici di crescita," http:/ / groups. drupal. org/ node/ 1980 http:/ / www. whitehouse. gov/ "Il sito della Casa Bianca "gira" su un open source" http:/ / www. lastampa. it/ _web/ cmstp/ tmplrubriche/ tecnologia/ grubrica. asp?ID_blog=30& ID_articolo=6836& ID_sezione=38& sezione=News [10] Le funzioni del «core» di Drupal sono descritte nel «Manuale di Drupal» disponibile online all'indirizzo http:/ / drupal. org/ handbook/ modules [11] " Sistema per temi PHPTemplate (http:/ / drupal. org/ phptemplate)", Drupal.org. [12] " Sistema per temi XTemplate (http:/ / drupal. org/ node/ 6493)", Drupal.org. [13] " How does Drupal compare to Mambo? (http:/ / drupal. org/ node/ 15689#comment-25704)" discussione (in inglese), Drupal.org. [14] "Translations," Drupal.org http:/ / drupal. org/ project/ Translations (registrato il 12 agosto 2007)

59


Drupal

60

[15] http:/ / drupal. org/ node/ 495 [16] Alister Lewis-Bowen et al., " Usare software open source software to progettare, sviluppare e implementtare un sito web collaborativo (in inglese) (http:/ / www-128. ibm. com/ developerworks/ ibm/ library/ i-osource1/ index. html)," IBM, July 11, 2006. [17] Elenco caratteristiche di Drupal 6.0 (in inglese) (http:/ / drupal. org/ drupal-6. 0) [18] http:/ / api. drupal. org/ api/ file/ developer/ topics/ oop. html/ 6 [19] http:/ / www. vbdrupal. org/ [20] Predictions for 2004 | drupal.org (http:/ / drupal. org/ node/ 4877#comment-7552) [21] CivicSpace (http:/ / civicspacelabs. com) [22] http:/ / www. drupalbook. com

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/Category:Drupal

Collegamenti esterni • • • •

(EN) Drupal, il sito ufficiale del progetto (http://drupal.org/) (EN) La più grande directory di siti realizzati con Drupal (http://www.drupalsites.net/) (EN) Directory di siti realizzati con Drupal (http://www.drupalwebsites.com/) Tutorial relativi a Drupal pubblicati su HTML.it (http://cms.html.it/articoli/lista/173/drupal/)

Comunità di supporto e sviluppo in lingua italiana • • • • •

Drupal Italia - La comunità ufficiale italiana (http://www.drupalitalia.org/) Associazione Drupal Italia (http://associazione.drupalitalia.org/) Drupal.it - Sito su Drupal in italiano (http://www.drupal.it/) DrupalCamp Crema 2009 (http://crema2009.drupalcamp.it/) DrupalCamp Torino 2010 (http://torino2010.drupalcamp.it/)

Blog su drupal • • • • •

(EN) Dries Buytaert (http://buytaert.net/) (EN) Steven 'acko' Wittens (http://acko.net/tag/drupal) (EN) Lullabot (http://www.lullabot.com/) Psicomante Blog (http://blog.psicomante.net/) Tecnomeme (http://www.tecnomeme.it/tags/drupal)

Servizi su drupal • • • •

(EN) Temi per Drupal (http://www.drupal.org/project/Themes) (EN) Documentazione per sviluppatori (http://api.drupal.org) (EN) Comunità per il design di Drupal (http://themegarden.org) (EN) Gruppi di Discussione su Drupal.org (http://groups.drupal.org)

Voci correlate • CMS ASP NET CMS completo con piattaforma per forum, blog, chat, album fotografici, modulo IPN PayPal


phpBB

61

phpBB

phpBB

Installazione di default della versione 3.0 Sviluppatore Ultima versione Sistema operativo

The phpBB Group 3.0.10 (2 gennaio 2012) Web / PHP / SQL

Genere

Script Forum

Licenza

GPL (Licenza libera)

Sito web

www.phpbb.com

[1]

phpBB è uno tra i più popolari sistemi liberi per la gestione di forum scritti mediante il linguaggio di programmazione PHP: il nome è un'abbreviazione di PHP Bulletin Board Alcuni tra i punti di forza del software sono: • Un sistema di gestione della grafica che permette una facile personalizzazione. • Supporto multilingua: 70 traduzioni (dati del 2007), il che lo rende uno tra i forum più tradotti. • Compatibilità con vari sistemi di gestione di dati inclusi MySQL, MySQLi, PostgreSQL, Microsoft SQL Server, Microsoft Access e, con qualche modifica, Oracle. • Ampia comunità di utenti (in tutte le lingue) e numerosi siti che offrono supporto e materiale per la personalizzazione. Il punto debole è invece una generale pesantezza della piattaforma, specie se paragonata ad altri sistemi come FluxBB, MyBB o PunBB.

Storia phpBB nasce dalla mente di James Atkinson come una semplice bulletin board per il proprio sito web il 17 giugno del 2000. Nathan Codding and John Abela (successivamente usciti dal progetto) si uniscono quando la piattaforma entra a far parte del network SourceForge CVS. Una pre pubblicazione pienamente funzionante viene pubblicata [2] il 1º luglio dello stesso anno.

phpBB1 phpBB 1.0.0 vede la luce il 9 dicembre 2000, con un successivo miglioramento nel codice e l'inserimento di nuove funzioni. L'ultima versione della linea 1.x è invece la 1.4.4, rilasciata il 6 novembre 2001. Durante la vita della serie 1.x, Bart van Bragt, Paul S. Owen (il primo co-manager del progetto), Johnathan Haase (successivamente uscito dal progetto) e Frank Feingold entrano nel gruppo del progetto.


phpBB

62

phpBB2 phpBB2 parte il 17 febbraio 2001. Doug Kelly (successivamente uscito dal progetto) entra nel gruppo poco dopo. Dopo un anno di sviluppo e test intensivi, la versione 2 di phpBB, soprannominata Super sporca ((EN) Super Furry) a causa del codice di scadente qualità, viene rilasciato il 4 aprile 2002. Nel dicembre 2004, un grande numero di siti web vengono violati e modificati da Santy, un worm che, sfruttando una vulnerabilità delle versioni non aggiornate di phpBB, sovrascriveva il codice PHP con pagine HTML. L'ultima versione è la 2.0.23, rilasciata il 17 febbraio 2008 [3]. Le ultime versioni della linea 2.0.x iniziano a richiedere l'utilizzo di PHP versione 4.0.3. Il supporto terminerà il 1 gennaio 2009.

phpBB3 La terza versione di phpBB, nome in codice Olympus, viene rilasciata il 13 dicembre 2007. Partita come versione 2.2 addirittura 2002, vede un cambio di nome nel 2005, quando l'allora capo del team di sviluppo psoTFX si accorge della mancanza di compatibilità tra le modifiche per la versione 2.0.x e il nuovo codice. Di qui l'annuncio[4] del nuovo nome in codice (Olympus) e del nuovo numero (3.0). La prima beta vede la luce solo a metà 2006, con il template subSilver2 (evoluzione del subSilver presente in phpBB2) e l'avvertenza che nessun supporto sarebbe stato dato per successivi aggiornamenti dalle versioni beta. Il primo convertitore da phpBB 2.0.x a phpBB Olympus viene rilasciato insieme alla beta5. Il nuovo template grafico Prosilver, validato XHTML, viene mostrato su phpbb.com il 19 marzo 2007, dopo circa una settimana di seri problemi al sito web. Il software viene sottoposto a un security audit, terminato nell'ottobre 2007, durante il quale vengono riscontrate alcune "preoccupazioni", non critiche, ma che sono comunque state corrette con la sesta (e non ultima) release candidate[5]. La RC7 esce solo due giorni dopo e risolve i problemi introdotti dalla RC6. Tuttavia lo script di aggiornamento automatico è stato sottoposto a un'ulteriore revisione post-RC7[6]. Il 9 dicembre 2007, in occasione del settimo compleanno del software e otto giorni dopo il rilascio della RC8, viene annunciata la versione 3.0.0, che è stata rilasciata in data 13 dicembre[7]. Nuove funzionalità phpBB3 Sono state aggiunte decine e decine di nuove funzionalità. Un assaggio di alcune, non necessariamente tra le più importanti, è riportato di seguito: • • • • • • • • • • • •

Inserimento allegati Creazione di un numero illimitato di sub-forum Creazione di BBCODE personalizzati Friend & foes (amici ed utenti ignorati) Coda di moderazione (post che richiedono l'approvazione di un moderatore prima di essere visualizzati) Segnalazione di post o topic ai moderatori Avvertimenti e feedback sugli utenti da parte dei moderatori Ban temporaneo per gli utenti Segnalibri per i topic Bozze per l'inserimento di post Sistema di permessi molto più complesso e flessibile Possibilità per gli utenti di chiudere i topic di cui sono autori

Il pannello di controllo utente, il pannello di controllo moderatori ed il pannello di amministrazione inoltre sono stati completamente ridisegnati, rendendoli più flessibili e moderni. Questo elenco, assolutamente incompleto, non rende l'idea dell'enorme salto di qualità effettuato dal software tra la versione 2.0 e 3.0. Sul sito ufficiale è disponibile un elenco non esaustivo, ma molto più completo. Vedere la sezione


phpBB

63

"Collegamenti esterni". Stato del rilascio • • • • • • • • • • • • • •

Il 17 giugno 2006 è stata rilasciata la versione 3.0 Beta 1 Il 12 agosto 2006 è stata rilasciata la versione 3.0 Beta 2 Il 12 novembre 2006 è stata rilasciata la versione 3.0 Beta 3 Il 27 novembre 2006 è stata rilasciata la versione 3.0 Beta 4 Il 28 gennaio 2007 è stata rilasciata la versione 3.0 Beta 5 Il 20 maggio 2007 è stata rilasciata la versione 3.0.RC1 Il 24 giugno 2007 è stata rilasciata la versione 3.0.RC2 L'8 luglio 2007 è stata rilasciata la versione 3.0.RC3 Il 28 luglio 2007 è stata rilasciata la versione 3.0.RC4 Il 24 agosto 2007 è stata rilasciata la versione 3.0.RC5 Il 13 ottobre 2007 è stata rilasciata la versione 3.0.RC6 Il 15 ottobre 2007 è stata rilasciata la versione 3.0.RC7 Il 1º dicembre 2007 è stata rilasciate la versione 3.0.RC8 Il 13 dicembre 2007 è stata rilasciata la versione 3.0.0

• • • • • • • • • • •

Il 7 aprile 2008 è stata rilasciata la versione 3.0.1 Il 10 luglio 2008 è stata rilasciata la versione 3.0.2 Il 12 novembre 2008 è stata rilasciata la versione 3.0.3 Il 12 dicembre 2008 è stata rilasciata la versione 3.0.4 Il 31 maggio 2009 è stata rilasciata la versione 3.0.5 Il 17 novembre 2009 è stata rilasciata la versione 3.0.6 Il 28 febbraio 2010 è stata rilasciata la versione 3.0.7 Il 6 marzo 2010 è stata rilasciata la versione 3.0.7-PL1 Il 20 novembre 2010 è stata rilasciata la versione 3.0.8 Il 10 luglio 2011 è stata rilasciata la versione 3.0.9 Il 2 gennaio 2012 è stata rilasciata la versione 3.0.10

Note [1] [2] [3] [4] [5] [6] [7]

http:/ / www. phpbb. com/ http:/ / forums. devshed. com/ showthread. php?threadid=4914 http:/ / www. phpbb. com/ community/ viewtopic. php?f=14& t=772285 http:/ / www. phpbb. com/ community/ viewtopic. php?f=14& t=256072 http:/ / www. phpbb. com/ community/ viewtopic. php?f=14& t=584826 http:/ / www. phpbb. com/ community/ viewtopic. php?f=14& t=585093 Happy Release Birthday (http:/ / www. phpbb. com/ community/ viewtopic. php?f=14& t=611789)


phpBB

64

Altri progetti •

Wikimedia Commons contiene file multimediali: http://commons.wikimedia.org/wiki/PhpBB

Collegamenti esterni Risorse ufficiali • (EN) phpBB.com (http://www.phpbb.com/) - sito ufficiale internazionale • (EN) phpBB Development Area (http://area51.phpbb.com/) - sito ufficiale dedicato e gestito dagli sviluppatori • (EN) Compare with other forum solutions (http://www.phpbb.com/about/features/compare.php) - confronto con altre piattaforme, con elenco quasi completo delle funzionalità • (EN) Compare with phpBB 2 (http://www.phpbb.com/about/features/) • (EN) phpBB su SourceForge.net (http://www.sourceforge.net/projects/phpbb/) • (EN) #phpbb (irc://irc.freenode.net/phpbb) - canale di supporto per phpBB su Freenode • (EN) #phpbbmod (irc://irc.freenode.net/phpbbmod) - canale di supporto a phpBB per sviluppatori di MODifiche su Freenode • (IT) phpBBItalia.net (http://www.phpbbitalia.net/) - sito di supporto ufficiale italiano phpBB, con un vasto archivio di MODs, stili e traduzioni sviluppate dallo staff e dai suoi utenti, tra cui quella di phpbb3 Risorse non ufficiali • (EN) phpBBHacks.com (http://www.phpbbhacks.com/) - sito di supporto per modifiche al codice • (EN) phpBB-SEO.com (http://www.phpbb-seo.com/) - ottimizzazione per i motori di ricerca di phpBB. mods & premodded • (IT) phpBB-SEO.it (http://www.phpbb-seo.it/) - supporto italiano per phpBB SEO • (EN) Icy Phoenix è una premodded per phpBB (http://www.icyphoenix.com) - sito ufficiale • (EN) Portal XL è una premodded per phpBB (http://www.portalxl.nl/) ha rilasciato due versioni la plain (versione base) e la premod (versione moddata con oltre 80 mods) - sito ufficiale • Supporto ufficiale italiano ad Icy Phoenix (http://www.icyphoenix.it) • Portal XL è una premodded per phpBB (http://www.portalxl.eu/), ha rilasciato due versioni la plain (versione base) e la premod (versione moddata con oltre 80 mods) - sito ufficiale italiano Development 3.0 "Olympus" • (EN) phpBB.com Development (http://www.phpbb.com/development/)


PHPNuke

65

PHPNuke PHPNuke Sviluppatore Ultima versione

Francisco Burzi 8.2.4 (2011)

Sistema operativo Multipiattaforma Linguaggio

PHP

Genere

CMS

Licenza

GNU General Public License (Licenza chiusa)

Sito web

http:/ / www. phpnuke. org

PHPNuke è un software di Content Management System (CMS) per siti web dinamici. Scritto interamente in PHP e coadiuvato da MySQL per la gestione del database, è stato uno dei primi software di questa categoria. È distribuito con licenza GNU General Public License. L'idea nasce nel 2000 da una cerchia ristretta di appassionati, trasformatasi in pochi anni in una vasta comunità  che lavora assiduamente al progetto. L'ultima versione rilasciata, la versione 8.2, è tornata ad essere interamente gratuita. La versione 8.1 era stata rilasciata a pagamento, ma la licenza GNU consentiva di ridistribuirla gratuitamente una volta acquistata. Ora tutte le versioni sono gratuite.

Requisiti Installazione remota Requisiti minimi del ServerWeb: • PHP 4.3.0; • MySQL 3.22; • Server Linux con 10MB di spazio sul disco: spazio richiesto per l'installazione base. L'aggiunta di addons o template comporterà  un aumento dello spazio utilizzato sia sull'hardisk che sul database; Requisiti consigliati del ServerWeb: • PHP 5.3.2; • MySQL 4.1 (versione raccomandata) o successive; • Server Linux con 100MB di spazio sul disco: spazio richiesto per installazione base ed eventuali addons o template aggiuntivi;


PHPNuke

Installazione locale Requisiti consigliati: • Sistema operativo: Windows, Linux, Unix; • Pacchetto AMP (Apache MySQL PHP): consigliato EasyPHP in ambiente Windows, LAMP in ambiente Linux; • Spazio sul disco 80MB: spazio richiesto per l'installazione base ed eventuali addons o template aggiuntivi.

Caratteristiche PHP-Nuke nella versione standard offre all'utente le seguenti funzioni: • Gestione degli Utenti: PHP-Nuke permette di gestire gli utenti registrati e da  loro la possibilità  di interagire all'interno del sito tramite uno strumento di messaggistica istantanea; • Ricerca all'interno del sito semplice e veloce grazie all'aggiunta di un motore di ricerca interno; • Area Download gestibile con 3 diversi tipi di livelli di sicurezza (Tutti, Solo Iscritti e Amministratori); • Possibilità  di un forum all'interno del sito con motore di ricerca interamente dedicato; • Gestione di Banner associati ad uno o più clienti tramite AdServer interno; • Area FAQ; • Area Statistiche; • • • • • •

Area TOP: in quest'area è possibile visualizzare i contenuti più popolari nel sito; Estensibilità  attraverso Moduli personalizzabili; Gestione degli HTTP Referrer; Look&Feel disaccoppiato dalla logica, ogni utente può scegliere quale tema utilizzare tra quelli disponibili; Gestione di RSS/RDF per l'export delle news; Gestione Newsletter.

Struttura del CMS La struttura del CMS è basata sull'utilizzo di blocchi e moduli: I blocchi riportano delle funzioni che si ripetono in tutte le pagine del sito e ne esistono di due tipi: • di sistema sono dei blocchi presenti in numero fisso ed hanno un comportamento predefinito. • utente sono dei blocchi personalizzabili liberamente dall'utente I moduli sono il cuore della pagina stessa. Ogni pagina ha il suo modulo con la rispettiva funzione (es. modulo news o modulo search) e l'amministratore può scegliere un qualsiasi modulo come pagina principale. La struttura di una pagina di PHPNuke è composta da 3 colonne. Nella colonna centrale sono presenti i moduli, nelle 2 colonne laterali sono presenti i blocchi. Dalla versione 6.x i blocchi possono essere aggiunti anche alla colonna centrale del sito, scegliendo la posizione top o bottom. Oltre alle 3 colonne principali vi è la presenza di un Header (testata) e un Footer (Fondo pagina).

66


PHPNuke

Struttura cartelle PhpNuke è essenzialmente composto da due cartelle.La prima, denominata "sql", contiene il database del sito.La seconda cartella, "html", contiene tutti i file del sito. Di seguito una descrizione dei file e delle sottocartelle contenute in essa: File • index.php: è la pagina iniziale del sito. • mainfile.php: effettua dei controlli sulla versione del PHP e sul database. Controlla inoltre se l'utente è registrato al sito. • admin.php: rimanda all'amministrazione del sito • backend.php: gestisce l'output delle notizie eventualmente prelevate da altri siti • config.php :questo è il file di configurazione di PHPNuke, contiene le impostazioni necessarie per dialogare con il database • footer.php: gestisce la parte inferiore della pagina caricata(footer o pie' di pagina) • header.php:gestisce la parte superiore della pagina caricata(header o intestazione) • robots.txt: contiene una serie di istruzioni per i motori di ricerca Cartelle • • • • • •

Blocks: contiene tutti i blocchi inclusi in PHP Nuke Images:contiene tutte le immagini del sito include: contiene frammenti di codice che vengono integrati quando occorre nelle pagine del sito Language: tutti i file di traduzione di PHPNuke sono contenuti in questa cartella Modules: contiene tutti i moduli Themes: contiene tutti temi grafici del sito

Backoffice: interfaccia di amministrazione Effettuando il login alla pagina admin.php è possibile accedere al pannello di amministrazione di PHPNuke. Le aree su cui l'utente può agire dipendono fortemente dal grado di registrazione dello stesso. Un superadmin ha l'accesso illimitato a tutte le aree del sito, un admin visualizzerà  solamente le aree su cui è abilitato a lavorare. Il pannello di amministrazione offre all'utente svariate funzioni, tra le più importanti ricordiamo: • • • •

Aggiungi Articolo: permette all'utente di aggiungere articoli alla sezione news; Backup DB: permette la creazione di una copia di backup del sito contenente struttura e contenuto del database; Blocchi: permette la gestione e il posizionamento all'interno del sito dei blocchi precedentemente creati; Download: permette la gestione dei download creando categorie e sottocategorie in cui è possibile aggiungere file. L'upload, per motivi di sicurezza è possibile farlo soltanto tramite link esterno alla risorsa da caricare. • HTTP referrers: consente di visualizzare gli ultimi accessi al sito; • Optimize DB: incrementa le prestazioni del database ottimizzando la struttura dei dati;

67


PHPNuke

Sicurezza PHPNuke è stato spesso criticato per i suoi problemi di sicurezza. Una delle falle più gravi riguarda l'uso della tecnica SQL injection. Per risolvere queste vulnerabilità, la comunità di PHPNuke offre supporto fornendo dei suggerimenti per correggere le falle oppure attraverso dei moduli creati per proteggere il cms da vulnerabilità ben precise.

Varianti Esistono alcune varianti di PHPNuke, chiamate forks, che migliorano PHPNuke aggiungendo nuove funzionalità e correggendo eventuali bug. I forks più popolari sono: • Dragonfly CMS: basato su PHP-Nuke 6.5, include un'applicazione chiamata Coppermine Photo gallery • LG-Nuke:basato su PHP-Nuke 7.6, fa uso di AJAX • Clean Nuke [1]: basato su PHP-Nuke 7.6/WL Nuke 1.1 sfrutta solo il motore del nuke, è flessibile ed è adatto per creare siti statici di contenuti gestibili online. • Nuke-Evolution: include molte correzioni sulla sicurezza e diversi moduli preinstallati. • PostNuke: basato su PHP-Nuke 5.0 • MegaNuke: basato sulla versione 7.4 di PHP-Nuke, corregge diverse falle di sicurezza e include più funzioni rispetto a PHP-Nuke.

Voci correlate • • • • •

Content management system Database PHP MySQL GNU General Public License

Collegamenti esterni • • • • •

PHP-Nuke.org [2] - sito ufficiale di PHPNuke LGNuke [3] - Sito di Assistenza Italiana con Moduli, plugin e sviluppo. Phpnuke Forum Italiano [4] - forum di assistenza italiana al PHPNuke guida PHPNuke [5] - dal sito MR.Webmaster guida PHPNuke [6] - dal sito HTML.it

Note [1] [2] [3] [4] [5] [6]

http:/ / www. cleanuke. it http:/ / phpnuke. org/ http:/ / www. lgnuke. org/ http:/ / www. tuttosoft. it/ http:/ / www. mrwebmaster. it/ cms/ guide/ guida-php-nuke_10/ http:/ / php. html. it/ guide/ leggi/ 81/ guida-php-nuke/

68


Lista di content management system

69

Lista di content management system Questa è una lista dei principali content management system (CMS) usati per organizzare e facilitare la creazione in collaborazione dei contenuti di un sito web. Alcuni di loro sono implementati separatamente in un ambiente detto content management framework, o framework di gestione dei contenuti.

SaaS (Software as a Service) Questa sezione riporta prodotti commerciali come software, hosting, e supporti di un singolo produttore. Nome

Piattaforma [1]

Licenza Ultima versione stabile

PHP/Apache/Postgres/

Si

4.0

Java

Si

4.6

PHP/Apache/MySQL

Si

1.2

Forbrains wcms

Web

Si

5.4

uCoz

n/a

No

n/a

OU Campus

Java

Si

8.9

asp, java, mysql

2.8

asp, jquery, mysql

1.0

Comunica Cms

LogicalDOC Cloud Dinamo Cms

[2]

SelfComposer CMS 980codex

[4]

[3]

Software proprietari Software commerciali installati e mantenuti su un opportuno web server.

.NET

ASP.NET

Name

Platform

Database

Ultima versione stabile

.NET CMS

.NET

XML

3.30 responsive

EPiServer

.NET

SQL Server, Oracle, SQL Express

5.2

Immediacy

.NET

SQL Server

6.0

Ingeniux

.NET

XML

6.0

Jadu

.NET

SQL Server

1.8

Sharepoint

.NET

SQL Server, SQL Express

4.0 (Sharepoint 2010)

Sitecore

.NET

SQL Server SQL Express, Oracle, My SQL, SQLite

6 (released in 2008)


Lista di content management system

70

Nome

Piattaforma

Database

Ultima versione stabile

Licenza

Data rilascio

.NET CMS

ASP.NET

XML

2.0 (Tarellus)

Free Open Source

2003

DotNetNuke

ASP.NET

SQL Server

5.1.4

AxCMS.net

ASP.NET

SQL Server SQL Express

9.0

2009

Telligent Community

ASP.NET

SQL Server

5.0

2009-06-29

Ektron

ASP.NET

SQL Server

7.6

Kentico CMS

ASP.NET

SQL Server

6.0

Elabora CMS

ASP.NET

SQL Server

2.0

Sense/Net 6.0

ASP.NET

SQL Server

6.0 Beta 4

Sitefinity CMS

ASP.NET

Oracle, SQL Server, MySQL

3.6

Composite

ASP.NET

SQL Server

3.0

Proprietaria

enVision

ASP.NET

Oracle, SQL Server, MySQL

6.2

Proprietaria

ASP.NET

SQL Server

4.0

Proprietaria

Spin&Go

[5]

2011-10-10

GNU General Public License

2009-07-24

2099-09-07

Java Nome

Piattaforma

Database

Ultima versione stabile

BACKBASE Portal

Java

Oracle, MySQL, Microsoft SQL Server uses JSR-170-compliant content repository

4.0

Java

SQL Server

2010

Blue Light CMS

Java

Oracle, MySQL

1.1

Cascade Server

Java

Oracle, MySQL, SQL Server

5.7

CoreMedia CMS

Java

Oracle, SQL Server, DB2, PostgreSQL

2008

Crown SiteBuilder

Java

Oracle, SQL Server, DB2 uses EMC Documentum content repository

6.1

Day CommuniquĂŠ WCM

Java

Non richiede DB supporta Oracle, SQL Server, DB2, MySQL usa JSR-170-compliant content repository

5.2.2

Escenic

Java

Oracle database, MySQL

5.4

FatWire Content Server

Java

Oracle, SQL Server, DB2

7.5

Jalios JCMS

Java

Built-in: Apache Derby, Oracle, MySQL, PostgreSQL, SQL Server

6.1

LogicalDOC

Java

Oracle, SQL Server, PostgreSQL

4.6

OU Campus

Java

include Sybase Adaptive Server Enterprise database

8.9

TerminalFour Site Manager

Java, J2EE

Oracle, MySQL, SQL Server

6.0

Traction TeamPage

Java

Built-in

4.1

Vignette

J2EE

Oracle, SQL Server, DB2....ecc.

7.6

besite

[6]


Lista di content management system

71

Java Bundle Nome

Piattaforma

Lotus WCMS

Database

Ultima versione stabile

J2EE or Lotus Domino Oracle, SQL Server, DB2, Lotus Domino

Refresh Software

Java, J2EE, XML

6.1

Oracle, SQL Server

v7.2

PHP Nome

Piattaforma

Database

Ultima versione stabile

[SKS]

PHP

MySQL

1.0

Nereo NX

PHP

MySQL

6.2

Accrisoft Freedom

PHP

MySQL

6.2

Amaxus

PHP

MySQL or Microsoft SQL Server

4.3

Brunner CMS

PHP

MySQL

4.0.1.111

ExpressionEngine

PHP

MySQL

1.6.8

[Enterprise Portal System]

PHP

MySQL

5.3

Jumper 2.0

PHP

MySQL

2.0.1.3

Site Foundry

PHP

MySQL

2.3

BlueHighway

PHP

MySQL

2.2

Webiny

PHP

MySQL

2.0b

Software libero e open source Questa è una lista di software libero e open-source installabile e gestibile su un opportuno server web.

Java Nome

Piattaforma

RDBMS

ORM-DBMS

LogicalDOC

Java

MySQL, Oracle, SQL Server, Informix

Entando

Java AGILE

OpenCms

Altri Database

Ultima versione stabile

Licenza

Data di rilascio

PostgreSQL

4.6

GPL & Commercial

2009-10-12

MySQL, Oracle, HSQLDB

PostgreSQL

2.4.0.1

GPL

2011-12-07

Java

HSQL, MySQL, Oracle, SQL Server, DB2

PostgreSQL

7.5.1

LGPL

2009-10-01

Liferay

Java

HSQLDB, MySQL, Oracle, SQL Server, Apache Derby, DB2, Informix, InterBase, JDataStore

PostgreSQL

SAP, Sybase

5.2

MIT

2009-02-03

Fedora

Java

MySQL, Oracle

PostgreSQL

Mulgara (MPTSTore RDF Semantic Triplestore)

3.1

Apache License

dotCMS

Java

MySQL, Oracle, MSSQL

PostgreSQL

1.7

GNU GPL v2 2009-03-03


Lista di content management system

72

Nuxeo EP

Java

MySQL, Oracle, SQL Server

PostgreSQL

5.4

LGPL

2010-11-09

Alfresco

Java

MySQL, Oracle, SQL Server, Informix

PostgreSQL

3.3

GPL & Commercial

2010-04-13

Magnolia

Java

JCR

4.1

GPL & Commercial

2009-06-15

Hippo

Java

JCR

7.0.1

Apache License

2009-01-26

Calenco

Java

JCR

1.0

AGPL

2009-03-15

Java Packages / Bundle Nome

Piattaforma

Database Ultima versione stabile

Apache Lenya Java, XML, Apache Cocoon Daisy

Java, XML, Apache Cocoon

MySQL

Licenza

Data di rilascio

2.0

Apache License

2.1

Apache License

2008-03-09

Perl Nome

Piattaforma

Database

Ultima versione stabile

Licenza

Data di rilascio

blosxom

Perl

Flat-file database

2.0

MIT

Bricolage

Perl

MySQL, PostgreSQL

1.10.7

BSD

2009-03-12

MojoMojo

Perl with either mod perl or FastCGI

Any, via the DBIx::Class ORM

0.999029

Perl-style-license

2009-05-10

Movable Type

Perl, mod perl, FastCGI

MySQL, Microsoft SQL Server, Oracle, PostgreSQL, SQLite

4.23

GPL

2008-12-03

TWiki

Perl

Plain files (under version control)

4.3.2

GPL

2009-09-02

Scoop

Perl on mod perl

MySQL

1.1.8

GPL

Slash

Perl on mod perl

MySQL

WebGUI

Perl on mod perl

MySQL

GPL 7.6.31

GPL

PHP Nome

Piattaforma

Database

Ultima versione stabile

Licenza

Data di rilascio

AdaptCMS Lite

PHP

MySQL

1.4

GPL

2009-01-13

ATutor

PHP

MySQL

1.6.3

GPL

2009-07-23

b2evolution

PHP

MySQL

3.3.1

GPL

2009-08-08

BLOG:CMS

PHP

MySQL

4.2.1

GPL

2008-01-15

CivicSpace

PHP

MySQL

0.8.3

GPL

2005-05-01

Clean Nuke

PHP

MySQL

1.6

GPL

2010-03-10

CMS Made Simple

PHP

MySQL

1.6.5

GPL

2009-09-05


Lista di content management system

73

Concrete5

PHP

MySQL

5.3.2

MIT

2009-07-23

Contenido

PHP

MySQL

4.8.12

MIT

2009-04-24

Croky

PHP

MySQL

1.1

Creative Commons

2011-06-18

Dotclear

PHP

MySQL, PostgreSQL

2.1.5

GPL

2009-02-05

Drupal

PHP

MySQL, PostgreSQL

7.12

GPL

2012-02-01

eFront

PHP

MySQL

3.5.5

CPAL

2009-11-22

e107

PHP

MySQL

0.716

CPAL

2009-09-05

Exponent CMS

PHP

MySQL

0.96.6 GA

GPL

2009-02-13

eZ Publish

PHP5

MySQL, PostgreSQL, Oracle, Microsoft SQL Server

4.2.0

GPL

2009-09-29 (en)

Flatnuke

PHP

MySQL, Nessuno

2.7.2

GPL

2009-05-04

Frog CMS

PHP5

MySQL, SQLite

0.9.5

GPL

2009-04-26

Gamboo Web Suite

PHP5

MySQL

3.0

unknown

2009-08-10

GCMS

PHP

MySQL

1.2b

GPL

2008-09

GT PWOS 1

PHP

MySQL

1

GPL/Commercial

2010-02

ImpressCMS

PHP

MySQL

1.1.2

GPL

2009-03-09

Jaws

PHP

PostgreSQL, MySQL, Oracle, Firebird, InterBase, Microsoft SQL Server, SQLite

0.8.9

LGPL, GPL

2009-01-30

Joomla!

PHP

MySQL

2.5.1

GPL

2011-07-19

Habari

PHP

MySQL, PostgreSQL (Currently not supported), SQLite

0.6.2

Apache License

2009-05-22

KnowledgeTree Document Management System

PHP

MySQL

3.7.0

GPL & Commercial

2009-12-02 (en)

LG-Nuke

PHP

MySQL

1.4.1

GPL

2009-08-07

Lifetype

PHP

MySQL

1.2.10

GPL

2010-01-28

Lyceum

PHP

MySQL

1.0.2

GPL

2008-06-04

Mambo

PHP

MySQL

4.6.5

GPL

2008-06-01

MaxDev Pro

PHP

MySQL

1.0821

GPL

2008-01-30

MediaWiki

PHP

MySQL, PostgreSQL, DB2

1.15.1

GPL

2009-07-13

Merlintalk

PHP

MySQL

2.6

GPL

2008-06-26

MiaCMS

PHP

MySQL

4.6.5

GPL

2008-09-11

Midgard CMS

PHP (Midgard framework)

MySQL

8.09.5

LGPL

2009-04-27

MODx

PHP

MySQL

1.0.0

GPL

2009-07-31

MySource Matrix (Squiz)

PHP

PostgreSQL, MySQL, Oracle

3.20.1

GPL or warranted version from Squiz

2009-03-23

Nucleus CMS

PHP

MySQL

3.40

GPL

2009-02-15

OneCMS

PHP

MySQL

2.5

GPL

2008-01-15

Opus

PHP

MySQL

2.27

GPL

2008-07-06

PHP-Fusion

PHP

MySQL

7.02.03

AGPL

2011-06-20

PHP-Nuke

PHP

MySQL

8.1

GPL

2009-05-22


Lista di content management system

74

PHP-Nuke Evolution

PHP

MySQL

2.0.7

GPL

2008-06-09

PhPeace

PHP

MySQL

2.3.0

GPL

2008-09-08

PHPSlash

PHP

0.8.1.1

GPL

2006-01-15

Phpwcms

PHP

MySQL

1.4.2 (r345)

GPL

2009-07-30

phpWebSite

PHP

MySQL, PostgreSQL

1.6.3

LGPL

2009-06-17

Portal XL

PHP

MySQL

5.0.2

GPL

2009-08-07

Qredd

PHP

MySQL

1.0.0 RC4

GPL v.2

2009-10-03 (en)

RavenNuke CMS

PHP

MySQL

2.40.00

GPL

2009-09-15 (en)

SilverStripe

PHP

MySQL

2.3.3

BSD

2009-08-03

Situx

PHP

MySQL

3.3.1

GNU/GPL 2

2011-11-04

SPIP

PHP

MySQL, PostgreSQL, SQLite

2.0.4

GPL

2009-02-23

Syntax Desktop

PHP

MySQL

2.7

GNU/GPL 2

2008-07-09

TangoCMS

PHP

MySQL

2.3.2

GNU/GPL 2

2009-08-04

Textpattern

PHP

MySQL

4.2.0

GPL

2009-08-28

TikiWiki CMS/Groupware

PHP

MySQL

3.4

LGPL

2010-01-14 (en)

Tribiq CMS

PHP

MySQL

5.0.9

GPL

2008-10-01

TYPO3

PHP

MySQL, Oracle, PostgreSQL

4.2.8

GPL

2009-07-03

PHP 5.2.0+

MySQL 4.1+

2.9.1

LGPL

2010-08-09

Website Baker

PHP

MySQL

2.8.0

GPL

2009-08-15

whCMS

PHP

MySQL

0.103

GPL

2008-08-10

WordPress

PHP

MySQL

3.4

GPL

2012-06-13

Xaraya

PHP

MySQL, PostgreSQL

1.1.5

GPL

2008-11-25

TYPOlight/Contao

[7]

File / Flat file Nome

Piattaforma

Database

Ultima versione stabile

Licenza

Data di rilascio

CMSimple

PHP

Flat-file database

3.2

Affero

2008-06-20

Dokuwiki

PHP

Flat-file database

2009-02-14

GPL

2009-02-14

FlatNuke

PHP

Flat-file database

2.7.2

GPL

2009-05-04

GuppY

PHP

Flat-file database

4.6.10

GPL

2009-02-14

Lanius CMS

PHP

Flat-file database, Frontbase, Gladius DB, MaxDB, miniSQL, MSSQL, MSSQL Pro, MySQL, MySQLi, MySQLt, PostgresSQL, PostgresSQL64, PostgresSQL7, SqLite, Sybase

0.5.2

GPL

2009-10-22

New-CMS

PHP

Flat-file database

1.6.4

GPL

2009-10-29

phpCMS

PHP

Flat-file database

1.2.2

GPL

2006-01-19

phpWiki

PHP

Flat-file database, MySQL, PostgreSQL

GPL

2007-07-14


Lista di content management system

75

pluck

PHP

Flat-file database

4.6.3

GPL

2009-06-06

PmWiki

PHP

Flat-file database

2.2.0

GPL

2009-01-18

Quick.Cms.Lite

PHP

Flat-file database

2.0

Creative Commons Attribution 2.5

2008-05-13

PivotX

PHP

Flat-file database

1.40.7

GPL

2009-03-22

Python Nome

Piattaforma

Database

Ultima versione stabile Licenza Data di rilascio

Django

Python

PostgreSQL, MySQL, SQLite 3 and Oracle

1.1

BSD

2009-07-29

MoinMoin

Python

Flat-file database

1.8.5

GPL

2009-9-11

Nuxeo CPS

Python

Zope

3.4.3

GPL

Plone

Python

MySQL, PostgreSQL, SQLite, Oracle, ZODB, via Zope

4.1.4

GPL

2012-02-27

PyLucid

Python

MySQL, PostgreSQL, SQLite

0.8.0

GPL

2008-02-14

Ruby on Rails Nome

Piattaforma

Database

Ultima versione stabile Licenza Data di rilascio

Radiant Ruby on Rails MySQL, PostgreSQL, SQLite Typo

0.8.1

MIT

2009-09-05

5.3

MIT

2009-03-27

0.9.4.3

MIT

2009-06-04

Ruby on Rails MySQL, PostgreSQL, SQLite

Refinery Ruby on Rails MySQL, PostgreSQL, SQLite

Altri Nome

Piattaforma

Database

Ultima versione Licenza stabile

Data di rilascio

DotNetNuke

ASP.NET

SQL Server

5.1.4

BSD

2008-12-24

mojoPortal

ASP.NET

SQL Server, MySQL, PostgreSQL, SQLite, Firebird

2.3.0.8

CPL

2009-06-17

Umbraco

ASP.NET

SQL Server, MySQL

4.7.1.1

MIT

2012-01-26

Xaraya

PHP with XHTML/XML/XSLT

MySQL, PostgreSQL, SQLite (ADOdb) and SQL Server (Creole)

1.1.3

GPL

2008-01-03

XOOPS

PHP + Smarty

MySQL

2.3.2b

GPL

2008-09-22

Serendipity

PHP + Smarty

MySQL, PostgreSQL, MySQLi, SQLite

1.4.1

BSD

2009-01-16

Zikula

PHP + Smarty

MySQL, Oracle PostGres, SQL Server

1.0.2

LGPL

2008-08-10

OpenACS

Tcl AOLserver

PostgreSQL/Oracle

5.1.5

GPL

2008-03-22

Zenukers CMS Open Source

ASP

MySQL/Access

1.0

GPL

2011-05-23

Neme-sys

ASP

MySQL

1.5.3.2

GPL

2008-01-15


Lista di content management system

Voci correlate • • • • • • •

CMS LMS ECM Wiki Web 2.0 Architettura telematica Gestori di Forum

Collegamenti esterni • • • • •

La-grange [8] Sourceforge:Elenco di Gestori di contenuti [9] Dmoz: Elenco di CMS [10] Elenco di CMS Open Source [11] Elenco ragionato di Cms gratuiti Open Source [12]

Note [1] http:/ / www. sinapto. com/ comunica [2] http:/ / www. dinamocms. com/ [3] http:/ / www. selfcomposer. com/ [4] http:/ / www. 980codex. it/ [5] http:/ / www. engitel. com/ [6] http:/ / www. bemils. com/ it/ gestisci-siti_sc_8. html [7] http:/ / www. contao. org [8] http:/ / www. la-grange. net/ cms#intro [9] http:/ / sourceforge. net/ softwaremap/ trove_list. php?form_cat=92 [10] http:/ / dmoz. org/ Computers/ Software/ Internet/ Site_Management/ Content_Management/ [11] http:/ / www. opensourcecms. com/ index. php [12] http:/ / www. webmasterpoint. org/ programmazione/ programmazione/ come_fare/ migliore-cms-programma-per-creare-sito-web-raccolta. html

76


77

i software a pagamento vBulletin

vBulletin

Forum ufficiale del vBulletin su versione 4.0.0 Gold Sviluppatore Ultima versione

vBulletin Solution 4.1.8 (14 novembre 2011)

Sistema operativo

Multipiattaforma

Genere

Forum software

Licenza

Proprietaria (Licenza chiusa)

Sito web

www.vbulletin.com

[1]

vBulletin (abbreviato come vB) è un sistema commerciale di gestione di forum, prodotto dalla Jelsoft Enterprises, scritto in PHP e basato su database MySQL. È una delle piattaforme più diffuse; in ambito commerciale trova come principale rivale IPB, mentre in ambito gratuito trovano molta diffusione phpBB, FluxBB, e SMF. vBulletin, nella sua prima incarnazione, era una riscrittura del software forum UBB in formato PHP e MySQL. Solamente con la seconda versione, vBulletin ottenne funzioni innovative e un buon successo.

v4.0 La versione 4 si differenzia dalle precedenti per il fatto che non offre più solo una semplice piattaforma forum, ma integra anche funzionalità di Content management system (CMS) a tutti gli effetti, e per questo viene venduto in due licenze diverse: Publishing Suite e Forum Licenze. La differenza fra queste due versioni sta nel fatto che la prima comprende, oltre alla piattaforma forum, la piattaforma CMS e il Blog. Nella versione 4 è stata integrata (e migliorata) la ricerca nel forum, nei blog, nei commenti e nei prodotti. È migliorato il sistema dei template per permettere agli amministratori una facile modifica e sono stati aggiunti dei controlli per facilitare il posizionamento dei banner pubblicitari; è stato anche modificato il sistema degli allegati e sono stati aggiunti elementi del SEO come gli url amichevoli. La versione Gold è stata rilasciata il 21 dicembre 2009 al prezzo di €190 per la Publishing Suite e di €135 per la sola licenza Forum.


vBulletin

v3.8 vBulletin 3.8.x ha apportato alcune modifiche sostanziali nella struttura. L'inserimento dei gruppi sociali, dei link per i social network e dei profili maggiormente completi ha attribuito maggiore valore a questo tipo di CMS rendendolo maggiormente completo sotto ogni aspetto. La possibilità di tracciare la modifica dei post è stata un'innovazione ben gradita dagli utenti. Ogni utente può venire a conoscenza pure degli altri utenti che visitano il suo profilo. Inoltre sono stati inseriti altri metodi antispam durante la registrazione. Oltre il semplice Captcha sono stati inseriti il ReCaptcha e la domanda con risposta. L'ultima versione è la 3.8.7 Patch Level 2.

v3.7 La versione 3.7.0 Gold si presenta con molte opzioni in più e con un profilo totalmente modificato. Con la versione 3.6.8, e comunque con la più stabile 3.7.0, ogni utente ha a disposizione un proprio blog.

v3.6 vBulletin 3.6 aggiunge alcune nuove caratteristiche rispetto alla versione 3.5, come il "Multi-Quote", il "Sistema di Infrazioni", un Poster RSS e il supporto al Podcasting, oltre ad un buon numero di funzioni minori come una maggiore importanza delle funzioni AJAX o il ridimensionamento automatico delle immagini di eccessive dimensioni immesse nel forum. La prima versione finale di vBulletin 3.6, ovvero la 3.6.0, è stata rilasciata il 3 agosto 2006.

v3.5 vBulletin 3.5 corregge alcuni difetti della versione 3.0. Questa è una piccola lista dei cambiamenti apportati: • Un sistema di plugin, così da permettere di aggiungere funzionalità al software senza intaccare il codice del software stesso. • Funzionalità di modifica AJAX (Asynchronous Javascript and XML) per i titoli di thread e contenuti dei messaggi. • Funzioni di moderazione migliorate, con la possibilità dei moderatori del forum di gestire discussioni e messaggi del loro forum senza effettuare passaggi intermediari. • Un sistema di API (chiamato "data managers") per permettere un'integrazione semplificata con software di terze parti. • Comparazione e storia dei Template, con possibilità per gli amministratori di conservare una versione specifica di un template che può essere comparata a qualsiasi altro Template. • Un wrapper MySQLi che aggiunge il supporto di tale funzione anche con MySQL 4.1.

v3.0 Inizialmente la versione 3.0 doveva essere un ampliamento della 2.x, che avrebbe migliorato l'usabilità e la velocità del forum. Ma alla fine è divenuto una riscrittura completa, portando molte novità rispetto alla seconda versione: • Template scritti in XHTML e CSS. • Supporto Multilingua completo. • Editor WYSIWYG per la scrittura dei messaggi. • Una funzione <opzionale> che permette agli amministratori di gestire delle sottoscrizioni pagate per alcune feature del sito. • Opzioni di visualizzazione delle discussioni: lineare (visione classica), threaded (con struttura ad albero), e ibrida (una combinazione di entrambe).

78


vBulletin

v2.x vBulletin 2, la prima versione "fortunata" di vBulletin, apportava queste novità rispetto a vBulletin 1: • • • • •

Messaggi Privati, per comunicazioni dirette fra utenti. Possibilità di inserire sondaggi nelle discussioni. Illimitate sottosezioni, così da non avere problemi nella "ramificazione" del forum. Avatar Utente. Un Pannello di Controllo utente che permette a ciascun utente le proprie preferenze riguardo alle opzioni del forum.

v1.x e vBulletin Lite vBulletin 1 come anticipato permetteva le stesse features di UBB.classic. Fu uno dei primi sistemi scritti in PHP e MySQL con tali feature. vBulletin Lite era una versione semplificata di vBulletin 1.x series che permetteva a potenziali clienti di testare la compatibilità del loro server con vBulletin. Questa versione è stata dismessa dopo il rilascio di vBulletin 2 a causa di problemi di sicurezza e di età.

Collegamenti esterni • (EN) Sito ufficiale [2] • (EN) Sito ufficiale per plugin [3]

Note [1] http:/ / www. vbulletin. com [2] http:/ / www. vbulletin. com/ [3] http:/ / www. vbulletin. org/

79


Fonti e autori delle voci

Fonti e autori delle voci Content management system  Fonte: http://it.wikipedia.org/w/index.php?oldid=50488999  Autori:: .anaconda, 4v4l0n42, Abisys, Aethelfirth, Airon90, Akash, Alesmuc, Alessandro nadalin, Alexamici, Amux, AndreONEz, Avesan, Brasacchio, Brownout, Bultro, C1p8, Chronos92, Civvì, David ciamberlano, Davide Oliva, Demart81, Dg, Dommac, Drugonot, ELBati, EdoM, Elbloggers, Etrosh, F l a n k e r, Fedeg93, Franganghi, Franseo, Frieda, GLf, Gabrimonfa, Gac, Gacio, Galessandroni, Giorvi, Gluck74, Gpex, Guam, Guidomac, Hamcha, Hellis, Jacopo, Jalo, Joram, Kalzakath, KingFanel, L736E, Lab13, Lamonia, Lanciano, Lucanonnis, Luckyluciano, Luisa, Lusum, M7, MainFrame, Manojlo, Marcok, Masili giuseppe, Massimozanardi, Matwu, Mauromereu, Melkor II, Midellaq, Mighty Gorgon, Moongateclimber, Mtt, Nanni76, Necosi, Nettuno43, No2, Normac, Nost.ass, Olando, Panther, Pepsi, Philoz, Picce, Piercolone, Pil56, Potomak, RafaelMinuesa, Rbonazzo, Rojelio, Rutja76, Salvio, Sbaush, Scorp, Scorp`, Sentruper, Sesquipedale, Shivanarayana, Smallpox, Snowdog, Square87, Stemby, Tanarus, Tener, Teseoservice, Tommaso Ferrara, Valepert, Valkiro, Websito, Xdavid, 251 Modifiche anonime Software  Fonte: http://it.wikipedia.org/w/index.php?oldid=50327255  Autori:: %Pier%, .anaconda, 57.78.9.xxx, A7N8X, Aka-Red, Alec, Alfio, Alfio66, Alfreddo, Alleborgo, Amiltonit, Ancelli, Andrebask, Argento, ArtAttack, Ary29, Aushulz, Avesan, Azrael555, Barbaking, Blakwolf, Bob4, Brownout, Carlo.milanesi, Ciro07, ColdShine, Comune mortale, Djdomix, Dome, Dommac, Dr Zimbu, Eumolpa, Freepenguin, Freyr, Frieda, Frigotoni, Gac, Gacio, Gaetanogambilonghi, GiaGar, Gian Franco, Giannib, Gionnico, Guidomac, Hashar, Hce, Hellis, I'm a friend of "0+0=0", Ilario, LaseriumFloyd, Laurentius, Lornova, Luca78sv, Lucadideo, Lucas, Lucasilvia, Luisa, M7, MM, MapiVanPelt, Marcel Bergeret, Marietto2009, Mark91, Massimo Macconi, Mattiacrespi, Mauro Lanari, Melos, MikyT, Mizardellorsa, Moongateclimber, Nasosansoft, Neperiano, Nikai, No2, Orso della campagna, Phantomas, Pickblack, Pil56, R0tAbLe, Rael, Raffaespo, Roh, Rollopack, Salvatore Ingala, Sannita, Sassospicco, Senpai, Simòn, Skywolf, Snowdog, Stamsofer, Suisui, Tapion 91, Taueres, Timothy, Trevinci, Wikijens, 137 Modifiche anonime Software libero  Fonte: http://it.wikipedia.org/w/index.php?oldid=50542956  Autori:: %Pier%, Airon90, Aka-Red, Aleagle, Argento, Arturo.dicorinto, Aubrey, Avesan, Biasco, Bizzia, Catoblepa79, Ciampix, Davide, Dbiagioli, Demart81, Domenico De Felice, Eippol, Elbloggers, Estel, Fale, Fgiorgi, FiloSottile, Flea, Fradeve11, Freepenguin, Gim²y, Guam, Helios, Hellis, Icara, IngFrancesco, Iron Bishop, L'altro giocoliere, Lucabon, Lucas, Madaki, Marcok, Merlitti, Michele Bergadano, Nemo bis, Paroledipolvere, Peppo, Pequod76, Phauly, Pietrodn, Pil56, Podestà, Pracchia-78, RanZag, Resoli, RobertoITA, Sante Caserio, Senpai, Sirabder87, Ssspera, TheDRaKKaR, TheManu, Thebarald, Torredibabele, Valepert, Vituzzu, WilyD, Wizard, 73 Modifiche anonime PHP  Fonte: http://it.wikipedia.org/w/index.php?oldid=50778151  Autori:: .anaconda, .snoopy., 12-210-196-189.client.attbi.com, Abisys, Actarux, Alberto da Calvairate, Alecos71, Alescan, Alessandro Astarita, Alessiodipaola, Alfio, Amux, AnyFile, Archenzo, Arpyone, Ary29, Ask21, Auro, Avesan, Azullino, Balabiot, Beta16, Biopresto, Caccia di conoscenza, Camelia.boban, Chronos92, Claudio.M, Clovepower, Codas, Contezero, Demart81, Devon, Diablo, Djdomix, Djechelon, Drugonot, Dsmcg21, Elbloggers, Ettos, Eugesoft, Fain182, Fede Reghe, Fidech, Filnik, Frankthequeen, Freepenguin, Frieda, Fstab, G84, Gabriele79, Gabrielepx, Galessandroni, Garak, Genuzzu, Gianni T, Gionnico, Giovdi, Guaka, Guidomac, Guidoz, Hellis, Iaga, Ilario, Iron Bishop, Kiam, Laurentius, Lilja, LkMsWb, LoRdHaCk, LoStrangolatore, Lucagiaca, Lucas, Luisa, Luke94, M7, MIX, MaEr, Marcok, Massic80, Mastazi, Mauro742, Max Rebus, Moongateclimber, Mrtb, Nitya Dharma, No2, Noiz, Patafisik, Phantomas, Pickblack, Pigr8, Piracmone, Ppalli, Pr, Probid, Punkettaro, Qualc1, Raffaespo, Ramac, Rdocb, Rikky, Rinoworld, Rollopack, Salvorapi, Sandcreek, Sante Caserio, Sassospicco, SbiellONE, Sbisolo, Seics, Seveso, Sevy, Siggy, Simone, Snake79, Snowdog, Square87, Suisui, SuperAlberT, Taueres, The Polish, Torsolo, Totosl85, Ttan, Valepert, VincenzoX, Vulkano, Webguide, Wikit2006, Wikivideo, Wizard95, Xoen, 201 Modifiche anonime MySQL  Fonte: http://it.wikipedia.org/w/index.php?oldid=50778148  Autori:: .anaconda, 4ndr34, Abisys, Abyssadventurer, Airon90, Aka-Red, Ale-sandro, Alfo90, Alkalin, Alleborgo, Amux, Ask21, Avesan, Bob27, CavalloRazzo, Chpfeiffer, Cionfs, DanyUP, DonPaolo, Dread83, Dsmcg21, Elbloggers, Emme.pi.effe, Exorcist Z, Fale, Flea, Flyingstar16, Frack, Freepenguin, Frieda, Galessandroni, Gianluca Varisco, Gigaster, Gmaxia, Hashar, Hellis, Henrykus, Ignlig, Ilario, Iron Bishop, Iskander, Jacklab72, Lanciano, Laurentius, M7, Marco.tonchella, Marfio82, Mastazi, Maulattu, Maxgrante, Mbg, Mippo, Mkr77, Moloch981, Moongateclimber, Nanae, Nemo bis, Nihil, Orsogrigioita, Patrias, Pegasos2, Poweruser, Pr, Purodha, Qualc1, Raffaespo, Ramac, Ramatteo, Raysonho, Rollopack, Ryuujin, Salvatore Ingala, Sante Caserio, Sbisolo, Smart, Snowdog, Spinot, Suisui, SuperProf, Tomi, Valepert, Whiteillidan, metis02.abnamro.nl, pppfree166-90-bz.aknet.it, 101 Modifiche anonime GNU General Public License  Fonte: http://it.wikipedia.org/w/index.php?oldid=50724456  Autori:: .anaconda, Airon90, Aka-Red, Alescan, Alexamici, Alfio, Alleborgo, Aubrey, Balabiot, Codicorumus, Dardy, Davide, Dbiagioli, Death reaper92, DispAcc01, Elbloggers, Elcaracol, Eumolpo, Fale, Fazen, Figiu, Gelma, Gmilza, Ilahiislamcansuhukumleri, Incola, Iron Bishop, Jacklab72, Lilja, Lornova, Marco Plassio, Marius, Misterhahn, Oberto.a, Palnatoke, Paulox, Phantomas, Pigr8, Plinsky, Pot, Pracchia-78, Rdocb, Rikynoize, RobertoITA, Rpinto, SabrinaSteriti, Sante Caserio, Senpai, Soniafanny80, Squale.lis, Square87, Tomi, Twice25, Valepert, Vlk4r0, Yerul, knight.polito.it, 38 Modifiche anonime Open source  Fonte: http://it.wikipedia.org/w/index.php?oldid=50663229  Autori:: %Pier%, ...Angelita..., .anaconda, Abisys, Actarux, Airon90, Alfio, Alkalin, Amux, AnjaManix, Argento, Arturo.dicorinto, Ary29, AttoRenato, Aubrey, B3t, Balabiot, Balfabio, Balubino, BerserkerWelding, Bob4, Calabash, Calimbro, Cannarsi, ChemicalBit, Ciro07, Claudius18, D.tartari, Davide, DavideCrimi, Daĉjo, Dbiagioli, Dega180, DonPaolo, Eagleone, Elbloggers, Elitre, Etatoby, Fabio Vescarelli, Fidech, Francescost, Frankthequeen, Frieda, Gacio, Gawaine, GianoM, Giorgio, Gioscarab, Giovanni Bianco, Gmilza, Gnumarcoo, Guido Gonzato, Guidomac, Gvf, Hellis, Hill, Ilario, Ilbeppe, Ines, Iron Bishop, Jacopo, Jaqen, Kiado, Laurentius, Lornova, Luisa, Lupos, M7, MM, MaEr, Madaki, Marchack, Marchitelli, Marco Ciaramella, Marcok, Marius, Mark91, Markos1988, Mau db, Mikelima, Mion (riassegnato), Mizardellorsa, Moroboshi, Morph, Mtt, NardoilGagliardo, Nessuno, No2, Ostendali, Outer root, Paolosub, Paroledipolvere, Pavlo Shevelo, Phantomas, Phauly, Piracmone, Plinsky, Pracchia-78, Pspagnoletti, RIPPERO, Renato Caniatti, RobertoITA, Rollopack, Rpinto, Salvatore Ingala, Seics, Senet, Senpai, Senza nome.txt, Sesquipedale, Shivanarayana, Siggy, Snowdog, Sperimentatore, Swayer, Taueres, Tfederici, The Doc, Ticket 2010081310004741, Tomi, Turgon, Twice25, Valepert, Valhalla, Vituzzu, Wosp, Xeniun, Yerul, 155 Modifiche anonime WordPress  Fonte: http://it.wikipedia.org/w/index.php?oldid=50779328  Autori:: Abisys, Agostini Andrea, Alessio Ganci, Alexamici, Alleborgo, Amusarra, Andrea AndMore, Andreacannella, Antonio De Gregoris, Arturo84, Ary29, Asdf1234, Avesan, Balos, Blaumeer, Brenzotto, Brownout, Buscemi giuseppe, C1p8, ComputerXtreme, DoB, Dommac, Drugonot, Elbloggers, Freepenguin, Hidaba, Jaqen, KC1975, Kiuz, LoStrangolatore, Massimiliano Lincetto, Mr Cloud, Neminis, Nemoprincess, Next, Nickee, Nicksoft, No2, Phantomas, Piergiorgio Massari, Pil56, Polina Bilokonna, Ppalli, Rutja76, Shaitan, Tecnomiky, Themfromspace, Tiziano90, Xabiov, 63 Modifiche anonime Joomla!  Fonte: http://it.wikipedia.org/w/index.php?oldid=50778876  Autori:: %Pier%, Abisys, Acolleoni, Agostini Andrea, Airon90, Alessandrasia, Alessandro nadalin, Alex10, Alexander VIII, Alexred, Alfio, Amux, Andylong, Aracuano, Ary29, AttoRenato, Avesan, Biowep, Blefaro, Carlok, Cesarpe, Cinghie, Clamiax, Eberk89, Elbloggers, Ermanon, Ernesto Carbonera, Eumolpo, Fale, FiFFiO, Filnik, Fmoretto, Fmulas, Franganghi, Gac, Grigio60, Hellis, Ilario, Incola, Jacopo, Jalo, Kreatif, L736E, LoStrangolatore, Lucas, Lucio7100, Lusum, Marco De Angelis, Mark91, Massimo Petrossi, Mastazi, MaxDel, No2, Orric, Pazzotranquillo, Rchimenti, Rikky, Rojelio, Rutja76, Salvatore Ingala, Sbisolo, Shivanarayana, Sonagot, Spaceconte, Square87, Swedenfox, The Polish, Ticket OTRS 2011102410007641, Tommaso Ferrara, Urbanuntil, Vituzzu, Voldemort87, Wiki.edoardo, 109 Modifiche anonime Drupal  Fonte: http://it.wikipedia.org/w/index.php?oldid=50778398  Autori:: %Pier%, Abisys, Airon90, AlmAck, Amux, Andrea Messini, Argento, Avesan, Beetstra, Biasco, Blu3sman, CenturioST, Donmimisaggese, Dzag, Elbloggers, Elwikipedista, Elycas, Empu, Fale, GiaGar, Guidomac, H2o, Hadakaar, Ignlig, Kiuz, L736E, Laurentius, Lcm, Lgiove, LoStrangolatore, Luciano G. Calì, Marcuscalabresus, Morph, Nickanc, No2, Pauligree, Phantomas, Pinoloxx, Plommespiser, Psicomante, Rael, Ripepette, Romanc19s, Shaka, Sputnik77, Stefa.rossi, The Polish, Thepisu, Veneziano, 95 Modifiche anonime phpBB  Fonte: http://it.wikipedia.org/w/index.php?oldid=50779004  Autori:: -Hyde-, .anaconda, Abisys, Ary29, Avesan, Barrnet, Biscionecanale5, Black Antitoon, ChemicalBit, DaveBlack, Developer, Dommac, Draughtsplayer, Drugonot, Ekerazha, Elbloggers, Encori, Fexys, Forumerc, Freepenguin, Ft1, Grifone87, Hellis, Incola, Jamj 68, Juanm, Lbreda, LoStrangolatore, Lordmark, Luckyluciano, Luke94, M7, Mess, Nettuno43, Phyk, Ppalli, Roberto.catini, Rocklion, Rollopack, Sannita, Satanasso, SkedO, Snowdog, SuperSecret, TekAndre, Tetrafarmakon, Thrantir, Ticket OTRS 2011102410007641, Valepert, XAnder, Xfire39, 73 Modifiche anonime PHPNuke  Fonte: http://it.wikipedia.org/w/index.php?oldid=50782496  Autori:: Broc, GiuseppeCampisi, Johnlong, Matteoiamma, No2, Ssj5gabry, Umbertofiorelli, 5 Modifiche anonime Lista di content management system  Fonte: http://it.wikipedia.org/w/index.php?oldid=50561238  Autori:: 13morris, Airon90, AlessioMela, Ary29, Balos, CavalloRazzo, Claude, Dr Zimbu, Farberking, Johnnie.maneiro, Marco Plassio, Massimo.termanini, Massimozanardi, Matteoiamma, Mennella, MichelangeloScotto, Miziodel, No2, Roberto.patumi, Robyquare, Roccobarbi, Rollopack, Rutja76, Tebaide, Ticket 2010081310004741, Vania Rupeni, Webiny, 65 Modifiche anonime vBulletin  Fonte: http://it.wikipedia.org/w/index.php?oldid=50779858  Autori:: Abisys, Alessio Ganci, Arkantos01, Ary29, Avesan, Brownout, Cruccone, Danmartin, Elbloggers, Elitre, Eumolpo, Fir, Floppy, Forumerc, Hal8999, Kaspo, Leoman3000, LkMsWb, LoStrangolatore, Loris94, Mario9662, Mark91, No2, Omino di carta, Otrebla86, PIETRO95, Probid, Shíl, SuperSecret, Tia solzago, Vituzzu, 46 Modifiche anonime

80


Fonti, licenze e autori delle immagini

Fonti, licenze e autori delle immagini Immagine:Commons-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Commons-logo.svg  Licenza: logo  Autori:: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version, created by Reidab. File:OpenOffice.org Writer.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:OpenOffice.org_Writer.png  Licenza: GNU Lesser General Public License  Autori:: http://hacktolive.org/ File:Categorie software.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Categorie_software.png  Licenza: GNU Free Documentation License  Autori:: Orso della campagna File:Wikimania stallman keynote2.jpg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikimania_stallman_keynote2.jpg  Licenza: Creative Commons Attribution-ShareAlike 3.0 Unported  Autori:: User:Elya Immagine:Wikisource-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikisource-logo.svg  Licenza: logo  Autori:: Nicholas Moreau Immagine:Wikinews-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikinews-logo.svg  Licenza: logo  Autori:: Vectorized by Simon 01:05, 2 August 2006 (UTC) Updated by Time3000 17 April 2007 to use official Wikinews colours and appear correctly on dark backgrounds. Originally uploaded by Simon. Immagine:Wikiquote-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikiquote-logo.svg  Licenza: Public Domain  Autori:: -xfi-, Dbc334, Doodledoo, Elian, Guillom, Jeffq, Krinkle, Maderibeyza, Majorly, Nishkid64, RedCoat, Rei-artur, Rocket000, 11 Modifiche anonime File:PHP-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:PHP-logo.svg  Licenza: Public Domain  Autori:: Biktora, Chealer Immagine:Wikibooks-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikibooks-logo.svg  Licenza: logo  Autori:: User:Bastique, User:Ramac et al. Immagine:Wikiversity-logo-It.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wikiversity-logo-It.svg  Licenza: sconosciuto  Autori:: File:Mysql-hires.gif  Fonte: http://it.wikipedia.org/w/index.php?title=File:Mysql-hires.gif  Licenza: Free Art License  Autori:: MySQL AB, 2008-2009 Sun Microsystems, Inc. Immagine:php myAdmin.jpg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Php_myAdmin.jpg  Licenza: sconosciuto  Autori:: Utente:Dsmcg21 File:Gpl-v3-logo.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Gpl-v3-logo.svg  Licenza: Attribution  Autori:: Copyright © 2007, 2008 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA File:Richard Stallman speaking at Wikimania 2005-08-07.jpg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Richard_Stallman_speaking_at_Wikimania_2005-08-07.jpg  Licenza: sconosciuto  Autori:: Chris McKenna (User:Thryduulf) File:Eben_Moglen,_2010-08-05.jpg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Eben_Moglen,_2010-08-05.jpg  Licenza: Public Domain  Autori:: Karora File:Copyleft.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Copyleft.svg  Licenza: Public Domain  Autori:: Zscout370 File:Quick-guide-gplv3-compatibility.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Quick-guide-gplv3-compatibility.svg  Licenza: Creative Commons Attribution-Sharealike 3.0  Autori:: A.hawrylyshen (talk). Original uploader was A.hawrylyshen at en.wikipedia. Later version(s) were uploaded by Samuell at en.wikipedia. File:Linus Torvalds talking.jpeg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Linus_Torvalds_talking.jpeg  Licenza: GNU Free Documentation License  Autori:: kuvaaja File:Wordpress-logo.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Wordpress-logo.png  Licenza: GNU General Public License  Autori:: WordPress File:Screenshot-A WordPress Weblog with TwentyTen in Epiphany.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Screenshot-A_WordPress_Weblog_with_TwentyTen_in_Epiphany.png  Licenza: GNU General Public License  Autori:: User:Uusijani (screenshot), WordPress.org (design) File:WordPress Administration 2.8.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:WordPress_Administration_2.8.png  Licenza: GNU General Public License  Autori:: Original uploader was Hayfordoleary at en.wikipedia. Later version(s) were uploaded by Jleuze, Twiin, Clpo13 at en.wikipedia. File:Joomla1.5-it.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Joomla1.5-it.png  Licenza: GNU General Public License  Autori:: Joomla! Core Team File:Joomla 1.6 backend.jpg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Joomla_1.6_backend.jpg  Licenza: Public Domain  Autori:: Lucio7100 File:Joomla Logo Horz Color.gif  Fonte: http://it.wikipedia.org/w/index.php?title=File:Joomla_Logo_Horz_Color.gif  Licenza: sconosciuto  Autori:: Acolleoni, Trixt, Valepert, 1 Modifiche anonime File:Druplicon.vector.svg  Fonte: http://it.wikipedia.org/w/index.php?title=File:Druplicon.vector.svg  Licenza: GNU General Public License  Autori:: Steven Wittens aka UnConeD http://acko.net/ http://drupal.org/user/10 File:Drupal 7 screenshot.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Drupal_7_screenshot.png  Licenza: GNU General Public License  Autori:: User:Plommespiser, User:Plommespiser, User:Plommespiser, User:Plommespiser File:Phpbb3 logo.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Phpbb3_logo.png  Licenza: GNU General Public License  Autori:: Jusjih, LEW21, The wub, WikipediaMaster, Ö File:PhpBB 3.0.RC1 with prosilver.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:PhpBB_3.0.RC1_with_prosilver.png  Licenza: sconosciuto  Autori:: User:Lateiner Immagine:logovbulletin.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:Logovbulletin.png  Licenza: sconosciuto  Autori:: PIETRO95 Immagine:VBulletin 4.0.0 Gold.png  Fonte: http://it.wikipedia.org/w/index.php?title=File:VBulletin_4.0.0_Gold.png  Licenza: sconosciuto  Autori:: PIETRO95

81


Licenza

Licenza Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

82


CMS per tutti. Content Managed System free