Grafica con Julia

Il linguaggio Julia è particolarmente versato per il calcolo e soprattutto a questo serve la dotazione di base che abbiamo a disposizione alla prima installazione del suo compilatore/interprete.
In allegato al mio articolo “Un nuovo linguaggio per la data science”, pubblicato su questo blog nel febbraio 2021, si trova il manualetto “julia” in formato PDF che ci mette in grado di muovere i primi passi e non solo: ne ripropongo, qui allegata, una versione riveduta ed arricchita.
Come è avvenuto per il linguaggio Python, di cui Julia sta ormai diventando valida alternativa, attorno al nucleo centrale del linguaggio sono stati creati pacchetti aggiuntivi per svolgere compiti sempre più onerosi e complicati.
Né Julia disdegna di utilizzare pacchetti del mondo Python ed è attrezzata per farlo alla grande.
Nel citato manualetto ho inserito un esempio di utilizzo del pacchetto Sympy di Python per poter fare del calcolo simbolico con Julia.
Tra i tanti pacchetti a disposizione, propri del mondo Julia o acquisiti da altri mondi, ne abbiamo tanti per la grafica e nel manualetto allegato, da considerarsi estensione di quello citato sulle basi del linguaggio, ho ritenuto opportuno illustrare qualche strumento utile per la grafica, intesa sia come forma di rappresentazione di dati sia come forma di interfacciamento con l’utente.
Come sempre il manualetto è liberamente scaricabile, stampabile e distribuibile.

julia

grafica_julia

Quando i numeri sono grandi

Quando eseguiamo calcoli con il computer utilizzando strumenti preconfezionati, come la calcolatrice più o meno potente che ci passa il sistema operativo o un foglio di calcolo, abbiamo sempre a che fare con la così detta precisione.
La precisione è l’accuratezza con cui ci viene presentato il risultato di un’operazione matematica, cioè il grado di corrispondenza del risultato che ci fornisce il computer con il vero valore che dovrebbe restituire l’operazione.
Generalmente con un foglio di calcolo, sia che lavoriamo con numeri interi sia che lavoriamo con numeri decimali, se questi sono di una certa dimensione otteniamo risultati espressi in notazione scientifica con una quindicina di cifre significative, l’ultima delle quali arrotondata, prima di una eventuale serie di zeri che completano il risultato.
Con questi strumenti possiamo ottenere risultati fino a circa 300 cifre di cui solo le prime quindici significative o nessun risultato se la quantità di cifre è ingestibile. Mai otteniamo risultati sbagliati: a volte approssimati ma mai sbagliati.
Quando eseguiamo calcoli con programmi di calcolo scritti da noi dobbiamo invece stare molto attenti alle caratteristiche del linguaggio di programmazione che utilizziamo in quanto potremmo facilmente andare incontro a gravi disavventure, soprattutto quando abbiamo a che fare con calcoli che coinvolgono grandi numeri. Potremmo infatti ottenere risultati completamente strampalati, purtroppo anche senza che ce ne accorgiamo.
Su questo argomento ho ritenuto utile proporre l’allegato manualetto, liberamente scaricabile, stampabile e distribuibile.

biginteger

Latex e la musica

In questo blog ho parlato di Tex e di Latex in un articolo del novembre 2017, intitolato “Scrivi e pubblica veri libri”, con allegato un manualetto sull’uso di un editor, Lyx, che facilita enormemente l’utilizzo di questi software per produrre testi che abbiano la forma classica dell’editoria cartacea e ne segua i dettami stilistici.
Nel manualetto ho accennato, tra l’altro, a come sia possibile inserire righi musicali in questi testi utilizzando un collegamento che si può instaurare tra il motore Tex e il software di grafica musicale Lilypond attraverso il modulo lilypond-book, limitandomi a descrivere come ciò possa avvenire utilizzando l’editor Lyx.
Non è solo in questo modo, tuttavia, che si può scrivere musica con Latex.
Inoltre quando si scrive di musica non necessariamente ci si limita a righi musicali ma vi sono altre caratteristiche simbologie alle quali si ricorre.
Dal momento che l’argomento non è trattato con la necessaria completezza dalla pur numerosa documentazione che si trova in rete su Tex e Latex, ho ritenuto utile proporre l’allegato manualetto, liberamente scaricabile, stampabile e distribuibile.

