Matematica e statistica con Calc

Sono parecchi i software dedicati alla matematica ed alla statistica.
Da appassionato di software libero non posso non citare Maxima (con il suo semplificante ad interfaccia grafica wxMaxima) e Gretl. Maggiori riferimenti su questi software si trovano nel file PDF allegato al mio articolo “Software libero per calcolare” pubblicato in questo blog e archiviato nella categoria “software libero”. Senza nulla togliere, ovviamente, ai vari Scilab, Matlab, Derive, ecc.
Con questi software si può fare proprio tutto.
Con un foglio di calcolo, come Calc, non possiamo fare tutto: per esempio non possiamo fare calcolo simbolico ma dobbiamo trattare solo numeri. Il che, comunque, non è poco; anche perché, nel tempo, i fogli di calcolo si sono arricchiti di formule e funzioni che ci permettono di compiere analisi numeriche veramente interessanti e sofisticate, molto spesso con difficoltà inconsistenti.
Proprio l’abbondanza di formule e funzioni contenute nei moderni fogli di calcolo mi ha spinto a proporre la selezione contenuta nel lavoro allegato, tendente a far emergere quali siano le più interessanti e proficue in relazione ad alcune delle più ricorrenti finalità dell’analisi numerica.
Gli esperti – e ce ne sono sicuramente tanti più di me – molto probabilmente non troveranno qui nulla che già non sappiano.
I neofiti, siano essi studenti o dilettanti, troveranno invece certamente qualche cosa di utile e scopriranno quanto troppo spesso sia sottoutilizzato quel formidabile strumento che è il foglio di calcolo.
Il foglio di calcolo, chiamato anche foglio elettronico (in inglese spreadsheet), nasce da un’idea del professore universitario Dan Bricklin poi concretizzatasi, con l’aiuto di Bob Frankston, nel prodotto VisiCalc reso disponibile nel 1979 per il computer Apple II e nel 1981 per il PC IBM.
A partire dal 1983 VisiCalc fu soppiantato da un prodotto della Lotus, chiamato 1-2-3, molto più compatto e veloce, poi incluso anche nella suite per ufficio Symphony.
Nel frattempo IBM dotava i propri PC con sistema operativo DOS della serie Assistant, una suite per ufficio che conteneva una sorta di foglio di calcolo molto rudimentale, Planning Assistant.
Tutto venne sbaragliato con il rilascio, il 30 settembre 1985, di Microsoft Excel da parte della Microsoft Corporation. Il successo di Excel fu in gran parte dovuto al fatto di essere il primo foglio di calcolo che si adattava al neonato ambiente operativo Windows del sistema operativo MS-DOS.
Nel frattempo si sono susseguiti altri tentativi di produzione di software di questo tipo.
Nel 1988 ci provò la Borland con Quattro, poi divenuto Quattro Pro, finito nella suite WordPerfect della Novell e finalmente nella suite WordPerfect Office della Corel.
Nella stessa epoca vede la luce il foglio elettronico Calc incluso nella suite StarOffice, sviluppata dalla tedesca StarDivision poi acquisita dalla Sun Microsystem che, nel 2000, rilasciò i sorgenti di StarOffice alla comunità open source dando così vita al progetto OpenOffice. Da questo ceppo nascono i fogli di calcolo oggi inclusi nelle suite Apache OpenOffice, LibreOffice e NeoOffice, specificamente dedicata a Mac OS X, tutte rilasciate con licenza libera. Il foglio Calc di queste suite è in tutto equivalente a Microsoft Excel, con il quale può interscambiare i file.
Il mondo del software libero open source, a partire dal 1998, ha sviluppato e mantiene tuttora un altro foglio di calcolo, Gnumeric, in tutto simile ai citati più evoluti, con la sola eccezione che gli manca la funzione per elaborare tabelle pivot.
Il testo allegato fa esclusivo riferimento al foglio Calc di LibreOffice e gli utenti di Excel, se avranno la pazienza di leggerlo, si accorgeranno che Calc non ha assolutamente nulla da invidiare a Excel, anzi…
Rammento che Calc di LibreOffice è identico a Calc contenuto in OpenOffice e che tutti questi software liberi si possono scaricare facilmente da Internet e sono disponibili per tutti i sistemi operativi per PC, Linux, Mac OS X e Windows.
Il file PDF allegato è liberamente scaricabile, stampabile e distribuibile.

Calc di LibreOffice

Compatibilità tra file system

