Tu sei qui

GNU/Linux e software libero

Buy me a coffeeBuy me a coffee

Le mie attività di sviluppatore e di didattica del software

Ultimo aggiornamento: 8 Novembre 2019

A me è sempre piaciuto programmare, per come ho potuto, ogni volta che ho potuto, mettendo mano a decine di linguaggi diversi, dal linguaggio macchina (al tempo in cui debuggavo il codice da me scritto in assembly per i microchip ST62T25, su cui ci ho anche fatto una tesina con progettazione dell'hardware e del software e realizzazione pratica), fino ai più recenti linguaggi di alto livello, incontrati sia all'università sia nei miei studi personali.

In primis sono stato un autodidatta, quando senza alcuna scolarizzazione sulla programmazione (e senza Internet, allora non c'era) già facevo esperimenti matematici col vecchio Quick Basic (un mio programmino, negli anni '90, fu anche pubblicato a livello nazionale su una rivista di informatica).

Solo più tardi, molto tempo dopo, l'università mi ha permesso di strutturare uno stile di pensiero molto valido e molto più ampio di quello che da solo mi ero potuto costruire relativamente allo sviluppo software. Ringrazio in particolare il prof. Marco Ronchetti per avermi trasmesso l'amore per Java, lui è stato uno dei migliori docenti che ho avuto nell'area di Informatica.

In rete si trovano ancora tracce dei miei lavori sia di didattica del software (come questa "Introduzione ai linguaggi di programmazione", "Introduzione alla programmazione in Java", "Introduzione alla programmazione funzionale e all'utilizzo di Ocaml"), sia le discussioni di programmazione con i colleghi di università e con i docenti quando studiavo a Trento e a Pisa, sia miei lavori universitari di programmazione e di ingegneria del software. Molto di ciò che ho fatto dalle scuole superiori sino all'università, comunque, rimane solo nei ricordi personali.

Sono intervenuto in vari LinuxDay come relatore, come nella foto qui a destra, tratta dalla rivista "Full Circle Magazine, num. 20, dic 2008, pag. 26".

Nel corso degli anni ho tenuto docenze sull'uso del software, ad es. ho realizzato tanti anni fa (al tempo del Web 1.0) un corso di FrontPage per docenti dello scuole medie superiori e, più recentemente (al tempo del Web 2.0), due corsi di Joomla. Tutti questi corsi sono stati in più giornate e almeno uno di questi è stato registrato su Youtube. Con Joomla ho anche lavorato per molti anni per conto di Uninettuno, realizzando e curando una community online degli studenti.

Come sviluppatore, nell'ultimo ventennio ho realizzato molti siti di complessità diversa, sia statici sia dinamici. Questo blog è fatto con Drupal, che notoriamente non è tra i più semplici CMS. Ho anche realizzato negozi online, siti per agriturismi, per artisti, per associazioni culturali, ecc.

Attualmente sono specializzato nello sviluppo di applicazioni per iPhone e Android in Java, tramite Codename One. Sono attivo su Stack Overflow e su Github.

Github: https://github.com/jsfan3
Principali repository personali su Github: CN1Libs-VideoOptimizer, CN1Libs-WowzaLiveStreaming, CN1Libs-NativeLogsReader
Principale repository in cui ho dato molti contributi: CodenameOne
GitMemory: https://www.gitmemory.com/jsfan3
Stack Overflow: https://stackoverflow.com/users/1277576/francesco-galgani

Principali articoli recenti in cui sono citato:

Francesco Galgani,
ultimo aggiornamento 8 novembre 2019

Aggiornare Firefox su una vecchia distribuzione GNU/Linux

Ultimo aggiornamento: 9 Luglio 2014

Può capitare, per ragioni più o meno valide, di trovarsi ad utilizzare una vecchia distribuzione di GNU/Linux con installata una vecchia versione di Firefox che vorremmo aggiornare. Questa è una situazione che mi è capitata più volte con sistemi operativi Debian o derivati (quindi anche Ubuntu o Linux Mint): magari il computer in questione è molto vecchio e non ho alcun interesse ad aggiornare l'intero sistema operativo, oppure la macchina che sto usando non è mia.

Recuperare files definitivamente cancellati (FAT, NTFS, ext2, ext3, ext4)

Ultimo aggiornamento: 9 Luglio 2014

PhotoRec è un programma libero e gratuito di recupero dati progettato per recuperare file persi, inclusi video, documenti ed archivi da Hard Disk e CD Rom. Il nome deriva dall'inglese Photo Recovery ed indica il fatto che è assai efficace anche nel recupero di fotografie dalla memoria di macchine fotografiche digitali. Poiché PhotoRec ignora il formato di formattazione del supporto e va alla caccia diretta dei dati registrati, funziona anche nel caso di supporti gravemente danneggiati o riformattati.

Infinity TV con GNU/Linux: istruzioni per vedere i film senza problemi

Ultimo aggiornamento: 22 Dicembre 2014

Infinity TV è un servizio di Mediaset per vedere film in streaming e on demand tramite Internet. A livello tecnico, la visione dei film richiede che nel browser dell'utente sia presente il plugin Microsoft Silverlight 5.0. La visione di molti film, nel momento in cui scrivo (dicembre 2014), è preclusa con Microsoft Silverlight 5.1 (nello specifico, dà errore 6030).

Scoprire quale server DNS è realmente utilizzato grazie a dnsleaktest.com

Ultimo aggiornamento: 26 Marzo 2015

I server DNS trasformano un nome di dominio (ad esempio informatica-libera.net) in un indirizzo IP corrispondente, il quale corrisponderà effettivamente al server interrogato dal browser. Malware, virus, cavalli di troia, strumenti di spionaggio, e gli stessi operatori ISP, hanno interesse a far utilizzare all'utente un certo server DNS piuttosto che un altro, perché questo permetterà sia un controllo delle attività dell'utente sia un suo eventuale reindirizzamento su siti estranei e non voluti, senza che l'utente se ne accorga (per scopi presumibilmente lesivi verso l'utente).

