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.

Fonte

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

Evitare le fregature su Amazon con 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.

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 un certificato SSL all’archivio utilizzato da Google Chrome in modo da evitare di ricevere i messaggi di errore dal browser.

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 "P,," -n FILE_CRT -i FILE_CRT

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.

Fonti:
Documentazione Network Security Services
Documentazione Chromium

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 doversi 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

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.3.2-1-installer.run 

NOTA: nel momento in cui scrivo l’ultima versione di XAMPP disponibile è la 7.3.2-1. 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.3.2-1-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

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

AGGIORNAMENTO (8 Ago 2019): Oggi è stata rilasciata la versione 18.04.3 di Ubuntu. Qui trovi il comunicato ufficiale. Se hai installato Ubuntu 18.04 puoi seguire la guida per aggiornare l’HWE alla versione 18.04.3, se hai installato la 18.04.2 riceverai automaticamente l’HWE nuovo con gli 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.

Abilitare l’accelerazione Hardware su Firefox per Linux

Per motivi a me sconosciuti Firefox (ma anche Chrome) disabilita di default l’accelerazione hardware su tutte le distribuzioni Linux.

Questo si traduce in un notevole aumento del carico di lavoro che la CPU deve gestire quanto viene riprodotto un video. Ad esempio, aprire un video su YouTube dal mio Dell XPS innesca una reazione a catena per cui aumenta il carico di lavoro della CPU che aumenta la velocità di rotazione delle ventole che fanno arroventare la superficie del computer e di conseguenza fanno scaricare prima la batteria rendendo fastidiosamente rumoroso il portatile.

Attivare l’accelerazione hardware GPU

La soluzione a questo problema è utilizzare la GPU per decodificare i video tramite l’accelerazione hardware. Stranamente non è possibile attivare tramite l’interfaccia grafica di Firefox l’accelerazione hardware per cui bisogna ricorrere all’editor avanzato di configurazione accessibile inserendo nella barra degli indirizzi:

about:config

Se è la prima volta che provi ad accedere all’editor di configurazione ti verrà mostrato un messaggio di avvertimento come il seguente:

Messaggio di avvertimento: La modifica dei valori predefiniti delle impostazioni avanzate può compromettere la stabilità del browser.
La modifica dei valori predefiniti delle impostazioni avanzate può compromettere la stabilità del browser.

Per procedere dovrai dichiarare di accettare i rischi dovuti ad una cattiva configurazione.

A questo punto per abilitare l’accelerazione hardware ti basta modificare la seguente voce in modo che il valore sia impostato a true:

layers.acceleration.force-enabled
Pagina about:config
layers.acceleration.force-enabled

NOTA: Una volta fatta la modifica devi riavviare Firefox affinché l’accelerazione hardware venga effettivamente attivata.

Verificare l’attivazione

Per verificare che l’accelerazione hardware si sia attivata correttamente puoi aprire l’indirizzo:

about:support

Se nella sezione Grafica, alla voce Composizione trovi scritto Basic allora le modifiche non hanno avuto effetto e non stai usando ancora l’accelerazione hardware. Viceversa, se alla voce Composizione trovi scritto OpenGL allora significa che che l’accelerazione hardware GPU è in funzione.

Pagina about:support
Composizione: OpenGL – l’accelerazione hardware è stata correttamente attivata

Conclusioni

Con questa piccola modifica avrai sicuramente un minor carico di lavoro sulla CPU, un abbassamento delle temperature e, se utilizzi un portatile, un aumento della durata della batteria.

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, inviarmi un tweet a @LorenzoMillu oppure scrivermi direttamente a t.me/lorenzomillucci.

NOTA: nel caso in cui Firefox dovesse iniziare a chiudersi inaspettatamente o riportare dei problemi di stabilità in seguito a queste modifiche puoi sempre riportarti alle impostazioni consigliate riportando il valore di layers.acceleration.force-enabled a false.

Come aggiornare il firmware del PC con Ubuntu

Una delle novità più importanti introdotta da Ubuntu 18.04 è la possibilità di aggiornare il firmware dei dispositivi grazie all’introduzione del tool fwupd.

Sono ormai passati i tempi in cui dopo aver installato Ubuntu era necessario perdere ore a trovare il modo per far riconoscere al sistema operativo tutte le periferiche connesse al PC. Chi non ha mai avuto problemi con i driver video o con il riconoscimento delle stampanti?
Con le ultime versioni del sistema operativo invece sempre più dispositivi sono riconosciuti e utilizzabili fin da subito con Linux.
L’ultimo tassello per avere una compatibilità perfetta con Linux era la mancanza di uno strumento che permettesse di aggiornare BIOS e UEFI (e in generale il firmware delle varie periferiche del PC) direttamente da Ubuntu.