Frequentando i vari forum dedicati a Linux ci troviamo spesso di fronte a disperate segnalazioni della lentezza con cui a volte avviene il trasferimento o la copiatura di file di dimensione elevata dal nostro computer Linux a supporti esterni (pennette, dischi esterni, ecc.): al punto che ho trovato un caso in cui una sfortunata esperienza di questo tipo ha suscitato grande delusione ed è stata motivo di abbandono del sistema Linux e di ritorno a Windows da parte di un utente.
Peccato! perché, anche con questo inconveniente, Linux, come ripeto sempre, rimane il miglior sistema operativo del mondo ed è infatti l’unico sistema operativo che nativamente, cioè senza bisogno di software aggiuntivo, può leggere e scrivere dati su supporti formattati per altri sistemi operativi.
Cioè a dire: se da Windows vogliamo copiare un file su un supporto formattato per Linux, il supporto manco lo vediamo; con un software aggiuntivo gratuito possiamo vederlo e trattarlo in sola lettura; con un software parecchio costoso possiamo provare anche a scriverci sopra, con i tempi che ci passerà il convento. Da Linux, invece, possiamo copiare i file dove vogliamo: se ci capita di copiarne uno di parecchie decine di MB su un supporto formattato NTFS (il file system corrente per Windows) può darsi che ci tocchi di metterci un po’ di tempo. Tutto qui.
Ma vediamo di capirci qualche cosa in più, anche per saperci regolare.
File system usati e riconosciuti dai vari sistemi operativi
Il file system è il modo con cui i file sono organizzati su un dispositivo di archiviazione. Ciascun sistema operativo ha un suo modo di archiviare innanzi tutto i file che lo costituiscono.
Attualmente Linux utilizza il sistema ext4, Windows utilizza il sistema NTFS e Mac utilizza il sistema HFS+.
Quando il sistema operativo si collega ad un supporto diverso da quello su cui sono memorizzati i suoi file (altra partizione dello stesso disco, disco esterno, pennetta USB, ecc.) si aspetta innanzi tutto di trovare su questo supporto lo stesso tipo di organizzazione dei file oppure un tipo di organizzazione della stessa natura: per Linux si tratta dei sistemi ext2 e ext3, per Windows si tratta del sistema FAT32, per Mac si tratta del sistema HFS. Questi sistemi sono rispettivamente precedenti edizioni dei sistemi attuali, con i quali sono perfettamente compatibili, soltanto meno efficienti e, soprattutto, con alcune limitazioni riguardanti la dimensione massima dei file memorizzabili.
Lettura, trasferimento e copiatura di file avendo a che fare con supporti con questo tipo di compatibilità vengono realizzati con la massima velocità.
Ciascun sistema operativo, poi, si comporta in una certa maniera se il supporto diverso da quello su cui sono memorizzati i suoi file ha anche un diverso tipo di organizzazione dei file. In particolare:
. dal sistema Linux si può leggere e scrivere anche su sistemi FAT32 e NTFS (quelli di Windows), pur con l’inconvieniente della lentezza di scrittura cui si accennava prima nel caso di NTFS, e su sistemi HFS e HFS+ (quelli di Mac), in quest’ultimo caso in sola lettura se journaled;
. dal sistema Windows si può leggere e scrivere solo su sistemi FAT32 e NTFS; con gli accessori gratuiti Mini Tool Partition Wizard e HFS Explorer con Java si può rispettivamente andare in sola lettura anche su ext2, ext3 ed ext4 (quelli di Linux) e HFS (uno di quelli di Mac); per andare su HFS e HFS+ (quelli di Mac) in lettura e scrittura occorre arricchire Windows di costosi software commerciali (MacDrive o Paragon HFS);
. dal sistema Mac si può leggere e scrivere su FAT32 (uno di quelli di Windows) e, da OSX “Leopard” in poi, anche su NTFS (l’altro di Windows).
Come si vede, il tipo di organizzazione dei file che si presta meglio ad un interscambio tra sistemi operativi è il FAT32, sul quale leggono e scrivono senza problemi tutti i tre sistemi operativi che fanno funzionare i personal computer. Unici difetti quello di essere un file system di vecchia concezione, meno efficiente di quelli che sono venuti dopo e, per gente esosa, quello di supportare una capacità massima di memorizzazione di 1 TiB e di poter memorizzare file di dimensione massima di 4 GB ciascuno. Grande pregio quello di essere il sistema riconosciuto da lettori USB diversi dai computer (lettori MP3, lettori DVD con presa USB, ecc.).
Nessun dubbio sul fatto che, se ci riferiamo a pennette USB, il FAT32 è il meglio in quanto i difetti praticamente non si avvertono e il pregio si esalta.
Se ci riferiamo a dischi esterni o a partizioni su dischi condivisi da sistemi operativi diversi il problema si complica e siamo sicuramente attratti da NTFS, a causa della sua maggiore efficienza sotto Windows, però con il citato inconveniente sotto Linux.
Formattazione dei supporti dai vari sistemi operativi
La struttura del file system viene impostata con la così detta formattazione del supporto di memorizzazione.
Il sistema operativo è dotato di tools per la formattazione, attraverso i quali ciascun sistema, oltre a realizzare la formattazione per il proprio file system, può realizzare altri tipi di formattazione. In particolare:
. dal sistema Linux si può formattare anche in FAT32 e NTFS (i sistemi di Windows) e, previo caricamento dal gestore software del programma hfsprogs, in HFS+ (quello di Mac);
. dal sistema Windows arricchito del software gratuito MiniTool Partition Wizard si può formattare anche in ext2, ext3 ed ext4 (i sistemi di Linux) e installando il software commerciale a pagamento Mac Drive, si può formattare anche in HFS+ (quello di Mac);
. dal sistema Mac si può formattare anche in FAT32 e, con software aggiuntivi, anche in NTFS (Windows) e ext2, ext3 ed ext4 (i sistemi di Linux).

Importante riconoscimento per OpenJDK

