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

SQLite, una database per tutti

Qualche tempo fa, nel maggio 2015, al mio articolo che si trova su questo blog con il titolo “Software libero per gestire dati” ho allegato il file PDF “gestione_dati” che contiene quanto strettamente necessario per conoscere, tra l’altro, l’esistenza di SQLite e a cosa possa servire SQLite.
Come per tutti i numerosi software presentati in quella serie di articoli, la finalità era semplicemente quella di conoscere l’esistenza di un certo programma e di conoscere che cosa si può fare utilizzandolo.
Sul come utilizzarlo gli accenni erano molto stringati e, per chi fosse interessato, si rimandava alla documentazione esistente (manuali, guide, tutorial, ecc.).
Per quanto riguarda SQLite, rendendomi conto che questa documentazione è molto frammentata e, quando completa, oltre che essere in lingua inglese, è anche eccessiva e dispersiva per l’utente dilettante evoluto cui si rivolge il mio blog, ho ritenuto utile produrre una guida all’uso a misura, che è contenuta nell’allegato file PDF, liberamente scaricabile, stampabile e distribuibile.

sqlite

Software libero anche al Comune di Roma

Nella seduta dello scorso 14 ottobre, con deliberazione n. 55, la Giunta Capitolina ha formalmente assunto l’impegno all’uso di software libero o a codice sorgente aperto nell’Amministrazione Capitolina.
Le intenzioni di guardare con attenzione al software libero per le esigenze amministrative del Comune di Roma erano già state manifestate nel febbraio del 2004 dalla compianta Mariella Gramaglia, ai tempi del suo assessorato: ora le intenzioni sono divenute un impegno formalizzato ed anche il Comune di Roma volgerà irrevocabilmente verso l’utilizzo di software libero.
La questione dell’impiego di software libero nella Pubblica Amministrazione, non solo in Italia ma in Europa, ha assunto definitiva importanza all’inizio del millennio, quando la digitalizzazione divenne la via attraverso cui riformare il settore anche al fine di instaurare un nuovo tipo di rapporti con il cittadino.
Le quattro libertà garantite dal software libero:
0: Libertà di eseguire il programma per qualsiasi scopo,
1: Libertà di studiare il programma e modificarlo,
2: Libertà di ridistribuire copie del programma in modo da aiutare il prossimo,
3: Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio,
unitamente al fatto che ormai non si stava parlando solo delle profezie di Richard Stallman ma si stava toccando con mano l’esistenza di Linux, che proprio grazie alle quattro libertà, in breve volgere di tempo era diventato un sistema operativo libero di tutto rispetto, si sono infatti imposte all’attenzione della Pubblica Amministrazione in quanto potevano consentire a questa di creare lei stessa il software di cui aveva bisogno, adattando alle proprie esigenze software esistente senza bisogno di acquistare licenze e, soprattutto, immunizzandosi dal pericolo di soggiogarsi a ristrette cerchie di fornitori. Di più, con la possibilità di far circolare tra enti diversi le soluzioni create senza dover riconoscere proprietà intellettuali e relativi diritti a chicchessia.
Senza trascurare il fatto che nel momento in cui il processo di digitalizzazione avesse coinvolto i rapporti con il cittadino sarebbe stato anche necessario adeguarsi alla libertà del cittadino di avvalersi di software libero.
Il risultato di tutto ciò sarebbe stata l’affermazione di principi di libertà e trasparenza in un luogo nel quale non ce se ne potrebbe esimere e la realizzazione di notevoli risparmi sul piano economico in un luogo nel quale ce n’è molto bisogno.
Devo riconoscere che nei miei rapporti telematici che fin dalle origini ho instaurato con il fisco e con l’INPS non ho mai avuto problemi ad utilizzare Linux e i software di Mozilla e, per la mia esperienza, devo riconoscere che la Pubblica Amministrazione si è da subito messa, anche concretamente, sulla buona strada.
In Italia il primo solenne riconoscimento del software libero lo troviamo nell’articolo 68 del Decreto Legislativo 7 marzo 2005, n. 82 che istituì il Codice dell’Amministrazione digitale e il secondo importante tassello si è avuto nel 2012 con la creazione dell’Agenzia per l’Italia digitale. Nel citato articolo 68, sostanzialmente, si afferma il principio che gli enti della Pubblica Amministrazione sono tenuti a preferire software libero a software proprietario e possono ricorrere a quest’ultimo ove si dimostri che non c’è altro modo di risolvere l’esigenza informatica.
Sul piano applicativo abbiamo vari episodi di pionierismo. Risalgono al 2001 e al 2002 mozioni per l’adozione del software libero approvate dai Consigli Comunali di Firenze e di Lodi. Nel 2003 la Regione Toscana afferma in una Legge Regionale il principio dell’utilizzo preferenziale del software libero a sorgente aperta.
Da lì in poi sono cominciate le effettive adozioni di soluzioni di software libero nei server (Linux) e negli applicativi (Open Office e Libre Office), concentrate soprattutto nel Nord Est: Comune di Rovereto, Comune di Trento, Provincia di Bolzano, Provincia di Trento.
Buoni esempi dall’estero sono l’adozione di Linux come sistema operativo per l’attrezzatura informatica dell’Assemblea Nazionale Francese nel 2007, l’adozione di Open Office, Firefox e Thunderbird per tutti i punti operativi della Gendarmeria Francese nel 2005 con la sostituzione, negli anni immediatamente successivi, del sistema operativo Windows con il nuovo sistema operativo battezzato GendBuntu, adattamento di Linux Ubuntu alla Gendarmeria: pare che queste operazioni abbiano generato un risparmio di 2 milioni di euro all’anno.
Caso da citare quello del Comune di Monaco di Baviera che avviò la migrazione verso strumenti e impostazioni di software libero nel 2003 e la concluse nel 2013, ben dieci anni dopo. Ciò a motivo di una sospensione del progetto causata da alcuni detrattori che fecero insorgere dubbi su dubbi circa rischi di violazione di diritti di proprietà intellettuale insiti nell’adozione di software libero. Si dimostrò che il software libero è libero anche da questi problemi e si andò avanti: si giunse così al sistema operativo destinato a governare l’apparato informatico del Comune di Monaco di Baviera, chiamato LiMux, il Linux di Monaco. Ma i detrattori non deposero le armi e, nel 2014, scatenarono una nuova offensiva, accampando inefficienze attribuibili al nuovo sistema e presunte incompatibilità di formato tra i documenti prodotti dal Comune e i terzi (più che presunte, false, in quanto il formato ODF, Open Document Format, è ormai riconosciuto anche da MS Office; comunque ci vuole poco ad adeguarsi: basta installare gratuitamente LibreOffice), offensiva tale da far credere che si tornasse a Windows. Francamente non conosco lo stato attuale della diatriba e penso non sia ancora finita.
Forse il progetto di Monaco è stato troppo radicale all’inizio, essendo partito subito dal sistema operativo. Meglio ha fatto il nostro Ministero della Difesa che, seguendo un po’ il percorso della Gendarmeria francese, non è partito dal sistema operativo ma, come primo atto, dalla sostituzione di MS Office con LibreOffice: solo questo provvedimento, una volta che avrà interessato tutti i 150.000 computer del Ministero, si tradurrà in un risparmio di 29 milioni di euro. Poi si vedrà.
Stessa strada mi pare abbia intrapreso il Comune di Torino.
Mi piace comunque concludere citando le parole dell’Assessore a Roma Semplice Flavia Marzano, che di informatica ne capisce parecchio, a commento della recente citata delibera della Giunta Capitolina: “Niente più scelte che vincolino l’amministrazione ad un solo fornitore, ma soluzioni aperte e modulabili nel tempo che permettano un confronto concorrenziale tra diversi operatori. Obiettivo di questo provvedimento, e di questa Giunta, è quello di favorire il pluralismo informatico e la diffusione del software libero nell’amministrazione capitolina come strumento di maggiore efficienza, trasparenza, sostenibilità e indipendenza nell’esercizio delle proprie funzioni”.
Discorso più generale, che apre orizzonti molto più ampi rispetto alla semplice adozione di LibreOffice. Ma più gli orizzonti sono ampi più sono ampi gli interessi che si toccano: Monaco docet.
Intanto noi privati continuiamo ad acquistare, senza avere alcuna possibilità di fare altrimenti, computer dotati del sistema operativo Windows praticamente nudo e crudo, con preinstallati software commerciali in prova per 30 giorni trascorsi i quali dobbiamo pagare per continuare ad utilizzarli.
Quando riusciremo ad acquistare un computer con preinstallata una qualsiasi distribuzione Linux con accessibilità a tutta la serie di programmi di software libero che sono disponibili gratuitamente?
Nel frattempo, teniamoci pure l’Windows che ci hanno tirato dietro, ma interessiamoci dei programmi liberi che funzionano anche su Windows: negli articoli archiviati nella categoria Software libero di questo blog ne presento tanti, che ci consentono di fare di tutto.
Se siamo un po’ più coraggiosi ma abbiamo paura ad abbandonare Windows, cominciamo ad installare al suo fianco un sistema Linux: nell’allegato “Installazione di Linux Mint 18 Sarah” al mio articolo “Benvenuta Sarah” dello scorso luglio spiego come si fa.
Finirà che, come è successo a me, concluderemo col dire che Linux è meglio.

