Ancora Python su Android

In un mio articolo del giugno 2015, intitolato Python su Android e archiviato in Programmazione su questo blog, ho parlato di come fosse possibile lavorare con Python su Android grazie all’installazione di un layer per l’esecuzione di script di vario tipo, tra cui gli script Python.
Tuttora è possibile fare questo installando le due app indicate in quell’articolo: il layer sl4a, il cui funzionamento è illustrato nel file PDF allegato all’articolo stesso, e il pacchetto Python per Android.
Con quegli strumenti abbiamo la possibilità di creare e utilizzare script Python di varia utilità, avendo tuttavia a disposizione la sola versione Python di base, semplicemente arricchita della libreria per le funzioni matematiche ricorrenti. Non abbiamo invece la possibilità di accedere alla ricchezza delle estensioni descritte nel mio articolo Python per tutti del febbraio 2017, alle funzioni grafiche descritte nei miei articoli Grafica con Python del maggio 2018 e Ancora grafica con Python dell’ottobre 2018 ed alle sofisticazioni descritte nel mio articolo Software libero per data scientists dello scorso mese di aprile 2019: tutti articoli archiviati in Programmazione su questo blog.
Nel frattempo la IIEC di Novosibirsk ci ha regalato una cosa interessante: una app che ci consente di avere Python sul nostro dispositivo equipaggiato Android come – o quasi – se lo stessimo utilizzando su un normale computer equipaggiato Linux, senza più limitazioni, salvo quelle di memoria e di capacità elaborativa del dispositivo stesso.
Il primo rilascio di questa app, che si chiama Pydroid, risale alla fine del 2017 e il più recente, versione 3.01, è del 4 aprile 2019.
Visto che, pur con qualche residuale eccezione, pare che la app abbia superato l’assestamento dei primi rilasci, ne presento le funzionalità nell’allegato manualetto in formato PDF.
Come sempre il documento è liberamente scaricabile, stampabile e distribuibile.

pydroid

Software libero per data scientists

Qualche anno fa la Harvard Business Revue ha pubblicato un articolo dal titolo “Data Scientist: the Sexiest Job of the 21st Century”.
Per farci capire cosa ci sia di così seducente in questa professione, definita la più sexy del XXI secolo, l’articolo la definisce “di alto livello, con la formazione e la curiosità di fare scoperte nel mondo dei big data”, dice che i data scientists “fanno scoperte mentre nuotano nei dati. È il loro metodo preferito per navigare nel mondo che li circonda. A loro agio nel regno digitale, sono in grado di strutturare grandi quantità di dati senza forma e renderne possibile l’analisi.” e conclude invitando il lettore a pensare al data scientist come a “un ibrido di data hacker, analista, comunicatore e consulente di fiducia in una combinazione estremamente potente e rara.”
In maniera meno colorita diciamo che la scienza dei dati è la disciplina finalizzata ad estrarre conoscenza dai dati e che il professionista che vi si dedica deve sapere di informatica e di statistica, avendo anche la capacità di tradurre in linguaggio naturale i risultati delle sue analisi e le indicazioni che ne derivano.
A supporto di quest’ultima capacità di capire e comunicare non esiste software ma per l’informatica (strutturazione dei dati e algoritmi per elaborarli) e la statistica (analisi della correlazione tra dati e dell’inferenza) esiste moltissimo software, sviluppato o reso funzionale alle moderne esigenze soprattutto negli anni più recenti.
Software per analizzare ed elaborare dati ce n’è da quando c’è il computer. Ma fino a qualche tempo fa oggetto delle elaborazioni erano soprattutto piccole quantità di dati numerici: la statistica ha sempre lavorato per lo più su campioni di dati numerici. Le moderne esigenze sono innanzi tutto quella di lavorare sulle enormi moli di dati che vengono accumulati di minuto in minuto dalla digitalizzazione che ha invaso ogni nostra attività e quella di non rinunciare a trarre conoscenza anche dall’analisi di dati non numerici.
Per fare queste cose, nel mondo del software libero abbiamo gioielli come KNIME, Orange e WEKA. Ma la quintessenza, per completezza di strumenti, è una raccolta di programmi open source in linguaggio Python che, tanto per stare tra rettili, si chiama Anaconda, il cui primo rilascio, con licenza libera New BSD, è del 17 luglio 2012.
Esistono raccolte similari: ActivePython, Enthought Canopy e, solo per Windows, WinPython se stiamo a quelle legate al linguaggio Python, Apache Spark, legato al linguaggio Scala/Java, più adatto al calcolo distribuito e utilizzato nei progetti Apache Hadoop e IBM Watson, solo per Linux.
In tutto questo mondo, Anaconda è ampiamente utilizzata e spesso preferita dagli addetti ai lavori per come si presenta e per come è organizzata, per la numerosità dei pacchetti che contiene (anche se, alla fine, quelli che contano sono pochissimi e sono presenti in tutte le altre distribuzioni), per tutta una serie di utilità collaterali che offre in tema di apprendimento e documentazione e, non da ultimo, per la sua scalabilità, cioè per la possibilità che abbiamo di costruirla anche in dimensioni più ridotte di quella completa.
Ovviamente con disponibilità per tutti i sistemi operativi più diffusi (Linux, Mac OS X e Windows).
Dal momento che la documentazione in lingua italiana sull’argomento scarseggia ho ritenuto utile produrre l’allegato manualetto in formato PDF, dedicato a Anaconda.
Come sempre si tratta di documento liberamente scaricabile, stampabile e distribuibile.