Sta per uscire la nuova versione di Android, che sarà la 7, il cui nomignolo avrà l’iniziale N. Pare che non ci siano molti nomi di dolciumi che iniziano per N nella lingua inglese e c’è chi scommette che, per tener fede al nomignolo che richiami un dolciume, Google dovrà ricorrere a “Nutella”, rendendo così omaggio all’inventiva dolciaria italiana. Da buon cremonese mi accontenterei anche di “Nougat”, che è il termine con cui è universalmente conosciuto il torrone.
A parte questa piccola incertezza, è ormai certo, invece, che Android 7 sarà una cannonata e che la piattaforma ufficiale per lo sviluppo delle applicazioni sarà OpenJDK, cioè la versione libera e open source di Java Standard Edition.
La storia della libertà di Java è alquanto intricata.
Creato nei pensatoi della Stanford University ad opera di una equipe guidata da James Gosling, il linguaggio Java venne prodotto dalla Sun Mycrosystem (dove Sun non è il sole ma sta per Stanford University Network). Questa azienda, già nel 2006, prima di essere assorbita dalla Oracle (per la modica cifra di 7 miliardi di dollari), aveva avviato una implementazione libera e open source della piattaforma Java, che assunse presto il nome di IcedTea e che costituisce il germe su cui si è sviluppata l’attuale piattaforma open che, da Java 7 in poi, si chiama OpenJDK ed è distribuita sotto licenza GNU GPL, cioè come software libero.
Parallelamente anche la fondazione Apache aveva avviato la realizzazione di una piattaforma Java open source con il progetto Harmony.
E’ proprio da quando l’IBM, nel 2010, ha abbandonato il sostegno al progetto Harmony unendosi alla Oracle nel sostegno a OpenJDK che quest’ultimo è diventato il riferimento unico del mondo del software libero e lo troviamo di default inserito in tutte le distribuzioni Linux.
OpenJDK sta per Open Java Development Kit ed è il pacchetto necessario per sviluppare applicazioni per computer usando il linguaggio Java. Il pacchetto contiene il sottopacchetto OpenJRE, cioè Open Java Runtime Environment, necessario per far girare sul computer le applicazioni sviluppate con il linguaggio Java. Per chi non è interessato a sviluppare applicazioni Java basta il JRE, che, nella versione Open o nella classica originale della Oracle, comunque gratuita, è bene avere sul computer per poter utilizzare le numerose applicazioni sviluppate in Java che esistono.
La Oracle, pur appoggiando la diffusione della versione open del kit di sviluppo standard, continua a distribuire i pacchetti binari del JDK e del JRE da lei prodotti e protetti da una licenza proprietaria.
Per cui non tutta Java è libera: alcune API (Application Programming Interface) possono essere presenti nel pacchetto originario della Oracle e non essere presenti nel pacchetto open e tutto questo genera pericolose trappole.
La stessa Google, che per sviluppare il primo motore Java a corredo del sistema Android ha fatto affidamento su API Java derivate dal progetto Harmony in itinere, è caduta in una di queste trappole e, pare inavvertitamente, ha utilizzato qualche cosa che non era o non era ancora sotto licenza libera: da qui l’annosa diatriba tra Google e Oracle, arrivata fino alla Corte Suprema degli Stati Uniti, con alla base la richiesta della Oracle di un indennizzo da un miliardo di dollari.
D’altra parte su OpenJDK, qualche anno fa, erano diffuse voci di inaffidabilità: pare che non funzionasse bene per la costruzione di applicazioni un po’ impegnative. Ma pare anche che col tempo abbia raggiunto un ottimo livello di affidabilità. Ne è una dimostrazione il fatto che Google lo abbia finalmente adottato in pieno; nè possiamo credere che ciò sia avvenuto, come qualche maligno insinua, per fare un dispetto alla Oracle: Android è ormai una cosa molto seria e non se ne può certo giocare la fama per un dispetto infantile.
Allora usiamo anche noi con fiducia OpenJDK.
Se siamo studenti che vogliono imparare o, come nel mio caso, dilettanti hobbisti ne avremo sicuramente a sufficienza, anche nel caso abbia ancora qualche difetto, per i nostri esperimenti.
Per i professionisti valga il fatto che lo ha scelto anche Google e, soprattutto, che il suo utilizzo anche per programmi da mettere in commercio con profitto eviterà all’autore di essere inseguito dalla Oracle.
Nel documento PDF allegato, scaricabile e stampabile, a vantaggio di studenti e hobbisti ho raccolto alcuni suggerimenti sugli strumenti di software libero esistenti per programmare in linguaggio Java, anche per applicazioni Android.

java_android

Addio 32 bit

Ubuntu 16.04, che sarà rilasciato il prossimo aprile, sarà l’ultimo che affiancherà alla versione a 64 bit la versione a 32 bit.
Nel mondo Linux si è avuto da tempo il precedente Chakra Arch Linux, che ha preso la decisione di abbandonare l’architettura a 32 bit già nel 2012 suscitando un vespaio di critiche: tale decisione fu infatti ritenuta di totale incoerenza con il concetto “linux per tutti” che caratterizza questo mondo. E, nel 2012, mi pare non si trattasse di critiche infondate.
Quattro anni dopo, peraltro di fronte ad una versione, la 16.04 di Ubuntu, che sarà una LTS e sarà cioè supportata e aggiornata per altri quattro anni, direi che non c’è proprio nulla da dire.
Del resto, se guardiamo al mondo Windows o Mac, le attenzioni verso l’architettura a 32 bit riguardano ormai il minimo di correttezza nei confronti di chi aveva acquistato sistemi operativi basati su quell’architettura.
Infine occorre considerare che software a 64 bit se ne trova parecchio e che anche software originariamente ed ancora basato sull’architettura a 32 bit gira molto bene anche su sistemi a 64 bit.
Forse troviamo qualche problemino nel mondo Linux, dove, per far girare su un 64 bit software a 32 bit, qualche volta dobbiamo smanettare un po’ per aggiustare le dipendenze: speriamo che il 64 bit di Ubuntu 16.04, in questo senso, sia migliore di Ubuntu 14.04 e precedenti.
Così ci dobbiamo preparare a dare l’addio al 32 bit e viene voglia di farlo subito.
Ma vediamo innanzi tutto cosa vuol dire.
Lavorare a 64 bit piuttosto che a 32 bit significa semplicemente poter accedere a una memoria RAM enormemente superiore, con il risultato di poter eseguire programmi sempre più impegnativi dal punto di vista dell’occupazione di memoria o di poter eseguire programmi meno impegnativi con velocità e scioltezza più elevate.
Perché i vantaggi del lavorare a 64 bit siano avvertibili dobbiamo però averla, la memoria RAM.
Se il nostro computer è non troppo giovane e di fascia media probabilmente avrà attorno a 2 GB di RAM: con questa dimensione non noteremo alcuna differenza tra il lavorare con un sistema operativo a 64 bit e il lavorare con un sistema operativo a 32 bit.
Per entrare in una zona grigia, dove forse si comincia a notare la differenza, dobbiamo avere a disposizione almeno 4 GB di RAM.
Se abbiamo a disposizione oltre 4 GB, con il sistema a 64 bit è un’altra vita.
Comunque, dal punto di vista della RAM che abbiamo a disposizione, se muore il 32 bit non abbiamo problemi a passare al 64 bit.
Il problema vero è il processore: se, anche indipendentemente dalla sua architettura, può lavorare solo a 32 bit, esso non potrà funzionare con un sistema operativo a 64 bit.
Prima di avventurarci a caricare un sistema a 64 bit dobbiamo pertanto sapere se il nostro processore lo può reggere.
Un computer di fascia media acquistato di recente dovrebbe essere senz’altro già pronto per il 64 bit; anzi, con ogni probabilità, ha già montato un Windows a 64 bit ed allora la risposta ce l’abbiamo già.
Di fronte ad un computer non giovane, con un sistema operativo Windows imballato che si inceppa ogni due per tre, ci potrebbe venire voglia di installare un bel sistema Linux a 64 bit ed allora la curiosità si giustificherebbe.
Se usiamo un sistema operativo Linux – che, come sempre ricordo, è il migliore di tutti – basta che apriamo il terminale e scriviamo il comando lscpu; nella seconda riga della risposta, intitolata CPU op-mode, troviamo ciò che cercavamo: se c’è scritto solo 32-bit vuol dire che il nostro processore può lavorare solo a 32 bit, se c’è scritto 32-bit, 64-bit vuol dire che il nostro processore può lavorare anche a 64 bit, ecc.
Se usiamo un sistema operativo Mac dobbiamo andare nel menu Apple -> Informazioni su questo Mac -> Più informazioni -> Hardware -> Nome del processore; ottenuto il nome del processore andiamo su Internet e vediamo di capirci qualche cosa.
Se usiamo un sistema operativo Windows evitiamo di perdere tempo con i vari suggerimenti che troviamo in rete o sul sito della stessa Microsoft, tra cui addirittura quello di andare a sfrugugliare nel registro di sistema: in questo modo sono arrivato a scoprire che un processore Intel Core2 Duo, notoriamente adatto anche per sistemi a 64 bit, può supportare solo il 32 bit. Più semplicemente, seguendo i vari percorsi inventati nelle varie edizioni di Windows, accertiamo tra le risorse di sistema il nome del processore e poi andiamo su Internet.
Se poi, rimanendo in campo Windows, l’informazione ci interessa solo per sapere se possiamo upgradare il sistema operativo Windows a 32 bit che già abbiamo, mamma Microsoft ci mette a disposizione il programma Windows 7 Upgrade Advisor che rimedia al casino citato prima.
Altra opportuna verifica, ad evitare di crearci problemi inutili, quella sul sistema operativo in uso: potremmo infatti avere già un sistema a 64 bit senza saperlo.
Questa verifica è semplicissima. In Windows basta aprire il Pannello di Controllo e andare su Sistema e troviamo la descrizione del sistema operativo: se è presente in qualche modo la sigla x64 significa che abbiamo già un sistema a 64 bit. In Linux e Mac OS X basta digitare nel terminale il comando uname -a: se nella risposta compaiono sigle come i386, i486, i586, i686 vuol dire che abbiamo installato un sistema a 32 bit; se nella risposta compare la sigla x86_64 vuol dire che abbiamo installato un sistema a 64 bit.
Una volta dotati di un sistema a 64 bit potremo farvi girare anche vecchi programmi a 32 bit.
Se ci dilettiamo a fare noi stessi programmi, ricordiamo tuttavia che un eseguibile da noi compilato su un sistema a 64 bit non gira su un sistema a 32 bit.
Ovviamente, invece, script o bytecode tipo Python, Java e quant’altro viene interpretato, ovunque sia stato scritto, gira dove trova l’interprete.
Buon 64 bit.

