La resurrezione del Pascal

Il 22 aprile 2015 è stata rilasciata la versione 1.4 di Lazarus.
Il progetto Lazarus è nato nel 1999 dalle ceneri di un precedente progetto di clonazione del compilatore Delphi che la Borland aveva messo sul mercato per l’utilizzo del linguaggio Pascal. E’ stato chiamato Lazarus appunto perché proviene dalla resurrezione di un progetto che era defunto.
Conosco precedenti versioni di Lazarus, che già considero perfette: chissà quest’ultima!
Ma il pregio maggiore del progetto sta nel mantenere di attualità e alla portata di tutti (siamo nel software libero) un ottimo linguaggio di programmazione come il Pascal, che Niklaus Wirth e Kathleen Jénsen crearono nel 1970 (due anni prima che Dennis Ritchie creasse il linguaggio C) a scopo didattico.
Wirth era infatti un insegnante di informatica e creò il Pascal per insegnare le basi della programmazione strutturata, forse senza accorgersi che così aveva creato anche qualche cosa che andava ben oltre gli scopi didattici: gran parte dei primi sistemi operativi per il Macintosh e per Microsoft Windows sono stati scritti in Pascal.
Per sapere tutto sul Pascal e su Lazarus basta andare su http://www.lazaruspascal.it/, dove si trova anche una serie di tutorial in italiano per imparare il Pascal.

Lazarus è attrezzato per produrre programmi a riga di comando e programmi dotati di ricca interfaccia grafica.
Essendo basato su Free Pascal, che deriva dal Turbo Pascal della Borland, Lazarus può anche utilizzare la unit Crt, che consente di creare programmi a riga di comando con qualche ingentilimento da formattazione e colori. Per certi programmi di utilità può andare benissimo, anzi, per quanto mi riguarda, può andare meglio di programmi con interfaccia grafica dispersiva e laboriosa da creare.
Per usare la unit Crt occorre aggiungerla in questo modo nella sezione uses della traccia di programma che Lazarus ci propone nel suo editor per un Progetto di Programma

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, Crt
{ you can add units after this };

Funzioni e sintassi per utilizzare la unit Crt si trovano in http://www.freepascal.org/docs-html/rtl/crt/index-5.html.

Un esempio di programma di questo tipo è quello che si trova nei link qui sotto. Si tratta di un mio divertimento di calendario perpetuo in gran parte basato sulle Formule astronomiche per calcolatori di Jean Meeus.
Programma calendario:
source_pascal
eseguibile_linux (da rendere eseguibile dopo scaricamento con chmod 555)
eseguibile_windows

Buon divertimento con Pascal e Lazarus.

Lisp sempreverde

Il linguaggio Lisp è stato creato nel lontano 1959 da John McCarthy presso il Massachusetts Institute of Technology per i computer della serie IBM 700/7000 e per applicazioni di intelligenza artificiale.
E’ nato come linguaggio funzionale ed è il più antico linguaggio di questo tipo. Ma dal 1959 ad oggi è passato attraverso varie evoluzioni e sono stati creati numerosi suoi dialetti, al punto che le varie versioni che sono oggi disponibili non si possono catalogare come linguaggi funzionali puri.
Tra queste varie versioni, che vanno dal Common Lisp all’AutoLISP (utilizzato in AutoCAD), dallo Scheme all’Emacs Lisp, ne segnalo una che ritengo notevole per la semplicità di uso e per la ricchezza di funzioni preconfezionate che offre: newlisp.
Sul sito www.newlisp.org troviamo tutto ciò che lo riguarda: documentazione e possibilità di download. Il tutto all’insegna del software libero.
Creato nel 1991 per Windows fu convertito per Linux nel 1999 e, di rilascio in rilascio, si è sempre più arricchito: il 20 gennaio 2015 è stata rilasciata la versione 10.6.2, disponibile per Linux, Windows e OS X.
Lo ritengo un formidabile linguaggio di scripting per studenti e matematici.
Una volta che ci si è abituati all’uso delle numerose parentesi e alla notazione prefissa tipiche del Lisp diventa anche rapido e divertente.

