Aumentare il font-size di GRUB su schermi HiDPI

GRUB con font troppo piccolo

Gli schermi HighDPI sono ormai la norma per un ampia gamma di dispositivi. Grazie ad una maggiore densità dei pixel dello schermo è impossibile per l’occhio umano distinguere un pixel dall’altro incrementando notevolmente la qualità del testo e delle immagini mostrate.

Questo costante incremento della densità di pixel però ha come effetto collaterale il fatto che alcuni software necessitano di ottimizzazioni all’interfaccia grafica per evitare che la diminuzione della dimensione dei pixel riduca eccessivamente la dimensione degli elementi mostrati.

Uno dei software che risulta illeggibile sul mio Dell XPS a causa della dimensione microscopica del testo è il bootloader predefinito di Ubuntu: GRUB.

Fortunatamente per correggere questo problema è sufficiente modificare la dimensione del font utilizzato da GRUB.

Aggiungere il font alla partizione di boot

La prima cosa da fare è convertire il font da utilizzare in un formato (PFF2 font format) che GRUB sia in grado di impiegare all’avvio del sistema tramite il programma grub-mkfont.

sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono24.pf2 --size=24 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf

NOTA: in questo caso ho scelto di utilizzare il font DejaVuSansMono ma è possibile utilizzare uno qualunque dei font installati nel sistema. (Ad esempio potresti usare il font predefinito di Ubuntu /usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf)
Nel mio caso ho scelto una dimensione del font pari a 24 ma puoi scegliere quella che meglio si adatta al tuo sistema.
Anche il nome del font di output può essere scelto liberamente ma in questo caso per chiarezza ho scelto di usare le convenzione: nome del font + dimensione.

Aggiungere il font alla configurazione di GRUB

Una volta che il font è stato convertito in un formato compatibile con GRUB è necessario modificare la configurazione in modo che venga utilizzato al posto di quello predefinito.
Per farlo bisogna aggiungere la riga GRUB_FONT=<path_font_da_utilizzare> al file /etc/default/grub con il comando:

sudo nano /etc/default/grub
Modifica del file /etc/default/grub
Modifica del file /etc/default/grub

Una volta terminate le modifiche bisogna fare in modo che siano applicate con il comando sudo update-grub.
A questo punto non resta che riavviare il sistema per vedere le modifiche applicate.

GRUB finalmente con testo leggibile

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Fonte A
Fonte B

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Firefox: Installare un certificato SSL self-signed da Ubuntu

Attenzione: potenziale rischio per la sicurezza

NOTE: if you want, you can read this tutorial in English 🎉

NOTA: la guida funziona anche su Fedora!

Durante lo sviluppo di applicazioni web può capitare di avere la necessità di creare e di utilizzare dei certificati SSL self-signed e cioè che non sono firmati da nessuna delle autorità di certificazione riconosciute.
In questi casi i browser mostrano un messaggio d’errore che avverte l’utente del fatto che il sito a cui si sta connettendo non ha un certificato riconosciuto e che questo potrebbe rappresentare un potenziale rischio per la sicurezza.

Per evitare che ad ogni connessione venga mostrato l’avviso di sicurezza è necessario fare in modo che il browser riconosca il nostro certificato come valido.

In questo post ti spiegherò come aggiungere (ed eventualmente rimuovere) un certificato SSL all’archivio utilizzato da Firefox in modo da non ricevere più alcun avviso di sicurezza dal browser.

NOTA: se utilizzi anche Google Chrome ricordati di seguire la procedura per aggiungere un certificato anche li.

Identificare la cartella con il profilo di Firefox

Quando utilizzi Firefox ogni modifica alle impostazioni, ai preferiti o alle estensioni viene memorizzata all’interno di una cartella speciale chiamata profile.
All’interno di questa cartella è custodito anche il database dei certificati considerati attendibili dal browser per cui, per poterne aggiungere uno, la prima cosa da fare è individuare la cartella in cui è memorizzato il tuo profilo.

Per farlo ti basta aprire Firefox e digitare nella barra degli indirizzi:

about:profiles
Pagina about:profiles di Firefox
about:profiles di Firefox

Il percorso del profilo è quello indicato dalla label Cartella radice(o Root Directory in inglese).

Ad esempio, nel mio caso il profilo si trova nella cartella: /home/lorenzo/.mozilla/firefox/s9kh79z8.default

Aggiungere il certificato

Per poter aggiungere un certificato SSL a Firefox è necessario installare il tool certutil.
Per installarlo puoi usare il seguente comando da terminale:

sudo apt install libnss3-tools

NOTA: a seconda della versione del sistema operativo questo pacchetto potrebbe essere già incluso all’interno della distribuzione in uso.

Una volta terminata l’installazione, per aggiungere un certificato ti basta utilizzare il seguente comando:

certutil -A -n "<CERT_NICKNAME>" -t "TC,," -i <PATH_FILE_CRT> -d sql:<PATH_PROFILO_FIREFOX>

Dove:

  • CERT_NICKNAME: indica l’alias da utilizzare per riconoscere il certificato nella lista di quelli installati
  • PATH_FILE_CRT: indica il path del file .crt da importare
  • PATH_PROFILO_FIREFOX: indica il path del profilo utilizzato su Firefox (individuato al punto precedente)