Arricchiamo il nostro Android

Se abbiamo acquistato uno smartphone lo abbiamo fatto soprattutto per comunicare: con il telefono, con la messaggistica, con la posta elettronica, attraverso i social su internet, ecc. Secondariamente abbiamo forse pensato anche ad avere la possibilità di passare il tempo con qualche giochino elettronico o ascoltando un po’ di musica.
Probabilmente le stesse motivazioni, magari con minor peso la comunicazione telefonica e con più peso lo svago, dal gioco e dall’ascolto di musica alla lettura di un e-book o alla visione di un filmato, hanno spesso ispirato l’acquisto di un tablet.
Per non parlare, in entrambi i casi, della possibilità di scattare discrete fotografie, istantaneamente scambiabili con i nostri parenti ed amici.
In moltissimi casi si trascura il fatto che con queste apparecchiature si può fare molto di più, perché siamo in presenza di veri e propri computer: sia lo smartphone, sia il tablet sono infatti dotati di un chip che ingloba un microprocessore ed hanno un sistema operativo che li fa funzionare come un vero e proprio computer. Con il grande limite, soprattutto nel caso dello smartphone, della ristrettezza dello spazio per lavorare, sia con riguardo allo schermo sia con riguardo alla tastiera. Limite che, come ho sostenuto nel mio appunto di qualche giorno fa “Allarmismi senza costrutto”, farà in modo che questi apparecchi non potranno mai decretare la morte del personal computer, contrariamente a quanto alcuni sostengono.
Per certe cose, tuttavia, come il calcolo e collegate applicazioni scientifiche o lavoretti ricollegabili al nostro stato o alla nostra professione utilmente eseguibili in momenti di lontananza dalle consuete attrezzature di casa o dell’ufficio, il fatto di avere in tasca un apparecchietto che ci può dare una mano può risultare molto utile.
Quando acquistiamo uno di questi apparecchi lo troviamo già dotato del sistema operativo, cioè del software di base per farlo funzionare, oltre che di tutta una serie di applicazioni (in questo mondo, secondo la terminologia introdotta da Steve Jobs, chiamate “app”) che rispondono a tutte le esigenze primarie per le quali abbiamo acquistato l’apparecchio e che ho prima citato: comunicare, navigare su internet, fotografare, ascoltare musica, leggere e-book, vedere filmati, giocare.
Se il sistema operativo del nostro apparecchio è Android possiamo trovare centinaia di altre applicazioni per fare queste stesse cose o per farne altre su Google Play, il negozio on-line di Google, raggiungibile con il nostro apparecchio utilizzando la app Play Store.
Se mi chiedete perché tanta attenzione per Android e non per gli altri sistemi operativi che possiamo trovare in giro vi rispondo che Android, non a caso il più diffuso, è il migliore ed è basato su GNU-Linux, che è il sistema operativo per eccellenza del mondo del software libero, mondo al quale è dedicato questo mio blog. Peraltro, lo stesso Android, protetto dalla licenza Apache 2.0, è software libero.
Probabilmente, trovando installato sul nostro apparecchio tutto ciò che ci serve per le nostre esigenze primarie, la prima direzione verso la quale siamo interessati a trovare arricchimenti è quella dei giochi. In questo campo, su Google Play, possiamo trovare di tutto: dai giochi di movimento ai giochi da scacchiera, dai giochi di carte a rompicapi di tutti i tipi. Le nostre preferenze ci guideranno nella scelta.
Per quanto riguarda arricchimenti su altri fronti, vista la grande mole di applicazioni disponibili, non tutte ugualmente funzionali e realmente corrispondenti alle aspettative ingenerate dalle loro descrizioni, ho ritenuto utile compilare il manualetto allegato in formato PDF, scaricabile e stampabile.

