Ancora Lisp

In questo blog ho parlato di Lisp in un paio di occasioni.
La prima, nel maggio 2015, con il post dal titolo “Lisp sempreverde”, nel quale ho presentato una versione abbastanza recente del Lisp, Newlisp, in maniera molto sommaria.
A questa superficialità ho cercato di rimediare nell’ottobre 2019 con il post dal titolo “Newlisp”, con allegato un manualetto in cui si spiega meglio questa bellissima e facile versione del Lisp, che rende meno faticoso avvalersi di uno dei più vecchi e originali linguaggi di programmazione.
Visto che si tratta del linguaggio che, concepito per l’intelligenza artificiale, ancora non ha rivali degni di nota in questo campo sempre più in fermento, sento il dovere di proporre nel manualetto allegato una descrizione del funzionamento di una delle più diffuse e utilizzate versioni del Lisp, il Common Lisp, che è il più legittimato erede del Lisp originario.
Come sempre il manualetto è liberamente scaricabile, stampabile e distribuibile.

common_lisp

AV Linux sempre meglio

Con il mio articolo “AV Linux alla riscossa”, pubblicato su questo blog nel marzo 2020, esprimevo il mio compiacimento per la scoperta di un rilascio del sistema operativo AV Linux del 2019 che riscattava un passato in cui quel sistema era pieno di difetti ed era surclassato da Ubuntu Studio e da KXStudio.
Sto parlando dei sistemi a bassa latenza che il mondo Linux mette a disposizione di chi fa multimedialità, soprattutto musica.
Subito dopo la pubblicazione di quell’articolo è stata abbandonata la riproposizione di KXStudio e le perle di questa distro sono confluite nel grande repository Debian, rendendosi disponibili per i due restanti sistemi a bassa latenza Ubuntu Studio e AV Linux, entrambi basati, appunto, su Debian.
Ho parlato di questo in un altro articolo “Benvenuto Ubuntu Studio”, pubblicato su questo blog nel maggio 2020, in occasione del rilascio di Ubuntu Studio 20.4.
Nel frattempo Ubuntu Studio, che ha compiuto i 15 anni di vita nel 2022, ha continuato ad aggiornarsi in parallelo al rilascio delle distro Ubuntu e, proprio alla fine di quel 2020 cui risalgono i citati articoli, ha abbandonato il tradizionale desktop xfce per vestirsi con il desktop KDE: lavorare oggi in Ubuntu Studio è come lavorare nel compianto KXStudio.
Rimane sempre una distro fin troppo ricca, pesante, che occupa oltre 12 GB alla prima installazione e la cui immagine ormai non entra più su un DVD, superando i 5 GB.
Anche AV Linux si è aggiornato e attualmente si chiama AV Linux MX, essendosi appoggiato all’ottimo e scattante sistema operativo Linux MX, basato su Debian, con kernel Linux Liquorix a bassa latenza e desktop xfce.
Dal momento che i creatori della moderna DAW Harrison Mixbus lo hanno scelto come sistema Linux consigliato per i suoi utenti, ne troviamo preinstallata una versione di prova (la Harrison Mixbus è infatti a pagamento).
A differenza di Ubuntu Studio, il software preinstallato è il minimo indispensabile ma gli arricchimenti possibili sono tantissimi, grazie all’agevole accesso al repository Debian attraverso Synaptic.
Dovendo scegliere tra Ubuntu Studio e AV Linux MX, oggi come oggi, sceglierei sicuramente quest’ultimo.

Deep learning con Python