NOTA: Per sapere cosa significano i trustargs (la parte dopo il -t) puoi consultare la documentazione ufficiale.

Ad esempio nel mio caso il comando precedente si traduce in:

certutil -A -n "slope" -t "TC,," -i ~/Downloads/slope.crt -d sql:/home/lorenzo/.mozilla/firefox/s9kh79z8.default 

Verificare i certificati installati

Per verificare che il comando di aggiunta del certificato sia andato a buon fine o più in generale per visualizzare i certificati installati, puoi utilizzare il seguente comando:

 certutil -d sql:<PATH_PROFILO_FIREFOX> -L      

Rimuovere un certificato

Nel caso in cui tu abbia bisogno di rimuovere un certificato installato ti basta conoscere il suo nickname (che puoi vedere con il comando precedente) e digitare:

certutil  -D -n "<CERT_NICKNAME>"  -d sql:<PATH_PROFILO_FIREFOX>    

Conclusioni

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Impossibile aggiornare Ubuntu 16.04 alla release 18.04

Lo ammetto: in passato ho sempre avuto esperienze terribili con l’avanzamento di versione di Ubuntu per cui preferisco sempre aggiornare eseguendo un’installazione pulita.

Questa volta però non avevo proprio voglia di fare tutta la trafila necessaria a riconfigurare un nuovo sistema operativo da capo. Dovendo passare da una LTS alla successiva ed essendo il PC in questione utilizzato principalmente per la navigazione Internet ho deciso di tentare la sorte ed eseguire l’upgrade da Ubuntu 16.04 ad Ubuntu 18.04.

E’ andato tutto liscio? Non proprio…

Il problema

Mi appresto ad avviare l’aggiornamento all’ultima release rigorosamente da terminale tramite il comando:

sudo do-release-upgrade

Nel terminale le scritte cominciano a scorrere ed io attendo fiducioso che il processo mi chieda la conferma per l’installazione del nuovo aggiornamento… e invece compare il messaggio Ripristino dello stato originale del sistema

Verifica un nuovo rilascio di ubuntu
Scaricamento di:1 Firma dello strumento di avanzamento versione [819 B]        
Scaricamento di:2 Strumento di avanzamento versione [1.242 kB]                 
Recuperati 1.243 kB in 0s (0 B/s)                                              
autenticazione di «bionic.tar.gz» con «bionic.tar.gz.gpg» 
estrazione di «bionic.tar.gz»

Lettura della cache

Controllo gestore dei pacchetti
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze        
Lettura informazioni sullo stato... Fatto 
Trovato http://it.archive.ubuntu.com/ubuntu xenial InRelease                   
Trovato http://it.archive.ubuntu.com/ubuntu xenial-updates InRelease           
Scaricamento di:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Trovato http://it.archive.ubuntu.com/ubuntu xenial-backports InRelease         
Recuperati 109 kB in 0s (0 B/s)                                                
Lettura elenco dei pacchetti... Fatto     
Generazione albero delle dipendenze        
Lettura informazioni sullo stato... Fatto 

Ripristino dello stato originale del sistema

Interruzione
Lettura elenco dei pacchetti... Fatto     
Generazione albero delle dipendenze        
Lettura informazioni sullo stato... Fatto 

Cosa diavolo può essere andato storto? E’ vero che è una vecchia versione di Ubuntu ma è anche vero che a parte 4-5 programmi non c’è quasi nulla di installato.
Un po’ sfiduciato allora decido di provare a vedere se nei log c’è qualche informazione utile che mi aiuti a capire cosa è andato storto.
Apro il file /var/log/dist-upgrade/DATA_TENTATIVO_UPGRADE/main.log e leggo:

2019-11-30 11:00:49,902 INFO Using config files '['./DistUpgrade.cfg.xenial']'
2019-11-30 11:00:49,903 INFO uname information: 'Linux lorenzo-Lenovo-G580 4.15.0-70-generic #79~16.04.1-Ubuntu SMP Tue Nov 12 14:01:10 UTC 2019 x86_64'
2019-11-30 11:00:50,269 INFO apt version: '1.2.32'
2019-11-30 11:00:50,269 INFO python version: '3.5.2 (default, Oct  8 2019, 13:06:37) 
[GCC 5.4.0 20160609]'
2019-11-30 11:00:50,273 INFO release-upgrader version '18.04.36' started
2019-11-30 11:00:50,283 INFO locale: 'it_IT' 'UTF-8'
2019-11-30 11:00:50,347 INFO screen could not be run
2019-11-30 11:00:50,537 DEBUG Using 'DistUpgradeViewText' view
2019-11-30 11:00:50,596 DEBUG enable dpkg --force-overwrite
2019-11-30 11:00:50,635 DEBUG creating statefile: '/var/log/dist-upgrade/apt-clone_system_state.tar.gz'
2019-11-30 11:00:55,723 DEBUG lsb-release: 'xenial'
2019-11-30 11:00:55,724 DEBUG _pythonSymlinkCheck run
2019-11-30 11:00:55,726 DEBUG openCache()
2019-11-30 11:00:55,726 DEBUG No such plugin directory: ./plugins
2019-11-30 11:00:55,726 DEBUG plugins for condition 'PreCacheOpen' are '[]'
2019-11-30 11:00:55,726 DEBUG plugins for condition 'bionicPreCacheOpen' are '[]'
2019-11-30 11:00:55,726 DEBUG plugins for condition 'from_xenialPreCacheOpen' are '[]'
2019-11-30 11:00:55,727 DEBUG quirks: running PreCacheOpen
2019-11-30 11:00:55,727 DEBUG running Quirks.PreCacheOpen
2019-11-30 11:00:56,354 DEBUG /openCache(), new cache size 90197
2019-11-30 11:00:56,354 DEBUG need_server_mode(): run in 'desktop' mode, (because of pkg 'ubuntu-desktop')
2019-11-30 11:00:56,354 DEBUG checkViewDepends()
2019-11-30 11:00:56,355 DEBUG running doUpdate() (showErrors=False)
2019-11-30 11:00:57,702 DEBUG openCache()
2019-11-30 11:00:58,373 DEBUG /openCache(), new cache size 90197
2019-11-30 11:00:58,373 DEBUG doPostInitialUpdate
2019-11-30 11:00:58,373 DEBUG plugins for condition 'PostInitialUpdate' are '[]'
2019-11-30 11:00:58,373 DEBUG plugins for condition 'bionicPostInitialUpdate' are '[]'
2019-11-30 11:00:58,373 DEBUG plugins for condition 'from_xenialPostInitialUpdate' are '[]'
2019-11-30 11:00:58,373 DEBUG quirks: running bionicPostInitialUpdate
2019-11-30 11:00:58,374 DEBUG running Quirks.bionicPostInitialUpdate
2019-11-30 11:01:03,393 DEBUG abort called
2019-11-30 11:01:03,394 DEBUG openCache()
2019-11-30 11:01:04,067 DEBUG /openCache(), new cache size 90197

Il problema sembra essere causato dopo che viene registrato running Quirks.bionicPostInitialUpdate.

Vuoi vedere che alla fine mi conveniva davvero fare un installazione pulita anche questa volta?

Decido di non darmi per vinto e provare a cercare su Google una possibile soluzione al problema.

Tra i vari risultati trovo una segnalazione di un bug di Ubuntu in cui viene indicato come colpevole snapd.

Provo a verificare se nel mio sistema il servizio snapd sia avviato correttamente con il comando:

sudo service snapd status

e a quanto pare effettivamente sembra esserci un problema:

nov 30 10:53:00 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Failed with resul
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Service hold-off 
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: Stopped Snappy daemon.
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Start request rep
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: Failed to start Snappy daemon.
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Unit entered fail
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Triggering OnFail
nov 30 10:53:01 lorenzo-Lenovo-G580 systemd[1]: snapd.service: Failed with resul
nov 30 11:04:11 lorenzo-Lenovo-G580 systemd[1]: Stopped Snappy daemon.

La soluzione

Apparentemente il colpevole è il servizio snapd di Ubuntu che avendo qualche problema impedisce l’avanzamento di versione.
Decido quindi di tagliare la testa al toro e di provare una rimozione e reinstallazione del servizio con i comandi:

sudo apt purge snapd && sudo apt install snapd

Infine, rilanciando l’installazione con il comando sudo do-release-upgrade, l’installazione della nuova versione inizia correttamente e riesce a completarsi con successo.
Questo post è stato scritto direttamente dal PC appena aggiornato ad Ubuntu 18.04 🙂

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Installare Python 3.8 su Ubuntu 18.04

E’ stato da poco rilasciata la versione 3.8 di Python! 🎉
Per sapere le novità introdotte dal nuovo update ti lascio il link all’articolo ufficiale della documentazione.

In questo post ti mostro come installarlo subito su Ubuntu 18.04 sfruttando un PPA aggiuntivo.

Installazione

Per installare subito l’ultimissima versione di python sul tuo sistema apri il terminale e digita i seguenti comandi:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8

NOTA: dallo stesso repository puoi scaricare anche le versioni 3.1, 3.5 e 3.7 di python (la versione 3.6 è quella fornita di default da Ubuntu)

Non appena l’installazione sarà finita potrai utilizzare la nuovissima versione di python utilizzando il comando python3.8

Python 3.8 installato
Python 3.8 installato

Conclusioni

Se questo post ti è stato utile puoi farmelo sapere con un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Come creare un’applicazione Symfony da Ubuntu

installazione di Symfony

Cos’è Symfony?

Symfony è un framework per la creazione di applicazioni web in PHP creato e sponsorizzato da SensioLabs.
Grazie alla moltitudine di componenti pronti all’uso e alle sue elevate performance Symfony è uno dei framework più diffusi per la creazione di progetti di medio/grandi dimensioni.
Inoltre la sua modularità consente di utilizzare questo framework per realizzare senza particolari problemi qualsiasi tipologia di applicazione come ad esempio: API, microservizi e applicazioni monolitiche.

Inoltre, a parer mio, la documentazione del framework è una delle migliori in circolazione. E questo è un fattore da non sottovalutare in particolar modo per chi è alle prime armi con un nuovo progetto Symfony.

Indice

Installazione di Symfony

Dopo questa brevissima introduzione a Symfony inizio subito a spiegarti come installare il framework su Ubuntu tramite la command line interface (CLI).