le migliori app per arricchire Android

Allarmismi senza costrutto

Il Corriere della Sera del 15 gennaio 2016 apre la pagina 41 annunciando che “Il personal computer è morto (ed è colpa dell’iPhone)”.
Come abbia fatto un telefonino, sia pure smart (l’iPhone è uno smartphone), che, peraltro, ha una quota di mercato solo del 16%, ad uccidere il personal computer lo sa solo m.penn che firma il trafiletto a commento di questo annuncio funebre.
Forse voleva dare la colpa all’iPad, che, quanto meno, assomiglia di più a un PC e c’è stato un lapsus: anche qui, tuttavia, saremmo di fronte ad un dispositivo che ha una quota di mercato solo del 25% e, pertanto, non è così potente da ammazzare alcunché.
A meno che giochi la volontà di attribuire per forza qualche merito ulteriore al compianto Steve Jobs, che di meriti ne ha già tanti e non ha certo bisogno anche di questo.
La verità è che, nel 2011 per la prima volta, avvenne il sorpasso sulle vendite di personal computer da parte delle vendite di così detti dispositivi mobile (non solo quelli della Apple con la i iniziale ma tutti): infatti, contro 415 milioni di personal computer, vennero venduti 550 milioni tra smartphone (488 milioni) e tablet (62 milioni).
Nel 2015 pare che, più o meno, siano stati venduti 335 milioni di personal computer (115 milioni desktop, 165 milioni portatili e 55 milioni ultrabook) contro 2.270 milioni di dispositivi mobile (1.950 milioni smartphone e 320 milioni tablet).
Se, allora, analizziamo un po’ meglio la realtà delle cose vediamo che il personal computer tradizionale, in quattro anni, non è affatto morto ma se ne sono semplicemente contratte le vendite di circa il 23%: fenomeno ampiamente giustificato dal fatto che la vera e propria esplosione delle vendite di dispositivi mobile, ottimi per comunicare ed anche dotati di capacità elaborativa e ludica, doveva giocoforza allontanare dall’uso del personal computer tutta una categoria di persone che se ne servivano solo per andare su Internet, per chattare, per scambiare messaggi, per tenere i conti della spesa e per giocare, cose che si fanno egregiamente con smartphone e tablet, con minore ingombro e con maggiore comodità.
Ci sono tuttavia molte altre cose che ancora si fanno meglio con il personal computer, comprese quelle che la citata pagina del Corriere della Sera reclamizza come appannaggio del mondo degli smartphone ma che altro non sono che versioni per lo più ludiche di più completi software per personal computer: basta leggere la serie degli articoli sul software libero pubblicati in questo mio blog.
Si tranquillizzi, pertanto m.penn: il personal computer non è morto e vivrà ancora a lungo. Quanto meno, al momento attuale, non esiste ancora il killer adatto per farlo morire e questo, anche in futuro, non sarà certo l’iPhone, anche per un fatto fisico che la stessa tecnologia non può superare: quello della dimensione della tastiera e dello schermo.
La vera rivoluzione tecnologica che ha fittiziamente separato i due mondi è quella della sostituzione del processore e dei suoi accessori tipici nel personal computer con il chip (detto SoC, System on a Chip) tipico del tablet e dello smartphone, chip nel quale è racchiuso allo stato solido tutto ciò che nel personal computer è raggruppato nella scheda madre (processore, scheda video, memoria).
Se poi attorno a questo chip aggreghiamo uno schermo che si presti anche al CAD e non ci faccia cavare gli occhi e una tastiera sulla quale si possa scrivere comodamente con quante dita vogliamo avremo magari inventato un’altra macchina, ma sarà pur sempre un personal computer: a meno che lo vogliamo chiamare tablet rinforzato.
Perciò, tutto sommato, cosa c’è che muore ed a cosa servono questi allarmismi?

Csound, software libero per la computer music