Utili funzioni preconfezionate sono le seguenti.
Calcolo matriciale:
invert ritorna l’inversione di una matrice
det calcola il determinante di una matrice
multiply moltiplica due matrici
mat applica un operatore aritmetico a due matrici o a una matrice e a un numero
transpose ritorna la trasposta di una matrice
Calcoli statistici:
beta calcola la funzione beta
betai calcola la funzione beta incompleta
binomial calcola la funzione binomiale
corr calcola il coefficiente di correlazione di Pearson
crit-chi2 calcola il valore del Chi quadrato di Pearson per una data probabilità
crit-f calcola il valore critico minimo del test F di Snedecor per una data probabilità
crit-t calcola il valore critico minimo del test t di Student per un dato livello di confidenza
crit-z calcola il valore critico normale di un test Z di Fisher per una data probabilità cumulata
erf calcola la funzione di errore per un numero
gammai calcola la funzione gamma incompleta
gammaln calcola la logaritmica della funzione gamma
kmeans-query calcola la distanza euclidea tra un vettore e un centroide
kmeans-train applica la cluster analysis a una matrice
normal genera una lista di numeri casuali normalmente distribuiti data una media e uno scarto quadratico medio
prob-chi2 calcola la probabilità cumulata del test Chi quadrato di Pearson
prob-f calcola la probabilità di un valore riscontrato del test F di Snedecor
prob-t calcola la probabilità di un valore riscontrato del test T di Student
prob-z calcola la probabilità cumulata di un valore riscontrato del test Z di Fisher
stats calcola valori statistici (media, varianza, scarto quadratico medio, ecc.) di una serie di numeri
t-test utilizza il test t di Student per valutare la differenza tra medie
Calcoli finanziari:
fv calcola il valore futuro di un investimento
irr calcola il tasso di rendimento interno
nper calcola il numero di periodi per un investimento
npv calcola il valore attuale di un investimento
pmt calcola la rata costante per estinguere un prestito
pv calcola il valore attuale di una rendita
Ovviamente quelle che ho richiamato sono comprese nella lunghissima serie di funzioni che ci offre newlisp e le ho richiamate in quanto sono difficilmente presenti in altre versioni del linguaggio Lisp.
La lista completa e la sintassi richiesta per tutte le funzioni la troviamo in http://www.newlisp.org/downloads/manual_frame.html.

Altra cosa utile e sfiziosa che ci regala newlisp è la possibilità di creare ed eseguire programmi con interfaccia grafica (GUI), grazie all’aggiunta a newlisp, attorno al 2008, di un server per interfaccia grafica costituito dai file guiserver.jar (per far funzionare il quale occorre aver installato la macchina virtuale java sul computer) e dalla sua interfaccia guiserver.lsp.
La sintassi per programmare con GUI la troviamo all’indirizzo http://www.newlisp.org/guiserver-jp/.
Un piccolo esempio di programma con interfaccia grafica è scaricabile qui.
Un esempio un tantino meno banale lo troviamo invece qui: questo programma è utile per determinare i codici da inserire nella programmazione con GUI per creare i colori desiderati.
Ricordo a chi usa Linux che i file eventualmente scaricati vanno resi eseguibili per provarli.

Buon divertimento con newlisp.

Software libero