Proprio sulla base di questa necessità è nato fwupd. Grazie a questo software open-source sviluppato da Richard Hughes è possibile installare gli aggiornamenti del firmware di sistema per i computer compatibili.
NOTA: per vedere se il tuo PC è compatibile puoi consultare questa lista.

In teoria la presenza degli aggiornamenti del firmware dovrebbe venire notificata insieme a quella degli altri aggiornamenti da GNOME Software.
Tuttavia mi sono reso conto che nel mio Dell XPS 13 9360 questi aggiornamenti non venivano rilevati.

Verificare manualmente la presenza di aggiornamenti

Per verificare manualmente la presenza di aggiornamenti per il proprio sistema basta aprire una finestra del terminale ed eseguire questi comandi:

  • La prima cosa da fare è accertarsi che il demone di fwupd sia in esecuzione:
sudo service fwupd start
  • A questo punto va rinfrescata la lista degli aggiornamenti disponibili:
sudo fwupdmgr refresh
  • Infine, se sono stati rilevati aggiornamenti, è possibile applicarli con questo comando:
sudo fwupdmgr update

Come puoi vedere con questi semplici 3 passaggi è possibile aggiornare il firmware di tutti i dispositivi del computer.
Nell’immagine sottostante puoi vedere come abbia provato in prima persona l’aggiornamento del firmware di sistema del mio computer e, se stai leggendo questo post, significa che il tool è affidabile e che non ci sono stati problemi durante l’upgrade.

Aggiornamento del firmware di sistema sul mio Dell XPS 9360

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, scrivermi su Twitter oppure mandarmi direttamente a t.me/lorenzomillucci.

Installare Enpass su Ubuntu e aggiustare la visualizzazione su schermi HiDPI

Oggi sul blog del disinformatico ho vista riportata questa notizia: la centrale d’annuncio e d’analisi per la sicurezza dell’informazione (MELANI) della Svizzera dice esplicitamente che “Chi utilizza la stessa password più volte agevola i cyber criminali”.

Dopo aver letto l’articolo ho pensato che la soluzione a questo tipo di problemi è l’utilizzo di un password manager con cui generare password uniche, lunghe e non facilmente indovinabili da un potenziale malintenzionato.

Enpass è il password manager che utilizzo quotidianamente da ormai 3-4 anni. Nel corso del tempo ho provato diversi password manager ma alla fine ho deciso di utilizzare Enpass per i seguenti motivi:

  • E’ multipiattaforma: visto che mi trovo spesso a lavorare con Linux, Mac e Windows mi serviva assolutamente qualcosa che funzionasse al 100% con questi sistemi operativi. Inoltre il fatto che sia compatibile anche con android, iOS e windows phone sono delle gradite aggiunte.
  • E’ gratis: utilizzare Enpass su computer non costa nulla, i client per i dispositivi mobile hanno un costo di 9,99€ da pagare una tantum. (di solito intorno a Natale fanno anche qualche sconto, quindi può valere la pena di controllare in questi giorni)
  • E’ integrato con i browser: per inserire le password all’interno delle pagine web non è necessario fare manualmente copia/incolla dal programma ma basta premere la combinazione ctrl+\ (personalizzabile) per fare in modo che Enpass autocompili la pagina con le credenziali d’accesso.
  • E’ cloud: in realtà Enpass non ha un cloud proprio per la sincronizzazione automatica delle password tra i vari dispositivi. Tuttavia dall’applicazione è possibile integrarsi con i più disparati servizi per la sincronizzazione di file  (io ad esempio mi appoggio a dropbox per la sincronizzazione, ma è possibile utilizzare altri provider come: google drive, one drive ecc…)

Installazione su Ubuntu

La prima cosa da fare per installare Enpass su Ubuntu è aggiungere il repository alla lista di quelli controllati tramite il seguente comando:

echo "deb http://repo.sinew.in/ stable main" | sudo tee /etc/apt/sources.list.d/enpass.list

Subito dopo devi aggiungere anche la chiave necessaria alla verifica di autenticità del repository:

wget -O - https://dl.sinew.in/keys/enpass-linux.key | apt-key add -

A questo punto puoi installare effettivamente Enpass all’interno del pc:

sudo apt update
sudo apt install enpass

Sistemare la visualizzazione su schermi HiDPI

NOTA: recentemente è stata rilasciata la versione 6 di Enpass che risolve tutti i problemi con gli schermi HiDPI per cui questo fix qui non è più necessario 😉

Se anche te hai un computer con uno schermo UHD potresti avere problemi con la visualizzazione di Enpass. Infatti di default Enpass viene visualizzato con un carattere piccolissimo che risulta illeggibile sullo schermo.

Visualizzazione microscopica di Enpass

Per risolvere questo fastidioso problema ti basta modificare il file /opt/Enpass/bin/runenpass.sh aggiungendo la seguente linea:

export QT_AUTO_SCREEN_SCALE_FACTOR=1
Modifica al file /opt/Enpass/bin/runenpass.sh
Visualizzazione corretta di Enpass