In questo blog ho già passato in rassegna parecchi software per fare musica con il computer, scegliendo nel grande mare del software libero, corredando la presentazione con manualetti destinati ad una prima familiarizzazione con i vari programmi presentati.
Parlo dei documenti PDF “musica_suono.pdf” allegato all’articolo Software libero per fare musica dello scorso maggio, “rosegarden.pdf” allegato all’articolo Rosegarden come sequencer MIDI appena pubblicato e “lmms.pdf” allegato all’articolo Altra musica sempre con software libero dello scorso ottobre.
Quest’ultimo, non in ordine di tempo ma in ordine logico, allude ad “altra musica” perché, a differenza dei primi due, che ci illustrano mezzi con i quali possiamo fare musica producendo suoni che si rifanno agli strumenti musicali tradizionali attraverso il MIDI, ci propone un mezzo che offre anche la possibilità di creare suoni originali con il computer utilizzando tutta una serie di oscillatori digitali preconfezionati: così, dalla musica al computer che imita i suoni tradizionali (violino, tromba, chitarra, pianoforte, ecc.) passiamo alla vera e propria computer music, dove il computer diventa lui uno strumento musicale, capace di produrre suoni propri, non necessariamente ad imitazione di altri suoni.
Ma farei un torto alla collettività del software libero se non ricordassi che tutte queste belle cose sono possibili perché esiste, come si suol dire a monte, un’altra monumentale realizzazione, sempre di software libero, che si chiama Csound.
Nell’ambito della grande categoria della musica elettronica, quella che, in origine, componevano Stockhausen, Berio, Maderna utilizzando enormi oscillatori elettrici e che nel 1964 divenne di produzione più domestica con l’invenzione del sintetizzatore Moog, comunque un bell’apparecchietto tutt’altro che portatile, la computer music è la sottocategoria della musica che si fa con un computer, anche portatile – nemmeno di grande potenza – e, perché no e pur con qualche limitazione, con un tablet o un telefonino equipaggiati Android.
Possiamo dire che il padre della computer music è Max Mathews, che produsse presso i Bell Laboratories, a partire dal 1957, parecchi software, poi catalogati come serie Music N, per la sintesi del suono su grossi elaboratori.
Parallelamente, a partire da metà anni ’60, Barry Vercoe, uno scienziato informatico anche musicista compositore di origine neozelandese, si occupò, presso l’MIT di Boston, del problema dell’interazione tra computer e musicista, come a voler ripetere l’esperienza del Moog sostituendo al Moog un calcolatore.
E’ alla fine di questa lunga esperienza, iniziata utilizzando il linguaggio Assembly e proseguita utilizzando il linguaggio C, nel frattempo regalatoci da Dennis Ritchie, che nasce, nel 1985, Csound: un linguaggio di programmazione sviluppato in C e che del C conserva certe impostazioni, con il quale possiamo creare suoni sempre nuovi partendo dalle oscillazioni, cioè ab ovo.
Tutto ciò che troviamo di preconfezionato per fare musica sul nostro computer è stato sviluppato con un ricorso più o meno diretto al linguaggio Csound.
Per noi dilettanti è sufficiente sapere che c’é: anche perché non si può dire che sia user friendly e alla facile portata di un dilettante.
Per i professionisti della computer music, siano essi musicisti con la passione del computer e dei nuovi suoni, siano essi programmatori che producono il software che poi semplifica la vita a noi dilettanti, Csound è ancora sulla cresta dell’onda, ha una nutrita community che lavora continuamente per migliorarlo e si mostra frequentemente in conferenze internazionali, l’ultima delle quali tenutasi lo scorso ottobre a San Pietroburgo.
Ovviamente ha un sito web, all’indirizzo www.csounds.com, sul quale possiamo fare la conoscenza del mondo di Csound e dal quale possiamo liberamente scaricare il software di base e alcuni tools che ne rendono più amichevole l’utilizzo. Il software è disponibile per tutti i sistemi operativi (Linux, Windows, OS X) con app limitate anche per Android e iOS.
Purtroppo tutta la documentazione è in lingua inglese.
Abbiamo, tuttavia, anche in Italia qualche guru di Csound che ce ne parla in buon italiano.
Penso al prof. Riccardo Bianchini, le cui preziose documentazioni sono reperibili sul web digitando “riccardo bianchini csound” su una barra di ricerca e a Giorgio Zucco, autore di un ottimo manuale pratico edito da Giancarlo Zedde: Sintesi digitale del suono, Laboratorio pratico di Csound.
Per capire immediatamente di che cosa parliamo e per dar modo a chi lo voglia di fare qualche prova rimando comunque all’allegato documento in formato PDF, scaricabile e stampabile.

csound

Rosegarden come sequencer MIDI

Nel mio manualetto Musica e Suono.pdf, allegato all’articolo Software libero per fare musica dello scorso maggio, dopo aver presentato alcuni software con i quali è possibile generare file MIDI come “sottoprodotto” rispetto al risultato principale di scrivere partiture musicali, dicevo che un sequencer MIDI deve avere due cose in più, rispetto a questi software.
Innanzi tutto essere in grado di produrre file MIDI traducendo in segnali di controllo l’input inviato da un musicista che suona su una tastiera collegata al computer e, inoltre, dare la possibilità di editare il file contenente i controlli, i così detti eventi MIDI, in modo da poter intervenire con modifiche e/o nuovi inserimenti per arricchire il file stesso di correzioni ai controlli inseriti con la tastiera o di nuovi controlli non inseribili con la tastiera (come controlli per la disposizione stereofonica del suono, l’espressione, il portamento, la modulazione, il cambio dello strumento musicale, ecc.).
Dicevo anche che non esistono – nel mondo del software libero – programmi che, senza tanto impegno di risorse e di capacità di organizzarle, si limitino ad aggiungere solo queste due cose alla possibilità basica di inserire le note e la loro durata con il mouse.
In realtà non è del tutto vero.
Nel citato manualetto, parlando di software libero che può reggere il confronto con lo storico software commerciale Cubase, accennavo alla possibilità di integrare su Linux i tre programmi Rosegarden, Ardour e Hydrogen: il procedimento alquanto complicato è ben descritto da Stefano Droghetti nel documento che troviamo all’indirizzo stefanodroghetti.altervista.org/produzione-musicale. La più grande complicazione insita in questo procedimento è data dalla necessità di utilizzare il server audio Jack con la relativa configurazione e con l’aggravante che l’uso di Jack esclude la possibilità di usare il server audio di default di Linux (Pulseaudio) cui sono collegati tutti gli altri programmi che hanno a che fare con il suono. Non solo: salvo ricorrere a artifici da smanettoni, una volta spento il server Jack il server Pulseaudio non riparte e, per farlo ripartire, occorre spegnere e riaccendere il computer (mi pare che, fortunatamente, ciò non sia più necessario da Ubuntu 15.4 e derivate in poi).
Tutte queste complicazioni non ci sono se usiamo Rosegarden semplicemente come sequencer MIDI, rinunciando alle sue prestazioni sul fronte audio.
D’altra parte la versione di Rosegarden per Windows, realizzata nel giugno 2014 da Richard Bown, uno degli originari sviluppatori di Rosegarden, partendo dalla versione Linux 14.02 – Kaleidoscope, non ha attivate le funzioni audio e funziona solo come sequencer MIDI.
Per il sistema operativo Linux Rosegarden è giunto alla versione 15.10 – Oranges and Lemons, appena uscita.
Su Rosegarden per Linux possiamo sapere tutto visitando il sito rosegardenmusic.com, dove troviamo il tarball del source code e i riferimenti per le varie versioni adatte alle versioni del nostro sistema operativo Linux: per essere tranquilli basta installare Rosegarden dal repository della nostra distro.
Rosegarden per Windows lo troviamo all’indirizzo http://sourceforge.net/projects/rosegarden/files/rosegarden/14.02-WINDOWS/.
Data la carenza di documentazione in italiano, a vantaggio di chi voglia sperimentare Rosegarden come sequencer MIDI, ho ritenuto utile produrre l’allegato manuale in formato PDF, scaricabile e stampabile.

