Software libero per il PDF

Nei miei due recenti articoli su come possiamo scrivere e pubblicare noi stessi ebook (“Scrivi e pubblica i tuoi ebook” del settembre 2017) o veri e propri libri stampati su carta (“Scrivi e pubblica veri libri” del novembre 2017) ho illustrato come il formato PDF si presti egregiamente a questi fini, pur essendo ormai affiancato e, in certi casi, giustamente soppiantato da più flessibili altri formati, come il diffusissimo ePub, meglio fruibili sui ridotti schermi di smartphone e piccoli tablet.
Nei due articoli ho anche presentato due formidabili strumenti del mondo del software libero con i quali possiamo produrre file PDF: LibreOffice e LyX.
Per un più completo panorama su cosa si possa fare con il PDF e con il software libero ho ora ritenuto utile proporre la panoramica che si trova nell’allegato manualetto, in formato PDF, che può essere liberamente scaricato, stampato e diffuso.

pdf

Scrivi e pubblica veri libri

Nell’articolo “Scrivi e pubblica i tuoi ebook” dello scorso settembre e nel relativo allegato “epub” ho illustrato come si possano produrre facilmente ebook in un perfetto formato ePub con LibreOffice per pubblicarli e venderli attraverso alcune organizzazioni: tutto senza investire un euro.
Ho anche ricordato che, oltre al formato ePub, esiste il formato PDF, poco adatto agli apparecchi lettori di ebook e a schermi di piccole dimensioni ma adattissimo per gli schermi dai 10 pollici in su di tablet, notebook e personal computer: ideale, soprattutto, per stampare la nostra produzione su carta.
La produzione dei nostri lavori nel formato PDF è possibile utilizzando lo stesso strumento LibreOffice esattamente nello stesso modo con cui lo utilizziamo per produrre nel formato ePub.
Se però vogliamo che il nostro prodotto abbia la forma classica di un libro secondo i dettami stilistici dell’editoria cartacea dobbiamo ricorrere ad un altro potente strumento che ci mette a disposizione il mondo del software libero: il motore di tipocomposizione Tex.
Nel tutorial allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile, illustro questo strumento e un modo per utilizzarlo con relativa facilità.

pdf_lyx

A chi servono i database NoSQL

Nell’allegato all’articolo “Matematica e Statistica con Calc” del giugno 2016, archiviato nella categoria “Software libero” di questo blog, ho illustrato come il più semplice e rudimentale database possa essere creato e gestito con un foglio di calcolo.
Negli allegati agli articoli “Software libero per gestire dati” del maggio 2015 e “SQLite, un database per tutti” del dicembre 2016, pure archiviati nella categoria “Software libero” di questo blog, ho illustrato i tre principali strumenti che il software libero ci mette a disposizione per creare e gestire database più seri e professionali: il modulo Base di LibreOffice, MySQL e SQLite.
Questi ultimi strumenti, pensati per essere utilizzati anche su personal computer, funzionano secondo l’impostazione ereditata dai loro predecessori progettati per grandi calcolatori (come il database della Oracle o il DB2 della IBM): impostazione che prevede l’archiviazione dei dati secondo il principio che lo stesso dato debba essere scritto una ed una sola volta e le sue eventuali ricorrenze multiple siano gestite instaurando relazioni. Da qui il nome di database relazionali.
Per capirci: se vogliamo creare un database che contenga autori e titoli dei libri della nostra biblioteca, anziché creare una sola tabella nella quale saremmo costretti a ripetere, a fianco di ciascun titolo, il nome dell’autore di più titoli, creiamo una tabella per gli autori, in cui scriviamo una sola volta l’autore e una tabella per i titoli, prevedendo in ciascuna tabella una colonna in cui inserire un dato (un codice numerico) che colleghi autore e titolo.
Questo semplice esempio non ci fornisce una giusta idea della semplificazione che questo sistema introduce. Per una sensazione più reale pensiamo che al posto degli autori ci siano le migliaia di correntisti di una banca, con il loro indirizzo, dati anagrafici, ecc. e al posto dei titoli ci siano le operazioni bancarie che i correntisti compiono e che il database sia destinato a produrre gli estratti conto mensili.
Il linguaggio con cui si costruiscono e si gestiscono i database relazionali è stato denominato SQL, acronimo di Structured Query Language.
Il nome NoSQL (acronimo di Not Only SQL), con il quale non si nega la validità dell’impostazione relazionale (No sta per Not Only non per No), fu usato per la prima volta nel 1998 da certo Carlo Strozzi per identificare una base di dati relazionale non gestita da interfaccia SQL.
Attorno all’idea si creò poi un vero e proprio movimento che, oltre al non uso dell’interfaccia SQL, teorizza addirittura come, in certi casi, sia utile l’abbandono della stessa logica relazionale e, dal 2009, ad opera di certo Eric Evans, è con quel nome che si identifica questo movimento.
Siamo in presenza di una creatività tutta sviluppata nel mondo dell’open source, del software libero, ma l’humus di coltura deriva dal fatto che grandi aziende che collezionano moli di dati di vastità e ritmi di aggiornamento mai sperimentati prima (i così detti Big Data) e che sono interessate a gestire questi dati per profitto si sono accorte che database impostati secondo la logica relazionale non fanno per loro. Stiamo parlando di Google, di Amazon, di Facebook, ecc.
I database di queste strutture sono chiamati a memorizzare e gestire tutta una serie di dati eterogenei (abitudini e orientamenti di acquisto o di consultazione, idee, valori numerici, tag di classificazione, ecc.), presenti in misura variabile individuo per individuo, e il rigido inquadramento tabellare del database relazionale mal si presta a questa memorizzazione, per cui il linguaggio SQL non è utilizzabile per l’estrazione e l’elaborazione dei dati stessi.
Inoltre l’impianto relazionale ha il difetto di essere scalabile solo verticalmente, per cui, aumentando le dimensioni del database, occorre sostituire al vecchio server che lo conteneva un server più grande. Rinunciando all’impianto relazionale si può realizzare una scalabilità orizzontale, cioè, per ospitare la crescita del database si aggiunge semplicemente un nuovo server al vecchio.
Sono così state escogitate diverse e più funzionali modalità di creazione e gestione di database per quelle fattispecie e per ottenere questo non secondario vantaggio nella gestione dell’hardware.
La materia è in piena evoluzione e, accanto a soluzioni elaborate all’interno di aziende per i rispettivi fabbisogni (Amazon si è costruita un database NoSQL chiamato Dynamo, Facebook ha sviluppato al proprio interno un database NoSQL chiamato Cassandra, ecc.), abbiamo prodotti opensource alla portata anche del nostro piccolo personal computer, uno per tutti MongoDB.
All’indirizzo https://www.mongodb.com/download-center#atlas troviamo il software per Linux, Windows e OS X, con istruzioni per l’installazione, documentazione e tutorial. Chi usa Linux trova molto probabilmente tutto ciò che serve nel repository e può caricare con il Gestore applicazioni.
Fino a quando non avremo le esigenze che hanno i grandi operatori del web potremo comunque continuare a gestire i nostri database all’antica e rinunciare ad utilizzare il cannone per liberarci della mosca.
Peraltro nel mondo NoSQL non si sono ancora sviluppati software di interfaccia per semplificare la gestione del database, come è invece avvenuto nel mondo SQL (vedi il modulo Base di LibreOffice, phpMyAdmin per MySQL, Sqliteman per SQLite, ecc.), per cui non è così semplice muoversi in questo mondo.