Software libero per aver cura del computer

Sul disco fisso del nostro computer abbiamo il sistema operativo, cioè una serie di file che servono per fare funzionare il computer stesso, abbiamo tutta una serie di programmi applicativi, quelli che servono per fare tantissime cose, come descritto nella serie di articoli sul software libero archiviati su questo blog e, infine, abbiamo i nostri dati: dati che possono essere file di lavoro, come quelli che contengono i conti della nostra azienda o di casa o che contengono la nostra tesi di laurea in corso di elaborazione, o file di archivio, come quelli che contengono raccolte di fotografie, di file musicali, di file video, di ebooks e quant’altro.
Tutto è ospitato, spazio permettendo, sul disco fisso: sistema operativo e programmi applicativi per definizione, file di lavoro per una evidente praticità e file di archivio, soprattutto se parliamo di un computer portatile, per la comodità di avere sottomano, ovunque ci troviamo, tutti i nostri archivi.
Se il disco fisso si rompe – e purtroppo capita, non solo per macchine vecchie – o se ci rubano il computer, perdiamo tutto.
Alla perdita del sistema operativo rimediamo installandone un altro sul nuovo disco fisso o sul nuovo computer; pure alla perdita dei programmi, sia pure con un bel po’ di lavoro se erano tanti, possiamo rimediare reinstallandoli. File di lavoro e file di archivio sono persi irrimediabilmente.
Se si rompe il sistema operativo, cioè se il computer non parte più, esistono modi e strumenti per recuperare i file di lavoro e i file di archivio presenti sul disco fisso prima che l’installazione di un nuovo sistema operativo rischi di cancellarli. Questo rischio è collegato al sistema operativo che andiamo ad installare e a come è organizzato il disco fisso: se il sistema operativo è Windows e tutti i file sono contenuti sul disco in una unica partizione l’installazione cancellerà tutto; se il sistema operativo è Linux – che, come ricordo sempre, è il migliore del mondo – con una certa abilità si potrebbe riuscire a salvare comunque i dati.
Fortunatamente tutti questi disastri o inconvenienti si possono evitare utilizzando software commerciali o liberi che ci aiutano, come si dice, a fare il backup delle nostre cose, praticamente ad avere su un disco diverso da quello inserito nel computer una copia di tutto. Un tempo si facevano i backup su disco floppy o ottico ma ormai le dimensioni dei dati da duplicare e il basso costo dei dischi fissi esterni o delle memorie flash su pennetta fa di uno di questi ultimi supporti quello ideale per ospitare i nostri backup.
Disco esterno o pennetta contenenti i backup andrebbero conservati in luogo diverso da quello in cui si trova il computer, ad evitare che un ladro o un incendio ci freghino computer e backup insieme: a questo proposito vengono molto bene le memorie di massa on-line messe a disposizione da provider di cloud computing.
Fortunatamente può capitare che il danno occorso ad un computer che non si avvia più non sia così grave da dover ricorrere a laboriosi ripristini: si può essere semplicemente cancellato o corrotto il file di boot o può essere intervenuta qualche altra banalità.
Paradossalmente è più difficile, per un dilettante, porre rimedio a questi piccoli inconvenienti che non a quelli più gravi, dove interviene il backup e il ripristino.
Modi e strumenti per fare questo e quello ci sono offerti in abbondanza dal mondo del software libero ed ho ritenuto utile richiamare quelli che mi sembrano i migliori nell’allegato manualetto in formato PDF, scaricabile e stampabile.