Conclusioni

Ormai sempre più spesso capita che i siti a cui siamo registrati vengono hackerati e se utilizzi la stessa password su più portali puoi stare certo che la prima cosa che i criminali tenteranno di fare è riutilizzare le stesse credenziali per provare ad accedere ad altri servizi. In quest’ottica utilizzare il password manager per generare password sicure uniche per ogni sito può veramente salvarti la vita (digitale) . 
Se non lo hai mai fatto ti consiglio caldamente di iniziare ad utilizzare un password manager come Enpass.

Installare ZSH e Oh-My-Zsh su Ubuntu 18.04 – il mio terminale su Ubuntu

Chiunque utilizzi una delle mille distribuzioni di Linux e abbia provato ad aprire una console del terminale si è imbattuto in BASH (Bourne-again shell).
Benché esistano molte altre shell per il terminale, BASH è la versione predefinita in tutti i sistemi Linux per motivi storici. Infatti quando si parla di Linux in generale si intende GNU/Linux. Per cui il kernel del sistema è Linux ma tutte le utilities fornite sono quelle di GNU la cui shell ufficiale è proprio BASH.

Come dicevo poco sopra esistono diverse altre versioni di shell e quella che utilizzo quotidianamente nel mio sistema è ZSH (Z-shell).
I motivi principali per cui la ritengo superiore a BASH sono:

  • auto-completamento dei comandi: premendo sulla tastiera il tasto tab mentre sto digitando un comando posso lasciare a ZSH il compito di completarne la scrittura;
  • auto correzione degli errori: spesso digitando velocemente i comandi sulla console mi capita di sbagliare a scrivere qualche lettera e di ricevere un fastidioso messaggio d’errore. Tramite ZSH viene fatto un controllo su eventuali errori di battitura e vengono suggerita un possibile correzione del comando.
  • cronologia condivisa: spesso utilizzo più schermate del terminale in contemporanea e con ZSH posso avere una cronologia unica dei comandi eseguiti tra le varie istanze del terminale
  • plugin: tramite ZSH è possibile utilizzare un ampia gamma di plugin che ne permettono di espandere le funzionalità

Installazione di ZSH e Oh-My-Zsh

Per installare ZSH è sufficiente aprire un terminale e digitare:

 sudo apt install zsh

Per impostare ZSH di come shell default puoi utilizzare il comando:

chsh -s (which zsh) root

Affinchè la modifica abbia effetto devi riavviare il terminale.

Puoi verificare la shell in uso con il comando:

echo $SHELL

Per sfruttare al meglio ZSH ti consiglio anche di installare anche il framework Oh-My-Zsh tramite il seguente comando:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Tramite Oh-My-Zsh puoi semplificare la gestione di ZSH e sfruttare gli oltre 200 plugin inclusi per personalizzare al meglio la tua esperienza con il terminale di Linux.

Personalizzare ZSH: mostrare il nome delle branch

Per aggiungere la visualizzazione delle branch all’interno del terminale basta  modificare il file ~/.zshrc all’interno della home aggiungendo queste due righe

# Git branch in prompt.

parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

NOTA: puoi ottenere lo stesso effetto anche in BASH. Ti basterà aggiungere le stesse righe al file .bashrc che trovi sempre all’interno della tua home.

Installazione dei plugin

L’installazione di Oh-My-Zsh include già diversi plugin pronti per l’uso. Per abilitare i plugin basta aggiungerli alla lista contenuta all’interno del file ~/.zshrc.

Ad esempio:

plugins=(
  git
  bundler
  dotenv
  osx
  rake
  rbenv
  ruby
)

Plugin consigliati: Zsh-syntax-highlighting

Questo plugin ti permette di evidenziare la sintassi dei comandi all’interno della shell. Sfortunatamente questo plugin non è incluso all’interno di Oh-My-Zsh e va installato a mano recandosi nella cartella ~/.oh-my-zsh/custom/plugins e scaricando l’estensione con questo comando: git clone https://github.com/zsh-users/zsh-syntax-highlighting

A questo punto devi attivare l’estensione aggiungendo alla lista dei plugin la voce zsh-syntax-highlighting

evidenziazione della sintassi

 

Conclusione

Con ZSH puoi veramente velocizzare il tuo flusso di lavoro mentre utilizzi il terminale. La possibilità di personalizzare l’ambiente con i vari temi per la console e di espandere le funzionalità della console con i plugin è veramente impareggiabile.
Personalmente non fatico a credere che ZSH mi abbia permesso di raddoppiare la velocità nell’eseguire il mio solito flusso di lavoro da sviluppatore web.

Te già conoscevi ZSH? In caso negativo ti consiglio di dargli assolutamente una chance, potrebbe veramente migliorarti l’esperienza d’uso del terminale. In caso affermativo invece che plugin usi? Hai qualche estensione interessante da consigliarmi? 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.