Quando un computer trae dall’analisi dei dati che gli diamo in pasto la capacità di classificarli, interpretarli o, addirittura, di prevedere altri dati, alle relative procedure si usa dare il nome di machine learning.
Nel manualetto “python_data_science” allegato al mio articolo “Python per la data science” pubblicato su questo blog nel dicembre 2021, ho presentato, ad uso di dilettanti principianti, alcuni moduli del linguaggio di programmazione Python concepiti per fare queste cose.
Le esemplificazioni che ho portato in quel manualetto riguardano processi di apprendimento abbastanza semplici, per lo più attinenti dati numerici collocati in piccoli dataset o brevi testi, in modo che le relative sperimentazioni siano eseguibili su computer di potenza media.
Lo scorso mese di maggio, in un altro manualetto intitolato “google_colab”, allegato al mio articolo “Se il nostro computer non ce la fa”, ho presentato la possibilità di trasferire queste sperimentazioni su un servizio di cloud computing di Google, che si chiama Google Colaboratory.
Il vantaggio è innanzi tutto quello di poter lavorare su masse di dati più voluminose, ma questo è il vantaggio più banale.
Il vero vantaggio è quello di poter lavorare su dati non solo numerici o di testo ma anche di suono o grafici e con metodologie e potenze di calcolo adatte a questo tipo di dati.
Metodologie che sostituiscono all’algebra lineare l’algebra tensoriale e attraverso le quali si compiono analisi con procedimenti che imitano il funzionamento del cervello umano e che richiedono al computer capacità elaborativa non più da computer di bassa o media potenza.
A tutto ciò si dà il nome di deep learning.
Pur avendo a che fare con una materia che esula dalle capacità e forse anche dall’interesse dei dilettanti cui mi rivolgo, faccio un tentativo di divulgazione con l’allegato manualetto, anche finalizzato a far conoscere fin dove arriva il software libero.

python_deep_learning

Se il nostro computer non ce la fa

Nel manualetto “python_data_science” allegato al mio articolo “Python per la data science” del dicembre 2021 ho presentato i principali strumenti che il linguaggio di programmazione Python mette a disposizione per l’analisi di grandi masse di dati, quelli che a qualcuno piace chiamare big data.
In quel manualetto le esemplificazioni sull’uso di alcuni strumenti di machine learning sono riferite a piccoli dataset e funzionano benissimo anche su un computer di bassa potenza.
Se il data set si allarga e i dati da alcune unità diventano decine, centinaia o addirittura migliaia può accadere che i nostri computer casalinghi comincino ad arrancare o non ce la facciano proprio più e, come si suol dire, si impiantino.
Per non parlare di cosa succederebbe se ci avventurassimo nel deep learning.
Un professionista che vive di queste cose può non avere problemi ad attrezzarsi con macchine più potenti, ma un dilettante che voglia semplicemente fare qualche prova o uno studente che debba svolgere una esercitazione si possono trovare spiazzati.
Fortunatamente, se costoro lavorano con il linguaggio Python, possono trovare una soluzione al loro problema ricorrendo ad uno strumento che Google allinea tra i tanti che costituiscono la sua piattaforma di cloud computing: Google Colaboratory, altrimenti noto come Google Colab.
A Google Colab dedico l’allegato manualetto, come sempre liberamente scaricabile, stampabile e distribuibile.

google_colab

Grafica con Kotlin

Nel luglio 2019, con il mio articolo “Kotlin: Java facilitato”, ho parlato del linguaggio di programmazione Kotlin allegando un manualetto per guidare principianti e dilettanti ad utilizzarlo per divertirsi a creare qualche programmino.
Quel manualetto contiene quanto basta per programmi a riga di comando senza interfaccia grafica ma vi si accenna al fatto che, dal momento che con il linguaggio Kotlin abbiamo accesso a tutte le librerie Java, da qui possiamo attingere per arricchire i nostri programmi Kotlin con la grafica.
I numerosi strumenti per la grafica che ci offre Java non si può dire siano di facile applicazione, soprattutto se utilizzati con il linguaggio Java.
Tuttavia il loro utilizzo con il linguaggio Kotlin, almeno se ci limitiamo all’obiettivo di dotare i nostri programmini di una semplice interfaccia grafica, possiamo dire sia alla portata di dilettante.
E’ ciò che mi propongo di dimostrare con l’allegato manualetto, liberamente scaricabile, stampabile e distribuibile.

gui_kotlin

Lua: linguaggio utile ma poco conosciuto