musica_latex

Software libero per l’econometria

In questo blog ho parlato spesso di software libero per il calcolo, proponendo anche manualetti dedicati ad alcuni particolari strumenti: dal foglio elettronico a linguaggi di programmazione particolarmente orientati al calcolo, soprattutto con riguardo a quella che viene oggi chiamata data science: in quest’ambito con specifico riferimento agli strumenti per il calcolo scientifico e per l’analisi dei così detti big data che fornisce il mondo di Python.
Un’altra branca dell’analisi dei dati è l’econometria, disciplina che utilizza metodi matematici e statistici per elaborare modelli descrittivi o esplicativi per la verifica o per la previsione delle conseguenze di provvedimenti di politica economica.
Sempre da dati si parte, questa volta non più per supportare attività scientifiche di laboratorio o per ispirare condotte manageriali in azienda ma per orientare decisioni di carattere politico.
Gli strumenti di base sono sempre gli stessi ma nei vari campi sono adattati o arricchiti in vista di specifici obiettivi.
Nel mondo del software libero esiste una raccolta di strumenti finalizzati all’econometria, racchiusa in un pacchetto denominato GRETL (GNU Regression, Econometrics and Time-series Library).
Si tratta di una cosa per professionisti ma ritengo utile presentarne i caratteri essenziali nel manualetto allegato, come consueto ad uso di curiosi dilettanti, tra i quali si ritrova magari qualche studente che ne può trarre buone premesse per successivi approfondimenti.
Il documento è liberamente scaricabile, stampabile e distribuibile.

gretl

Non così difficile come sembra

Nei manualetti di presentazione di alcuni linguaggi di programmazione che ho pubblicato su questo blog ho sempre sostenuto che la via più semplice per chi voglia cominciare a programmare è quella di utilizzare un semplice editor di testo.
Magari un editor di testo assistito, come Geany, che assomiglia molto a una IDE (Integrated Development Environment) in quanto colora in vario modo le parole chiave dei linguaggi più conosciuti, consentendo così di diminuire il pericolo di errori di battitura, e ci dà modo di compilare e di eseguire il codice senza uscire dall’editor.
Con qualche eccezione: nel caso di Python ho suggerito l’editor incorporato nella IDLE in quanto ci offre assistenza nella scrittura del codice con la code completion.
Stessa cosa per il linguaggio Pascal, soprattutto se abbiamo l’obiettivo di creare un programma con GUI (Interfaccia Grafica per l’Utente), per il quale ho suggerito l’IDE Lazarus.
Esiste un’altra IDE che va per la maggiore in quanto è stata scelta da Google a supporto del suo Android Studio: Intellij IDEA.
La sua utilità si rivela in pieno per la programmazione con il linguaggio Java, non così semplice come i linguaggi che hanno formato oggetto dei miei vari manualetti e per il quale ben viene la code completion di IDEA, soprattutto se vogliamo produrre programmi con GUI.
Altrettanto dicasi se vogliamo produrre programmi con GUI con il nuovo linguaggio Kotlin: questo semplifica di molto il linguaggio Java ma, per la parte grafica, occorre usare il vero e proprio linguaggio Java.
Tra l’altro IDEA è dotato di un designer per produrre GUI in modo visuale, addirittura senza bisogno di scrivere codice per la parte grafica.
Intellij IDEA fa tantissime cose ed è pensato soprattutto per progetti di programmazione anche molto impegnativi.
Questo lo rende alquanto complesso da utilizzare e il principiante, a prima vista, sente di trovarsi di fronte a una cosa che non fa per lui.
Ma non è così. E’ complicato usare IDEA se facciamo cose complicate, ma per le cose semplici a portata di principiante anche IDEA diventa semplice, basta sapere come usarlo per le cose semplici.
E’ quello che cerco di dimostrare nell’allegato manualetto, liberamente scaricabile, stampabile e distribuibile.

idea

Python per la data science

Nel dicembre 2020 ho pubblicato su questo blog l’articolo “Orange: data science con Python senza scrivere codice” con allegato il manualetto “orange” in formato PDF che introduce all’utilizzo di questo magnifico regalo del software libero.
A chi voglia, pur a livello dilettantesco, affrontare i primi rudimenti della data science scrivendo codice in linguaggio Python dedico ora l’allegato manualetto.
Come sempre si tratta di materiale liberamente scaricabile, stampabile e distribuibile.

