Software Libero

Il free software (software libero) e' una realta' che permette di disporre di software di ottima qualita' praticamente per ogni applicazione.
Lo scopo di questo documento e' quello di presentare una panoramica dei software liberi piu' importanti ed utili! Per rendere un poco piu' organizzata la lettura ho suddiviso il software libero in gruppi: Sorgenti principali, Produttivita' personale, Distribuzioni Linux, Servizi ed ambienti Web, Programmazione, Giochi, Scambio messaggi e file, Networking, VOIP, Telefonia, Amministrazione sistemi, Databases, Multimedia, MAC, ... L'elenco e' limitato poiche' ho inserito solo programmi che conosco e che ho avuto occasione di installare e di provare. Se pensate manchi qualcosa di importante segnalatemelo!
Se vi interessa non pagare nulla... leggete GRATIS: troverete altri software che non sono liberi ma che possono essere utilizzati gratuitamente! Se vi interessa sorbirvi un po' di filosofia sul software libero leggete al fondo.

La rivoluzione del software libero e' iniziata e tutti possono contribuire utilizzando, sviluppando e mantenendo il software libero.

Sorgenti principali

Probabilmente il punto piu' giusto da cui cominciare e' il progetto GNU (acronimo ricorsivo: Gnu is Not Unix!) nato nel 1984 da Richard Stallman per sviluppare una versione di Unix che fosse completamente libera. Al progetto GNU si debbono un'infinita' di software (eg. il compilatore Gcc, ma anche un completo ambiente Unix) e le licenze GNU (eg. GPL: General Public License). E' sempre un progetto di Free Software Foundation (FSF) la Free Software Directory che contiene un catalogo di software in cui tutte le licenze sono state valutate come libere (il progetto e' una collaborazione con l'UNESCO).

Quando nel 1989 Tim Berner Lee propose al CERN il progetto di un servizio per la gestione di documenti che utilizzasse iperlink ed Internet, probabilmente non immaginava quanto questo avrebbe cambiato il mondo: dal primo sito pubblicato nel 1991 la crescita e' stata esponenziale... Il termine WWW indica ora una ragnatela enorme di server e servizi distribuiti in tutto il mondo. Le regole e gli standard vengono definiti dal W3C (World Wide Web Consortium) che ha definito le specifiche dell'HTML, dell'XML, dell'XHTML dei CSS, ... e fornisce tool di validazione per HTML, CSS, ...

Apache HTTPD e' il web Server piu' diffuso e potente. E' un riferimento anche per i server HTTPD di ambienti proprietari!
Apache in realta' e' un'organizzazione che distribuisce anche altri software fondamentali quali: Ant un tool di compilazione (come il make), Tomcat un servlet/JSP container (anzi IL Servlet Container poiche' e' l'implementazione di riferimento di J2EE...), Jakarta le TAGLIBS di riferimento per le pagine JSP, Struts una suite che implementa l'architettura MVC (Model-View-Controller), Pluto l'implementazione di riferimento per le Portlet API (JSR-168) ...

Un altro contenitore di software libero, per essere precisi di software Open Source, e' SourceForge su cui vengono ospitati piu' di 100.000 progetti, molti di ottima qualita' ed assai utilizzati. Ancora piu' utilizzato e completo e' GitHub.

Probabilmente la licenza per software libero piu' diffusa e' la GPL ma molte altre sono utilizzate. Creative Common fornisce diversi tipi di licenze per una semplice inclusione in programmi e documenti.

Produttivita' personale