NOTA: questa procedura funziona anche utilizzando il sottosistema Linux all’interno di Windows 10 (WSL). Per cui puoi seguire gli step riguardanti l’installazione all’interno del sottosistema Linux e poi utilizzare Windows per scrivere il codice e visualizzare l’applicazione web.

1 – Installazione di PHP

Il requisito base per poter utilizzare un framework PHP, naturalmente, è quello di avere un installazione del linguaggio PHP all’interno del tuo computer.

Per poter utilizzare Symfony è richiesta almeno la versione 7.1.3 di PHP e che siano installate alcune estensioni del linguaggio come: Ctype, iconv, JSON, PCRE, Session, SimpleXML e Tokenizer. (Qui puoi trovare l’elenco delle dipendenze richieste)

Per installare tutte le dipendenze con un solo comando apri una nuova sessione del terminale e digita:

sudo apt install php libapache2-mod-php php-mbstring php-xmlrpc php-soap php-gd php-xml php-cli php-zip php-mysql php-curl

2 – Installazione di Composer

Un altro requisito fondamentale per poter creare una nuova applicazione Symfony è il gestore di pacchetti per il linguaggio PHP chiamato Composer. Tramite questo software è infatti possibile aggiungere, aggiornare e rimuovere le dipendenze esterne al progetto.

NOTA: Se in passato ti è capitato di lavorare con un framework Javascript allora ti sarai sicuramente imbattuto in npm o yarn per gestire le dipendenze. Composer è esattamente la stessa cosa, ma per il mondo PHP.

Per installare l’ultima versione di Composer digita i seguenti comandi nel terminale:

curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Per verificare che l’installazione sia andata a buon fine devi aprire e richiudere il terminale e provare a lanciare il programma appena installato utilizzando il comando composer. Se digitando il comando composer ricevi un messaggio del tipo:

unable to find composer, get it at https://getcomposer.org/download/: exec: "composer": executable file not found in $PATH

Allora è possibile che tu non abbia riavviato il terminale oppure che qualcosa sia andato storto e che tu debba riprovare ad installare Composer nuovamente.

3 – Installazione di Git

Questo passaggio non è strettamente necessario ma è fortemente consigliato. Infatti, quando arriverà il momento di creare il progetto dell’applicazione Symfony tramite la CLI, se git non fosse installato e configurato, riceverai un messaggio d’errore.

Per installare git il comando da digitare è:

sudo apt install git-core

Per poter utilizzare git è necessario configurarlo inserendo nome utente ed indirizzo email con i seguenti comandi da terminale:

git config --global user.email "you@example.com"
git config --global user.name "Your Name" 

4 – Installazione della Symfony CLI

Una volta installate tutte le dipendenze necessarie, sei finalmente pronto per installare la CLI (Command Line Interface) di Symfony.

La prima cosa da fare è scaricare l’installer con il seguente comando:

wget https://get.symfony.com/cli/installer -O - | bash
Download della CLI di Symfony

A questo punto è possibile scegliere se installare la CLI livello globale (disponibile per tutti gli utenti del sistema) oppure a livello locale (limitando l’uso al solo utente corrente). Vediamo come fare in entrambi i casi:

4.1a – Installazione globale

Per installare la CLI globalmente rendendola disponibile a tutti gli utenti del sistema il comando da eseguire è:

mv $HOME/.symfony/bin/symfony /usr/local/bin/symfony

4.1b – Installazione locale

Per installare la CLI per il solo utente corrente devi aggiungere Symfony alle tue variabili d’ambiente. Per farlo puoi modificare il file .bashrc utilizzando i seguenti comandi

touch ~/.bashrc
echo 'export PATH="$HOME/.symfony/bin:$PATH"' >> ~/.bashrc 

4.2 – Verifica dell’installazione

Per verificare che l’installazione della CLI sia andata a buon fine è necessario riavviare il terminale (ti basta chiudere e riaprire) e digitare il comando symfony.
Se riceverai un messaggio simile a quello riportato nell’immagine qui sotto allora l’installazione sarà stata completata con successo e potrai finalmente iniziare a creare un nuovo progetto Symfony. 🎉

Symfony CLI installata correttamente

Bonus: configurare l’ambiente di Symfony con Docker

Se non vuoi perdere tempo ad installare PHP e la Symfony CLI all’interno del tuo PC e/o vuoi un ambiente di sviluppo che sia sempre lo stesso anche quando cambi il computer che utilizzi puoi utilizzare creare il progetto all’interno dei container Docker che ho preparato. (Se non sai come installare Docker su Ubuntu leggi qui)

Per usare Symfony all’interno di Docker ti basta clonare il repository linkato qui sotto, avviare i container con il comando docker-compose up -d --build e connetterti al container con docker exec -it symfony-environment bash

https://github.com/lmillucci/symfony-docker-environment

A questo punto configura git come descritto poco più sopra e continua a seguire i passaggi descritti di seguito per creare un nuovo progetto e per avviare il server.

Creazione di un nuovo progetto

Se hai seguito correttamente tutti i passaggi fino a questo punto allora sei finalmente pronto per creare il tuo primo progetto Symfony tramite la CLI. Senza perdere altro tempo, il comando da eseguire per creare un nuovo progetto tramite la CLI è il seguente:

symfony new --full my_symfony_app

NOTA: con il comando --full verranno installate automaticamente all’interno del progetto anche tutti i pacchetti che di solito sono necessari per creare un applicazione web completa. Omettendo il --full invece verrà creato un progetto con una configurazione minimale che è particolarmente indicato per creare microservizi o API.

NOTA2: con questo comando verrà creato un nuovo progetto chiamato my_symfony_app. Naturalmente puoi chiamare il progetto con un nome differente sostituendo my_symfony_app con il nome che vuoi utilizzare.

Avvio di Symfony

Arrivato a questo punto non resta che avviare l’applicazione Symfony appena creata. Normalmente sarebbe necessario configurare un server Apache o NGINX per poter servire un applicazione PHP ma grazie alla CLI di Symfony potrai avviare immediatamente il progetto appena creato utilizzando il server integrato (chiamato: Symfony Local Web Server).

Per avviare l’applicazione Symfony appena creata ti basta spostarti nella cartella del progetto e avviare il server con i seguenti comandi:

cd my_symfony_app
symfony serve

Una volta che il server si sarà avviato, visitando l’indirizzo http://127.0.0.1:8000/, potrai visualizzare la pagina di benvenuto di Symfony.

Benvenuto nella tua prima applicazione Symfony

Da questo punto in poi potrai modificare il codice PHP all’interno del progetto per iniziare a realizzare l’applicazione che desideri.

Bisogno di aiuto?

Se vuoi rimanere sempre aggiornato su ciò che posto in questo blog iscriviti al mio canale Telegram oppure, se hai bisogno di aiuto nel seguire questa guida o non ti è chiaro qualche passaggio puoi lasciarmi un commento qui sotto oppure scrivermi direttamente a t.me/lorenzomillucci.

Per sapere come gestire gli asset front-end tramite Webpack puoi consultare quest’altro articolo.

Fonte

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Installare i driver per la scheda di rete RTL8821CE su Ubuntu 18.04

Se hai provato ad installare Ubuntu 18.04 su di un PC con la scheda di rete Realtek RTL8821CE avrai sicuramente notato che questa non viene riconosciuta dal sistema operativo.

In attesa che i driver di questa scheda di rete vengano aggiunti all’interno di Ubuntu è possibile installarli manualmente seguendo la procedura descritta di seguito.

Verificare di avere la scheda RTL8821CE

Per vedere quali schede di rete hai installato all’interno del tuo computer puoi usare il comando:

lspci | egrep -i --color 'network'

Se come risultato ottieni:

Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter

Allora significa che nel tuo computer è presente la scheda in questione e puoi procedere all’installazione dei driver descritta di seguito.

Installare i driver

Per installare i driver devi usare i seguenti comandi:

sudo apt install --reinstall git dkms build-essential linux-headers-$(uname -r)
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
sudo ./dkms-install.sh

NOTA: affinchè la procedura vada a buon fine devi essere connesso ad internet. Puoi farlo utilizzando il cavo Ethernet al tuo modem oppure utilizzare il tuo smartphone in tethering connettendolo via USB.

A questo punto, riavviando il sistema, la scheda di rete dovrebbe essere finalmente riconosciuta dal sistema ed essere pronta per l’utilizzo.

NOTA: affinché l’installazione dei driver vada a buon fine devi avere Secure Boot disattivato all’interno di UEFI altrimenti potresti ricevere il seguente messaggio d’errore

Your system has UEFI Secure Boot enabled.                                   
 │                                                                             
 │ UEFI Secure Boot requires additional configuration to work with             
 │ third-party drivers.                                                       
 │                                                                             
 │ The system will assist you in configuring UEFI Secure Boot. To permit       
 │ the use of third-party drivers, a new Machine-Owner Key (MOK) has been     
 │ generated. This key now needs to be enrolled in your system's firmware.     
 │                                                                             
 │ To ensure that this change is being made by you as an authorized user,     
 │ and not by an attacker, you must choose a password now and then confirm     
 │ the change after reboot using the same password, in both the "Enroll       
 │ MOK" and "Change Secure Boot state" menus that will be presented to you     
 │ when this system reboots.

Rimozione dei driver

Nel caso in cui ci fossero problemi puoi sempre rimuovere i driver installati spostandoti nella cartella in cui li hai scaricati e digitando i comandi:

chmod +x dkms-remove.sh
sudo ./dkms-remove.sh

Conclusioni

Se questo post ti è stato utile puoi farmelo sapere con un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram per non perderti nemmeno un post del mio blog.

Fonte

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Evitare le fregature su Amazon con Keepa

Tracciare i prezzi di Amazon usando Keepa

Ti capita spesso di sfogliare la pagina delle offerte di Amazon?
Io quasi tutte le mattine sfoglio la pagina con le offerte di Amazon e controllo gli oggetti che ho aggiunto alla lista desideri nella speranza di trovare l’occasione irripetibile che mi faccia risparmiare qualche buon euro.

Il problema di Amazon è che tutti i prodotti sono sempre scontati e che i prezzi che applica sono molto variabili. Può benissimo capitare che un prodotto che tengo sott’occhio un giorno costi 20€, il giorno dopo 25€ per poi magari essere scontato per qualche ora a 10€.