python_anaconda

Il più giovane compilatore open source

Una decina di anni fa, all’interno di Google e per problemi suoi, si avvertì l’opportunità di lavorare ad un nuovo linguaggio di programmazione che avesse le stesse funzionalità e la stessa potenza dei linguaggi C e C++ ma che fosse più facile da apprendere e da utilizzare.
Ne è nato il linguaggio Go, nome completo Golang, che Google ha immediatamente rilasciato come open source, facendolo diventare uno dei tanti gioielli del software libero.
Nel 2009 e nel 2016 è stato eletto Linguaggio di programmazione dell’anno dalla TIOBE, struttura che si occupa di monitorare la popolarità e la diffusione dei linguaggi di programmazione.
Nella sostanza, non so se sia molto facile da apprendere nella sua interezza ma sicuramente il suo utilizzo è molto semplificato, almeno rispetto a C e C++: tra l’altro, e non è poco, solleva il programmatore dalla preoccupazione di gestire la memoria, avendo incorporato un garbage collector che se ne occupa.
Da curioso dilettante ho cercato di capirci qualche cosa e mi sono sempre trovato di fronte a documentazione piuttosto difficile, evidentemente destinata a professionisti, ovviamente in lingua inglese. Anche la poca documentazione in lingua italiana è sempre piuttosto ostica e non scende mai alla portata del dilettante al quale basterebbero poche nozioni di base per cominciare a fare qualche programmino.
Ho pertanto ritenuto utile mettere a disposizione di tutti gli altri dilettanti curiosi, alla ricerca di cose semplificate, l’allegato manualetto in formato PDF, dove ho raccolto gli appunti su quello che ho capito io della struttura di base di questo linguaggio.
Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

golang

Ancora grafica con Python