backup-e-non-solo

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

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.

Python su Android

Su un tablet o su uno smartphone equipaggiati con Android è possibile lavorare con il linguaggio di programmazione Python; lavorare nel senso di avere a disposizione la shell di Python e di poter eseguire script Python archiviati sul dispositivo.
Mi si chiederà: per farci che cosa?
Nel mio caso, oltre che per eseguire programmi di calcolo di varia natura da me prodotti (calcoli finanziari, calcoli statistici, calendario perpetuo, ecc.), anche per poter accedere con facilità a database Sqlite (ricordo che Sqlite è integrato nel sistema Android) dove ho catalogato tutte le mie raccolte musicali e di biblioteca, con il vantaggio, tra i tanti, che, potendo controllare istantaneamente sullo smartphone le opere di un certo autore che già posseggo non corro il rischio di acquistare doppioni quando sono in giro per negozi.
Al di là di tutto ciò sta comunque la soddisfazione di poter creare qualche cosa che funzioni persino su un telefonino, divertendosi con quello splendido linguaggio di programmazione che è Python.

Per fare queste cose dobbiamo innanzi tutto procurarci l’applicazione sl4a (scripting layer for android) che è la piattaforma sulla quale possiamo far girare i nostri script. Si dice in giro che questa applicazione sia diventata incompatibile con Android a partire dalla versione 5.0 (Lollipop): non mi pare, visto che su un mio emulatore con Android 5.0.1 (API 21) funziona benissimo. L’ultima versione dell’applicazione, la sl4a_r6 si trova qui.
Dobbiamo poi procurarci l’applicazione Python for Android, che ci consente di installare l’interprete Python. L’ultima versione, Python3ForAndroid_r6 si trova qui.
Entriamo così in possesso dei file sl4a_r6.apk e Python3ForAndroid_r6.apk che dobbiamo installare, nell’ordine, sul nostro dispositivo. Per l’installazione di sl4a è necessario che il dispositivo sia corredato di una SDCard sulla quale verrà automaticamente creata una directory per ospitare gli script.
Con collegamento internet attivo lanciamo l’applicazione Python for Android e, dal menu che compare, scegliamo Installa: dopo qualche minuto di scaricamento, scompattamento e installazione avremo il nostro Python sul dispositivo e lanciando l’applicazione sl4a troveremo elencati gli script Python che si sono installati per dimostrazione ed ai quali potremo aggiungere tutti quelli che produrremo noi.
L’allegato file PDF, scaricabile e stampabile, costituisce un utile prontuario sul funzionamento dell’applicazione sl4a.

sl4a

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.

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).