Firefox: e' forse l'applicazione free piu' scaricata ed utilizzata dagli utenti. Si tratta di un ottimo web browser disponibile per tutte le piattaforme. Sempre piu' diffuso e' anche Chrome di Google.
Open Office e' un ambiente di Office integrato, molto completo (su alcune funzionalita' anche piu' di ambienti proprietari), disponibile su piu' sistemi operativi e, naturalmente, completamente gratuito. Con un supporto completo anche in italiano le versioni piu' recenti sono oggettivamente molto valide ed in grado di sostituire software a pagamento. Ottima alternativa e' Libre Office che ha una comunita' molto attiva ed e' nato in un momento di "chiusura" di Open Office prima che fosse donato alla Apache foundation. KOffice e' un'alternativa per gli amanti dell'interfaccia KDE, meno nota ma molto piu' Linux.
Ma vi sono anche molti altri utili programmi: 7-Zip e' un utility per la compressione di file che supporta molteplici formati, PDFCreator consente la creazione di file PDF in modo molto semplice: stampando il documento! GanttProject e' un'applicazione Java per la pianificazione delle attivita', vim e' un editor molto potente adatto alla programmazione ma anche alla redazione di testi e documenti, GIMP e' un completo editor grafico.

ClamAV e' un software antivirus (o meglio una suite) free molto completo e sofisticato per gli ambienti Unix. In diverse occasioni si e' dimostrato piu' efficace di prodotti a pagamento. ClamWin Free Antivirus e' la versione MS Windows di ClamAV.

Wikipedia e' una enciclopedia dai contenuti liberamente pubblicati da un enorme numero di volontari e basata sul software libero Wiki. Con milioni di articoli in piu' lingue (e l'italiano e' molto attivo) e' un punto di riferimento per la ricerca delle informazioni. Chi cerca consigli sulla programmazione li trova invece su stackoverflow.
Da sempre gli standard del TCP-IP si sono evoluti in modo aperto e disponibile a tutti con RFC (Request For Comments) come questa!

Se si vogliono eseguire applicazioni MS-Windows su un sistema Linux wine consente di eseguire (quasi tutte) le applicazioni MS-Windows su X. Dal punto di vista tecnico wine non e' un emulatore ma implementa le librerie richiamate dalle applicazioni.
Se, al contrario, si vogliono utilizzare applicazioni Unix in ambiente MS-Windows e' possibile utilizzare Cygwin che crea un completo ambiente POSIX (quindi uno Unix Standard) con un'ampia serie di comandi (eg. diff, grep, find, ...) e le librerie di base per sviluppare e portare programmi. Tra le molte opzioni presenti sicuramente da riportare e' un ambiente X-Windows completo che consente di utilizzare il PC come client di complessi ambienti Unix (beh ad essere precisi bisognerebbe dire XServer... ma cosi' e' piu' semplice).

Vi sono altri ottimi programmi di utilizzo personale come il client di posta Thunderbird... ma ne parleremo piu' avanti nella sezione Scambio messaggi e file!

Distribuzioni Linux

Linux e' un sistema operativo Unix o, per essere piu' precisi, un kernel di tipo Unix distribuito con la licenza GNU. Linux e' stato sviluppato da uno studente, Linus Torvalds, nel 1991. Di enorme diffusione e di ottima qualita' viene generalmente fornito insieme ad un ambiente Unix GNU completo (quindi il nome corretto dell'ambiente dovrebbe essere Linux/GNU) in distribuzioni sia di software libero che a pagamento.
Le distribuzioni di Linux comprendono tipicamente un ampio insieme di altri software e sono innumerevoli (almeno 400 ma ne nascono continuamente). Quindi citarle tutte non e' possibile... Debian, Fedora Core, Ubuntu, Slackware, Centos, QiLinux (tutta italiana), Knoppix (liveDistro), Knoppix STD (Security Tools) sono quelle che ritengo piu' significative.

Con Linux e' possibile utilizzare software libero per ogni necessita'. Ma molti dei software liberi che vedremo possono essere utilizzati anche su sistemi proprietari.

Servizi ed ambienti web

Sono molti gli strumenti utili per la realizzazione e l'utilizzo di pagine web. Firefox l'abbiamo gia' ricordato... della stessa "famiglia" e' NVU un ottimo editor HTML, le cui versioni piu' recenti sono mantenute su Kompozer. Anche FCKeditor e' un editor DHTML che supporta le estensioni per ASP, ASP.NET, ColdFusion, PHP, Java e JavaScript.

Con una gestione da linea di comando, ma non per questo meno utili, sono le utility tidy che corregge l'HTML generando pagine sintatticamente corrette e wget che consente di scaricare l'intero contenuto di un sito in locale.

Le attuali tecnologie consentono di creare siti altamente dinamici. Tra le piu' diffuse tecnologie vi sono certamente i Servlet, le pagine JSP e gli Enterprise Java Bean (EJB) (un'introduzione: Architetture Java). Abbiamo gia' citato Apache e Tomcat, ora tocca a JBoss che e' un EJB Container realizzato in 100% Pure Java e quindi utilizzabile virtualmente su ogni piattaforma.
Non siete particolarmente abili nell'installazione e configurazione di un web server? Con AppServ si installano in pochi minuti Apache, PHP, MySQL e PHPMyAdmin gia' correttamente funzionanti!