Netbook GNU/Linux: trasformare un ChromeBook in un computerino normale con Linux

Ultimo aggiornamento: 1 Dicembre 2017

I netbook con GNU/Linux erano in commercio nel 2008, poi sono spariti perché non hanno trovato mercato. Oggi, nel 2017, è ancora possibile acquistare un computerino da utilizzare con GNU/Linux, piccolo e agevole da trasportare, a condizione di avere tanta pazienza e competenza. I computer piccoli venduti nei supermercati dell'elettronica, almeno in Italia, sono tutti con Windows 10 e inadatti per essere utilizzati con Linux. Al momento, una possibilità concreta è acquistare su Internet un ChromeBook (con tastiera italiana) e hackerarlo per trasformarlo in un computer "normale" con cui poter fare tutto ciò che si vuole, compresa l'installazione di una distribuzione Linux.

Tutto ciò non è banale, è un vero e proprio hacking. Per chi ha voglia di avventurarsi in quest'impresa, riporto dei passaggi precisi riferito ad uno specifico modello di ChromeBook attualmente in vendita e disponibile in due modelli da 11 pollici e da 14 pollici.

Gli strumenti che serviranno sono: il ChromeBook in questione, due chiavine usb, un paio di cacciaviti molto piccoli, una connessione Wi-Fi attiva, oltre a tanta attenzione e pazienza... anche perché il computer va smontato per poter rimuovere il blocco imposto da Google che impedisce l'installazione di Linux...

Nella foto a sinistra il computerino in questione dopo aver installato Linux Mint, a destra lo stesso computer durante le operazioni di hacking...

Netbook Linux Firmware ChromeOS

ASUS ROG GL703VD-GC028T with Linux Mint 18.3 KDE is OK!!!

Ultimo aggiornamento: 4 Maggio 2018

UPDATE May 4, 2018, from a blog reader who installed the dual boot of Linux Mint 18.3 and Windows 10 on ASUS ROG GL703VD-GC028T: «I installed finally Linux Mint. For installing Linux Mint with Windows 10 (UEFI), it is necessary to install Linux in UEFI mode (CSM = Disabled and choose UEFI option in start menu options). When the Grub is loaded, it is necessary to push E key and enter to Grub setup menu. In Grub setup menu, it is necessary to replace "quiet splash" with "nomodeset". Doing this, live Linux Mint loads and it is possible to install it. When Linux Mint is installed, it is necessary to do the same in the final Grub.
If you do not install Linux in UEFI mode, Windows won't detect Linux and then Grub is not loaded on startup.
»


Original article: It's not easy to find sure information about the Linux compatibility of ASUS ROG GL703V models. If you are reading this small post probably it's because you are interested in the Linux compatibility of ASUS ROG: I can confirm that Linux Mint 18.3 KDE version works gracefully on ASUS ROG GL703VD-GC028T out-of-the-box.