rosegarden

Basic su Android

Si chiama BASIC! (con un meritato punto esclamativo) e si trova su Google Play.
Sviluppato dal vecchio mago dell’informatica Paul Laughton nell’ambito del settore Dr. Richard Feynman Observatory del suo strano Workshop, il nome completo è RFO-BASIC!, dove RFO richiama il Richard Feynman Observatory: il riferimento spiega, tra l’altro, perché l’icona della app sia costituita da un telescopio.
Se qualcuno vuole visitare il workshop di Laughton, per rendersi conto del personaggio e per leggere qualche aneddoto sulla sua vita, compresa la collaborazione pionieristica con Steve Jobs, può visitare il sito laughton.com/paul/paul.html.
Con questa app possiamo scrivere ed eseguire programmi utilizzando un moderno dialetto del Dartmouth BASIC del 1964 sul nostro tablet o sul nostro telefonino equipaggiati da sistema operativo Android.
Il dialetto, per chi abbia qualche reminiscenza del BASIC che usavamo appena sono comparsi i primi computer domestici, dal glorioso Commodore in poi, è subito utilizzabile: ci ritroveremo il simbolo $ con cui terminare il nome delle variabili stringa, ci ritroveremo il deprecato gosub, ecc.
Poi c’è tutto il resto, tipico del RFO-BASIC!: da quanto serve per programmare applicazioni grafiche, a quanto serve per lavorare con database sqlite, a quanto serve per utilizzare file multimediali, ecc.
All’indirizzo laughton.com/basic/help/De_Re_BASIC!.pdf possiamo trovare e scaricare il manuale del BASIC! in formato pdf, che si chiama De_Re_BASIC!.pdf e contiene tutti i segreti del linguaggio (de re è proprio latino e “de re Basic!” significa praticamente “tutto su BASIC!”).
Le applicazioni Android che costruiamo hanno un aspetto assolutamente professionale e sono contenute in un file con estensione .bas che, grazie alla app BASIC!, possono essere programmate e utilizzate sul nostro apparecchio (la app funge anche da interprete).
Ovviamente siamo in pieno mondo open source e software libero.

Ma non finisce qui.
Se andiamo all’indirizzo rfobasic.com, troviamo un prezioso tutorial scritto da Nick Antonaccio che ci porta per mano ad utilizzare il nostro BASIC!. Il documento si chiama “Learn RFO Basic – The Easiest Way To Create Android Apps”.
Da questo tutorial apprendiamo, con tutti i riferimenti del caso, che con il linguaggio RFO BASIC!, avendo installato Eclipse e le API Android sul PC, possiamo produrre le nostre app su file .apk: apk sta per Android Package e il file .apk è quello che serve per installare una app sul sistema Android, app che, così installata, funziona su Android anche senza che vi sia installato BASIC!. Come dire che, con l’ausilio di un PC attrezzato, possiamo “compilare” le nostre applicazioni programmate in BASIC!.

Sorpresa finale: scopriamo che un certo Nicolas Mougin ha sviluppato alcune utilità per BASIC!, che troviamo all’indirizzo mougino.free.fr/rfo-basic/, tra cui spicca RFO-BASIC! Quick APK (PC), attraverso la quale, partendo da un programma scritto in BASIC!, senza conoscere nulla di Java, di Android e di Eclipse, possiamo sfornare il file .apk: basta che sul PC sia installato, oltre a questo quick-apk.exe, il Java Runtime Environment (JRE).
Purtroppo il Mougin, pur appartenendo al mondo del software libero, deve essere amico di Bill Gates e ci propone solo una versione per Windows dei suoi software.
I linusiani stiano comunque sereni: quick-apk.exe funziona benissimo su Wine. Sullo stesso Wine deve però essere installato anche il Java Runtime Environment per Windows.

Esiste, infine, una versione di Quick APK, BASIC! Quick APK (WiFi), che possiamo scaricare da Google Play, grazie alla quale possiamo installare via WiFi dal PC dove abbiamo prodotto il file APK la nostra nuova applicazione. La quale è comunque installabile dove vogliamo con un collegamento USB (previa abilitazione del nostro sistema Android alle applicazioni di origini sconosciute).

E con questo esempio di produzione di software libero, da Laughton a Antonacci a Mougin e chissà a quanti altri ignoti, buon divertimento con BASIC!

Sarebbe anche bellissimo se ci fosse un volontario che traducesse tutta la documentazione su questa cosa, ora reperibile solo in inglese.

Altra musica, sempre con software libero

