Capitolo 1.   Software e libertà

Il software è un codice che è trattato dalle leggi sul diritto di autore, in maniera simile a quanto avviene per le opere letterarie. Tradizionalmente, il contratto che regola l'uso del software è la licenza ed è sempre importante conoscere i termini di questo accordo per il software con cui si intende avere a che fare.

La legge sul diritto di autore stabilisce già quali sono i diritti di chi produce l'opera e di chi la utilizza, ma nell'ambito del software si è introdotto nella pratica un contratto che non viene firmato (la licenza), il cui scopo è spesso quello di limitare ulteriormente i diritti di chi ne fruisce.

Il software ha un proprietario (salvo il caso del software di dominio pubblico che viene descritto in seguito) che è tale in quanto «detiene i diritti di autore». Questo proprietario può essere l'autore originale, oppure un altro detentore che ne ha acquisito i diritti in base a un contratto. Il detentore dei diritti di autore è colui che possiede il copyright.

L'utilizzo del software può essere concesso gratuitamente o a pagamento, per le operazioni stabilite nel contratto di licenza, o in sua mancanza per quanto stabilito dalla legge. Il pagamento per l'«acquisto» di software, non si riferisce all'acquisizione dei diritti di autore, ma solo delle facoltà stabilite dalla legge, ovvero da quanto indicato nella licenza.

La natura del software è tale per cui questo è composto da due parti fondamentali: il codice sorgente e il codice eseguibile. Il primo è intelligibile (comprensibile), il secondo è adatto all'esecuzione e non è intelligibile. Dal momento che per funzionare è sufficiente il codice eseguibile, le leggi dei vari paesi che tutelano il diritto di autore per il software tendono a consentire la distribuzione del solo codice eseguibile, lasciando che chi detiene i diritti di autore possa mantenere nascosto il codice sorgente. Inoltre, le leggi di questi paesi tendono a considerare illecita la decompilazione, ovvero lo studio del codice eseguibile volto a scoprirne il funzionamento.

Figura 1.1. Compilazione.

Compilazione

In molti paesi esiste anche la possibilità di brevettare algoritmi e altri concetti riconducibili al software. Il brevetto impedisce così l'uso dell'algoritmo o dell'idea registrata, se non dopo un'autorizzazione esplicita da parte del detentore di questo tipo di diritto.

1.1   Software libero

Il software libero è software che fornisce il permesso per chiunque di utilizzarlo, copiarlo e distribuirlo, in forma originale, o anche dopo averlo modificato, sia gratuitamente, sia a pagamento. Il software libero può essere tale solo se viene messo a disposizione assieme al codice sorgente, per cui, a questo proposito, qualcuno ha detto: «se non è sorgente, non è software» (if it's not source, it's not software).

È importante sottolineare che la «libertà» del software libero non sta tanto nel prezzo, che eventualmente può anche essere richiesto per il servizio di chi ne distribuisce le copie, ma nella possibilità di usarlo senza vincoli, di copiarlo come e quanto si vuole, di poterne distribuire le copie, di poterlo modificare e di poterne distribuire anche le copie modificate.

In alcuni ambienti si preferisce utilizzare la definizione «Open Source» per fare riferimento al software libero nei termini che sono stati descritti, per evitare ambiguità nella lingua inglese. Sotto questo aspetto, nella lingua italiana, come in molte altre lingue, è più appropriato l'uso della definizione «software libero».

Si distinguono quattro punti fondamentali, necessari perché il software possa essere considerato «libero»:

Livello Descrizione

libertà 0
la libertà di eseguire il programma per qualunque scopo;

libertà 1
la libertà di studiare come funziona il programma e di adattarlo alle proprie esigenze (in tal caso, deve essere disponibile il sorgente);

libertà 2
la libertà di ridistribuire copie del programma;

libertà 3
la libertà di migliorare il programma e di distribuire tali miglioramenti (anche per questo è necessario disporre dei sorgenti).

Il software che non può essere commercializzato, pur soddisfacendo i punti elencati qui, viene considerato «software semi-libero», come viene chiarito in seguito.

Vale la pena di elencare alcune definizioni riferite al software libero.

1.2   Software non libero