It's necessary to change some settings in the UEFI BIOS to start the Linux usb live, after that you can install Linux on the SSD. During the installation, I've chosen to use the full SSD, replacing the pre-installed Windows 10, so I have no experience of dual boot on this ASUS ROG model. (Note: I disabled the Secure Boot in the UEFI BIOS and, in the boot menu, I chose to install Linux Mint without UEFI Mode, that's fine if you don't need dual boot)

After the Linux Mint 18.3 KDE version installation, in the driver manager I enabled the proprietary drivers "nvidia-384" and "intel-microcode"  to get a full support of the hardware. Note that the Fn keys don't work, however you can easily change the brightness from the battery icon (if you cannot see it, click the top arrow in the bottom panel to see the hided icons).

I'm using the kernel 4.13.0-31-generic #34~16.04.1-Ubuntu GNU/Linux

I hope that this small review can help other Linux enthusiasts to choose a great Linux-compatible professional laptop. I've tested the ASUS ROG GL703VD-GC028T for about a month without experiencing real Linux compatibility problems (there are a few flaws in the suspend/hibernate functionalities and in the touchpad ergonomics, however I don't use them, I even disabled the touchpad in the BIOS). Audio and graphics are ok, the 17" monitor is excellent for reading and working, my VirtualBox virtual machines work very well and Linux Mint 18.3 KDE version is very stable and customizable. On a normal usage the battery life is about two hours. The fan is normally silent, but it becomes noisy on intensive operations or on a large amount of file transfer.

Happy hacking and happy GNU/Linux,
Francesco Galgani,
February 13, 2018

Aruba Cloud VPS - Allargare disco LVM, istruzioni [AGGIORNATO]

Ultimo aggiornamento: 16 Settembre 2018

Problema generale: questa versione aggiornata dell'articolo propone due soluzioni per un unico problema, ovvero allargare lo spazio su un disco LVM (ovvero ripartizionarlo), accessibile soltanto tramite SSH, su cui gira Linux e alla seguenti condizioni: la partizione logica LVM non può essere smontata (perché su di essa gira il server), né può essere smontata alcuna delle partizioni fisiche che fanno parte dell'LVM.

Caso d'uso specifico: Sebbene Aruba Cloud, nel pannello di amministrazione dei Cloud Server Smart, permetta di fare un upgrade del server, passando ad esempio da Aruba Cloud Server Smart SMALL (20GB) ad Aruba Cloud Server Smart MEDIUM (40GB) o tagli più grandi come LARGE (80GB) o EXTRA LARGE (160GB), non fornisce però alcuna modalità automatica per ridimensionare il disco in modo sicuro. Più precisamente, facendo un upgrade del server, viene aumentato lo spazio disponibile su disco ma non vengono modificate le partizioni preesistenti.

Può Aruba ripartizionare il disco LVM in modo da usare tutto lo spazio disponibile, evitando di obbligare noi sviluppatori o sistemisti a fare a mano tale operazione, con tutti i rischi conseguenti? Ho fatto esplicitamente ad Aruba questa domanda. Ecco la poco incoraggiante risposta: «Possiamo procedere all'espansione del disco (LVM) qualora le condizioni del server lo consentano. Non possiamo garantire che l'intervento sia risolutivo. Verranno calcolate Euro 100,00 che includono le prime 2 ore. Nel caso in cui l'intervento dovesse protrarsi oltre verranno calcolate ulteriori Euro 50,00 per ogni ora aggiuntiva.»

Stando così le cose, e dopo aver dedicato ore e ore a leggermi documentazione disponibile in Rete, ho trovato due strade per affrontare e risolvere il problema di allargare il disco LVM al massimo spazio disponibile su disco.

Disclaimer: Ho provato le due soluzioni seguenti, a mio rischio e pericolo, su un mio server Aruba VPS su cui gira Ubuntu Linux 14.04. Tali passaggi, nel mio caso, hanno funzionato alla grande senza alcun problema. Presumo che gli stessi passaggi funzionino anche con altre distribuzioni Linux, ad ogni modo è tua responsabilità avere un backup integrale del tuo server, nel caso in cui qualcosa vada storto (magari, per ulteriore prudenza, fatti anche uno snapshot del server dal pannello di Aruba e un backup della tabella delle partizioni). Considera che è sufficiente un solo comando sbagliato per perdere tutti i dati. Io non posso garantire in alcun modo che ciò che ha funzionato a me possa funzionare anche a te, quindi stai attento e prima di impartire ogni comando assicurati di aver capito cosa stai facendo.