Forse perché utilizzato da professionisti in progetti insieme o all’ombra di altri linguaggi senza che ciò sia evidenziato, pochi dilettanti penso conoscano l’esistenza di Lua.
Si tratta di un linguaggio di scripting che, insieme a buone potenzialità, magari non all’altezza di quelle di altri linguaggi più ricchi di moduli che le espandono, come Python, ha il pregio di essere molto leggero e veloce e, pertanto, adatto all’embedding in progetti dove porta molta utilità senza pesare troppo.
Un campo di applicazione in cui primeggia come coprotagonista di programmazione, è quello dei videogiochi.
E’ abbastanza facile da imparare e può essere utilizzato anche da solo per scrivere programmi interpretati, anche di un certo impegno, per i sistemi Linux, Mac e Windows.
Trattandosi di software libero in piena regola non posso non presentarlo ai dilettanti che seguono il mio blog.
Nell’allegato manualetto lo presento in quanto tale e in due interessanti casi di embedding.
Il documento, in formato PDF, è liberamente scaricabile, stampabile e distribuibile.

lua

Quanto può vivere un personal computer

E’ una domanda alla quale in rete vengono date le più svariate risposte: chi dice tre o quattro anni, chi dice dieci anni e oltre. Chi parla di durate fraudolentemente programmate da chi li fabbrica.
Quest’ultima è una leggenda metropolitana suffragata a volte dal fatto che certi apparecchi con incorporata una batteria non sostituibile hanno la vita legata a quella della batteria. Ma non è il caso dei personal computer.
Visto che è da quando c’è il Commodore VIC 20, cioè dai primissimi anni ottanta del secolo scorso, che uso personal computer o loro predecessori dico la mia.
Innanzi tutto va ricordata una vecchia regola, che mi pare sia ancora valida: le apparecchiature elettroniche o si rompono subito perché sono nate male o sono virtualmente eterne. Ovviamente questo vale per i circuiti, dove non c’è usura meccanica. Vale molto meno per i componenti dove interviene la meccanica: tastiera, hard disk, ecc.
La mia esperienza mi dice che se un computer vive solo tre o quattro anni è perché ci si è stufati di usarlo, attratti da un altro computer inutilmente più potente o con un sistema operativo più moderno ma esoso di risorse che fa esattamente le stesse cose di quello di prima ma fa figo utilizzarlo.
Personalmente ho tre personal computer. Tutti portatili.
Il più vecchio è un piccolino Netbook Packard Bell serie DOT, a 32 bit con 0,99 GB di RAM, equipaggiato Windows XP, acquistato nel 2010 come fondo di magazzino superscontato, che funziona ancora con qualche lentezza con Windows – che non uso mai – ma perfettamente e abbastanza svelto con Linux su chiavetta USB (dalle originali con Ubuntu 10.04 e Kubuntu 10.04 a KXStudio 14.04 e a Lubuntu 18.04).
A seguire, in ordine di anzianità di macchina, un Dell Latitude 6320, a 64 bit con 4 GB di RAM, equipaggiato con Windows 7 Pro, che non uso mai, KXStudio 14.04 e Xubuntu 20.04, del 2011, riconfigurato nel 2013 e da me acquistato usato nel 2017 per verificare se è vera la leggenda secondo la quale si tratta di una macchina indistruttibile. E pare non sia leggenda ma verità. Su chiavetta USB vi uso anche AVLinux 2019, Manjaro Linux xfce 21.2.6, KALI Linux e Linux Mint 21, tutto con prestazioni eccellenti.
Infine un Toshiba Satellite C50-A-14J, a 64 bit con 1,8 GB di RAM, acquistato nel 2014 senza sistema operativo e attualmente equipaggiato con i sistemi operativi Ubuntu Mate 20.04 e Xubuntu 22.04.
In due casi si stanno ampiamente superando i dieci anni di vita e in un caso siamo al nono.
In ogni caso si tratta di macchine sottoposte ad un uso tutt’altro che saltuario e rivelano tutte un ottimo funzionamento.
Tutto ciò che si trova su questo blog è stato prodotto e sperimentato con queste macchine.
Qualche difficoltà, specialmente con il piccolo Packard Bell, nel trattare materiale video oltre certi limiti.
Va detto che non utilizzo giochi elettronici, che spesso sono i responsabili delle maggiori potenze richieste ai computer.
Non spinto da questa esigenza vado avanti con i miei vecchi computer sia perché funzionano ancora benissimo, anche grazie a Linux, sia perché non avverto la necessità di cambiarli.
Tra l’altro si trovano ancora le batterie di ricambio e le ho sostituite qualche mese fa.