Scrivi e pubblica i tuoi ebooks.

In questo blog, negli allegati agli articoli “Software libero per scrivere” del febbraio 2015 e “Software libero per ebook” del maggio 2015, entrambi archiviati nella categoria Software libero, illustravo come, utilizzando LibreOffice arricchito da alcune estensioni, sia possibile produrre documenti di contenuto complesso, anche nel formato .epub.
Le stesse indicazioni sono contenute nei Capitoli 1 e 6 del manuale Vittorio Albertoni – Computer tuttofare con programmi liberi e gratuiti, reperibile in formato PDF in tutte le librerie on-line e in formato cartaceo su Amazon.
A quei tempi mi riferivo alla versione 4 di LibreOffice che produceva in formato .epub con uno strumento, writer2epub, dal funzionamento non sempre di tutta affidabilità per documenti non di solo testo, spesso generando lavori che non superavano il test per la diffusione in libreria.
Con le più recenti versioni di LibreOffice, ormai giunte alla 6, e con le nuove estensioni resesi disponibili grazie agli sviluppi del pacchetto writer2latex si è raggiunta la perfezione, nel senso che diventa possibile esportare il documento, per complicato che sia dalla presenza di formule matematiche, tabelle, grafici, illustrazioni, pentagrammi musicali e formule chimiche in un perfetto formato .epub a prova di qualsiasi test.
Navigando in rete trovo vari dubbi e discussioni su come sia possibile produrre ebook complessi, cioè non di solo testo, nel formato .epub senza essere specialisti del linguaggio html, ricorrendo a tex (soprattutto se si è matematici) ed a convertitori (da pandoc a Calibre) con constatazione di quanto siano sempre deludenti i risultati.
Non trovo nessuno che indica la soluzione più semplice, almeno al momento attuale, e allora la richiamo io: LibreOffice arricchita da alcune estensioni.
Per non parlare della facilità con cui, una volta scritto il nostro ebook, possiamo pubblicarlo e metterlo in vendita senza spendere un euro attraverso le tante librerie online che troviamo sul web.
Nel tutorial allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile, fornisco le necessarie indicazioni.

epub

Programmi Windows su Linux e viceversa

Praticamente da quando c’è Linux si è lavorato, nel mondo del software libero, per creare la possibilità di eseguire su Linux programmi scritti per il sistema operativo Windows. La prima versione sperimentale di un software che lo consente risale al 4 luglio 1993 ed è stata seguita da una serie di altre versioni per sviluppatori e smanettoni, non alla portata dei comuni mortali. Il primo serio e concreto risultato destinato al grande pubblico risale al 17 giugno 2008, data del rilascio della versione 1.0 di WINE. Il 20 aprile 2017 è stata rilasciata l’ultima versione, la 2.0.1. Grazie a WINE possiamo utilizzare su Linux moltissimi programmi scritti per Windows. Moltissimi e non tutti: in genere girano bene i programmi per architettura a 32 bit e quelli che possono funzionare senza interfacciarsi con altri.
Con il rilascio dell’Anniversary Update di Windows 10, che risale al 2 agosto 2016, Microsoft ha fatto qualche cosa di simile rendendo possibile, per computer equipaggiati Windows 10 upgradato alla versione Anniversary su architettura a 64 bit, utilizzare la shell del sistema operativo Linux su Windows. Il tutto ad uso di di gente che usa la shell, cioè di gente che lavora a riga di comando (sviluppatori, smanettoni, hacker, ecc.).
Da qualche giorno fa bella mostra di sé su Windows Store una App, che si chiama Ubuntu e che rende più agevole di prima attivare questa potenzialità. La comparsa nello Store, cui accedono anche principianti e dilettanti, ha fatto credere a qualcuno che siamo arrivati ad un WINE rovesciato, cioè a qualche cosa che consenta di far girare su Windows qualsiasi programma scritto per Linux.
Purtroppo non è così e, per fare chiarezza, oltre che per diffondere la conoscenza dei meriti di WINE, ho ritenuto di proporre l’allegato vademecum, liberamente scaricabile, stampabile e distribuibile.

