You are here

Guide

Restore the scrollbar in Firefox

Recent versions of Firefox no longer show the scrollbar. Or rather, they show it too fine and only when scrolling. From my point of view, this is an accessibility problem.

This is the solution I found to restore the scrollbar by changing some values in about:config:

layout.testing.overlay-scrollbars.always-visible -> true
widget.gtk.overlay-scrollbars.enabled -> false
widget.non-native-theme.scrollbar.size.override -> 20
widget.non-native-theme.scrollbar.style -> 3
widget.non-native-theme.win.scrollbar.use-system-size -> false
widget.non-native-theme.always-high-contrast -> true

After closing and reopening Firefox, I verified that the scrollbar reappeared in Firefox 133 on macOS and Linux. This solution should also work on Windows.

Of course, you can customize these values. This is a brief explanation:

layout.testing.overlay-scrollbars.always-visible -> true
This setting ensures that scrollbars are always visible, even when content is not actively being scrolled. It overrides the behavior where scrollbars only appear while scrolling.

widget.gtk.overlay-scrollbars.enabled -> false
On systems using GTK (commonly Linux distributions), this disables the use of overlay scrollbars, which are typically thinner and less obtrusive. By disabling this, Firefox will use the more traditional, always-visible scrollbars.

widget.non-native-theme.scrollbar.size.override -> 20
This value sets the width of the scrollbar in pixels, overriding the default size. I chose a value of 20 to make the scrollbar more prominent, improving visibility and usability. The right value for you will depend on your screen resolution.

widget.non-native-theme.scrollbar.style -> 3
This setting changes the appearance of the scrollbar. A value of 3 corresponds to a style that provides a more traditional and accessible design. This setting accepts integers from 0 to 5, with each number representing a different scrollbar style:

0: Default style. The appearance and behavior of the scrollbar depend on the non-native theme being used.
1: Minimalist style. The scrollbars are thinner and less intrusive.
2: Simple style. A basic scrollbar without advanced visual effects.
3: Traditional style. The scrollbar appears thicker with a classic look, similar to older implementations.
4: Transparent style. The scrollbar might only be partially visible or appear when the mouse hovers over it.
5: Advanced custom style. A rendering designed for enhanced visual appearance or integration with specific themes.

You can experiment with these values to determine which works best for your preferences.

widget.non-native-theme.win.scrollbar.use-system-size -> false
By default, Firefox on Windows uses the system-defined scrollbar size. Setting this to false allows the browser to apply the custom size specified in widget.non-native-theme.scrollbar.size.override.

widget.non-native-theme.always-high-contrast -> true
This forces the scrollbars to use a high-contrast theme, making them more visible against a variety of backgrounds. This is particularly useful for users with visual impairments or those who prefer a clearer visual separation between content and UI elements.

By tweaking these values, you can fully customize the appearance and behavior of scrollbars in Firefox to meet your accessibility and usability needs.

Happy hacking,
December 13, 2024

Dalle basi di Java ai microservizi con Spring Boot

«La conoscenza è come un fuoco: se non la alimenti condividendola, si spegne». Per questo motivo, condivido questi miei corposi appunti, che ho trasformato in un libro strutturato per agevolare l'apprendimento e la preparazione a colloqui di lavoro.

Per la pubblicazione mi affido al mio blog, anziché ad un libro stampato, perché l'uso di manuali cartacei è sempre più desueto tra noi programmatori, che solitamente cerchiamo e troviamo tutto online. Gli scaffali delle biblioteche e delle librerie sono ormai pieni di libri di informatica costosi, chiusi e impolverati, ma «un libro chiuso è solo carta».

Tieni a mente che questo testo può contenere errori o imprecisioni. Non ho risorse per fare una revisione accurata, che solitamente andrebbe affidata a terzi.

Che tu stia imparando Java per la prima volta, approfondendo la tua conoscenza per progetti avanzati o preparando un colloquio tecnico impegnativo, spero di darti una mano nel tuo studio.

Francesco Galgani, 7 dicembre 2024

Nota: La prima versione dei miei appunti su Java risale al 2006, questa versione arriva 18 anni dopo. Ti segnalo anche: "Le mie attività di sviluppatore e di didattica del software" e "Sviluppare app multipiattaforma con Codename One".

Da voce a testo, trascrizioni automatiche, dettatura con il cellulare

Esempio di dettatura, trascrizione automatica con un cellulare Android, con l'app "Golden Editor" (vedi video sottostante dimostrativo).
I sorgenti sono stati fatti da me con "Codename One", quindi compatibili con Android e iOS.

Golden Editor mantiene in memoria quello che scrivi, finché non lo cancelli: se chiudi e riapri l'app, quindi, il testo non va perduto.
Per condividere il testo, tieni premuto lo schermo per almeno tre secondi.

Apk: GoldenEditor-0.1.apk
Sorgenti multipiattaforma (adatti sia per Android sia per iOS): goldeneditor-sources-0.1.zip
Istruzioni per installare l'apk su Android: https://www.aranzulla.it/come-installare-apk-668919.html#chapter2

DOWNLOAD MP4

(1 giugno 2021)

Disassembly and reassembly ASUS ROG GL703VD-GC028T (Photos)

On Youtube you can find video tutorials related to models similar (like this), but not identical, to ASUS ROG GL703VD-GC028T

Here are some pictures of my assembly and reassembly. I think it's important to take notes, have at least five numbered boxes, and also have a full backup of your data... just in case something goes wrong.

You can click on each picture to enlarge it.

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

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

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

If you have trouble following these instructions, you can download the deb file I made from here:
https://www.informatica-libera.net/files/oracle-java8-jdk_8u231_amd64.deb.


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)
  4. sudo apt-get -f install (to install missing dependencies)

That's all! :-)

Java 8 installation on Debian / Ubuntu / Linux Mint

Java 8 installation on Debian / Ubuntu / Linux Mint

Francesco Galgani,
30 April 2019

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

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.

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

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

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

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

Pages

Subscribe to Guide