Per approfondire la filosofia del software libero, basta consultare le voci “software libero”, “gnu gpl” e “linux” su Wikipedia.
Visto, però, che ho intenzione di presentare programmi di software libero che servono a fare tante cose, voglio dire qualche cosa anch’io sul software libero in generale.
La dizione “software libero”, al di là delle sofisticate distinzioni che si possono fare tra software libero e software open source, allude a quei programmi per computer che si possono scaricare liberamente da Internet o avere da un amico senza andare incontro ad alcuna complicazione su diritti d’autore o limitazioni d’uso. Di più: del software libero sono disponibili anche i file sorgente, cioè i file che servono per produrre (codificare) i programmi che vengono utilizzati, in modo che chiunque conosca il linguaggio di programmazione con cui sono stati costruiti li possa modificare per renderli più funzionali, per arricchirli, ecc. Il tutto sotto la protezione della licenza GNU/GPL (Gnu Not Unix/General Public License) secondo la quale il software modificato può essere distribuito solo alle stesse condizioni, cioè che ne rimanga disponibile il sorgente a sua volta modificabile.
Si tratta generalmente di software distribuito gratuitamente, anche se Richard Stallman, il padre della filosofia del free software che noi traduciamo in software libero, avverte sempre che l’aggettivo free usato in questo contesto significa libero e non gratuito: avvertimento necessario per la lingua inglese, dove free significa entrambe le cose. A volte il distributore, che spesso è anche l’autore del software, invita l’utente che ritenga utile il programma a fare un’offerta: e sempre se la meriterebbe.
Ma, ci si chiede, chi è che lavora su questo software libero rinunciando a guadagnare per ciò che fa o affidandosi al buon cuore di chi lo utilizza?
Uno è sicuramente Linus Torvalds, che si è “divertito” – come dice lui – a creare il primo kernel del sistema operativo Linux (dal nome Linus del suo creatore e Unix, che è il sistema da cui è stato derivato) e, invece di brevettarlo, lo ha dato in pasto al mondo del software libero perché tutti ci lavorassero per farlo diventare migliore: ed è diventato, a parere non solo mio, il miglior sistema operativo che esista. Ben riepilogava Nelson Mandela lo spirito di Ubuntu, una delle più complete distribuzioni Linux sponsorizzata dal sudafricano Mark Shuttleworth, dicendo «Ubuntu non significa non pensare a se stessi; significa piuttosto porsi la domanda: voglio aiutare la comunità che mi sta intorno a migliorare?»
Peraltro una componente di divertimento la ritroviamo anche nel nome Debian della distribuzione Linux da cui deriva Ubuntu: Debian proviene da ian, nome del suo creatore Ian Murdock, preceduto dalle prime tre lettere del nome della sua fidanzata Debra.
C’è chi brevetta e c’è chi si diverte a diffondere conoscenza e utilità e che a roboanti marchi di fabbrica preferisce divertenti nomignoli.
Purtroppo il fatto che si tratti di qualche cosa che si può avere con poca spesa o addirittura gratis fa sì che non lo si trovi nei negozi e suscita diffidenza.
Per ovviare al primo inconveniente, che non lo si trovi nei negozi, mi sono proposto di fare molti articoli per descrivere e indicare come procurarsi software libero per fare moltissime cose.
Quanto alla diffidenza, essa è assolutamente ingiustificata: il software libero, infatti, a causa dei moti collaborativi che scatena, gode nel tempo di tali e tanti perfezionamenti da raggiungere in breve un’affidabilità totale, a volte insuperata.
La stragrande maggioranza dei programmi di software libero, almeno di quelli che mi propongo di presentare, è reperibile in versioni che girano su tutti i tre sistemi operativi che fanno funzionare i personal computer: Linux, Windows e Mac OS X.
Per chi volesse entrare completamente nel mondo del software libero sarebbe d’obbligo la scelta del sistema operativo Linux. Tra le tante distribuzioni esistenti, quelle che ritengo più semplici da installare e che hanno il non secondario vantaggio di essere fruibili completamente in lingua italiana sono Linux Ubuntu e Linux Mint, che ne è una derivata. Senza nulla togliere all’ottima SUSE Linux e, ovviamente, alla madre Debian, dalla quale è derivato Ubuntu.
A differenza di quanto avviene con i sistemi operativi Windows e OS X, che prima di cominciare l’installazione cancellano dal disco fisso del computer qualsiasi cosa, quando installiamo Linux ci viene innanzi tutto chiesto se vogliamo installarlo come unico sistema operativo oppure se preferiamo affiancarlo ad altri sistemi operativi che già abbiamo sul computer: la libertà del software libero comincia rispettando la libertà degli altri. All’accensione del computer ci verrà chiesto con quale sistema intendiamo lavorare. Ciò significa che potremmo tranquillamente installare Linux mantenendo il nostro Windows e, se usiamo Ubuntu, il nostro OS X.
Il vantaggio di entrare nel mondo Linux è quello di trovare installato sul computer un programma di gestione delle applicazioni che ci propone migliaia di programmi di software libero che, essendo collegati a Internet, possiamo scaricare ed installare con un click.
Chi non voglia fare il passo verso Linux non avrà comunque alcuna difficoltà a procurarsi i programmi e ad installarli: ovviamente con l’avvertenza di scegliere le versioni dei programmi adatte al proprio sistema operativo.
Viene da chiedersi come mai quando acquistiamo un computer non ci sia preinstallato il sistema Linux. La risposta è semplice: con il software libero non si fanno i soldi, con il software così detto commerciale che si aggrega attorno a mamma Microsoft si fanno i soldi. A parte il caso della Apple che fa i soldi non tanto con il software ma con una serie di prodotti di eccellenza che contengono anche il software (tra l’altro cugino stretto di Linux).

Software libero per calcolare