Quindi, come posso fare per capire un prodotto è veramente in offerta o meno?
Proprio a questo scopo ti viene in aiuto un estensione per il browser chiamata Keepa che consente di tracciare i prezzi e le offerte dei prodotti di Amazon.

Prima di mostrarti come installare Keepa all’interno del tuo browser ti voglio fare un esempio concreto.

Prendiamo in considerazione il gioco per Nintendo Switch “Pokemon: Let’s Go“, puoi notare come il prezzo consigliato sia di 59,99€ mentre il prezzo applicato da Amazon sia di 49,99€.
Un risparmio di 10€ sul prezzo di listino potrebbe sembrare una buona offerta ma dopo aver installato Keepa nel tuo browser potrai notare che poco sotto i dettagli del prodotto è presente un grafico con l’andamento del prezzo negli ultimi 3 mesi.

Per cui, dal grafico è possibile notare subito due cose:

  • Benché il prezzo consigliato sia di 59,99€ il gioco non è mai stato a quel prezzo. Nel momento in cui era più costoso veniva comunque circa 56€ rendendo lo sconto attuale di 6€ anziché 10€;
  • In passato il gioco è costato decisamente meno, per cui è possibile che in futuro venga scontato nuovamente.

Sulla base di queste informazioni potresti convenire che, se non hai fretta, sia meglio attendere qualche altra offerta prima di acquistare il gioco.

Come installare Keepa

L’installazione di Keepa è veramente banale, bastano pochissimi click ed è disponibile per tutti i principali browser disponibili sul mercato.
Per installarlo direttamente nel tuo browser ti lascio di seguito i link diretti:

  • Estensione per Firefox: clicka qui e premi il pulsante Aggiungi a Firefox
  • Estensione per Chrome: clicka qui e premi il pulsante Aggiungi

Da questo punto in poi, per ogni pagina di Amazon che consulterai potrai trovare il grafico con l’andamento dei prezzi del prodotto subito dopo la sezione dedicata alle caratteristiche generali.

Conclusioni

Come hai potuto notare non tutti gli sconti di Amazon sono delle reali offerte. Questo non vuol dire che non ci siano mai offerte eccezionali su alcuni prodotti ma a volte le gli sconti proposti sono meno sensazionali di quello che sembrano. Grazie a Keepa potrai avere il polso sull’andamento del prezzo nel tempo e delle offerte dei prodotti che ti servono e potrai decidere con cognizione di causa se un offerta è veramente buona o se è soltanto una leggera riduzione di costo.

Se questo post ti è stato utile puoi farmelo sapere con un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci. Inoltre ti invito ad iscriverti al mio canale Telegram per non perderti nemmeno un post del mio blog.

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Chrome: Installare un certificato SSL self-signed da Ubuntu

Molto spesso durante lo sviluppo di applicazioni web è necessario riprodurre all’interno del proprio PC esattamente lo stesso ambiente che verrà utilizzato poi nel server in produzione. Grazie a Docker è semplice riprodurre in locale la stessa configurazione software utilizzata del server. Tuttavia spesso accade che non si abbia a disposizione un certificato SSL firmato da un autorità valida da sfruttare nell’ambiente locale per cui, provando ad accedere all’applicazione da un browser, si ottiene il messaggio di avviso “la connessione non è privata”.

Con questo post voglio spiegarti come aggiungere (o rimuovere) un certificato SSL all’archivio utilizzato da Google Chrome in modo da evitare di ricevere i messaggi di errore dal browser.

NOTA: se utilizzi anche Firefox ricordati di seguire la procedura per aggiungere un certificato anche li.

Pagina d'errore: la connessione non è privata NET:ERR_CERT_AUTHORITY_INVALID
La connessione non è privata NET:ERR_CERT_AUTHORITY_INVALID

Perché su Linux non basta un doppio click sul file del certificato?

La risposta alla domanda è molto semplice: quando utilizzi una distribuzione Linux, Google Chrome non utilizza lo stesso archivio di certificati del sistema operativo.
Tale scelta da parte degli sviluppatori è stata dettata dal fatto che non esiste un unico software di gestione dei certificati comune a tutto il mondo Linux ma ogni distribuzione implementa un meccanismo differente.
A causa di ciò, mentre su Windows e Mac OS X basta aggiungere con un doppio click un certificato all’archivio del sistema operativo affinché venga automaticamente accettato da Chrome su Linux questa procedura non porta ad alcun risultato.
Infatti su Linux viene utilizzato come gestore dei certificati la libreria Mozilla Network Security Services (NSS). Di conseguenza, per far riconoscere un certificato a Chrome, è necessario aggiungerlo direttamente all’archivio gestito da questa libreria.

Aggiungere il certificato

La prima cosa da fare per poter aggiungere un certificato SSL a Google Chrome è installare certutil. Tramite questo pacchetto è possibile andare ad aggiungere ed a rimuovere i certificati gestiti dalla libreria NSS.
Per installarlo puoi usare il seguente comando da terminale:

sudo apt install libnss3-tools

NOTA: a seconda della versione del sistema operativo questo pacchetto potrebbe essere già incluso all’interno della distribuzione in uso.

Una volta che il pacchetto è stato installato all’interno del sistema, per aggiungere un certificato (con estensione .crt) all’archivio dei certificati puoi utilizzare il seguente comando (ricordandoti di rimpiazzare il placeholder<FILE_CRT> con il nome effettivo del tuo certificato):