La più grande calcolatrice numerica

Dopo aver presentato il software R, che ho definito la più grande calcolatrice per la statistica, non posso non presentare un altro gioiello del software libero, molto simile a R, che possiamo definire il più grande strumento per il calcolo numerico: la libreria pari abbinata al linguaggio gp.
Con PARI/GP possiamo fare cose che hanno del miracoloso: sapere in un microsecondo quale numero occupa il 728 esimo posto nella serie di Fibonacci, quale è il 424 esimo numero primo, quale è il valore della derivata di una funzione in un certo punto, ecc.
Tutte cose che possiamo fare, con maggiore o minore fatica, con qualsiasi linguaggio di programmazione ma che con PARI/GP troviamo già fatte ed eseguibili con una velocità di elaborazione da record.
A PARI/GP dedico l’allegato manualetto, come sempre liberamente scaricabile, stampabile e distribuibile.

pari_gp

Evoluzione delle suite per ufficio

In questo blog ho parlato in più occasioni di alcune componenti delle così dette Suite per ufficio, altrimenti denominate Software di produttività personale e, fedele alle finalità dello stesso blog, di divulgare software libero, mi sono soprattutto concentrato su componenti della suite LibreOffice, che considero la regina della categoria.
Le origini di questi software si trovano all’epoca della nascita dei personal computer all’inizio degli anni ottanta del secolo scorso (1981 per il PC IBM e 1984 per il Mac). Le macchine precedenti, denominate microcomputer (prodotte da Olivetti, Altair, Commodor, Apple, ecc.), non erano all’altezza di utilizzare software di questo tipo.
Dopo anni, almeno un quarto di secolo, nei quali questi software sono stati esclusivamente residenti su singoli computer, con il diffondersi del cloud computing, facilitato dal progredire della qualità delle connessioni sul web, è possibile disporre con sufficiente efficienza di suite per ufficio senza che esse siano residenti sul nostro computer.
Uno dei vantaggi del ricorso a questo, che è uno dei tanti aspetti del cloud computing, è di poter far lavorare in gruppo sullo stesso progetto persone che vivono a chilometri di distanza.
Così oggi abbiamo a disposizione vecchie suite per ufficio che si sono adattate ad essere utilizzate anche online, come Microsoft 365 e LibreOffice online, e nuove suite per ufficio che sono nate proprio per il cloud computing, come Google Workspace, Zoho Office e OnlyOffice.
Quest’ultima, software libero in piena regola, oltre che funzionare in cloud può anche essere parzialmente installata sul computer per lavorare offline.
Dal momento che si presta a portare nel cloud computing senza alcun costo anche dei poveri dilettanti, che è un ottimo software anche per lavorare fuori della nuvola e che è software libero, non posso che presentarlo nel mio blog.
E’ ciò che faccio nell’allegato manualetto, come sempre scaricabile, stampabile e diffondibile senza alcun problema.

onlyoffice

La più grande calcolatrice per la statistica

In questo blog ho presentato molti software con i quali possiamo con relativa facilità eseguire calcoli e produrre grafici statistici: calc di LibreOffice, Python, Gretl, Tcl/Tk, Julia. Tutti software liberi con i quali possiamo fare anche altre cose.
Ma il software libero ci offre anche un prodotto specializzato nel calcolo statistico e che, soprattutto per le cose più sofisticate, facilita ulteriormente il compito.
Si tratta di R.
Nell’allegato manualetto cerco di spiegare di cosa si tratta.
Come sempre il manualetto è liberamente scaricabile, stampabile e distribuibile.

r