Molti sono gli ambienti che consentono la creazione di siti in modo assia piu' semplice fornendo soltanto i contenuti. I Content Management System (CMS), con la diffusione dei blog e, piu' in generale, dello scambio di informazioni su Internet, stanno ricevendo una notevole e crescente importanza. Tra i molti esempi possibili: PHP-Nuke, PostNuke, Dragonfly CMS (ex CPG-Nuke), DotNetNuke, PHP-Fusion, Mambo, Joomla!, Drupal, Alfresco (ECM), ... Gallery e Coppermine Photo Gallery (CPG) sono diffuse ed ottime applicazioni per la condivisione di immagini grafiche. MediaPortal e' una recente evoluzione che consente di pubblicare contenuti multimediali come musica, video, streams, radio... Piu' orientato alla realizzazione di portali e' MDPRO. Rivolto alla commercio on-line (Marketplace) e' Zen Cart. Mentre Pluto e' l'implementazione di riferimento per le Portlet API (JSR-168).

I web server producono ampi file di log con l'elenco di tutti gli accessi effettuati dagli utenti. Analog e' un ottimo strumento per produrre statistiche professionali sugli accessi al web server. Le sue funzionalita' sono molto complete ed e' adatto ad un'analisi batch dei log. Altrettanto utilizzato e' AWStats.

Il web e' importante ma non vanno dimenticati i classici servizi Internet! Il sendmail e' il piu' diffuso demone per l'invio di posta.
Mailman e' il piu' noto list manager utilizzabile con un'interfaccia web di amministrazione. POPFile e' un sistema di classificazione delle email con proxy verso i protocolli piu' diffusi. Utile nella classificazione di grandi volumi di mail e per l'impostazione di criteri di anti-spamming. Come client di posta Thunderbird ma lo vederemo piu' avanti...
Open LDAP e' l'ottimo e diffusissimo LDAP Server mentre JXplorer e' un LDAP Client 100% java.
Un capitolo a se stante e' quello sulla condivisione e scambio di file e messaggi.

Programmazione