Il software non è libero tutte le volte che non sono soddisfatti tutti i requisiti necessari per poterlo essere. È bene ricordare che il prezzo non è un fattore che limita la libertà, mentre altri dettagli sono più importanti. Anche in questo caso, vale la pena di elencare alcune definizioni che in generale riguardano software non libero.

1.3   Software commerciale

In base alle classificazioni viste in questo capitolo, il software commerciale è tale solo in quanto viene venduto per profitto. Lo sviluppo e la diffusione del software libero dipendono anche dalla possibilità di venderne delle copie, originali o modificate, per trarne profitto. Pertanto, il software che pur offrendo le quattro libertà fondamentali, non consente la commercializzazione per trarne profitto, non viene considerato «libero» in modo completo. In questo senso, è importante evitare di confondere il software proprietario con il software commerciale, perché non sono la stessa cosa.

Si osservi che può esistere anche del software non-libero, che non è nemmeno commerciale.

1.4   Dal software all'arte in generale: Creative Commons

I concetti di «libertà» derivanti dal mondo del software, si trasferiscono anche ad altre forme di arte sottoposta al diritto di autore, soprattutto quando queste forme di arte si esprimono in forma elettronica. Tuttavia, il software si trova in un contesto particolare rispetto altre forme di espressione artistica, sia perché è previsto in molti paesi il segreto industriale e il brevetto, sia perché il software può sopravvivere all'evoluzione tecnologica solo se è possibile aggiornarlo nel tempo. Pertanto, la difesa del software libero è più impegnativa rispetto al mantenimento della libera disponibilità di altre forme di espressione artistica.

Benché la questione sia controversa, è evidente che espressioni artistiche come un romanzo, un disegno, una canzone, possono considerarsi «libere» anche se non viene concessa la modifica e in certi casi anche se non viene messo a disposizione ciò che rappresenta il «sorgente» elettronico di tali lavori. Tanto per fare un esempio, la realizzazione di un libro «libero» secondo le quattro libertà del software, non consentirebbe di inserire delle citazioni, perché, secondo le convenzioni comuni, non sarebbero poi modificabili; inoltre, un libro che non disponga di un sorgente, potrebbe essere ricopiato, anche se con un certo dispendio di risorse.

Esistono diversi tentativi di risolvere il problema, compatibilmente con il concetto di copyleft, soprattutto per quello che riguarda la produzione di documenti; inoltre c'è anche chi, pregevolmente, tenta di trovare una formula che possa andare bene per ogni tipo di espressione artistica, come nel caso della licenza Licence Art Libre (ovvero Free Art License e tante altre traduzioni) http://artlibre.org.