python_data_science

ffDiaporama in appimage

Nel giugno 2017, su questo blog, con un post intitolato “ffDiaporama S.O.S.” ho lanciato un allarme dovuto all’abbandono del progetto ffDiaporama, un software che ritengo il migliore esistente per creare presentazioni fotografiche. Al post avevo allegato un manualetto in formato PDF sul suo funzionamento.
L’abbandono del progetto comporta che l’ultima versione disponibile del software, la 2.1, scaricabile dal sito http://ffdiaporama.tuxfamily.org/?lang=it e rilasciata il 9 febbraio 2014, funziona su Linux fino a versioni di quell’epoca e su Windows fino alla versione 8.1.
Fortunatamente c’è stato qualcuno che, a differenza del sottoscritto, che di software ne parla ma non ne produce gran che, si è rimboccato le maniche e ci ha regalato una appimage di quella che ha chiamato versione 3 di ffDiaporama.
La troviamo all’indirizzo http://ffdiaporama.sbk2day.com/.
Funziona benissimo anche su recenti versioni di Linux, ma solo su Linux.
Una volta scaricato il file (ffDiaporama-x86_64.AppImage) lo collochiamo in una directory adatta, per esempio la /opt, rendiamo eseguibile il file attraverso la scheda Permessi delle Proprietà e apriamo il software richiamando il nome del file stesso.
Per chi si voglia divertire riallego la piccola guida in formato PDF che avevo proposto a suo tempo e che ben si adatta anche alla nuova versione di ffDiaporama.

ffDiaporama

Python parla e ascolta

Nell’allegato in formato PDF “tts_stt” al mio articolo “Software libero per sintesi e riconoscimento vocale” ho presentato alcune soluzioni di software libero per ottenere che il nostro computer reciti un testo scritto oppure scriva un testo sotto dettatura.
In quella sede ho anche accennato all’esistenza di un modulo Python per la sintesi vocale.
Ma l’attrezzatura Python per fare queste cose va ben oltre questo accenno e, in questo periodo in cui sto presentando tutta la ricchezza del linguaggio Python, non posso evitare di completare il quadro.
Lo faccio nell’allegato PDF a questo articolo, liberamente scaricabile, stampabile e distribuibile.

tts_stt_python

Python e il calcolo scientifico

Nell’ottobre 2020, dopo aver parlato molto di Python in questo blog, ho ritenuto utile produrre un manualetto, allegato all’articolo “Python per principianti”, in cui sono descritte le basi del linguaggio ad uso di dilettanti che vogliano divertirsi a scrivere codice per propri usi personali.
Dando per scontata la conoscenza di queste basi avevo precedentemente, nel maggio 2018, in un allegato all’articolo “Grafica con Python”, illustrato il modulo Tkinter attraverso il quale possiamo vestire i nostri programmi Python con una interfaccia grafica.
Sempre dando per scontata la conoscenza di queste basi avevo precedentemente, nel settembre 2019, in un allegato all’articolo “Software libero per il calcolo simbolico”, descritto il modulo Sympy attraverso il quale possiamo utilizzare il linguaggio Python per il calcolo simbolico.
Per calcoli numerici molto impegnativi, tipo quelli ricollegabili alla Data Science ed all’analisi dei big data, per eseguire i quali la scrittura del codice va ben oltre le basi del linguaggio, nell’articolo “Orange: data science con Python senza scrivere codice” del dicembre 2020, ho illustrato uno strumento basato su Python che ci dà modo di sviluppare queste analisi senza conoscere il linguaggio.
Ora, a parte la grafica e il calcolo simbolico, mi accorgo che tra le basi del linguaggio e la data science c’è una zona, identificabile genericamente come calcolo scientifico, nella quale il dilettante può trovare modo di divertirsi utilizzando alcuni moduli aggiuntivi: Numpy, Scipy e Matplotlib.
Ad un utilizzo di base di questi moduli Python dedico l’allegato manualetto in formato PDF, liberamente scaricabile, stampabile e distribuibile.

python_calcolo_scientifico

Buon compleanno Linux!