wine_wsl

ffDiaporama S.O.S.

Ritengo che ffDiaporama sia il miglior software esistente per creare presentazioni di fotografie.
Partendo da fotografie, volendo anche da videoclip o mixando entrambe le cose, possiamo creare filmati di livello professionale, fruibili come tali o trasferibili su DVD, completi di commento audio e/o di accompagnamento musicale.
Si tratta di un software libero, disponibile per Linux e per Windows, che troviamo – chissà per quanto tempo ancora – all’indirizzo http://ffdiaporama.tuxfamily.org/?lang=it.
Dico chissà per quanto tempo ancora perché non c’è più nessuno che cura lo sviluppo di questo bellissimo software.
L’ultima versione stabile è la 2.1, rilasciata il 9 febbraio 2014. Esistono tracce di lavori di sviluppo per la versione 2.2 fino a luglio 2014 e poi il progetto è stato abbandonato, pare per subentrata impossibilità di continuare a dedicarvisi da parte del team leader, primo estensore del software.
Cose che succedono nel mondo del software libero.
Però è un vero peccato, perché, purtroppo, con le versioni più recenti dei sistemi operativi la 2.1 non funziona più bene o addirittura non si riesce nemmeno ad installare. Tanto è vero che ffDiaporama non si trova più nei repository delle distro di più recente rilascio.
Per l’esattezza, l’ultima versione stabile 2.1 di ffDiaporama funziona bene sulle versioni Ubuntu dalla 12.04 alla 14.04, con relative derivate, comprese le versioni Mint da 13 a 17 e KXStudio, sulle versioni 19 e 20 di Fedora, sulle versioni 12 e 13 di OpenSuse. Per Windows la 2.1 va bene da Vista a 8.1. Su Windows XP/SP3, per chi ancora l’avesse, occorre utilizzare la versione 1.6, del 2013, di ffDiaporama.
Sul sito all’indirizzo sopra citato si trovano comunque tutti i riferimenti del caso, con possibilità di scaricare il software.
Trattandosi di un  software veramente prezioso consiglio a tutti di impossessarsene fin che si è in tempo. Nulla vieta che anche chi usa sistemi operativi di ultima generazione possa tenersi in un angolino del disco fisso o su una chiavetta USB una versione di Ubuntu 14.04 su cui caricarlo per averlo a disposizione.
Con l’auspicio che qualche volonteroso riprenda a far lavorare il team di sviluppo in modo da poter continuare ad avere ffDiaporama sulle ultime versioni dei sistemi operativi.
Nell’allegato manualetto in formato PDF, liberamente scaricabile e distribuibile, illustro cosa sia possibile fare con ffDiaporama.

ffDiaporama

Il suono di Linux

Sono ormai una dozzina d’anni che Linux si è riscattato da una notevole situazione di inferiorità nei confronti di Windows e di Mac nel consentire ai suoi utenti di produrre suono e fare musica con il computer. Inferiorità dovuta non soltanto alla scarsità di software di ragionevolmente facile uso che girasse sul sistema Linux per gestire il suono e la musica ma anche al non efficiente rapporto tra il sistema operativo e l’hardware di produzione del suono.
Non che con Windows fossero rose e fiori: se far suonare un file MIDI con Linux era un’impresa difficile, farlo con Windows era meno difficile, ma era pur sempre un’impresa, soprattutto se si volevano evitare gli improponibili suoni della wavetable della scheda audio interna e si voleva utilizzare un expander esterno.
Penso si possa anche affermare che il riscatto è stato tale da portare Linux in una posizione di primissimo ordine, con le carte in regola per esaudire le aspettative dei più esigenti professionisti.
Basti pensare che tutto quanto si trova descritto in questo blog relativamente a ciò che si può fare su un computer con la musica e il suono utilizzando software libero – e non è poco – lo si può fare senza difficoltà alcuna con il sistema operativo Linux di una qualsiasi delle distribuzioni che ho illustrato nel mio articolo del mese scorso, dal titolo “Quale Linux”, senza bisogno di particolari configurazioni.
Del resto quanto ho descritto, come tutto ciò che si trova in questo blog, è destinato a dilettanti evoluti: i professionisti ne sanno più di me.
Penso tuttavia che anche per il dilettante sia utile avere almeno una infarinatura di cosa preveda il sistema operativo Linux per coloro che si accostino da professionisti al mondo della musica e del suono: utile per una maggiore consapevolezza, pur rimanendo dilettanti, e utile per fare magari qualche tentativo o esperimento da professionista.
A questo scopo ho redatto il manualetto allegato in formato PDF, liberamente scaricabile, riproducibile e distribuibile.

suono_linux

Quale Linux