Per una cosa che si chiama computer o, come potremmo tradurre nella nostra lingua, calcolatore il compito più naturale è quello di fare calcoli.
E bisogna riconoscere che, se istruito bene, il computer fa dei calcoli strabilianti: soprattutto li fa praticamente in tempo reale. Senza la velocità di calcolo del computer non sarebbe possibile fare alcune bellissime cose, come quella di navigare nello spazio.
E anche computer con potenza relativamente bassa possono fare grandi calcoli. Esiste addirittura una leggenda metropolitana che afferma come la potenza di calcolo utilizzata per condurre l’uomo sulla luna fosse quella di un Commodore 64, poco più che un computer giocattolo di qualche decennio fa: non è esattamente così, ma è pur vero che i personal computer che abbiamo oggi, addirittura i tablet o i telefonini detti smartphone, come i loro predecessori computer palmari, sono enormemente sovradimensionati con riguardo a quanto serve per fare calcoli.
La cosa più importante e delicata è il software, cioè l’insieme di istruzioni che diamo al computer perché faccia i calcoli che ci servono; insieme di istruzioni che vanno da come il computer deve leggere i dati di ingresso che gli vengono forniti, a quali elaborazioni ed algoritmi esso deve sottoporre quei dati e finalmente a come ci deve fornire i risultati di queste elaborazioni.
La delicatezza del software di calcolo sta nel fatto che, mentre altri tipi di software per scrivere, per disegnare, per creare suoni, ecc., se fatti male, o non girano del tutto o forniscono risultati visibilmente sbagliati o non accettabili, il software di calcolo può fornire risultati sbagliati che noi prendiamo per buoni, molto spesso non avendo modo di capire che sono sbagliati.
Se un computer ci dice che il risultato di 2 + 2 è 5 comprendiamo che il computer ha sbagliato perché sappiamo altrimenti il risultato, tanto che avremmo fatto a meno di disturbare il computer per ottenerlo. Ma se un computer ci dice che per estinguere un prestito di 1.000 euro con 12 rate mensili costanti posticipate al tasso del 2% annuo occorrono 12 rate mensili di 84,23 euro, o ci fidiamo o rifacciamo il conto con un altro computer e con un altro programma. Se poi otteniamo un risultato diverso vai a stabilire chi ha ragione.
Alcune disavventure generate utilizzando il linguaggio di programmazione C hanno per esempio indotto il Dipartimento della Difesa americano ad avviare lo sviluppo del linguaggio di programmazione Ada, che deriva dal C ma ne evita alcune trappole infernali e viene ancora oggi usato in molti contesti in cui il corretto funzionamento del software è critico, come sistemi di controllo di velivoli, del traffico aereo e software aerospaziale.
Il software libero offre ai matematici ed agli scienziati compilatori o interpreti per tutti i linguaggi di programmazione in modo da fornire la possibilità di ottenere dal computer qualsiasi genere di calcolo attraverso istruzioni dirette finalizzate alla soluzione dei più svariati tipi di problema.
Tutto senza trascurare l’offerta di software già predisposti per determinati tipi di calcolo, più agevoli da utilizzare in quanto non richiedono la conoscenza di linguaggi di programmazione.
Qui vorrei mettere a disposizione una mia rassegna di software liberi di quest’ultimo tipo, tutti stracollaudati e fornitori di risultati perfetti.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

calcolo

Software libero per gestire dati

I francesi lo chiamano ordinateur: evidentemente riconoscono di più la sua capacità di immagazzinare e ordinare dati rispetto a quella di calcolare, come fanno gli anglosassoni, che lo chiamano computer o noi, che, almeno le poche volte che lo denominiamo usando la nostra lingua, lo chiamiamo calcolatore elettronico.
In effetti, se pensiamo all’uso che se ne fa in campo scientifico e pensiamo all’uso che se ne fa in campo amministrativo-contabile-commerciale, dobbiamo dire che nel primo caso abbiamo probabilmente l’applicazione più nobile del calcolo, che ci aiuta a capire e a risolvere problemi, ma nel secondo abbiamo sicuramente l’applicazione più massiccia della gestione di dati, che ci aiuta a tenere ordine nelle nostre cose.
Dobbiamo anche dire, riferendoci al mondo degli utilizzatori di personal computer, che questo strumento non ha praticamente limiti nell’eseguire calcoli ma deve lasciare il posto a qualche cosa d’altro quando si tratta di gestire grandi moli di dati. Dietro allo sportello Bancomat, a controllare in un paio di secondi il nostro codice segreto e a controllare che abbiamo disponibile ciò che vogliamo prelevare scorrendo un database di milioni di posizioni, non ci può certo essere soltanto un personal computer.
Anche nel campo della gestione dei dati, comunque, il personal computer può fare parecchio. Ovviamente con il software adatto.
Qui vorrei appunto mettere a disposizione una mia rassegna di software liberi adatti per creare e gestire basi di dati.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati sono disponibili per i sistemi operativi Linux, Windows e OSX.
Per scaricare il file clicca sul suo nome qui sotto.

gestione_dati

Software libero per comunicare