Creative Commons (http://creativecommons.org) cerca di trasferire alcuni principi del software libero a opere artistiche di tipo differente, attraverso la redazione di un insieme di licenze con un diverso grado di «libertà», ovvero di restrizioni legali. Per facilitare la scelta e la comprensione delle diverse licenze proposte, Creative Commons utilizza un sistema iconografico. Questo aspetto diventa molto importante, dal momento che lo scopo dell'organizzazione è quello di favorire la diffusione consapevole di opere di ogni tipo attraverso la rete, dove spesso si presta più attenzione alle immagini, rispetto al testo scritto.

Tabella 1.3. Obblighi o facoltà principali espressi in forma iconografica.

Simbolo Sigla Significato
by attribution Gli autori originari devono essere riconosciuti.
nc non-commercial Il lavoro non può essere sfruttato commercialmente.
nd no derivatives works Il lavoro deve rimanere intatto.
sa share alike La licenza deve rimanere la stessa (questa condizione ha significato solo per un lavoro che può essere modificato).
sc source Il sorgente deve essere preservato.

È importante osservare che, dal punto di vista della filosofia delle libertà del software, non tutte le licenze elaborate da Creative Commons sono «libere». Evidentemente, ciò che non può essere modificato non può essere «libero»; inoltre, ciò che non può essere commercializzato, non può essere considerato del tutto libero. Tuttavia, in considerazione del fatto che le esigenze che si sentono nel campo del software non sono le stesse di ogni altro tipo di espressione artistica, la presenza di combinazioni «non libere» tra le licenze di Creative Commons, non sminuisce l'importanza del lavoro di tale organizzazione.

Mentre l'approvazione di OSI (Open Source initiative http://opensource.org) dà la garanzia di avere a che fare con del software libero, quando si fa riferimento a una licenza approvata da Creative Commons, senza specificarne gli attributi, si sa solo che dovrebbe trattarsi di un'opera ridistribuibile e gratuita almeno per l'uso personale, non commerciale.

Nelle licenze Creative Commons si fa riferimento a un concetto, definito come share alike, con il quale si richiede che l'opera modificata mantenga la stessa licenza di quella originale. Si può osservare che il simbolo usato da Creative Commons per rappresentare questo vincolo è molto simile a quello usato nel software libero per esprimere il copyleft: sa. Tuttavia va osservato che il copyleft è un sottoinsieme di quanto intende il concetto di share alike.

Tabella 1.4. Licenze definite da Creative Commons.

Definizione Iconografia Descrizione
attribution by Si richiede soltanto che gli autori originari siano riconosciuti.
attribution,
no derivatives work
bynd Si richiede che gli autori originari siano riconosciuti e che il lavoro rimanga intatto.
attribution,
non-commercial,
no derivatives work
byncnd Si richiede che gli autori originari siano riconosciuti, che il lavoro non venga sfruttato commercialmente e che rimanga intatto.
attribution,
non-commercial
bync Si richiede che gli autori originari siano riconosciuti e che il lavoro non venga sfruttato commercialmente.
attribution,
non-commercial,
share alike
byncsa Si richiede che gli autori originari siano riconosciuti, che il lavoro non venga sfruttato commercialmente e che la licenza rimanga la stessa.
attribution,
share alike
bysa Si richiede che gli autori originari siano riconosciuti e che la licenza rimanga la stessa.

Molti siti che consentono la pubblicazione di opere artistiche accettano esclusivamente un insieme di licenze approvate da Creative Commons, pertanto è bene sapere risalire alle licenze di proprio interesse attraverso la catalogazione e il riferimento di Creative Commons. Nelle tabelle successive si vedono le licenze principali di Creative Commons e il riferimento alla dichiarazione di dominio pubblico, assieme alle due licenze più importanti di Free Software Foundation.

Tabella 1.5. Licenze definite attraverso un URI, secondo Creative Commons.

Definizione URI
attribution http://creativecommons.org/licenses/by/3.0/
attribution,
no derivatives work
http://creativecommons.org/licenses/by-nd/3.0/
attribution,
non-commercial,
no derivatives work
http://creativecommons.org/licenses/by-nc-nd/3.0/
attribution,
non-commercial
http://creativecommons.org/licenses/by-nc/3.0/
attribution,
non-commercial,
share alike
http://creativecommons.org/licenses/by-nc-sa/3.0/
attribution,
share alike
http://creativecommons.org/licenses/by-sa/3.0/

Creative Commons suggerisce l'uso di un'iconografia semplificata per dichiarare le caratteristiche di massima della licenza utilizzata. In passato, tutte le licenze scritte da Creative Commons, si associavano a un solo tipo di icona, dove si poteva solo intendere che non tutti i diritti erano riservati: some rights. Attualmente l'iconografica è più chiara, come descritto nella tabella successiva.

Tabella 1.6. Icone suggerite da Creative Commons per dichiarare in linea di massima il genere di licenza utilizzato. Non tutte le licenze approvate dal Creative Commons appaiono in questa tabella.

Licenza Icona associata Licenza Icona associata

attribution
by
attribution,
no derivatives work
by nd

attribution,
non-commercial,
no derivatives work
by nc nd
attribution,
non-commercial
by nc

attribution,
non-commercial,
share alike
by nc sa
attribution,
share alike
by sa

All'interno di un file HTML (o XHTML) è possibile inserire del codice che consente a un motore di ricerca o a un navigatore di classificarne il contenuto, in linea di massima, dal punto di vista legale, riguardo alle facoltà concesse o meno a chi ne deve fruirne.

1.5   Origini del software libero

Il «software libero» è un concetto semplice e intuitivo, ma il percorso attraverso cui si conquista una libertà è sempre difficile. Se oggi questo tipo di software rappresenta concretamente una scelta possibile, lo si deve all'azione di persone che con impegno hanno agito, legalmente, verso il raggiungimento di questo obiettivo. Confondere invece la facoltà tecnica di copiare ciò che si vuole, soprattutto ciò che la legge vieta, non è libertà, ma dipendenza dallo stesso sistema che si crede di combattere.

1.5.1   BSD

Negli anni 1970, i primi utenti di UNIX sono state le università, a cui in particolare questo sistema operativo è stato fornito a costo contenuto, con i sorgenti, ma senza alcun tipo di assistenza, né alcuna garanzia. Proprio questa assenza di sostegno da parte della casa che lo aveva sviluppato originariamente, ha stimolato la cooperazione tra gli utenti competenti, in pratica tra le università. Il maggior fermento intorno a UNIX si è concentrato presso l'università della California a Berkeley, dove a partire dal 1978 si è cominciato a distribuire una variante di questo sistema operativo, con il nome BSD, ovvero Berkeley software distribution. Per questo software è nata una licenza d'uso che rimane il progenitore della filosofia del software libero: la licenza BSD. Per molto tempo, la variante BSD di UNIX è rimasta relegata all'ambito universitario o a quello delle aziende che avevano acquistato i diritti per utilizzare il codice sorgente dello UNIX originale. Ciò fino a quando si è sentita l'esigenza di ripulire lo Unix BSD dal codice proprietario.

Il risultato iniziale è stato 386BSD, pubblicato nel 1992 con la versione 0.1. Tuttavia, questa edizione libera dello Unix BSD non ha avuto vita facile, dal momento che da quel punto sono iniziate delle contese giudiziarie sulla proprietà di alcune porzioni di codice ritenute libere (a torto o a ragione che fosse). Dai problemi di 386BSD che hanno causato la sua eliminazione dalla distribuzione pubblica, si sono sviluppati altri progetti indipendenti per ottenere, finalmente, un sistema BSD libero. Il primo di questi è stato nominato NetBSD, al quale si è aggiunto subito dopo FreeBSD e più tardi anche OpenBSD. Tuttavia, i problemi legali non sono terminati con 386BSD: la variante denominata FreeBSD è stata «libera» solo all'inizio del 1995 con la versione 2.0. Il pezzo seguente è tratto da A Brief History of FreeBSD di Jordan K. Hubbard, marzo 1998.

The first CDROM (and general net-wide) distribution was FreeBSD 1.0, released in December of 1993. This was based on the 4.3BSD-Lite ("Net/2") tape from U.C. Berkeley, with many components also provided by 386BSD and the Free Software Foundation. It was a fairly reasonable success for a first offering, and we followed it with the highly successful FreeBSD 1.1 release in May of 1994.

Around this time, some rather unexpected storm clouds formed on the horizon as Novell and U.C. Berkeley settled their long-running lawsuit over the legal status of the Berkeley Net/2 tape. A condition of that settlement was U.C. Berkeley's concession that large parts of Net/2 were "encumbered" code and the property of Novell, who had in turn acquired it from AT&T some time previously. What Berkeley got in return was Novell's "blessing" that the 4.4BSD-Lite release, when it was finally released, would be declared unencumbered and all existing Net/2 users would be strongly encouraged to switch. This included FreeBSD, and the project was given until the end of July 1994 to stop shipping its own Net/2 based product. Under the terms of that agreement, the project was allowed one last release before the deadline, that release being FreeBSD 1.1.5.1.

FreeBSD then set about the arduous task of literally re-inventing itself from a completely new and rather incomplete set of 4.4BSD-Lite bits. The "Lite" releases were light in part because Berkeley's CSRG had removed large chunks of code required for actually constructing a bootable running system (due to various legal requirements) and the fact that the Intel port of 4.4 was highly incomplete. It took the project until December of 1994 to make this transition, and in January of 1995 it released FreeBSD 2.0 to the net and on CDROM. Despite being still more than a little rough around the edges, the release was a significant success and was followed by the more robust and easier to install FreeBSD 2.0.5 release in June of 1995.

Allo stato attuale, le tre varianti *BSD sono tutte riconducibili a BSD 4.4-Lite, dove le differenze più importanti riguardano le piattaforme hardware in cui possono essere installate e l'origine della distribuzione.

1.5.2   GNU

Nel 1985, Richard Stallman fonda la FSF, Free software foundation, con lo scopo preciso di creare e diffondere la filosofia del «software libero». Libertà intesa come la possibilità data agli utenti di distribuire e modificare il software a seconda delle proprie esigenze e di poter distribuire anche le modifiche fatte. Queste idee filosofiche si sono tradotte nella redazione di un contratto di licenza d'uso, la General Public License (appendice B), studiato appositamente per proteggere il software libero in modo da non poter essere accaparrato da chi poi potrebbe impedirne la diffusione libera. Per questo motivo, oggi, il copyright di software protetto in questo modo, viene definito copyleft.

Il software libero richiede delle basi, prima di tutto il sistema operativo. In questo senso, l'intento pratico di Richard Stallman è stato quello di realizzare, con l'aiuto di volontari, un sistema operativo completo. Con questo obiettivo è nato il progetto GNU (Gnu's not Unix), puntando inizialmente alla realizzazione di un compilatore C, quindi alla costruzione di programmi di servizio, soprattutto quelli standard di un sistema Unix tipico, lasciando per un momento successivo lo sviluppo di un kernel.(1) Così facendo, il progetto GNU ha dato vita subito a una grande quantità di software utilizzabile sulla maggior parte delle piattaforme Unix, indirizzando implicitamente il software libero nella direzione dei sistemi di questo tipo.

1.5.3   Minix

Alla fine degli anni 1980, il professor Andrew S. Tanenbaum sviluppa Minix, un sistema operativo Unix per elaboratori x86-16,(2) realizzato specificamente per uso didattico. Era sufficiente acquistare il libro a cui era abbinato e si otteneva un sistema completo di sorgenti. Tuttavia, Minix aveva un problema: poteva essere usato, distribuito e modificato, solo per fini didattici.

I diritti di questo sistema operativo sono stati ceduti inizialmente alla casa editrice del libro con il quale questo veniva diffuso; tuttavia, nell'anno 2000, Andrew S. Tanenbaum ha ottenuto dalla casa editrice di poter distribuire il sistema Minix con una licenza simile a quella di BSD.

1.5.4   Linux

Linux nasce all'inizio degli anni 1990 come un progetto personale di studio delle funzionalità di multiprogrammazione dei microprocessori x86-32 da parte di Linus Torvalds, all'epoca uno studente all'università di Helsinki, in Finlandia. Inizialmente il lavoro di Linus Torvalds si basava su un sistema Minix, riscrivendo il kernel e adattando successivamente il compilatore e i programmi sviluppati dal progetto GNU. L'idea di Linus Torvalds era quella di realizzare «a better Minix than Minix», ovvero, voleva costruire qualcosa di meglio del sistema Minix.

Dopo molto lavoro, Linus Torvalds arriva a un sistema minimo e soprattutto autonomo da Minix. Il 5 ottobre 1991 invia il messaggio seguente al gruppo di discussione comp.os.minix.

Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on Minix? No more all-nighters to get a nifty program working? Then this post might be just for you.

As I mentioned a month ago, I'm working on a free version of a Minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02...but I've successfully run bash, gcc, gnu-make, gnu-sed, compress, etc. under it.

Linux ha coinvolto in breve tempo un numero molto grande di persone, unite dal fatto che si trattava di un progetto libero da qualunque restrizione legale al suo utilizzo, alla sua diffusione, alla possibilità di modificarlo ecc. In pratica, la fortuna di Linux rispetto a Minix, è stata quella di avere scelto subito la licenza GNU-GPL (appendice B), quella che ancora oggi rappresenta la difesa ideale per il software che viene scritto perché sia a disposizione di tutti. Tuttavia, per il successo del kernel Linux è stato determinante il lavoro parallelo del progetto GNU, il quale ha dato al primo tutto quello che serve per un sistema operativo completo: GNU/Linux appunto.

1.5.5   Debian

Nel 1993 Ian Murdock fonda il progetto Debian, con lo scopo di realizzare una distribuzione GNU/Linux libera e accurata. Successivamente, Bruce Perens stila la bozza di ciò che attualmente costituisce le «linee guida», per stabilire cosa sia da intendere «software libero» e cosa invece non rientri in questa categoria, ai fini della distribuzione stessa. Tali linee guida sono note con la sigla DFSG; successivamente, queste hanno dato origine alla definizione di Open Source.

Il progetto Debian ha curato distribuzioni GNU/Linux per le architetture più comuni e anche distribuzioni con combinazioni differenti di kernel e software applicativo.

1.5.6   Internet Archive

Nel 1996 viene fondato Internet Archive (http://archive.org), con lo scopo di creare una libreria digitale di tutte le opere espresse in tale forma, purché possano essere ripubblicate. Tra le altre cose, presso Internet Archive è possibile pubblicare ogni tipo di lavoro in forma elettronica, purché se ne conceda l'uso o purché siano venuti meno i diritti di autore relativi; inoltre è disponibile un archivio storico dei siti individuati e scanditi nell'ambito dell'intera rete Internet, con esclusione di quelli che, attraverso un file robot.txt o con richiesta formale, si siano esclusi espressamente.

1.5.7   Open Source

Sulla scia delle linee guida del progetto Debian, nel 1998 nasce la definizione Open Source, a identificare i principi secondo cui il software può essere ritenuto «libero», stilando e aggiornando un elenco delle licenze certificate (http://www.opensource.org).

Dopo la definizione Open Source è apparso l'uso dell'acronimo OSS, per open source software, a cui si sono affiancati anche FOSS, per free open source software, e FLOSS, per free-liberal open source software, ma sostanzialmente equivalenti.

1.5.8   Creative Commons

Come già descritto nella sezione 1.4, nel 2001 viene fondato Creative Commons (http://creativecommons.org) con lo scopo di trasferire alcuni principi del software libero a opere artistiche di tipo differente. Il lavoro importante di Creative Commons sta nello studio delle problematiche legali che riguardano le opere artistiche in generale, classificando diversi tipi di esigenze da parte degli autori, le quali si traducono in pratica in diversi tipi di licenza, ognuna con un diverso grado di «libertà».

1.5.9   Open Invention Network

Alla fine del 2005, un gruppo di aziende importanti che offrono prodotti e servizi basati sul kernel Linux, fondano Open Invention Network (OIN), con lo scopo di raccogliere un insieme di brevetti, utili a difendere i sistemi basati su kernel Linux. In pratica, viene concesso l'uso delle idee alla base di tali brevetti, purché non si attacchino in giudizio i sistemi operativi basati su kernel Linux, per l'uso di idee contenute in altri brevetti.

1.5.10   Standard Unix

Attorno ai sistemi operativi che si rifanno al modello di Unix, quello da cui ha origine il concetto di software libero, si sono definiti due standard fondamentali: il linguaggio C (ISO/IEC 9899) e la definizione del sistema «Unix» standard, noto come POSIX negli anni 1990 (Portable operating system interface) e poi come SUS negli anni 2000 (Single unix specification). Per quanto riguarda Unix si distinguono dei livelli, definiti come POSIX.1, POSIX.2,... SUSv1, SUSv2,... che sono raccolti all'interno di standard IEEE e ISO; in particolare IEEE 1003.1 e ISO/IEC 9945. Le definizioni di POSIX.1-2001 e SUSv3 sono allineate.

La standardizzazione del linguaggio C e dei sistemi Unix è un veicolo importante per la consapevolezza del valore dei sistemi Unix in qualità di sistemi liberi.

Riquadro 1.7. Definizioni alternative di «software libero».

Definizione Significato letterale
OSS Open Source software
OSS/FS Open Source software/Free software
F/OSS Free/Open Source software
FOSS Free Open Source software
FLOSS Free Liberal Open Source software
software libre
unfettered software

1.6   Riferimenti


1) Nel 1990 inizia lo sviluppo del kernel Hurd e intorno al 2000 inizia la distribuzione del sistema GNU/Hurd, ovvero del sistema GNU basato su kernel Hurd.

2) Successivamente Minix 2 viene distribuito in due versioni, una per architettura x86-16 e l'altra per x86-32, mentre Minix 3 abbandona l'architettura x86-16.

3) Questo è il primo documento che definisce il linguaggio C, per ciò che oggi è noto come «K&R C», ovvero il linguaggio C di Kernigham e Ritchie. Di questo libro esiste una seconda edizione, del 1988, rivista secondo le convenzioni in corso di definizione dallo standard ANSI C.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net