Nell’agosto del 1991 lo studente universitario finlandese Linus Torvalds affidò alla rete il primo kernel di quello che sarebbe diventato il sistema operativo Linux (dal nome di Torvalds combinato con Minix, il sistema unix-like che lo ispirò nella sua impresa). E’ bastato un anno perché questa cosa, nata per divertimento, diventasse una cosa seria: già nel settembre del 1992, infatti, un giovane ingegnere informatico con tre studenti universitari di matematica fondarono a Norimberga la prima struttura organizzata per fare che ciò avvenisse, la S.u.S.E. (Software und System Entwicklung). Nel 1993 il successo fu decretato con la nascita della Red Hat Inc. a Raleigh, nel Nord Carolina e con il lancio, da parte del compianto Ian Murdoch, del progetto Debian (combinata del nome di Murdoch, Ian, con le prime lettere di quello della fidanzata Debra): il progetto Debian fu ed è ancora quello più aderente alla filosofia del software libero.
Qualche anno dopo, nel 1998, nacque il progetto Mandrake Linux con l’intento di rendere di più semplice utilizzo il sistema Linux distribuito da Red Hat; dopo attriti con chi deteneva i diritti d’autore dell’omonimo Mandrake dei fumetti, Mandrake Linux divenne Mandriva.
Nel frattempo Red Hat si dedicava sempre più allo sviluppo di applicazioni server e per il mondo imprenditoriale; la diffusione della distribuzione Linux Red Hat per il più vasto pubblico, dal 2003, passò al progetto Fedora.
Nel 2004 nacque, ad opera del miliardario sudafricano Mark Shuttleworth, il progetto Ubuntu con lo scopo di portare la distribuzione Debian dappertutto ed alla portata di tutti, arricchendola sempre più, rendendola sempre più facile da usare e, soprattutto, facendo in modo che chiunque possa utilizzare sistema operativo e quanto più software possibile con interfacce nella propria lingua.
Nel 2006, nonostante Ubuntu già dimostrasse di essere su una buona strada per mantenere fede a questi suoi propositi, nacque un progetto, Linux Mint, che, basandosi su Ubuntu, voleva creare distribuzioni ancora più belle, ricche e facili da usare.
Infatti, accanto alla necessità che il kernel e il sistema operativo Linux diventasse utilizzabile nel mondo imprenditoriale, sui server e in strutture dotate della capacità di progettare il software applicativo da dare in pasto al sistema operativo – obiettivo raggiunto in pieno in pochi anni – c’è sempre stato il forte desiderio delle comunità che si dedicavano ai citati progetti Debian, Fedora, Ubuntu che il nuovo sistema operativo si diffondesse anche tra il pubblico, questa volta non solo come sistema operativo ma come pacchetto contenente, insieme al sistema operativo, alcuni programmi applicativi, almeno quelli di uso più ricorrente (word processor, foglio di calcolo, browser web, riproduttori multimediali, ecc.): ciò che si chiama distribuzione o meglio, per gli affezionati, distro.
Le prime distro che si diffusero, SuSE e Debian, erano costituite da una raccolta di CD, il primo dei quali conteneva il sistema operativo e il software di più ricorrente uso; gli altri programmi si trovavano, all’occorrenza, sugli altri CD e si potevano caricare sul computer con semplicissime procedure e, soprattutto, con la certezza che funzionassero.
Ai CD, subentrata la possibilità di scaricare dati da Internet con velocità sempre crescenti, si sono sostituiti i così detti repository, magazzini digitali di software raggiungibili dal sistema operativo attraverso la rete e lo stesso sistema operativo si scarica ormai dai siti in rete dei distributori.
I sistemi di gestione dei pacchetti di programmi inclusi nelle distribuzioni sono due: apt (advanced packaging tool) della Debian e derivati Ubuntu e Mint e rpm (redhat package manager) della Red Hat e derivate Mandriva e Fedora, adottato anche da SuSE. Questi sistemi di gestione consentono il caricamento dei programmi applicativi sul computer in modo facilissimo, occupandosi di caricare anche tutte le librerie per farli funzionare (come si suol dire, sistemando le dipendenze). Caricato il sistema operativo, troviamo sul computer un gestore dei programmi, variamente battezzato, che ci elenca, suddivisi per categorie, tutti i programmi disponibili nel repository della distribuzione con la possibilità, essendo collegati a Internet, di caricarli sul computer con un semplice click.
A questo punto, chi dice che Linux è un sistema difficile da usare e non adatto a principianti, non sa veramente di cosa parla.
Come sicuramente non è aggiornato chi crea ansia sul fatto che le varie distribuzioni Linux non funzionino su tutti i computer o non riconoscano certe periferiche (stampanti, scanner, ecc.): il così detto problema dei driver. Può darsi che a inizio secolo qualche problema si sia verificato, ma ormai, se ci riferiamo a prodotti di marca e di ampia diffusione, anche questo timore non ha fondamento alcuno. Certo che, di fronte a un prodotto di nicchia, potremmo incontrare difficoltà. Sono comunque facilmente verificabili in rete le compatibilità.
In sostanza, rendiamoci conto che Linux non è più un fatto pionieristico: basti pensare che i due terzi dei server nel mondo sono equipaggiati Linux.
La diffusione stenta ad affermarsi negli usi domestici o delle piccole aziende, anche perché, quando acquistiamo un computer per questi usi, ce lo ritroviamo già equipaggiato Windows: alla faccia della lotta alle posizioni dominanti.