La storia della comunicazione cataloga tre rivoluzioni avvenute nel modo di comunicare tra di noi: la rivoluzione chirografica (quella avvenuta quando abbiamo cominciato a scrivere sui più svariati materiali, quattromila anni prima di Cristo), la rivoluzione gutenberghiana (quella avvenuta quando abbiamo cominciato a stampare su carta, verso la metà del quindicesimo secolo) e la rivoluzione elettrica/elettronica (quella legata a telegrafo, telefono, radio e televisione, avviatasi a metà del diciannovesimo secolo con l’invenzione del telegrafo ed esplosa a metà ventesimo secolo con la televisione).
Dalla metà dell’ultimo decennio del ventesimo secolo siamo in piena rivoluzione digitale e la storia non ne parla ancora.
Ormai qualsiasi cosa vogliamo trasferire da una conoscenza all’altra, si tratti di un testo, di un suono, di una immagine, di un filmato, può essere trasformata in un segnale digitale (codificata in una serie di digit 0 o 1) che viene trasmesso e, alla ricezione, viene decodificato e reso quello che era prima della codifica. La trasmisssione, praticamente in tempo reale anche a distanze antipodali, avviene grazie ad una fittissima rete interconnessa a ragnatela che avvolge il globo su cui viviamo: Internet.
Codifica e decodifica avvengono utilizzando un computer che, collegato alla rete, funge da apparato trasmittente e da apparato ricevente.
Fino alla diffusione a prezzi ragionevoli di personal computer queste comunicazioni in rete erano riservate ad uffici governativi, centri di ricerca e università.
Con la diffusione dei personal computer è diventato un fenomeno abbastanza di massa.
Con la diffusione di quei piccoli computer che chiamiamo tablet e di quei minuscoli computer che chiamiamo smartphone è diventato un delirio.
C’è chi vede solo gli aspetti negativi di questo delirio. Io penso che l’imbecillità, se c’è, si diffonde con le tavolette, con gli incunaboli, con i libri, con la radio e con la televisione: certo è che, più aumentano i potenziali diffusori e più sono accessibili i mezzi di diffusione, più se ne diffonde.
Sicuramente sono tanti anche gli aspetti positivi. E credo siano in misura superiore di quelli negativi e che, a differenza di questi ultimi, soprattutto legati a mode passeggere, siano più di sostanza e destinati a durare nel tempo.

Internet è nata ed ha avuto il primo utilizzo in campo pubblico: la sua struttura proviene da ARPANET, che era una rete di computer studiata e realizzata nel 1969 dal Dipartimento della Difesa degli Stati Uniti, il linguaggio a marcatori per ipertesti html usato per la formattazione e l’impaginazione di documenti ipertestuali per il web è stato sviluppato verso la fine degli anni ottanta del ventesimo secolo presso il CERN di Ginevra assieme al protocollo http dedicato al trasferimento di documenti in tale formato, il primo grande utilizzo della rete venne sviluppato per i collegamenti tra centri di ricerca e università.
Tutto ciò ha fatto sì che, al momento della diffusione di massa di questo nuovo modo di comunicare, esistessero già gli strumenti software di base sviluppati al di fuori da logiche commerciali e la conseguenza è che i software che hanno a che fare con Internet ce li possiamo procurare gratuitamente.
Mai come in questo caso, però, vi può essere confusione tra software libero e software gratuito. Come ricorda sempre Richard Stallman, il guru del software libero, free, riferito al software, significa libero e non gratuito e, pertanto vale anche dire che gratuito non significa libero.
Ad evitare che Richard Stallmann, se mai leggerà questo documento, mi tiri le orecchie – come è abituato a fare – mi limiterò a segnalare solo applicazioni veramente di software libero, cioè rilasciate secondo la licenza GNU/GPL.
Le applicazioni sono segnalate nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

comunicazione

Software libero per il disegno e la grafica

Il disegno e la grafica non erano trattati con il computer prima dell’avvento del personal computer. Non abbiamo pertanto, come avviene per i software di scrittura e di calcolo, precedenti nel mondo Unix dai quali sia stato possibile sviluppare software liberi un po’ in posizione di rendita.
Il software libero che abbiamo in questo campo si è dovuto guadagnare proprio tutto lo spazio che ha conquistato e, questa volta, occorre riconoscere che software commerciali della Adobe Systems (come Photoshop e Illustrator) e della Autdesk (AutoCAD) marcano qualche punto in più rispetto ai loro equivalenti nel software libero sviluppati alcuni anni dopo (rispettivamente GIMP, Inkscape e LibreCAD): in ogni caso ci siamo molto vicini e, sul piano economico, si risparmia parecchio.
Soprattutto le differenze sono rilevabili a livelli di alta e sofisticata professionalità, non certo al livello dilettantistico evoluto sul quale colloco questo articolo.
Le applicazioni che ho selezionto sono descritte nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