certutil -d sql:$HOME/.pki/nssdb -A -t "TC,," -n "<CERT_NICKNAME>" -i <FILE_CRT>

NOTA: CERT_NICKNAME rappresenta l’alias da utilizzare per riconoscere il certificato nella lista di quelli installati

NOTA2: Per sapere cosa significano i trustargs (la parte dopo il -t) puoi consultare la documentazione ufficiale.

Per verificare che l’aggiunta del nuovo certificato SSL sia andata a buon fine puoi farti restituire la lista di tutti i certificati aggiunti all’archivio NSS utilizzando il seguente comando:

certutil -d sql:$HOME/.pki/nssdb -L

Se tutto sarà andato a buon fine, riavviando Chrome, non dovresti più ricevere il messaggio d’errore riguardante la connessione non privata.

Rimuovere il certificato

Nel caso in cui sia necessario rimuovere il certificato il comando da eseguire è:

 certutil -d sql:$HOME/.pki/nssdb -D -n <CERT_NICKNAME>  

Conclusioni

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Fonti:
Documentazione Network Security Services
Documentazione Chromium

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Installare XAMPP su Ubuntu

Chiunque voglia iniziare a studiare la programmazione web deve affrontare lo step iniziale di creare un ambiente server all’interno del proprio computer. Ciò spesso vuol dire dover installare e configurare un server Apache, l’interprete PHP e un DBMS per gestire un database.

L’installazione di questi programmi non è di per se difficoltosa ma può richiedere un quantitativo considerevole di tempo e può causare qualche grattacapo agli utenti meno esperti. Proprio per far fronte all’esigenza di avere un ambiente di sviluppo web facile e veloce è nato il software open-source XAMPP.

XAMPP è una distribuzione di Apache completamente gratuita e semplice da installare, contenente MySQL, PHP e Perl.

– sito web di Xampp

Proprio per la sua semplicità di installazione e utilizzo XAMPP è la soluzione software che di solito si consiglia a chiunque voglia avvicinarsi alla programmazione web tramite PHP.

Installazione

La prima cosa da fare, naturalmente, è scaricare il pacchetto di installazione dal sito web ufficiale di XAMPP:

https://www.apachefriends.org/it/index.html

Oppure scaricandolo dal terminale con il comando:

wget "https://downloadsapachefriends.global.ssl.fastly.net/7.4.3/xampp-linux-x64-7.4.3-0-installer.run"

Per procedere all’installazione del pacchetto appena scaricato devi prima di tutto fornirgli i permessi di esecuzione. Puoi farlo aprendo il terminale e, spostandoti nella cartella che contiene il pacchetto, digitando:

chmod +x ./xampp-linux-x64-7.4.3-0-installer.run 

NOTA: nel momento in cui scrivo, l’ultima versione di XAMPP disponibile è la 7.4.3-0. Quando verranno rilasciate versioni aggiornate dovrai cambiare il comando inserendo numero della versione che andrai ad utilizzare.

A questo punto sei pronto per avviare l’installazione vera e propria del programma tramite il seguente comando di terminale:

sudo ./xampp-linux-x64-7.4.3-0-installer.run 

Si aprirà una finestra con uno wizard di installazione grafico in cui, per terminare l’installazione, ti sarà sufficiente premere sempre il pulsante avanti.

NOTA: ad un certo punto ti verrà chiesto se vuoi avere maggiori informazioni su bitnami per XAMPP, se non sei interessato puoi tranquillamente levare la spunta dalla checkbox.

Installazione di XAMPP su Ubuntu

Terminata l’installazione, se hai lasciato la spunta su “Launch XAMPP” ti verrà aperta una finestra con il pannello di controllo del programma.

Pannello di controllo di XAMPP

Dal pannello di controllo di XAMPP, andando sulla scheda “Manage Servers” puoi verificare lo stato dei vari servizi che compongono il programma e, nel caso in cui non lo fossero già, avviarli.

Per verificare che il programma stia funzionando correttamente ti basta provare la connessione al server appena creato aprendo un browser e visitando l’indirizzo:

http://localhost/

Se tutto ha funzionato correttamente verrai accolto dalla pagina di benvenuto di XAMPP.

Pagina di benvenuto di XAMPP

Come avviare e arrestare XAMPP

Sfortunatamente l’installer di XAMPP non genera automaticamente un lanciatore per avviare il programma dall’elenco dei software installati. Di conseguenza per avviare XAMPP bisogna ricorrere al terminale utilizzando uno dei seguenti due modi:

  • con il comando sudo /opt/lampp/lampp start che avvierà automaticamente tutti i servizi di XAMPP senza passare per il pannello di controllo grafico.
  • oppure avviando il pannello di controllo utilizzando il comando sudo /opt/lampp/manager-linux-x64.rune poi avviare i servizi di XAMPP dalla scheda “Manage Servers”

Analogamente, per arrestare XAMPP una volta terminato il lavoro, puoi usare uno dei seguenti due modi:

  • con il comando sudo /opt/lampp/lampp stop
  • usando il pannello di controllo di XAMPP, arrestando i servizi manualmente dalla scheda “Manage Servers”