Per chi voglia assaggiare la variante Linux vorrei dare qualche indicazione, rammentando che tutti i sistemi Linux sono installabili anche a fianco di altri sistemi già presenti sul computer: all’accensione comparirà un menu da cui scegliere il sistema da avviare.
Nel formulare le mie indicazioni mi limito alle distribuzioni più affidabili che fanno capo alle strutture e ai progetti che ho citato prima e che hanno fatto la storia di Linux. Si tratta, infatti, delle distribuzioni che creano nessuno o meno problemi all’utente inesperto, sia in fase di installazione sia in fase di utilizzo, e le elencherò proprio in quest’ordine.
Ovviamente prescindo dalle distribuzioni a pagamento destinate al mondo produttivo, come Red Hat Enterprise Linux e Suse Linux Enterprise, o destinate ai server: a pagamento si fa per dire, nel raffronto con quanto sono a pagamento le analoghe e meno affidabili soluzioni proposte da Microsoft (Ubuntu server è comunque gratuito e si paga solo se si stipula un contratto di assistenza).
Altra avvertenza preliminare: Debian e Ubuntu fanno dei rilasci a distanza ravvicinata, Ubuntu puntualmente ogni sei mesi e Debian, con i suoi rilasci testing o unstable, con meno regolarità ma con cadenza simile. Si tratta di rilasci destinati a migliorare, a correggere imperfezioni delle versioni precedenti, ad includere sempre nuovi driver e sempre nuove librerie al servizio dell’evoluzione dell’hardware e del software. Tutta roba da addetti ai lavori e che è meglio l’utente normale lasci agli addetti ai lavori, preferendo le versioni stabili che vediamo subito.

Per vivere tranquilli e godersi un Linux senza problemi la distro che mi sento di suggerire per prima è Linux Mint. Come ho già detto, Linux Mint è una riproposizione di Ubuntu, con un repository dei programmi integrato con quello di Ubuntu, in versione di estrema facilità di uso e con una cura dei particolari di rifinitura al limite del perfezionismo. Le sue distro vengono diffuse ogni due anni, all’epoca maggio/giugno, un paio di mesi dopo l’uscita delle Ubuntu LTS su cui si basano e sono contraddistinte da un numero cardinale: l’ultima versione uscita porta il numero 18 e la sua prima edizione, Linux Mint 18 nominata Sarah, uscita nel 2016, l’ho presentata nel mio articolo “Benvenuta Sarah” su questo blog nel luglio del 2016 con allegato un manualetto per l’installazione. Queste versioni sono supportate con aggiornamenti per 5 anni: la 18 lo sarà fino al 2021. Nel periodo di supporto, per chi volesse procurarsi per la prima volta la versione più aggiornata, vengono rese disponibili sotto-versioni: nel gennaio 2017, per esempio, è uscita la versione 18.1, che sarà sempre supportata fino al 2021. Solo nel 2018 uscirà la versione 19, che sarà supportata fino al 2023. Il sito su cui troviamo Linux Mint è https://www.linuxmint.com/, dove, purtroppo in inglese, troviamo descritte le varie versioni grafiche disponibili e possiamo scaricare quella che più ci piace.
Con alcuni piccoli e superabilissimi inconvenienti che possono sorgere nel dopo installazione per sistemare i pacchetti linguistici o alcuni driver, metterei al secondo posto la ricchezza che ci offre Ubuntu. Sul sito http://www.ubuntu-it.org/ troviamo, in bella lingua italiana, una completa presentazione di Ubuntu con tutte le sue derivate, tra le quali possiamo trovare quella che più incontra i nostri gusti, le nostre necessità di lavoro o le caratteristiche del nostro computer: se ci interessa soprattutto la multimedialità probabilmente ci conviene installare Ubuntu studio, se siamo insegnanti probabilmente Edubuntu è quello che fa per noi, se abbiamo un computer vecchiotto e un po’ debole di RAM possiamo scegliere Lubuntu con la sua leggerissima interfaccia grafica, ecc: troviamo tutto ben descritto sul sito. Se scarichiamo la versione standard possiamo scegliere tra l’ultima versione LTS (la Long Term Support, con supporto di 5 anni, che consiglio a chi vuole eliminare ogni possibile problema) o l’ultima intermedia semestrale (quella che, come ho detto prima, lascerei ai più esperti). Quanto alle versioni specializzate, tipo Edubuntu, Ubuntu studio, ecc. teniamo presente che non costa nulla caricare sullo stesso computer più sistemi operativi: possiamo benissimo avere Xubuntu per scrivere e fare di conto e Ubuntu studio per fare musica.
Mint e Ubuntu hanno il pregio di offrirci ottimi gestori di programmi attraverso i quali possiamo arricchire senza alcuna difficoltà di ricerca e di caricamento il nostro computer. Gli aggiornamenti vengono proposti indicandone il tipo e il grado di rischio, in modo che è lasciata a noi la scelta se farli o meno.
Altra distro di tutto rispetto, solo forse un po’ più difficile da installare e manutenere, è quella che ci viene offerta da S.u.S.E. con il nome openSUSE. La versione corrente è la 13.2 e si può scaricare dal seguente indirizzo https://it.opensuse.org/Portal:Distribuzione. Al momento dell’installazione si sceglie l’interfaccia grafica del desktop tra le alternative KDE, Gnome e Compiz. Una descrizione di queste alternative si trova all’indirizzo https://it.opensuse.org/Interfaccia_grafica_utente. Rispetto a Ubuntu, open SUSE ha un magazzino di programmi meno organizzato e l’installazione degli aggiornamenti, proposti in maniera indiscriminata, può creare problemi dalle conseguenze catastrofiche.
Non per difetti di funzionamento, che è ottimo, ma semplicemente per la maggiore difficoltà a reperire e caricare i programmi, dopo quanto elencato metterei Fedora. Il suo sito è https://getfedora.org/it/. Il sistema che ci viene offerto in prima istanza da Fedora è quello denominato Workstation, ma secondo i miei gusti è graficamente il peggiore tra tutti quelli che possiamo avere. Ve ne sono altri 6, ben descritti nella zona centrale della pagina web del sito, sotto il titolo “Vorresti ulteriori opzioni per Fedora?”. La versione corrente, variamente vestita come grafica, è la 25.
Riandando a coloro che hanno fatto la storia di Linux, dopo la crisi finanziaria che ha decretato la chiusura di Mandriva nel 2015, mi piace segnalare che sulle ceneri di Mandriva è nata openMandriva il cui sito web è https://www.openmandriva.org/?lang=en. Recentemente è stata rilasciata la distro LX3, graficamente impostata su KDE, che mi pare non abbia nulla da invidiare a quelle fin qui citate. La sua installazione penso sia la più facile del mondo Linux ma, purtroppo, non altrettanto avviene per alcune configurazioni che arrivano ad impiantare il computer.
Con estremo disagio, perché non se lo meriterebbe per la sua importanza storica, metto all’ultimo posto Debian, che troviamo sul sito https://www.debian.org/index.it.html. La versione stable corrente è la 8. I difetti di Debian – che se si riesce a installare è ottimo sotto tutti gli aspetti – stanno nella difficoltà di installazione, che spesso naufraga impiantando il computer, e in problemi ricorrenti con alcuni driver. Non dimentichiamo, comunque, che grazie a Debian abbiamo Mint e Ubuntu.
Tutte le distro che ho elencato possono essere scaricare in versione “live”. Queste versioni, masterizzate su DVD o inserite su chiavetta USB avviabile, ci offrono la possibilità di essere provate senza essere installate sul disco rigido del computer, in modo che l’installazione possiamo farla dopo aver verificato che il prodotto sia di nostro gradimento e, soprattutto, che funzioni sul computer su cui vorremmo installarlo (quanto a scheda grafica, audio, rete ethernet, wifi, ecc.). Teniamo presente che, con la sola eccezione di openMandriva, che si può italianizzare già in prova, queste prove dovremo farle con il layout di tastiera americana e con le interfacce delle applicazioni in lingua inglese. Infine sappiamo che, a causa della migrazione da BIOS a UEFI con i problemi che ho trattato nel mio articolo dello scorso mese, se vogliamo utilizzare versioni live degli ultimi rilasci delle distro è bene che ci serviamo del DVD. Chi usa Windows dotato del programmino Rufus ha il vantaggio di poter generare chiavette USB live utilizzabili sia con il BIOS sia con UEFI.
In questa carrellata non ho citato Arch Linux. Non è stata una dimenticanza e, per chi voglia un Linux fai-da-te, cito l’indirizzo https://wiki.archlinux.org/index.php/Arch_Linux_(Italiano), dove si può vedere di che cosa si tratta e si può scaricare ciò che serve per installarlo. Alla prima installazione abbiamo qualche cosa di minimale, senza nemmeno interfaccia grafica, e possiamo poi installare ciò che ci serve costruendo un sistema operativo come ci piace. Ovviamente non è roba da principianti.
Buon Linux!