Innanzi tutto i linguaggi. Ve ne sono parecchi con licenze libere come: Gcc il compilatore C di GNU, Python (un'introduzione: FAQ), Perl (e le sue innumerevoli librerie raccolte su CPAN), PHP, ZK un recentissimo framework AJAX, ...
Il numero di librerie specialistiche disponibili come software libero e' talmente elevato che non ha senso elencarle. A seconda delle necessita' (eg. sviluppo grafica, gestione multimedia, crittografia, networking, sviluppo web, ...) ve ne sono molteplici per tutti i linguaggi. Basta cercarle!

Dal punto di vista dello sviluppo del software sono molti i tool free utili, anzi sono quasi necessari.
CVS (Version Control System) e' un sistema per il controllo delle versioni come l'SCCS, RCS, ... La sua diffusione, per progetti free source e non, e' notevolissima. Un'evoluzione e' Subversion che introduce la gestione delle directory e operazioni di commit atomiche. Con l'uso dell'interfaccia Web-DAV verso Apache o di client MS-Windows come TortoiseSVN diventa veramente facile da utilizzare!
Eclipse e' molto diffuso come IDE (Integrated Development Environments) per Java. In realta' questo e' solo uno degli ambienti di Eclipse (SDK) ma Eclipse e' un tool che puo' essere utilizzato per realizzare ambienti di sviluppo complessi a piacere da integrare su soluzioni aziendali.
Molto utile e' anche TRAC per la gestione dei progetti software. Integrato con Subversion contiene un wiki adattato ed ha una gestione flessibile delle segnalazioni/bug che non richiede adattamenti e puo' essere utilizzata nella maggioranza dei progetti.
Premesso che personalmente utilizzo solo vi e make, non avendo ancora imparato neanche il ci... tuttavia ho sentito dire che un poco piu' recenti ed integrati sono: Visual Studio Code, Git e Source Tree.

Tra i tool di analisi delle prestazioni Grinder (un'introduzione: Introduzione a Grinder) e' un ottimo programma per realizzare benchmark. Scritto in Java, con un'interfaccia di scripting in Jython ed una gestione completa dei protocolli HTTP, HTTPS, dei cockies, ... e' lo strumento ideale per la preparazione di benchmark su applicationi J2EE e siti web.
JMeter permette la definizione guidata dei test (eg. ramp-up) ma richiede una certa conoscenza di Java, e' comunque un'ottima alternativa a Grinder.

Il disegno delle architetture Object Oriented viene descritto con un completo linguaggio di modelizzazione: l'UML. UMLet e' un tool java 100% che consente di disegnare i diversi modelli previsti. DIA e' invece un tool di disegno molto completo che consente di produrre UML ma anche flowcharts, diagrammi di rete, E/R, ...

NSIS (Nullsoft Scriptable Install System) e' un tool professionale open-source per generare wizard di installazione per ambienti Windows.

Sicurezza

Gli strumenti per l'analisi della sicurezza disponibili liberamente sono moltissimi. Ethereal [NdE link non piu' disponibile] con i suoi successori Packetyzer [NdE link non piu' disponibile] e WireShark sono ottimi sniffer disponibili su piu' piattaforme. Nell'epoca degli switch ovviamente il suo uso e' soprattutto quello di analisi e di debug del traffico di rete ma sul TCP quasi tutto passa in chiaro... Nessus e' un programma di analisi della sicurezza di sistemi che utilizza il port scanner NMAP. La sua architettura e' completa e prevede un server per l'esecuzione in batch degli scan, un'interfaccia grafica per l'amministrazione ed eventuali plug-in per gli exploit.
John the ripper e' il piu' famoso password cracker. Modificabile e personalizzabile e' anche un buon indicatore delle prestazioni della CPU!
Si tratta di strumenti potenti e sempre aggiornati. Come tutti gli strumenti possono essere utilizzati per fini corretti (misurare e migliorare la sicurezza dei propri sistemi) o meno (attaccare sistemi altrui). In ogni caso e' importante rimanere sempre aggiornati ed un buon elenco e' questo!

Come strumenti di difesa o comunque utili: TrueCrypt per creare un disco crittografato sul proprio sistema e PasswordSafe per memorizzare le password in modo sicuro.

La sicurezza di sistemi ed applicazioni free e' molto cresciuta in questi anni. Utilizzando distribuzioni aggiornate di Linux vengono automaticamente installate le versioni dei prodotti piu' sicuri con configurazioni, generalmente, gia' corrette.

Giochi

Per chi vuole cimentarsi nella creazione di giochi in 3D e' disponibile un ambiente completo per la loro realizzazione: Panda3D. Le librerie grafiche, sonore e di gestione delle periferiche sono in C. La programmazione viene invece effettuata con il potente Python. L'ambiente e' molto completo e comprende un editor di scena.

Speravate parlassi di giochi con cui giocare? Mi spiace, sono troppo vecchio e non gioco piu'... L'unico che rimpiango e' il rogue mentre il fortune l'ho gia' riscritto piu' volte! Insomma la directory /usr/games presente nella maggior parte dei Linux/Unix mi e' piu' che sufficiente. Per chi proprio insiste ecco un ricco link su cui trovare ottime cose tra cui un programma, che anche se non e' un gioco, e' comunque molto bello da vedere: Stellarium

Scambio messaggi e file

Mozilla Thunderbird e' un mail client assai diffuso, completo (eg. news, IMAP, ...) ed estendibile con molti plug-in (Lightning (Calendar), ...).

FileZilla e' un FTP client for Windows (in realta' supporta: FTP, SFTP, and FTPS).
WinSCP e' un client SFTP per MS-Windows.

Gaim e' un client grafico di chat che supporta praticamente tutti i protocolli attuali. La sua diffusione e' notevole e contiene parecchie funzionalita' anche innovative rispetto a programmi commerciali.

Samba e' l'implementazione GNU del protocollo di condivisione di file/stampanti su sistemi MS-Windows. Da sempre migliore (opinione personale) del corrispondente software proprietario e' il capostipite di una generazione di File Server e di Client specializzati per lo scambio di file. Bittorrent e' un protocollo per la condivisione di file che rende notevolmente efficiente il download anche di file di notevoli dimensioni. L'idea di base e' quella di dividere il file originale i pezzi (tipicamente da 256K) da scaricare in parallelo da sistemi differenti.
Altri diffusi protocolli/servizi di condivisione/scambio file sono eDonkey e Gnutella Per la parte client sono disponibili parecchi programmi: Azureus e' un java BitTorrent client, eMule per eDonkey2000, Ares Galaxy e Shareaza supportano piu' protocolli...

Tra gli strumenti per il lavoro di gruppo, di semplice installazione e gestione e' EGroupWare che offre un'insieme di moduli molto utili quali il calendario, la rubrica, un project manager, ... tutti disponibili con una semplice interfaccia web.

Networking, VOIP, Telefonia

Naturalmente un sistema Linux contiene al suo interno la pila completa dei protocolli di rete che lo rendono un'ottimo client (abbiamo gia' visto programmi come Ethereal...) ma anche un router, un gateway, un firewall, ...
Per chi volesse un router classico con prestazioni di alto livello e' disponibile Vyatta che presenta tutte le caratteristiche di un router di classe enterprise.