Creazione di una nuova pagina web

Per creare una nuova pagina web da servire mediante il server XAMPP basta creare un nuovo file all’interno della cartella /opt/lampp/htdocs.

Di default questa cartella non è scrivibile dall’utente corrente in quanto appartenente all’utente e al gruppo root.

Per aggiustare i permessi in modo che l’utente corrente possa scrivere all’interno di questa cartella senza che sia necessari utilizzare sudo ogni volta basta usare il seguente comando da terminale:

 sudo chown -R USER_NAME:GROUP_NAME /opt/lampp/htdocs/

Rimpiazzando USER_NAME e GROUP_NAME con il tuo nome utente. Per sapere qual’è il tuo nome utente puoi usare il comando whoami mentre per sapere il nome del gruppo puoi usare il comando id -gn.

Ad esempio nel mio caso sia il nome utente che il nome del gruppo sono esattamente lorenzo per cui il comando che ho digitato è stato:

sudo chown -R lorenzo:lorenzo /opt/lampp/htdocs/

A questo punto, per verificare che tutto funzioni correttamente puoi creare una nuova cartella chiamata test all’interno di /opt/lampp/htdocs/. Per creare la prima pagina web crea un nuovo file chiamato index.html all’interno della cartella e digita all’interno il seguente contenuto:

<html>
<h1>Hello world from XAMPP!</h1>
</html>
Creazione della prima pagina web

A questo punto, se tutto avrà funzionato correttamente, navigando all’indirizzo http://localhost/test/ verrà servita del server web la tua pagina web appena creata.

La prima pagina web servita direttamente da XAMPP

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

Come aggiornare l’LTS enablement stack (HWE) ad Ubuntu 18.04.4

AGGIORNAMENTO (12 Feb 2020): Oggi è stata rilasciata la versione 18.04.4 di Ubuntu. Qui trovi il comunicato ufficiale. Se hai installato Ubuntu 18.04 subito dopo il suo rilascio ad Aprile 2018 puoi seguire questa guida per aggiornare l’HWE alla versione 18.04.4, se invece hai installato la 18.04.2 riceverai automaticamente l’HWE nuovo insieme ai normali update di sistema.


La seconda point release di Ubuntu (18.04.2) è stata appena rilasciata! Questo aggiornamento non introduce alcuna novità sostanziale ma include le ultime patch di sicurezza, vari aggiornamenti alle applicazioni di sistema oltre che bugfix minori vari.
Per sapere tutte le migliorie apportate da Ubuntu 18.04.2 puoi visitare la pagina della documentazione dedicata.

Perché una point release?

Il team di Ubuntu periodicamente rilascia delle immagini ISO aggiornate del sistema operativo in modo che chi installa il sistema per la prima volta non sia costretto a scaricare fin dal primo avvio migliaia di aggiornamenti arretrati.

Cos’è un LTS hardware enablement stack (HWE)

Con il rilascio della seconda point release di Ubuntu gli sviluppatori gli sviluppatori del sistema operativo includono una nuova versione del kernel e uno stack grafico aggiornato. Ciò, tra le altre cose, permette di migliorare la compatibilità di Ubuntu con il nuovo hardware che dovesse essere rilasciato rispetto alla prima release. Queste modifiche al cuore del sistema operativo prendono il nome di Hardware Enablement Stack (HWE).

Siccome queste modifiche coinvolgono parti molto delicate del sistema operativo e possono compromettere la stabilità del computer, il team di Ubuntu ha stabilito che solo gli utenti che installano il sistema operativo partendo da Ubuntu 18.04.2 abbiano il nuovo HWE abilitato di default.
Di conseguenza, gli utenti che dovessero aver installato Ubuntu 18.04 o 18.04.1 prima di questa point release continueranno a ricevere tutti gli aggiornamenti del sistema operativo ma non verranno migrati automaticamente al nuovo HWE.

Ubuntu 18.04.2 installato nel mio PC

Aggiornare HWE su installazioni precedenti alla 18.04.2

Mentre gli utenti che installano Ubuntu partendo dalla 18.04.2 hanno il nuovo HWE abilitato di default, gli utenti che dovessero aver installato Ubuntu in precedenza possono aggiornare manualmente l’HWE tramite il seguente comando:

sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04 xwayland-hwe-18.04

Per sapere se stai già utilizzando l’ultimo enablement stack puoi utilizzare questo comando:

 hwe-support-status --verbose 

Conclusioni

Ad oggi ho già aggiornato il computer fisso di casa al nuovo HWE riscontrando un leggero aumento delle prestazioni e della reattività nell’utilizzo dei programmi più comuni.
Il vero banco di prova del nuovo aggiornamento sarà il Dell XPS 13 che utilizzo al lavoro. Visto che sto riscontrando alcuni problemi nell’utilizzo quotidiano di questo portatile non appena avrò un po’ di tempo libero proverò a vedere se l’aggiornamento del kernel riesce a sistemarli. Chiaramente riporterò in questo post come andrà a finire.

Per altre informazioni sull’enablement stack ti rimando alla documentazione ufficiale di Ubuntu.

Se questo post ti è stato utile puoi farmelo sapere lasciando un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram e a seguirmi su Twitter per non perderti nemmeno un post del mio blog. A presto!

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!