Il mio articolo “Grafica con Python” del maggio 2018 aveva per oggetto principale la grafica finalizzata a “vestire” graficamente un programma per computer. Il suo allegato era un manualetto in formato PDF sul modulo Tkinter con il quale si può fare questo.
Per una presentazione completa di Tkinter non ho potuto tuttavia fare a meno di mostrare il funzionamento del sotto-modulo della grafica della tartaruga che poggia sullo stesso Tkinter e ne fa parte, così come non ho potuto tralasciare la descrizione del widget contenitore Canvas e di tutto ciò che vi si può disegnare.
Questi sono esempi di come con Python si possa fare della grafica non necessariamente finalizzata alla creazione di interfacce per facilitare l’uso di un programma (GUI).
Nel caso della tartaruga disegniamo figure di varia natura impartendo al computer istruzioni per manovrare un pennino e nel caso del canvas impartendo macro-istruzioni finalizzate al disegno di figure geometriche.
Queste istruzioni possono far parte di uno script, più o meno dotato di GUI, e possono anche essere impartite una via l’altra in modo interattivo utilizzando la shell di Python.
Nel primo caso il risultato della nostra creazione grafica lo vediamo compiuto eseguendo lo script, nel secondo caso abbiamo invece modo di veder crescere passo passo la nostra creazione.
Nel citato manualetto su Tkinter ho dato per scontato il metodo dello script e tutti gli esempi che ho presentato sono così impostati.
Ma quando si fa della grafica non finalizzata alla costruzione di GUI ma finalizzata alla creatività o allo studio diventa piacevole ed educativo lavorare in maniera interattiva con la shell.
Tra l’altro, per quest’ultimo tipo di grafica, oltre alle librerie della tartaruga e del canvas contenute in Tkinter, esistono altri moduli Python.
Nell’allegato tutorial in formato PDF, liberamente scaricabile, riproducibile e distribuibile, che dedico alla grafica interattiva con Python, ne presento alcuni.

grafica_interattiva_python

Coding per tutti

Di questi tempi si parla molto di coding: in lingua italiana si dice programmazione e si tratta del modo che abbiamo per dare istruzioni ad un computer perché faccia determinate cose.
Programmi che fanno fare determinate cose a un computer ce ne sono un’infinità: solo quelli che ho presentato nel tempo in questo blog mi pare rappresentino una completezza di cose al di là delle quali è difficile immaginarne altre. E acquisire dimestichezza con il funzionamento di tutti questi programmi vuol già dire essere ben introdotti nell’informatica e vivere consapevolmente la così detta rivoluzione digitale.
Sta tuttavia maturando la convinzione che questo sia un traguardo da utenti dell’informatica ma non da protagonisti e che, per poter veramente vivere la rivoluzione digitale, non basti saper usare programmi fatti da altri ma occorra anche sapere come si fanno i programmi: solo così, infatti, si può acquisire il così detto pensiero computazionale. E’ questo un termine (computational thinking) riportato alla ribalta dalla scienziata informatica Jeannette Wing nel 2006 per indicare il processo attraverso cui risolvere algoritmicamente problemi anche complessi.
Al punto che stiamo assistendo all’affermazione dell’opportunità di avviare alla programmazione bambini, ancor prima della scuola elementare, con strumenti ludici capaci di sviluppare queste abilità: basti pensare all’ambiente di programmazione Scratch.
All’indirizzo https://www.programmailfuturo.it/ possiamo sapere tutto su ciò che bolle in pentola.
Sicuramente siamo in presenza di un’ondata di moda. Molto simile a quella cui da qualche tempo assistiamo nel mondo della cucina. Non basta più saper apprezzare un buon brasato per essere classificati dei buongustai, occorre anche conoscere la ricetta (l’algoritmo, appunto) per fare il brasato ed acquisire la capacità di inventare altre ricette. Allora libri, riviste, televisione con cuochi da tutte le parti, ecc.
Avendo a che fare con qualche cosa di meno gustoso, nel campo dell’informatica non assisteremo ad una simile baldoria e, comunque, la moda potrà avere qualche effetto positivo: quanto meno quello di smettere di considerare esperti digitali quei ragazzini che si destreggiano a fare quattro cretinerie con il cellulare.
Importante non esagerare nel dare importanza alle cose. Non dimentichiamo che il così detto pensiero computazionale serve innanzi tutto a sbocconcellare un problema e la relativa soluzione affinché diventino alla portata di una stupida macchina. Sicuramente si tratta di una ginnastica che fa bene al nostro cervello ma non è con il pensiero computazionale che Galileo, Newton, Gauss e tanti altri hanno prodotto ciò che hanno prodotto.
E non dimentichiamo nemmeno che la così detta intelligenza artificiale che attribuiamo ad una macchina spesso deriva semplicemente dall’avere ben istruito la macchina stessa a lavorare con formule che ci hanno regalato quei signori, che non hanno mai visto un computer.
Fatte queste premesse, devo dire che programmare è divertente, occupa positivamente il cervello e dà soddisfazione. Ben venga pertanto questa ondata di interesse.
Quanto agli strumenti per programmare, cioè ai linguaggi che possiamo utilizzare per impartire istruzioni al computer, ormai c’è l’imbarazzo della scelta. Lasciando Scratch ai bambini piccoli e la tartaruga di Logo agli appena più grandicelli, un facile linguaggio per tutti i gusti e che può fornire eccelsi risultati è Python, di cui mi sono spesso occupato in questo blog.
Ma ce ne sono molti altri e una panoramica pressocché completa la possiamo avere procurandoci una piccola app per Android, che troviamo su Google Play e si chiama Dcoder.
Non è software libero e non dovrei parlarne in questo blog dedicato al software libero. Ma è talmente bello e intelligente che faccio un’eccezione.
Vista la scarsa documentazione esistente su questa preziosità e la totale assenza di qualche cosa scritta in italiano, ho pensato di proporre l’allegato manualetto in formato PDF, liberamente scaricabile, stampabile e distribuibile.