Il prossimo agosto ricorre il trentennale dal primo vagito del sistema operativo Linux. Dal momento che non uso pubblicare sul blog nel mese di agosto, anticipo gli auguri per non perdere l’occasione.
“Salve a voi tutti, qui fuori, che usate Minix. Sto realizzando un sistema operativo (libero) (appena un passatempo, né grosso né professionale come gnu)…” è la traduzione dell’incipit del messaggio con cui Linus Torvalds, il 25 agosto 1991, rendeva pubblici i risultati di un suo lavoro hobbistico iniziato nell’aprile del 1991 affinché chiunque potesse migliorarli ed arricchirli.
Forse è anche stata la nascita dell’open source e, grazie alla collaborazione della schiera di volontari che vi si dedicarono, Linux, quel “sistema né grosso né professionale come gnu”, è diventato proprio il sistema operativo del progetto GNU e del mondo del software libero.
Alla faccia delle affermazioni che il ventunenne Bill Gates faceva, in una sua lettera del 1976, circa l’impossibilità che software prodotto da hobbisti che non si facevano pagare fosse buon software, a mio avviso, e non solo mio, Linux è un ottimo software, anzi, è molto meglio di Windows.
Lo hanno capito i professionisti informatici che lavorano con i server, che adottano quasi plebiscitariamente il sistema operativo Linux.
Il grande pubblico degli utenti di personal computer, al contrario, preferisce Windows: arrotondando le cifre decimali, in questo settore attualmente Windows sta attorno all’87%, Mac OS sta attorno al 10% e Linux soffre attorno al 3%.
Secondo Linus Torvalds tutto si giustifica per il fatto che uno che acquista un personal computer, o apparecchiatura similare consumer, non ha nessuna voglia di installare un sistema operativo e si tiene quello che trova installato: sul personal computer è installato Windows e va bene così, sul cellulare è installato Android (basato su Linux) e va bene così.
Rimane tuttavia da chiedersi perché i costruttori di personal computer preinstallano Windows e moltissimi costruttori di cellulari e di tablet preinstallano Android.
A mio parere semplicemente perché Windows e Android sono prodotti univocamente definiti e che possono essere arricchiti di software aggiuntivo in maniera standardizzata, sia sul piano della produzione del software sia sul piano della installazione di questo.
Linux di univocamente definito ha solo il kernel, tutto il resto è raggruppato in una così detta distribuzione e ogni distribuzione ha un aspetto diverso, ha caratteristiche di funzionamento non uniformi, la stessa installazione di software aggiuntivo avviene in modo diverso: non esiste uno standard.
Tutto ciò che per uno spirito libero che voglia capire quello che fa ed essere libero di scegliere è un punto di merito, per chi vuole semplicemente uno strumento che funzioni senza avere problemi di capire come o di capire come possa funzionare diversamente è un demerito.
E nessun costruttore di hardware può mettere a repentaglio le vendite dei propri prodotti perché ha preinstallato Open SUSE anziché Ubuntu, o Debian anziché Red Hat, o Linux Mint anziché Deepin: preinstalla Windows, che, nel bene e nel male, tutti sanno che cosa è e buona notte.
Ed andiamo avanti così, anche se, a differenza di quanto accadeva qualche anno fa, qualsiasi distribuzione Linux di quelle che ho appena nominato, soprattutto se preinstallata dal costruttore, ci offrirebbe un computer pienamente funzionante senza problemi e senza bisogno di alcuna configurazione, anzi, con una trasparenza ed una semplicità d’uso migliori di quella che ci propina Windows 10.
Ma così è.
Ci sarà sempre, comunque, qualcuno come me che continua a dire ed a cercare di dimostrare che Linux è il miglior sistema operativo esistente, che non è vero che è difficile da usare, ecc.: in questo mio blog l’ho fatto in molte occasioni. L’ultima è stata lo scorso aprile con il mio articolo “Le miniere del software libero” ed il relativo allegato in formato PDF “mondo_linux”.
Molto più di me, che divulgo software libero utilizzabile non solo su Linux ma anche su Windows e Mac, parla specificamente di Linux Dario Dieci (altrimenti noto come SuperDado) sul suo blog all’indirizzo https://www.alternativalinux.it/.
Ma a festeggiare il compleanno concorrono i cinesi, che stanno sempre più utilizzando Linux e che sono avviati a diventare il primo popolo senza Windows.