disegno_grafica

Software libero per ebook

L’ebook è un libro che non si legge su carta ma si legge su uno schermo. Perché questo sia possibile è necessario che il testo del libro sia memorizzato in un file digitale.
Lo schermo su cui si legge può essere innanzi tutto lo schermo del computer e già prima che si diffondessero altre modalità di lettura esistevano raccolte di opere letterarie, vere e proprie biblioteche, a volte diffuse su CD allegati a quotidiani, destinate ad una lettura sul computer.
Ma la lettura sul computer è scomoda. Già l’idea di leggere un romanzo su qualche cosa di diverso dalla carta fa inorridire gli appassionati di lettura che amano il profumo della carta inchiostrata e rilegata, figurarsi se l’alternativa è lo schermo di un apparecchio elettronico, magari fisso in una stanza, con la necessità di avere un collegamento alla rete elettrica….
Già con il computer portatile è meglio, con i piccoli net books è ancora meglio; ma lo sfondamento avviene con i lettori di ebook e con i tablet, con l’avvento dei quali è iniziata la vera e propria editoria digitale.
Soprattutto il lettore di ebook decreta il successo della nuova editoria. Il lettore ad eink ha uno schermo, sì, ma è molto simile ad una pagina di carta, non è retroilluminato come gli schermi dei computer e non affatica la vista, si legge se c’è luce, come il libro, ha un’autonomia di parecchie settimane in quanto consuma pochissima energia (quel poco di energia che consuma è quando si gira pagina, in quanto deve ricomporre l’inchiostro per farci vedere la pagina successiva), è leggero e sta dappertutto, proprio come un libro: in più, anche in uno spazio minore di quello di un volume cartaceo, può contenere decine e decine di libri.
Ovviamente stiamo parlando di libri fatti di solo testo: un libro d’arte che riproduce le opere del Guercino difficilmente potrà essere gustato su un lettore di ebook, ma I promessi sposi ci stanno benissimo.
Nell’allegato documento PDF ho selezionato alcuni programmi di software libero che ci consentono di produrre noi stessi un ebook e di attribuirgli o modificarne il formato.
Per scaricare il file clicca sul suo nome qui sotto.

ebook

Software libero per fare musica