Tra i moltissimi tool basati sull'SNMP (Simple Network Management Protocol) sicuramente uno dei piu' utilizzati e' l' MRTG (Multi Router Traffic Grapher) che consente la realizzazione, in modo semplice ed efficace, di pagine HTML che presentano il traffico sulla rete con chiare immagini grafiche. Poiche' via SNMP e' possibile monitorare un ampio insieme di oggetti, oltre che router ed interfacce di rete, MRTG e' anche adattissimo per controllare utilizzo e prestazioni di Web Server, sistemi Unix, Database, ...
Stesso discorso vale per OpenNMS: un sistema di controllo delle apparecchiature di rete di classe Enterprise. Piu' recente di MRTG, ma dello stesso autore, c'e' anche l'ottimo smokeping, lo strumento migliore per valutare anche la latenza (fondamentale per il VOIP).
Per chi programma invece molto utile e' net-snmp che fornisce ambienti e librerie per utilizzare l'SNMP (Simple Network Management Protocol)

Il mondo dei PBX (Private Branch Exchange, insomma i centralini telefonici per i profani) e' sempre stato riservato ad apparecchiature proprietarie. Con Asterisk (un'introduzione: Asterisk e dintorni) ora e' possibile realizzare in modo economico e con funzionalita' molto estese un centralino completo utilizzando Linux come sistema ospite. L'architettura modulare e abbondanza dei software di corredo ne fanno uno degli ambienti piu' adatti per l'integrazione della telefonia, del VoIP, della gestione del multimedia, ... freePBX (in precedenza denominato AMP: Asterisk Management Portal) e' un portale che racchiude i migliori strumenti di gestione ed amministrazione di Astersik.

Google ha lanciato un'iniziativa per lo sviluppo di software (ovviamente Open) per il Mobile; l'idea e' molto stimolante... vedremo se avra' successo!

Amministrazione

Sono molte le utility per gli amministratori di sistemi disponibili come software liberi o di pubblico dominio.