Le due strade percorribili per allargare il disco LVM senza smontare alcuna delle partizioni esistenti:

  • la più sicura è aggiungere una nuova partizione fisica primaria (se il numero massimo di partizioni primarie non è già stato raggiunto);
  • la più rischiosa (ma necessaria se non è possibile aggiungere ulteriori partizioni) è "sostituire" con fdisk l'ultima partizione fisica con un'altra che ha le stesse caratteristiche e lo stesso punto di inizio, ma dimensione diversa (ovviamente senza toccare i dati).

Vediamo in dettaglio queste due soluzioni.

How to install Oracle Java8 JDK 8u211 / 8u212 or later on Debian / Ubuntu / Linux Mint from deb

Ultimo aggiornamento: 30 Aprile 2019

At the moment, there is no working PPA to automatically download and install Oracle Java8 JDK 8u211 or 8u212 or later on Debian / Ubuntu / Linux Mint, because it's strictly necessary to manually download the jdk-8u211-linux-x64.tar.gz or jdk-8u212-linux-x64.tar.gz file from the Oracle site, after logging in:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

You can transform the jdk-8u212-linux-x64.tar.gz in oracle-java8-jdk_8u212_amd64.deb using make-jpkg provided by java-package.

So, remove any other Java version previously installed from the discontinued Java8 PPA (sudo apt-get remove oracle-java8-installer) then:

  1. sudo apt-get install java-package
  2. make-jpkg jdk-8u212-linux-x64.tar.gz
  3. sudo dpkg -i oracle-java8-jdk_8u212_amd64.deb (or any graphical installer opened by a double click on the deb, like gdebi-gtk)

That's all! :-)

Java 8 installation on Debian / Ubuntu / Linux Mint

Java 8 installation on Debian / Ubuntu / Linux Mint

Francesco Galgani,
30 April 2019

Installare Firefox ESR su Linux Mint e altre distro derivate da Ubuntu

Ultimo aggiornamento: 4 Settembre 2019

Firefox ESR (Firefox Extended Support Release) è la versione più stabile di Firefox.

E' principalmente destinata ad aziende ed organizzazioni che necessitano di installare e mantenere Firefox su larga scala. Gli aggiornamenti di questa versione, infatti, non includono né nuove funzionalità né miglioramenti prestazionali, ma solo correzioni che risolvono problemi di sicurezza o altre vulnerabilità importanti. Questa versione di Firefox può essere gradita anche a chi, come me, desidera un ambiente di lavoro il più stabile possibile.

Nello specifico, attualmente Mozilla offre due diversi canali per gli aggiornamenti di Firefox: aggiornamento rapido e aggiornamento a supporto esteso (Extended Support Release o ESR).

  • Canale di aggiornamento rapido: riceve aggiornamenti importanti ogni sei settimane e, se necessari, aggiornamenti minori (come correzioni alla sicurezza e alla stabilità) entro questo ciclo di sei settimane.
  • Canale ESR: riceve aggiornamenti importanti all'incirca ogni quarantadue settimane e aggiornamenti minori (come correzioni alla sicurezza e alla stabilità e aggiornamento dei criteri) se necessari, ma comunque almeno una volta ogni sei settimane.

Firefox ESR è già inclusa di default in distribuzioni come NetRunner (che deriva da Debian).

Vediamo come installare Firefox ESR in una distribuzione derivata da Ubuntu come Linux Mint, che di default include la versione ad aggiornamento rapido di Firefox.

Per prima cosa salvati i segnalibri (e altra informazione importante memorizzata in Firefox, perché il tuo attuale profilo utente di Firefox potrebbe essere perso in questi passaggi), chiudi Firefox e dai da terminale questi tre comandi:

sudo add-apt-repository ppa:mozillateam/ppa
sudo apt-get update
sudo apt install firefox-esr

Fatto ciò, il tuo attuale Firefox e Firefox-ESR coesistono. Per avviare Firefox ESR invece del solito Firefox, devi cliccare con il destro sull'icona per avviare Firefox e cambiare il comando di avvio da:

firefox %u

a

firefox-esr %u