Più difficile essere liberi con UEFI, anche grazie a Windows.

Senza che l’ignaro consumatore se ne sia accorto, nel corso degli ultimi anni è cambiato qualche cosa nella macchina che chiamiamo personal computer: il software installato in un chip della scheda madre, che si attiva all’accensione del computer per collegare la macchina al sistema operativo, non è più quello di un tempo.
Al BIOS (Basic Input Output System) è subentrato l’UEFI (Unified Extensible Firmware Interface).
L’idea del cambiamento risale all’inizio del secolo, esattamente al 2003, e il primo annuncio dell’idea è stato dato dalla Intel nell’Intel Developer Forum di San Josè il 24 febbraio di quell’anno. In una dozzina di anni, con estrema gradualità, il cambiamento si è generalizzato ed oggi tutti i personal computer in vendita a 64 bit, a meno che si tratti di vecchi fondi di magazzino, sono equipaggiati UEFI.
La differenza tra i due sistemi sta innanzi tutto nel miglioramento della grafica del software: il BIOS era molto spartano e antiquato mentre UEFI ha una interfaccia grafica moderna, del tipo di quelle cui siamo ormai abituati.
L’accesso al sistema, fatte salve le complicazioni introdotte da Microsoft che vedremo poi, avviene sempre utilizzando, al momento dell’accensione del computer, i tasti F10 (per modelli HP/Compaq), F2 (per modelli Acer, Toshiba, Dell e alcuni modelli Asus), CANC/DEL (per modelli MSI e alcuni modelli Asus), comunque come indicato nei manuali che accompagnano le varie macchine.
Praticamente nello stesso modo con cui lo si faceva con il BIOS si può agire affinché il PC si avvii prioritariamente da disco o chiavetta USB (cosa che sul Mac si può fare senza intervenire sul software ma semplicemente tenendo premuto il tasto C all’avvio del computer).
La grande innovazione di sostanza sta nella diversa organizzazione del settore di boot del sistema operativo.
Nel vecchio sistema BIOS la tabella delle partizioni dell’hard disk e il boot loader per l’avvio del sistema operativo erano alloggiati nel MBR (Master Boot Record), una piccola zona che occupava i primi 512 byte dell’hard disk. Il disco basato su MBR non poteva superare la dimensione di 2 Terabyte e non poteva ospitare più di quattro partizioni primarie.
Nel nuovo sistema UEFI saltano tutte queste limitazioni: sono i vari sistemi operativi che qua e là eventualmente ne pongono (per esempio, il numero delle partizioni primarie ammesse in genere è attorno alle 128, Windows accetta la dimensione del disco, che teoricamente potrebbe arrivare a oltre 9 Zettabyte, cioè 9 miliardi di Terabyte, fino a 256 Terabyte). Tabella delle partizioni e boot loader dei sistemi operativi stanno nella GPT (GUID Partition Table), una zona del disco chiamata “efi system partition” o qualche cosa di simile, a seconda di macchine e sistemi.
I kernel Linux sono da sempre compatibili con lo standard UEFI.
Mac è compatibile con lo standard UEFI da quando ha adottato il processore Intel nel 2005.
Windows ha cominciato a supportare lo standard UEFI nel 2009 con la versione a 64 bit di Windows 7.
Fino al settembre 2012 tutti d’amore e d’accordo nel graduale passaggio al nuovo standard, in parallelo all’uscita delle macchine attrezzate con UEFI (concretamente iniziata all’inizio del 2011), nel senso che, a seconda del tipo di macchina, il sistema operativo che vi si installava, purché a 64 bit, vi si adattava senza che nessuno se ne accorgesse.
Con il rilascio di Windows 8, appunto nel settembre 2012, Microsoft, approfittando di una funzione chiamata “secure boot”, resa disponibile da UEFI e in forza della quale è possibile inibire il funzionamento di sistemi operativi non accreditati dal costruttore, pretese che tutti i computer con precaricato Windows 8 avessero attivata la funzione “secure boot” in favore del sistema Windows. Senza dubbio il provvedimento, almeno si spera, fu ispirato da validi motivi di sicurezza: sta di fatto che il mancato coinvolgimento preventivo di altri onesti produttori di sistemi operativi ha creato momenti di panico e il giusto, pesante intervento della Free Software Foundation. Tutte le distro Linux in circolazione passarono infatti bruscamente per software non accreditato e tutte le live dimostrative con le quali si provavano i vari sistemi operativi del mondo Linux per decidere se installare o meno il sistema stesso smisero di funzionare sui computer con precaricato Windows 8, cioè tutti quelli che si acquistavano nei soliti negozi.
Su Internet troviamo numerose tracce delle diatribe che ne seguirono e si può immaginare ciò che si disse della Microsoft e della sua mossa da elefante in cristalleria. Soprattutto troviamo in rete tanti suggerimenti su come fare a superare il problema, suggerimenti che si sono stratificati nel tempo e non sempre tengono conto della realtà che nel frattempo si è creata. Per cui, letti oggi, sono obsoleti.
Ad oggi, marzo 2017, la situazione è la seguente.
Microsoft, nel frattempo passata a Windows 10, mantiene l’imposizione ai fabbricanti di computer che preinstallano il suo sistema operativo di attivare il “secure boot”. In più mantiene per default la modalità di avvio rapido (si chiamava “Fast Boot” in Windows 8, si chiama “Fast Startup” in Windows 10), in forza della quale, come si accende il computer, qualunque tasto si utilizzi per cercare di entrare in UEFI, non si riesce nell’intento e si avvia, invece, il sistema operativo Windows. Come dire, al malcapitato non esperto che ha comperato un qualsiasi computer in un negozio, “non avrai altro sistema operativo al di fuori di me”.
Se il malcapitato diventa un po’ esperto scopre che all’interno di Windows c’è un modo per disattivare la funzione “Fast Startup”, così come c’è modo di entrare in UEFI per eventualmente disattivare anche il “secure boot”: entrata in UEFI che diventa comunque fattibile, una volta disattivata la funzione “Fast Startup”, premendo i necessari tasti all’avvio del computer.
A questo punto, con disattivate entrambe le funzioni, il malcapitato recupera finalmente la libertà di  mettere il sistema operativo che più gli aggrada su un computer che, tra l’altro, ha pagato di più in quanto arricchito – anzi, direi, infestato – da Windows precaricato.
Fortunatamente, almeno ricorrendo a vendite on-line (Amazon, sito HP, catena LinuxSi, Kelkoo, ecc.), è diventato ormai possibile acquistare una grande varietà di computer con preinstallato il sistema Linux o senza alcun sistema operativo, in modo da potervi installare ciò che si vuole senza avere tra i piedi Windows con i problemi che si porta appresso e risparmiando mediamente un centinaio di euro.
Nel frattempo, comunque, i seguenti sistemi Linux a 64 bit si sono accreditati e funzionano anche con attivata la funzione “secure boot” di UEFI:
Ubuntu e derivate dalla versione 12.10
Linux Mint dalla versione 15
Fedora dalla versione 18
openSuse dalla versione 12.3
Dal momento, infine, che UEFI è nato in un clima di libertà, rammento che, una volta si riesca ad entrarci dentro eludendo le trappole escogitate da Microsoft, esso, oltre ad offrirci la possibilità di attivare o disattivare la funzione “secure boot”, ci consente di attivare la funzione “Legacy Boot”: con questa si disabilitano tutte le funzionalità proprie di UEFI e si ripristina qualche cosa di simile alla vecchia modalità BIOS, in modo da permettere il corretto avvio di tutti i sistemi operativi che non supportano UEFI (versioni di Linux precedenti quelle sopra indicate, Windows precedenti a Windows 8, sistemi che ancora non supportano UEFI, ecc.).
Per quanto riguarda i supporti esterni autoavviabili non si dovrebbero avere problemi con i DVD con masterizzata l’immagine ISO, sia in versione destinata all’installazione sia in versione live.
Parlando invece di pennette USB, in generale vale la regola che supporti autoavviabili generati con computer UEFI e con software aggiornato sono utilizzabili, e lo sono solo in ambiente UEFI. Se lavoriamo su un computer con il BIOS possiamo avere qualche problema: per esempio, se creiamo una chiavetta con Unetbootin su un vecchio computer partendo da una immagine ISO di un qualsiasi sistema Linux appena rilasciato, con ogni probabilità ci ritroveremo una chiavetta formattata UEFI che non funzionerà sul nostro vecchio computer BIOS. Per renderla funzionante anche su BIOS ci dobbiamo sorbire la non banale operazione di installazione di GRUB nel Master Boot Record della chiavetta utilizzando le opzioni avanzate del software Boot Repair Disk a 64 bit, di cui ho parlato nell’allegato PDF, intitolato “backup_e_non_solo”, al mio articolo dell’ottobre 2016 “Software libero per aver cura del computer”.
Nel frattempo il mondo del software libero ha fatto omaggio agli utenti Windows di un programmino, chiamato Rufus (l’ultima versione, 2.12, è scaricabile da http://filehippo.com/it/download_rufus/), con il quale è possibile creare, da Windows, chiavette usb avviabili sia con il vecchio BIOS sia con il nuovo UEFI e con installata l’immagine live di un sistema Linux, in modo da provarlo e, volendo, installarlo più o meno a fianco di Windows.
In qualche modo bisogna riconquistarsi la libertà.

Python per tutti

Quando Guido van Rossum, all’inizio degli anni novanta del secolo scorso, ha battezzato il linguaggio di programmazione da lui ideato con il nome di Python intendeva semplicemente rendere omaggio ai Monty Python, un gruppo di comici inglesi che gli piacevano molto.
Dopo un ventennio di dilagante successo di questo linguaggio, si potrebbe pensare che il nome che richiama il pitone sia invece dovuto alla grande flessibilità di cui esso è dotato.
Si tratta, infatti, del linguaggio più facile da imparare e che, nella sua semplicità, manifesta una potenza di prima grandezza per fare di tutto. Al punto da essere diventato il linguaggio ideale per il machine learning.
In questo blog ho già parlato di Python, presentando un mio programmino esemplificativo con cui si gioca a Master Mind. Ho anche proposto una piccola guida per evidenziare le differenze tra la vecchia versione Python 2 e la nuova versione Python 3. Soprattutto ho indicato come e con quali strumenti si possa utilizzare il linguaggio Python su Android. Il tutto avveniva nel giugno 2015 e si trova archiviato nelle categorie Programmazione, Programmi e Suggerimenti.
Mi è venuta voglia di riparlare di Python dopo che, negli ultimi mesi dello scorso anno, è stata finalmente pubblicata la traduzione italiana di un interessante libro del 2015 di Sebastian Raschka, Python Machine Learning, con il titolo Machine learning con Python, Costruire algoritmi per generare conoscenza.
Alan Turing, precursore dell’intelligenza artificiale, diceva che le macchine non possono pensare, però possono fare quello che facciamo noi quando pensiamo. Purtroppo Turing è stato eliminato – mi pare l’espressione giusta per la tragedia che lo ha colpito – prima di poter costatare quanto vere fossero le sue intuizioni.
Infatti non solo la macchina può fare ciò che facciamo noi quando pensiamo ma, in certe situazioni, riesce a farlo meglio.
Consideriamo quanto prima e meglio di un cervello umano una macchina possa analizzare grandi quantità di dati al fine di dedurre modelli di comportamento, tendenze utili a fini previsivi, addirittura ponendo in atto procedimenti e algoritmi per la presa di decisioni basate su come quei dati si presentano e si evolvono: la macchina che impara dall’esperienza.
In epoca di Big Data servono strumenti per fare queste cose e Python si rivela essere uno dei migliori.
Probabilmente il segreto sta nella sua semplicità e nell’essere il linguaggio informatico che più si avvicina alla logica e al linguaggio umano.
Uno scienziato che voglia direttamente lavorare su una ricerca sperimentando algoritmi propri, se usasse un linguaggio di più basso livello come il C dovrebbe perdere gran parte del proprio impegno e del proprio tempo ad occuparsi di informatica: gestione della memoria, uso di puntatori, sintassi ed espressioni strane, ecc. Chi usa un linguaggio come Python è sollevato da tutti questi impicci e si può meglio concentrare sul problema vero.
Peraltro, con le macchine che abbiamo oggi, nessuno riesce veramente ad avvertire i vantaggi, in termini di efficienza e velocità di elaborazione, che ci offre un programma compilato in C rispetto al più lento, si fa per dire, script Python interpretato.
Anzi, il fatto che Python sia interpretato e l’interprete sia dotato di una shell propria con la quale si possono eseguire comandi singoli, offre una preziosa opportunità di apprendimento e di sperimentazione.
Esistono numerosi manuali, anche scaricabili gratuitamente da Internet, sul linguaggio Python ed abbiamo mille modi di impararlo in quanto tale.
Una zona che ritengo presenti qualche situazione di non semplice comprensione è quella di cosa esista attorno a Python e di come Python e i suoi script possano ottimamente interagire con il nostro computer e con il computer di altri.
Ho ritenuto pertanto di dedicare a questi argomenti un manualetto, qui allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile.

mondo_python