Il software che abbiamo visto finora (per scrivere, per calcolare, per disegnare e per gestire dati) utilizza, del computer, le memorie (ROM per accedere al software e per memorizzare i risultati, RAM per avere a portata di mano quanto necessario alle elaborazioni), il microprocessore o CPU (per eseguire le elaborazioni), la tastiera (per immettere i dati e le istruzioni necessari per le elaborazioni) e lo schermo (che, grazie alla scheda grafica, ci fa vedere cosa stiamo combinando). Il computer è sempre stato zitto.
Ma il computer può anche emettere suono, addirittura può generarlo.
Fino a qualche po’ di anni fa si trattava di gracchianti bip e, per produrre suoni degni di tale nome occorrevano apparecchiature esterne collegate al computer, come sintetizzatori, schede audio, ecc. Oggi, anche un portatile di fascia medio bassa ha una scheda audio integrata in un chip della scheda madre, grazie alla quale si possono generare e riprodurre suoni di elevata qualità, soprattutto se, per riprodurli, non ci si accontenta delle altoparlantine del computer ma si danno in pasto a sistemi di altoparlanti surround attraverso l’uscita che ogni computer offre in favore di uno spinottino jack (in genere lo stesso che si usa per le cuffie). Ovviamente, per risultati di elevata professionalità, si procede ancora con l’ausilio di apparecchiature esterne: ma si può ormai fare parecchio anche con il portatile di casa solo e nudo.
Il compito della scheda audio è quello di convertire segnali digitali in segnali analogici o viceversa. A volte immettiamo nel computer un segnale analogico attraverso un microfono inserito in una presa jack del computer o attraverso un cavetto con jack da inserire nella stessa presa o in una presa line-in dedicata: in questo caso la scheda audio trasforma il segnale analogico ricevuto dall’esterno in segnale digitale. Altre volte immettiamo nel computer un segnale digitale, contenuto in un file audio memorizzato sull’hard disk del computer, o su una chiavetta USB, o su un CD audio e la scheda audio lo converte in analogico in favore del sistema di altoparlanti interno o esterno che lo riproduce.
In tutti questi casi, però, il computer converte suoni, rappresentati in vario modo, da un tipo all’altro, ma non li crea lui, li riproduce soltanto. Esiste software per gestire questa riproduzione, per memorizzare e trovare al momento opportuno il brano musicale da riprodurre, per convertire lo stesso formato digitale in tanti modi, per trattare, cioè un suono già prodotto. Ma ci occuperemo di queste cose in altra sede.
In questo articolo, invece, ci occuperemo di software attraverso il quale è il computer che genera il suono e il nostro compito è quello di “dire” al computer quale suono generare, con quale timbro, per quale durata, ecc. fino a creare un vero e proprio brano musicale polifonico; brano musicale che potrà venire semplicemente suonato dal computer o registrato, con i suoni generati dal computer, in un file audio da memorizzare in formato digitale sull’hard disk, su una chiavetta USB o su un CD audio, come se fosse un suono generato da un complesso musicale e registrato.
Lo strumento con cui “diciamo” al computer quale suono generare, con quale timbro, per quale durata, ecc. è il file MIDI.
MIDI è l’acronimo di Musical Instruments Digital Interface (Interfaccia Digitale per Strumenti Musicali) ed è un protocollo standard creato affinché strumenti musicali, elettronici e non, sintetizzatori generatori di suoni elettronici, schede audio, ecc. possano intendersi tra loro.
L’elemento atomico del file MIDI è il messaggio MIDI, composto da due o più byte, uno dei quali si chiama byte di stato e gli altri sono byte di dati. Il byte di stato è il primo che legge il computer e, a seconda della sua natura, il computer si appresta a ricevere e interpretare i byte di dati: se il byte di stato è del genere note on (ti sto mandando una nota e ti indico su quale dei 16 canali MIDI ti arriverà), il computer si appresta a ricevere due byte di dati, uno che indica l’altezza della nota (il Do centrale ha il valore 60, in binario 00111100) e uno che indica la forza (velocity) con cui la nota deve suonare (da poco più di 0, che sta per pianissimo a 127, che sta per fortissimo); se il byte di stato è del genere control change (con quale espressione, con quale volume, in quale posizione stereofonica, ecc. devi far sentire il suono), il computer si appresta a ricevere quattro byte di dati con codificate tutte queste belle cose; se il byte di stato è del genere program change (che timbro devi usare per generare il suono), il computer si appresta a ricevere un byte di dati indicante in codice lo strumento musicale (il pianoforte classico ha il valore 0, la chitarra classica ha il valore 24, la tromba ha il valore 56, ecc. ovviamente espressi in binario). Ovviamente nel file MIDI, su ciascun canale, i messaggi control change e program change sono validi fino a nuovo avviso e, al limite, possono essere presenti nel file una sola volta, mentre i messaggi note on sono quelli che fanno la parte del leone e ce ne saranno tanti quante sono le note da suonare.
Quando il computer riceve il codice dello strumento col cui timbro gli si chiede di generare il suono, in mancanza di meglio va a consultare la tavola sonora aggregata alla scheda audio e preleva da lì il suono da passare alla scheda audio. La tavola sonora è un insieme di suoni prodotti per sintesi ad imitazione del suono dei vari strumenti musicali (128, codificati da 0 a 127) ed è costruita in modo da occupare il meno spazio possibile (sappiamo che la registrazione del suono digitale occupa molto spazio).
Se lasciamo al computer di pescare i suoni dalla tavola sonora otteniamo risultati mediocri: si sente benissimo che i suoni sono finti.
Con i moderni computer, dove il problema di spazio di memoria sul disco rigido è molto relativo, possiamo caricare i così detti sound fonts, che sono degli spezzoni di registrazioni da strumenti veri, effettuate a diverse altezze, da cui il computer può attingere il timbro dello strumento in modo sempre più realistico che non dalla tavola sonora. Una buona raccolta di sound fonts potrà occupare mezzo Giga sul disco, cosa che nei computer moderni fa ridere, e darci la possibilità di ottenere suoni che possono anche non risultare più così finti.
Se poi evitiamo le parti solistiche, che sono le più impegnative da realizzare per le sfumature espressive che dovrebbero avere, e ci limitiamo ad accompagnamento ritmico e a qualche svolazzo di controcanto, possiamo ottenere risultati veramente notevoli: non per nulla le basi per karaoke sono quasi sempre realizzate e conservate su file MIDI, anche per un fatto di portabilità, di scambio veloce con posta elettronica e di velocità di download da Internet. Infatti il file MIDI, rispetto ad un file audio, occupa uno spazio veramente insignificante: contiene, infatti, non suoni digitalizzati ma caratteri in codice binario. Un file MIDI che contiene una canzone abbastanza elaborata difficilmente supera i 30 kB, quando la stessa canzone, su file audio non compresso, arriva tranquillamente a 30 MB (cioè 1.000 volte tanto). La differenza è che il file MIDI contiene istruzioni per costruire un suono, ma il suono non c’è, mentre il file audio contiene suono digitalizzato.
Fatta questa premessa, con la quale spero si sia capito qualche cosa su come si possa far fare musica a un computer, non ci resta che passare in rassegna quali programmi ci offra il mondo del software libero per questo scopo.
Le applicazioni che ho selezionato sono descritte nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