Putty PuTTY e' un'implementazione libera di un emulatore di terminale con i client Telnet ed SSH. La diffusione e' notevole e la qualita' e' ottima.
VNC Virtual Network Computing utilizza il protocollo RFB (Remote FrameBuffer) per consentire di controllare in modo remoto un altro computer. E' indipendente dal sistema operativo e gestisce in modo efficiente la grafica e le periferiche HW. E' un tool divenuto fondamentale per ogni sistemista.
I sorgenti originali sono distribuiti sotto la General Public License e vi sono diverse versioni del software (alcune delle quali a pagamento ma altre, come TightVNC sono GPL).

Nagios e' un'ambiente per il monitoraggio di reti, sistemi e servizi. Completamente free permette la realizzazione di plugin esterni per il controllo di funzionalita' specifiche. L'interfaccia di amministrazione e controllo e' web e vi e' la possibilita' di configurare in modo semplice un'allarmistica (via email, SMS, ...) a fronte della rilevazione di un problema. Moltissimi i plug-in e componenti aggiuntivi disponibili (eg. Cacti)
Zenoss e' piu' recente, molto completo e graficamente molto accattivante. Zabbix e' altrettanto completo ed e' utilizzato su ambienti con un numero anche elevatissimo di sistemi e di controlli attivi. Hyperic e' altrettanto recente ed interessante. Ed ovviamente i gia' citati MRTG e OpenNMS. [NdE novita' da tenere in considerazione: sensu, icinga]

Sono abituato all'interfaccia da linea di comando, gia' Gnome e KDE mi sembrano troppo... pero' e' giusto conoscere anche Webmin il piu' utilizzato strumento di amministrazione remota.

Databases

Tra i database relazionali si distinguono, per diffusione e funzionalita': MySQL (il piu' diffuso su web: Introduzione a MySQL), PostgreSQL (il piu' completo: Introduzione a PostgreSQL), Firebird (semplice e veloce), HSQLDB (embedded in Pure Java 100%), SQLite (embedded in C/C++), ...
Distribuiti sotto licenze differenti, ma tutte Open, hanno in comune la qualita' che li rende utilizzabili anche su ambienti di produzione e su sistemi definiti "critici".

Molti i programmi Client per accedere ai dati: SQuirreL per accedere a qualsiasi base dati raggiungibile JDBC; SQLTools un client molto completo per Oracle (che non e' un DB Open Source ma e' il piu' diffuso tra i DB commerciali); per disegnare gli EER: Mogwai; ...

Vi sono anche ottimi strumenti di amministrazione per i database: MySQL Administrator e pgAdmin III sono i tool client/server per amministrare DB MySQL e PostgreSQL rispettivamente; phpMyAdmin e' il tool piu' utilizzato per la gestione di basi dati MySQL, realizzato in PHP si distingue per una semplice e completa interfaccia web; SQLyog e' un tool molto completo per amministrare ed utilizzare MySQL di recente disponibile anche in una versione enterprise; TOra e' uno strumento per l'amministrazione di Oracle; ...

Multimedia

Il mondo del multimedia e' in continua evoluzione. Moltissimi sono i software disponibili. Tra i player sicuramente da riportare sono: VLC, xine, MPlayer, ...
CDex e' un potente CD ripper: in pratica legge il contenuto di un CD e lo scarica con formati differenti (eg. MP3, WAV, FLAC). DVDx fa la stessa cosa... ma partendo da un DVD!
Audacity e' un editor multitraccia che supporta i formati piu' diffusi. E' come giocare al diskjokey con un mixer!

Anche se il numero di software liberi e' veramente molto ampio deve pero' essere riportato che molti formati, anche se universalmente utilizzati, sono coperti da licenze e brevetti (eg. MP3, MP4, ...) La Xiph.Org Foundation definisce formati standard free per i dati multimediali come Ogg Vorbis (rispetto al brevettato MP3), Ogg Theora (vs MPEG-4, RealVideo, Windows Media Video) e CODEC (eg. Speex, FLAC).

Last minute

Questi non ho ancora avuto tempo di descriverli meglio e metterli nel posto giusto: Hadoop (Cassandra, Hive, Pig, ...), MongoDB, ClickHouse, TiDB, Pentaho (PDI/Kettle, BI, ...) Docker, Kubernetes, NoSQLBooster, rrdtool, smokeping, ...

MAC

Fino ad ora abbiamo visto programmi per le piattaforme Linux e Windows... ma c'e' anche il mondo MAC: Open Source MAC, MAC OS Forge, MAC Ports, MAC Update, ...

Qualche esempio? Leggete questa pagina.

Gratis!

Il software libero non impone nessuna restrizione nell'utilizzo e nel miglioramento dei programmi. E' quindi la scelta migliore, tuttavia a volte non si trova quello che servirebbe...
Sono pero' disponibili in modo gratuito, anche se non libero, moltissimi utili software. Le ragioni sono diverse, non e' il caso di elencarle... ma anche se questa pagina e' dedicata al software libero mi sembra importante riportare qualche link anche per questo tipo di licenze.

Alcuni software sono completamente protetti da copyright e non vengono neppure distribuiti. Ma sono liberi i servizi che offrono agli utenti connessi su Internet. Altri sono scaricabili ed utilizzabili tranquillamente, ma hanno licenze non completamente "libere". Gli esempi sono moltissimi ma tra tutti: Google il motore di ricerca piu' utilizzato (ed anche il piu' adatto allo strano mestiere che faccio [l'informatico NdT]), una directory preparata da umani e' invece l'Open Directory Project, The Free Dictionary un dizionario, e non solo poiche' offre anche contenuti liberamenti utilizzabili, De Mauro Paravia un buon dizionario d'italiano, WordWeb un comodo dizionario d'inglese, FRESHMEAT e Download.com ricchi e comodi siti per il download di software free, freeware e shareware, RPMFind per la ricerca di pacchetti precompilati su Linux, PDF Reader e Flash Player due usatissimi plug-in per i browser per leggere documenti PDF e filmati Flash rispettivamente, You Tube un sito per condividere video, Flickr un sito per pubblicazione e condivisione di immagini (con una ricerca molto potente basata su TAG), Eudora un mail client, Hotmail, Yahoo!Mail e GMail tre usatissimi servizi di webmail, NeTools per controllare siti e DNS, Faxator per inviare FAX gratis, AVG, Avira diffusi antivirus e Ad-Aware un ottimo spy remover, Winamp e iTune due tra i piu' diffusi audio player disponibili gratuitamente, Skype per la telefonia VoIP gratuita, SmartFTP un ottimo client FTP, molte sono le utility per la sicurezza disponibili sul sito di Nir Sofer che contiene anche una raccolta ragionata di link, Java il linguaggio che ha rivoluzionato la programmazione su Internet, e' protetto da una licenza SUN ma e' liberamente utilizzabile e disponibile, FrontEnd un Java disassember grafico per windows: comodissimo!, Phrogram un simpatico ambiente didattico per insegnare la programmazione ai ragazzi e non solo... , VMware l'ambiente di virtualizzazione piu' diffuso, VirtualBox un altro ambiente di virtualizzazione molto utilizzato sui PC, Docker l'evoluzione della virtualizzazione su container, Oracle XE la versione gratuita del piu' diffuso RDBMS commerciale ed un comodo ambiente per lo sviluppo SQL Developer, (ominimo dell'ottimo SQL Developer che consente di accedere a piu' DB via JDBC), Daemon Tools che consentono di vedere immagini ISO di CD e DVD come drive, ...

La rivoluzione del software libero

E' difficile riconoscere quelli che sono cambiamenti storici quando si stanno vivendo. Ma quello che sta avvenendo con il Software Libero e' una vera rivoluzione che sta cambiando il modo in cui condividere la conoscenza.
In questo documento sono stati riportati solo alcuni dei software liberi disponibili... la rivoluzione e' iniziata: ve ne saranno sempre di piu'!
Un esempio concreto? Questo lungo elenco di software Open Source; non e' completo, sarebbe impossibile, ma e' in italiano! [NdE il link originale e' stato sostituito: la pagina in italiano e' stata cancellata in seguito ad una votazione degli utenti, risultava difficilmente gestibile]

Tornando alle origini il primo a riconoscere l'importanza del Free Software e' stato R. Stallman, ma da allora i contributi sono stati innumerevoli. In questa pagina ne ho ricordati un paio perche' hanno introdotto software fondamentali e... sono europei. Non ci sono confini! Gli inizi sono stati limitati e riservati agli entusiasti... ma oramai la diffusione del software libero ha raggiunto la massa critica. La quantita' e qualita' dei programmi disponibili sono un vantaggio per tutti gli utenti. Anche chi si occupa dello sviluppo riconosce che porre sotto GPL una realizzazione ne permette lo sviluppo piu' rapido grazie all'aiuto della comunita'.

Nella definizione del software libero sono riportate le seguenti liberta':

Come e' ovvio la liberta' 0 e 3 richiedono, o risultano semplificate con, la disponibilita' del codice sorgente commentato (naturalmente la numerazione comincia da 0!).
In inglese free significa sia "libero" che "gratis". Sempre materialisti questi anglosassoni! Ma come abbiamo visto non e' detto che un software libero sia gratuito (anche se poi puo' essere liberamente copiato e modificato), ne che un software gratuito sia libero (perche' possono essere presenti limitazioni sul suo utilizzo).

Con il termine Shareware si indica un software distribuibile liberamente ed utilizzabile senza costo per un periodo di tempo limitato o sotto particolari condizioni, terminate le quali viene richiesta la registrazione ed il pagamento di una licenza (tipicamente assai modesta).

Con il termine Freeware si indica un software distribuibile ed utilizzabile gratuitamente ma il cui software e' proprietario o comunque protetto da una licenza.

Con il termine Open Source si indica un software i cui sorgenti sono distribuiti liberamente; in qualche caso sono presenti vincoli di licenza che limitano l'utilizzo a particolari condizioni (eg. uso personale). Tra le licenze Open Source sicuramente molto importanti sono la licenza Apache (molto libera, che consente di riutilizzare il codice anche in prodotti a pagamento), la licenza GNU (che cerca di creare un ecosistema libero con il vincolo copyleft), ... I dettagli sarebbero molti: ad esempio la Apache License 2.0 e' compatibile con la GNU GPL v3 ma non con la v2!

Ma il vero vantaggio del Free Software e' che ogni rilascio, ogni documento, ogni correzione arricchisce la comunita' degli utenti. Tutti possono utilizzare i programmi liberi, e migliorarli.

Contribuire alla crescita del software libero e' facile. Il primo modo e' quello di utilizzare software libero!
Per chi vuol fare qualcosa in piu' vi sono innumerevoli progetti e moltissimi accettano contributi tecnici. Naturalmente si puo' aiutare a seconda delle proprie capacita' ed esperienze: sviluppando codice, curando la documentazione, effettuando traduzioni, gestendo siti e mailing list... Chi ha una nuova idea puo' condividerla pubblicando il proprio lavoro con una licenza libera. Il contributo puo' essere un nuovo software o un documento (eg. l'ottimo libro in italiano Libero come un software).
E' anche possibile contribuire economicamente con una donazione o acquistando qualcosa. Le possibilita' sono molte, ma se volete contribuire comprando qualcosa... il mio personale suggerimento va per questo libro.

It's a long way to the top (if You wanna Open Source)

Testo: La rivoluzione del software libero
Data: 1 Gennaio 2006
Versione: 1.0.25 - 1 Aprile 2017
Autore: Meo Bogliolo


Valid HTML 4.01 Transitional Valid CSS! Level A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0 CC-GNU GPL
Questo documento e' stato rilasciato sotto la licenza CC-Gnu GPL.
[Powered by Apache] SourceForge.net Logo Powered by ClamAV  Use OpenOffice.org
Get Thunderbird Get Firefox [The GNU Project]