Nel mio articolo “Software libero per fare musica”, che si trova archiviato nella categoria “software libero”, e nel relativo allegato in formato PDF “Musica e Suono” ho illustrato alcuni software con i quali possiamo ottenere suoni dal computer, potendoli anche organizzare in maniera da comporre veri e propri brani musicali, fino a produrre file audio di qualità professionale.
Già con quei pochi strumenti possiamo disporre di una vera e propria DAW (Digital Audio Workstation) con la quale abbiamo modo di generare musica (sequencer e arranger MIDI con generatori di suono) e di manipolare i file audio così ottenuti (editor e convertitori di file audio).
Mi si dirà che i costosi Cubase, Sonar, FL Studio, ecc. sono un’altra cosa. Come un’altra cosa è peraltro ciò che descrive Stefano Droghetti nella sua guida “Produzione musicale”, consultabile sul sito http://stefanodroghetti.altervista.org/: con più programmi di software libero messi insieme su un sistema operativo Linux, senza spendere un euro, il Droghetti (con lo pseudonimo da cantautore Senbee) produce cose che nulla hanno in meno di quelle prodotte con Cubase e che possiamo ascoltare visitando il sito https://archive.org/details/Senbee.
Tra l’altro i tre principali componenti di questo mix descritto da Stefano Droghetti (il sequencer MIDI Rosegarden, la drum machine Hydrogen e l’editor audio Ardour) sono ormai disponibili anche per i sistemi operativi OS X e Windows. In particolare l’ultima versione di Ardour, la 4 uscita lo scorso giugno, oltre che poter girare anche su Windows, tratta ormai come si deve anche i file MIDI e, su Linux, può funzionare anche senza il server Jack, sia pure, ovviamente, nei soli casi in cui non si voglia sincronizzare Ardour con altri software.
Ma io sono un minimalista e sono sempre alla ricerca di cose che producano apprezzabili risultati con le minori complicazioni e il minore impiego di risorse possibili e, indirizzando i più esigenti al superlativo lavoro divulgativo di Droghetti, vorrei invece attirare l’attenzione dei meno esigenti su un prodotto di software libero in cui mi sono imbattuto: LMMS.
LMMS è, storicamente, l’acronimo di Linux MultiMedia Studio, a denotare la nascita di questo software nel mondo Linux. Dal momento che esistono ormai versioni che funzionano benissimo anche su Windows e OS X, nella sua attuale presentazione sul sito https://lmms.io/, evidentemente per sottolineare che il prodotto appartiene ormai anche ad altri mondi, si gioca su Let’s Make Music, lasciando perdere, appunto, ogni riferimento al mondo di provenienza con una S non spiegata nell’acronimo.
Per quanto mi riguarda, il principale pregio di questo software è quello di rimediare alla più vistosa carenza di quanto ho presentato nella mia rassegna “Musica e Suono” che ho citato all’inizio. In quella rassegna i suoni che produciamo sono solo quelli catalogati nel sistema MIDI.
Non che siano pochi: ne possiamo contare, infatti, oltre 300, di cui un centinaio ad imitazione dei suoni prodotti dagli strumenti musicali che ci sono noti, un centinaio di suoni di percussioni e un altro centinaio tra suoni originali o imitanti suoni naturali (dal cinguettio di un passero al rumore di un elicottero, dal galoppo di un cavallo al rumore del vento, dal rumore della pioggia al suono prodotto da applausi, ecc.). Sono comunque in numero limitato e li dobbiamo prendere come sono: li possiamo solo rendere più o meno gradevoli utilizzando strumenti di riproduzione più o meno validi.
A proposito, poi, di percussioni, la mia richiamata rassegna non contiene alcun software specificamente dedicato alla produzione di basi ritmiche.
Per queste, stando a quella rassegna, si devono utilizzare innanzi tutto le basi ritmiche preconfezionate nell’arranger MMA, con il quale ne possiamo comunque costruire altre originali, o ci si affida alla scrittura sul rigo musicale secondo la codifica MIDI degli strumenti di percussione da dare in pasto al canale 10 del MIDI. Tutto molto laborioso e, soprattutto, senza aver modo di udire ciò che facciamo nel momento in cui lo facciamo.
Queste due lacune sono ampiamente colmate da LMMS, con il quale possiamo produrre tutti i suoni che vogliamo, senza peraltro rinunciare ad utilizzare quelli del MIDI, e con il quale possiamo disporre di una vera e propria drum machine.
Ovviamente tutto ciò che facciamo con LMMS lo possiamo esportare in file audio.
Per una comprensione delle differenti potenzialità creative di questi software propongo l’ascolto di due brani.
Questo primo brano è un mio arrangiamento di In a sentimental mood di Duke Ellington, prodotto con il software che ho presentato nel mio precedente articolo

 In a sentimental mood

Si nota come i suoni siano ad imitazione di quelli di tradizionali strumenti musicali e, con il software utilizzato, non si potrebbe fare di più, salvo ricorrere a qualche suono di sintesi presente nel catalogo MIDI, comunque preconfezionato e non modificabile da parte nostra.
Questo secondo brano, Onion di Skiessi, è prodotto con LMMS e si trova nella sua biblioteca dimostrativa

Onion

I suoni sono particolari e prodotti, così come li sentiamo, dal gusto dell’autore senza il ricorso a suoni preconfezionati da altri.
Ciò che purtroppo LMMS non fa è la registrazione da microfono.
Come succede con il software che ho presentato nel mio precedente articolo, anche se usiamo LMMS arriviamo a produrre file audio soltanto con suoni generati dal computer. Il mixaggio con suoni prodotti altrimenti (accompagnamento con la nostra chitarra, melodia suonata con il nostro flauto, canto con la nostra voce, ecc.) è possibile solo previa registrazione di questi suoni con altri strumenti software.
Per questo dobbiamo accontentarci sempre del vecchio Audacity.
Pertanto, se lavoriamo su Windows o se, lavorando su Linux, vogliamo evitare le complicazioni del server Jack, il processo rimane sostanzialmente sempre quello di produrre un file audio con i suoni generati dal computer, aprire questo file con Audacity e farne una base su cui sovrapporre le altre tracce audio registrandole con lo stesso Audacity utilizzando un microfono e sentendo in cuffia la base stessa.
Con LMMS, tuttavia, diventa possibile anche registrare altrove un file MIDI per la melodia, importarlo e costruirvi attorno una base ritmica o un accompagnamento armonico per produrre con LMMS il file audio finale polifonico.
Mai, comunque, potremo mixare come si deve un intero file audio all’interno di LMMS.
Per quanto riguarda Audacity e il suo uso, rendendomi conto che quanto ho detto nei miei precedenti articoli è forse poco, consiglio a chi ne voglia sapere di più i seguenti riferimenti, riguardanti purtroppo versioni un po’ datate ma con il vantaggio di essere in lingua italiana:
. http://informaticangioy.altervista.org/dispense/audacity.pdf
. http://www.nanolab.unimore.it/it/wp-content/uploads/2012/06/Audacity1_2_6Man0_0_2
Per quanto riguarda LMMS, una sua descrizione con indicazioni di funzionamento, anche con obiettivi non banali, si trova nell’allegato file PDF, scaricabile e stampabile.

lmms