Fatto ciò, puoi installarti la lingua italiana da qui:
https://addons.mozilla.org/it/firefox/addon/italiano-it-language-pack/
(La lingua sarà caricata dopo averla installata e poi chiuso e riaperto Firefox)

Puoi installare il blocco delle pubblicità da qui:
https://addons.mozilla.org/it/firefox/addon/ublock-origin/?src=search
(Nota: su siti specifici, in caso di bisogno, il blocco delle pubblicità può essere disabilitato)

Io uso anche questa estensione per dare un minimo di privacy:
https://addons.mozilla.org/it/firefox/addon/privacy-badger17/?src=search

Infine importa i tuoi preferiti e fai le eventuali personalizzazioni che vuoi.

Se fin qui è tutto ok, apri il Gestore Pacchetti rimuovendo "firefox" e lasciando soltanto "firefox-esr", in modo da avere un'unica versione installata.

Francesco Galgani,
4 settembre 2019

Il software libero (news aggiornate): una possibilità importante per i cittadini e per la pubblica amministrazione!

Ultimo aggiornamento: 21 Agosto 2015

Si veda anche: UN VENTENNIO CON LINUX – Retrospettiva apertamente di parte

In questo articolo troverete, in basso, una breve introduzione ai concetti fondamentali che contraddistinguono il "software libero".
Per cominciare, segnalo un po' di news importanti (che aggiorno manualmente, nel tempo libero, quando trovo qualche articolo significativo sui giornali nazionali):

NSA contro gli estremisti di Linux

Ultimo aggiornamento: 7 Dicembre 2014

AVVERTENZA: se leggi LINUXJOURNAL, o cerchi informazioni sulla PRIVACY, o se LEGGI IL BLOG DI FRANCESCO GALGANI, sei un "estremista" da sorvegliare e sarai sorvegliato. Non è una minaccia, è una informazione certa...

«Solo se non saremo implacabilmente seguiti dalla registrazione di ogni traccia che lasciamo, la costruzione dell'identità di ciascuno potrà essere libera, e potrà nascere la libertà di donne e uomini»
Stefano Rodotà

«Chi non prova a impegnarsi seriamente per un mondo migliore, mettendo in pratica ciò che crede giusto, non è un cittadino, è un suddito... e i sudditi rinunciano volentieri ai propri diritti e alle proprie libertà»
Francesco Galgani

Leggi il resto dell'articolo per informarti

Recuperare uno o più siti web dall'Internet Archive Wayback Machine

Ultimo aggiornamento: 9 Luglio 2014

Premessa

La Wayback Machine è l'interfaccia web utilizzata da Internet Archive per l'estrapolazione dagli archivi dei dati riguardanti siti web. I siti archiviati rappresentano una sorta di "fermi immagine" raccolti al momento dell'acquisizione delle pagine tramite il software di indicizzazione di Internet Archive. Il nome "Wayback Machine" deriva dal termine "WABAC Machine" utilizzato in una delle storie della serie animata Rocky e Bullwinkle. Il servizio, grazie allo spider di Alexa, memorizza nel tempo i cambiamenti e le evoluzioni dei diversi siti web. Per i siti minori non ha un frequente caching, ovvero le pagine vengono memorizzate solo raramente.

GNU/Linux: load scsi devices (like a scanner) without rebooting

Ultimo aggiornamento: 15 Ottobre 2014

Su GNU/Linux, per usare un dispositivo scsi collegato dopo l'avvio del computer, devo riavviare il computer (operazione non sempre fattibile) oppure, più semplicemente, usare un apposito script, di cui ho trovato documentazione alla pagina: rescan-scsi-bus.sh - rescan the SCSI bus.

Link per download

Codice sorgente dello script

MP4 to DVD-Video in Bash

Ultimo aggiornamento: 26 Aprile 2015

I sistemi GNU/Linux dispongono di diversi programmini per la creazione di DVD-Video, come DVD-Styler o DeVeDe, ad ogni modo possono esserci situazioni in cui sia preferibile un banalissimo script Bash per convertire un file MP4 (ad esempio un video scaricato da Internet) in un DVD-Video da vedere magari nel lettore DVD di casa.

Lo script seguente (testato su Linux Mint 17), rispetto ai programmi con interfaccia grafica, ha il vantaggio che, nella sua semplicità, permette di individuare eventuali errori o problemi nella creazione del DVD-Video, semplicemente controllando l'output generato.