musica_suono

Software libero per digitalizzare

Tutto ciò che produciamo con il computer è rappresentabile in un file digitale, cioè in un documento che contiene informazione codificata con un linguaggio convenzionale in bit (binary digit, cioè 0 e 1), memorizzabile in modo permanente su un determinato tipo di supporto fisico (disco rigido, compact disc, memoria flash su chiavetta usb, dvd). Mutuando una bella definizione di Wikipedia, diciamo che la documentazione digitale è una rappresentazione astratta e numerica della realtà sensoriale.
In contrapposizione abbiamo la rappresentazione analogica della realtà sensoriale.
Per rappresentare analogicamente la realtà sensoriale suono, captiamo con un idoneo strumento le vibrazioni trasportate dall’onda sonora che lo genera e trasmettiamo intensità e profondità di queste vibrazioni nell’ampiezza e nella profondità di incisione di un solco su un materiale adatto. Ripercorrendo questo solco con un idoneo strumento sensibile alla sua ampiezza e profondità possiamo rigenerare le stesse vibrazioni e la stessa onda sonora, cioè riascoltare, in maniera analogica, il suono originario.
Un altro modo per registrare l’onda sonora, oltre a quello di catturarla fisicamente attraverso le vibrazioni che trasporta come abbiamo visto prima, è quello di registrarne il valore numerico ad intervalli di tempo regolari. Dal momento che l’onda sonora ha un aspetto sinusoidale, se noi registrassimo il valore della sua altezza in termini numerici, poniamo, trenta volte al secondo, otterremmo probabilmente una registrazione della sinusoide come una successione di triangoli: il che non servirebbe a nulla.
Se però misuriamo il valore dell’onda 44.100 volte al secondo, che è la frequenza utilizzata per il suono registrato sui CD musicali, la nostra sinusoide diventa ben liscia nelle sue curve.
Al punto che è dimostrato che, con questa frequenza di campionamento la sinusoide captata in via analogica e quella descritta con i numeri sono sì diverse (la prima è una curva continua, la seconda è una curva che collega punti discreti), ma la loro diversità non può essere colta dall’udito umano (se qualche vostro amico vi dice che sente la differenza tra un vinile e un CD caccia balle, a meno che la senta per il tic tic della puntina, ma allora è un’altra cosa).
L’unico inconveniente è che con questa tecnica abbiamo enormi grandezze da trattare, sia in termini di velocità di elaborazione (provate a tenere a mente 44 mila numeri al secondo) sia in termini di memoria fisica (il mio primo computer, un glorioso Philips TC 100, aveva un disco fisso di 20 MB, cioè non ci stava su neanche una canzoncina di due minuti).
Per non parlare dei file video, tipo i file .avi dove possiamo memorizzare le animazioni che generiamo, per esempio, con Blender: l’animazione, così come il filmato che facciamo con la telecamera, è costituita dalla visione ravvicinata di più fotografie, una via l’altra, al ritmo di 25 al secondo (lo standard televisivo PAL, in modo che l’animazione possa essere vista bene su un televisore che scansiona 25 volte al secondo). Un filmetto di tre minuti è lungo 180 secondi, cioè è formato da 4.500 fotografie: applichiamo pure tutte le tecniche di compressione e gli algoritmi per memorizzare solo ciò che differenzia una fotografia dall’altra, restringiamo a un piccolo rettangolino la scena, ciascuna immagine da memorizzare arriverà a pesare almeno 10 kB. Anche così il nostro filmetto, ridotto e strizzato alla stessa stregua di un file .mp3 audio, peserà una quarantina di MB, cioè una dozzina di volte tanto il suo omologo in campo audio (comunque sempre meglio dei 3 GB abbondanti che il nostro filmetto occuperebbe se non fossimo ricorsi a tecniche di compressione).
Ma i PC di oggi sono potenti e in spazi sempre più piccoli si possono memorizzare moli sempre più elevate di dati.
Allora, visto che la tecnologia ce lo consente, digitalizziamo tutto.
Il mondo del software commerciale ci propone costosi programmi per fare queste cose, ma anche il mondo del software libero non scherza e, in più, ce li offre.
Il documento PDF allegato contiene una mia rassegna di programmi di software libero, come sempre con tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
Per scaricare il file clicca sul suo nome qui sotto.

digitalizzazione