dcoder

Grafica con Python

In questo blog ho parlato spesso del linguaggio di programmazione Python (articoli “Da Python2 a Python3”, “Python su Android” del giugno 2015 e “Python per tutti” del febbraio 2017 archiviati in Programmazione, oltre a “Esecuzione di script Python” del giugno 2015 archiviato in Suggerimenti vari).
La potenza del linguaggio Python, abbinata alla relativa facilità del suo apprendimento e del suo uso, ne fa strumento ideale per la didattica del coding e per l’esecuzione di calcoli e la soluzione di problemi scientifici, anche alquanto impegnativi. Tutto ciò grazie alle innumerevoli librerie che la comunità Python ha costruito attorno a questo magnifico esempio di software libero (per una panoramica vedere l’allegato PDF “mondo_python” al mio citato articolo “Python per tutti” del febbraio 2017).
Per questi usi basta e avanza la produzione di programmi eseguibili da riga di comando (attraverso quello che si chiama “terminale” nei sistemi operativi derivati dal mondo Unix, come Linux e Mac OS X, o quello che in Windows si chiama “prompt dei comandi”) ed è perfettamente inutile complicarsi la vita per dare ai programmi una particolare veste grafica.
Vi sono tuttavia situazioni nelle quali la vestizione grafica del programma lo rende meglio utilizzabile o addirittura diventa necessaria, come nei giochi.
A questo proposito, sempre in questo blog nel giugno 2015, ho presentato un esempio di programma grafico Python da me scritto per giocare a Master Mind.
Mentre per l’apprendimento del linguaggio esiste, in libreria e in rete, molto ottimo materiale scritto in italiano, dal lato della grafica la manualistica è per lo più in lingua inglese e molto spesso si presenta sotto forma di prontuario ad uso degli iniziati e poco si presta all’apprendimento.
Ho ritenuto allora utile proporre l’allegato manualetto in formato PDF, dedicato a quello che ritengo il più semplice modo di fare grafica con Python.
Come sempre, il documento è liberamente scaricabile, distribuibile e riproducibile.

tkinter

Python per tutti

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

mondo_python

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

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.

Una libreria Java per calcoli geometrici

Per certi calcoli geometrici è facile ricordare le formule e li possiamo eseguire facilmente a mano o con una semplice calcolatrice.
L’area del rettangolo la calcoliamo tutti, anche mentalmente.
La superficie totale di una piramide a base pentagonale noti gli apotemi della base e della piramide non la possiamo calcolare così facilmente.
Purtroppo se cerchiamo software per fare questi calcoli non è che ne troviamo molto.
Ho pensato allora di passare un po’ di tempo per costruire una libreria java in cui ho inserito quante più funzioni geometriche mi sono venute in mente.
La libreria è scaricabile da qui.
Una volta scaricato il file .zip lo si estrae e, cliccando sul file index.html nella directory javadoc, si vede tutta la descrizione della libreria.
Ovviamente, oltre alla libreria vera e propria, denominata Geometria.jar, è presente il source con cui è stata costruita.

Utilizzando questa libreria mi sono poi divertito a fare un programma java per calcoli geometrici.
Il source di questo programma si trova qui e l’eseguibile java si trova qui.