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!

Problem Steps Recorder: Windows ti aiuta quando ti chiama l’amico con problemi al PC

Ciao! Come stai? Tutto bene? Senti ho un problema con il PC non è che hai due minuti per darmi una mano?

– Generico amico al telefono

Abbiamo tutti almeno un amico che alla prima difficoltà con il PC alza la cornetta e ci chiama per chiedere aiuto.

Quando l’amico in questione ci chiama il 90% delle volte è praticamente impossibile capire dalla descrizione del problema quali sono le cause e come sia possibile risolvere.

Tipicamente, quando chiedo: “spiegami bene qual’è il problema” ottengo quasi sempre risposte vaghe del tipo: “bo, si blocca” oppure “il computer mi odia e non fa esattamente quello che voglio“.
Chiaramente con risposte del genere non c’è verso di sbloccare la situazione e quindi si ricorre alla soluzione classica adottata da tutti gli informatici: spegnere e riaccendere.

Molte volte basterebbe avere una descrizione più particolareggiata del problema per poter fornire all’amico in questione una risposta più specifica riguardante il suo problema attuale.

Fortunatamente Microsoft ha pensato a tutti noi che dobbiamo cercare di risolvere problemi agli amici facendo un vero e proprio interrogatorio per cercare di carpire quanti più indizi possibili per identificare la natura del problema.
Infatti, da Windows 7 in poi, è stato inserito all’interno del sistema operativo uno software chiamato Problem Steps Recorder (PSR).
Tramite questo software possiamo registrare automaticamente una serie screenshot che seguano tutte le azioni compiute dall’utente fino ad arrivare al problema in questione.

Dove trovare questo PSR

La parte più difficile a questo punto è spiegare all’amico bisognoso di aiuto dove trovare questo tool e come avviarlo.
Per qualche oscuro motivo Microsoft ha deciso di non rendere ben visibile questo strumento all’interno dei menù di Windows per cui, prima di poterlo usare, devi fornire all’utente delle indicazioni specifiche su come trovarlo.

Ci sono almeno due modi per avviare Problem Steps Recorder:

  • Il primo metodo (secondo me più facile) è aprire il menù start e digitare “psr.exe”
Aprire il menu start e ricercare psr.exe
  • Il secondo metodo consiste nell’aprire il menù start e cercare “registrazione azioni utente”
Aprire il menu start e ricercare registrazione azioni utente

Avviare la registrazione

Una volta aperto il software, utilizzarlo è veramente molto semplice. Infatti comparirà una piccola finestra in cui sono contenuti il pulsante per avviare la registrazione degli screenshot e quello per interromperla.

Registrazione azioni utente in esecuzione

NOTA: di default vengono memorizzati solo gli ultimi 25 screenshot. Se fosse necessario acquisire serie di schermate più lunghe, prima di iniziare l’acquisizione, devi aprire le impostazioni (premendo il triangolo nero sulla destra del software) e aumentare il numero di screenshot che verranno acquisiti.

Una volta terminata la registrazione degli screenshot si aprirà una schermata riepilogativa con tutte le schermate catturate e con i dettagli di ogni azione compiuta dall’utente.

Schermata di riepilogo con tutti gli screenshot acquisiti

A questo punto non resta che salvare il tutto e farselo inviare.

NOTA: la registrazione viene salvata in formato .MHT che sfortunatamente è apribile solo da Internet Explorer. Se l’amico in questione è sufficientemente autonomo puoi chiedergli di aprire il file sul suo PC e di esportarlo in PDF utilizzando la stampante “print to pdf” di Microsoft. In alternativa puoi anche farti mandare il file così com’è ed utilizzare un servizio online come questo per convertirlo in pdf.

Conclusione

Registrazione azioni utente è uno di quegli strumenti nascosti di Windows che può farti risparmiare diverso tempo ogni volta che ti chiamano dicendo “mi si blocca il PC”. Io da quando ho conosciuto questo software ho iniziato a farne un utilizzo veramente intensivo.
Per quella che è stata la mia esperienza, molte volte la parte più difficile è spiegare inizialmente come trovare e come utilizzare questo programma. Ma una volta familiarizzato con questo strumento mi è capitato anche che qualche amico mi chiamasse dicendo: “Ciao. Ho un problema con il PC, ti ho appena mandato la registrazione per mail“. Notevole, no?

Ho aperto un canale Telegram per questo blog, seguimi per non perderti nemmeno un post e per poter parlare direttamente con me! 😉

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!

Abilitare l’accelerazione Hardware su Firefox per Linux

AGGIORNAMENTO 20/03/2020: Sembra che qualcosa si stia muovendo e forse tra qualche tempo potremo avere il supporto all’accelerazione hardware nativo su Firefox utilizzando wayland! 🤞

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 a sua volta aumenta la velocità di rotazione delle ventole che fanno arroventare la superficie del computer e di conseguenza fanno scaricare prima la batteria e rendono 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.

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

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!

Effettuare il backup di un blog WordPress ospitato su Aruba

Visto il recente rilascio della nuovissima versione 5.0 di WordPress è buona prassi prima di effettuare l’aggiornamento effettuare un backup completo del proprio sito web.
Ho colto quindi l’occasione per riportare di seguito i passi da seguire per effettuare un backup completo (sito + database) di un blog ospitato su Aruba.

Backup dei file del sito

Il primo step che ho seguito per fare il backup completo è stato quello di scaricare tutti i file che costituiscono il sito web. Per farlo ho utilizzato il software open source FileZilla.

Abilitare l’accesso FTP

La prima cosa da fare è effettuare il login nel pannello di amministrazione di Aruba per poter abilitare l’accesso FTP. Infatti Aruba di default blocca gli accessi FTP provenienti dagli indirizzi IP che non sono specificati all’interno di una whitelist.
Per aggiungere il tuo indirizzo IP alla whitelist devi premere sul bottone “Gestione Accessi FTP” del pannello di amministrazione. Nella schermata di gestione ti verrà mostrato il tuo indirizzo IP corrente e ti verrà data la possibilità di aggiungerlo a quelli consentiti.

Aggiungi il tuo indirizzo IP alla whitelist

A questo punto puoi scaricare tutti  i file che costituiscono il tuo sito web utilizzando un programma per l’accesso FTP come ad esempio FileZilla.
NOTA: Per l’accesso dovrai indicare a FileZilla le credenziali che ti ha fornito Aruba al momento della registrazione del servizio di hosting.

Scarica tutti i file dal tuo FTP utilizzando un programma come FileZilla

Backup del Database

Per effettuare il backup del database devi sempre fare l’accesso al pannello di amministrazione di Aruba e selezionare dal menù la voce “Database” e poi premere il bottone “gestisci”. A questo punto, dopo aver fatto il login, ti verrà mostrato il pannello di controllo del database.

Pannello di controllo del database

Per effettuare il backup completo del database ti basta premere il bottone “esporta” dal menù orizzontale in alto e poi confermare l’esportazione.

Conclusione

Una volta terminato il download dei file del sito e il download del dump del database il backup è completo e siamo pronti ad aggiornare il blog a WordPress 5.0.
Nel caso in cui dovessero insorgere problemi durante il processo di update potrai sempre ripristinare la versione precedente grazie al backup che hai appena effettuato.
PS: se stai vedendo questo post vuol dire che l’aggiornamento di questo blog a wordpress 5.0 ha avuto successo 🙂

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

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 ZSH e Oh-My-Zsh su Ubuntu 18.04 e 20.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

NOTA: 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.

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 Slack su Ubuntu 18.04

In questi giorni sto migrando il computer di lavoro da un vecchio mac book 2014 ad un nuovo dell XPS 13 su cui ho installato Ubuntu 18.04. Purtroppo devo dire che il passaggio mi sta dando più problemi di quanti pensassi. Uno di questi problemi è proprio l’installazione di Slack.

Ubuntu mette a disposizione all’interno dello store la versione snap di Slack che però nel mio caso ha problemi con l’utilizzo di Wayland (Bug #1754693).
Per cui l’unica soluzione per me è installare Slack tramite il pacchetto di installazione .deb disponibile nel sito ufficiale.

Slack installato su Ubuntu 18.04

Installazione di Slack tramite file .deb

Prima di procedere con l’installazione effettiva di Slack devi assicurarti di avere installato nel sistema libappindicator1. Puoi installarlo tramite il comando:

sudo apt install libappindicator1 desktop-file-utils gconf2 gvfs gvfs-bin gvfs-common gvfs-daemons gvfs-libs libgck-1-0 libgcr-base-3-1 curl

A questo punto puoi scaricare il pacchetto .deb dal sito ufficiale di Slack. Una volta terminato il download puoi installare il pacchetto facendo un doppio click sull’archivio appena scaricato oppure con il seguente comando da terminale:

sudo dpkg -i slack-desktop-3.3.3-amd64.deb

 

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 inviare una fattura elettronica verso l’SdI con PHP

Logo fattura elettronica

Prima di poter interagire con il sistema di interscambio (SdI) bisogna fare l’accreditamento del canale. Una volta fatto ciò ti verrà fornito un “Kit di Test” contenete i seguenti certificati:

  • testservizi.fatturapa.it.cer
  • SistemaInterscambioFatturaPATest.cer
  • servizi.fatturapa.it.cer
  • SistemaInterscambioFatturaPA.cer
  • caentrate.der
  • CAEntratetest.cer

E, sempre dalla pagina di gestione del canale, potrai scaricare due certificati (per client e server) chiamati SDI-<PartitaIVA>.cer

Oltre a tutto ciò avrai a disposizione i file *.key e *.cer che hai utilizzato per l’accreditamento del canale.

Come si usano questi certificati?

Per utilizzare questi certificati all’interno di un client PHP è necessario ottenere delle chiavi derivate che PHP sia in grado di trattare.

In particolare il file SDI-<PartitaIVA>.cer del client (per comodità ora mi riferirò a questo file indicandolo SDI-12345678-client.cer) dovrà essere convertito nel formato .pem tramite il seguente comando:

openssl x509 -inform der -in SDI-12345678-client.cer -out SDI-12345678-client.pem

Inoltre dovrai unire i certificati caentrate.der e CAEntratetest.cer con questo comando:

cat caentrate.der <(echo) CAEntratetest.cer > CA_Agenzia_delle_Entrate_all.pem
E’ fondamentale che inizio e fine dei singoli certificati siano su linee differenti

NOTA: aprendo il file CA_Agenzia_delle_Entrate_all.pem con un editor di testo è fondamentale verificare che END CERTIFICATE e BEGIN CERTIFICATE siano su due linee separate.

A questo punto io ho esteso il SoapClient di PHP per poter utilizzare curl in modo da avere la possibilità di fare il debug di tutto ciò che accade durante la chiamata.

<?php

class DebugSoapClient extends \SoapClient
{
    /**
     * @inheritdoc
     */
    public function __doRequest($request, $location, $action, $version, $one_way = null)
    {
        $soap_request = $request;

        $certspath = __dir__ .  "/certs/";
        //CA file
        $cafile = "CA_Agenzia_delle_Entrate_all.pem";
        //PRIVATE KEY client file
        $keyFile = "private-client.key";
        //Client CERT file
        $clientCertFile = "SDI-12345678-client.pem";

        $header = [
            'Content-type: text/xml;charset="utf-8"',
            'Accept: text/xml',
            'Cache-Control: no-cache',
            'Pragma: no-cache',
            "SOAPAction: {$action}",
            'Content-length: ' . strlen($soap_request),
        ];

        $soap_do = curl_init();

        $url = $location;

        $options = [
            CURLOPT_SSL_VERIFYPEER => true,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_SSLKEY => $certspath . $keyFile,
            CURLOPT_SSLCERT => $certspath . $clientCertFile,
            CURLOPT_CAINFO => $certspath . $cafile,

            CURLOPT_SSL_ENABLE_ALPN => false,

            CURLOPT_TIMEOUT => 60,

            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HEADER         => true,
            CURLOPT_FOLLOWLOCATION => true,

            CURLOPT_USERAGENT      => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)',
            CURLOPT_VERBOSE        => true,
            CURLOPT_URL            => $url,

            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $soap_request,
            CURLOPT_HTTPHEADER => $header,
        ];

        curl_setopt_array($soap_do, $options);

        $output = curl_exec($soap_do);
        var_dump('curl output = ');
        var_dump($output);
        $info = curl_getinfo($soap_do);
        var_dump('curl info = ');
        var_dump($info);
        var_dump('curl http code = ' . $info['http_code']);
        if ($output === false) {
            $err_num = curl_errno($soap_do);
            $err_desc = curl_error($soap_do);
            $httpcode = curl_getinfo($soap_do, CURLINFO_HTTP_CODE);
            var_dump("—CURL FAIL RESPONSE:\ndati={$output}\nerr_num={$err_num}\nerr_desc={$err_desc}\nhttpcode={$httpcode}");
        } else {
            ///Operation completed successfully
            var_dump('success');
        }
        curl_close($soap_do);

        return $output;
    }
}

Il codice che vedi qui sopra lo puoi trovare anche in questo repository su GitHub.

Conclusione

Questo codice è il frutto di diverse ore spese a capire come funziona il SdI. Un particolare ringraziamento va agli utenti del forum Italia. E’ proprio grazie al loro contributo se sono riuscito a creare questo script  👏

Fonti: Accreditamento SDICoop: configurazione SSL su ApacheInstallazione certificati canale SDICOOP

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!

Account email hackerato

Come tutte le  mattine stavo controllando la posta elettronica quando ho notato tra i messaggi in arrivo uno strana email proveniente dal mio stesso indirizzo. Strano. Ero sicuro di non essermi mandato un email la sera prima. Così, incuriosito, ho aperto il messaggio e questo è il contenuto:

  Ciao, caro utente,
Abbiamo installato un trojan di accesso remoto sul tuo dispositivo.
Per il momento il tuo account email è hackerato (vedi , ora ho accesso ai tuoi account).
Ho scaricato tutte le informazioni riservate dal tuo sistema e ho anche altre prove.
La cosa più interessante che ho scoperto sono i video dove tu masturbi.
Avevo incorporato un virus sul sito porno dopo di che tu l’hai installato sul tuo sistema operativo.
Quando hai cliccato su Play di un video porno, in quel momento il tuo dispositivo ha scaricato il mio trojan.
Dopo l’installazione la tua camera frontale ti filma ogni volta che tu masturbi, in più il software è sincronizzato con video che tu scegli.
Per il momento il software ha raccolto tutte le informazioni sui tuoi contatti dalle reti sociali e tutti gli indirizzi email.
Se tu vuoi che io cancelli tutti i dati raccolti, devi trasferirmi $300 in BTC (criptovaluta).
Questo è il mio portafoglio Bitcoin: …
Una volta letta questa comunicazione hai 2 giorni a disposizione.
Appena hai provveduto alla transazione tutti i tuoi dati saranno cancellati.
Altrimenti manderò i video con le tue birichinate a tutti i tuoi colleghi e amici!!!
E da ora in poi stai più attento!
Per favore, visita solo siti sicuri!
Ciao!

Ovviamente questa email è una truffa. Il sedicente hacker sostiene di essere entrato in possesso del mio account email ma in realtà sfrutta semplicemente il fatto che il protocollo utilizzato per lo scambio di mail (SMTP) sia stato ideato agli albori di internet quando ancora la sicurezza informatica non era un problema.
Questo tipo di attacco informatico si chiama Email Spoofing e sfrutta il fatto che SMTP non richiede alcun tipo di autenticazione. Infatti, come per la posta tradizionale, quando viene spedito un messaggio è richiesto che vengano indicati l’indirizzo del mittente (MAIL FROM) e quello del destinatario (RCPT TO) senza alcun tipo di controllo sulla veridicità dei dati inseriti.
In questo modo l’hacker può indicare un qualunque indirizzo all’interno del campo MAIL FROM senza che venga effettuato alcun tipo di controllo.

Quindi se dovesse arrivare anche ate una mail del genere puoi tranquillamente segnalarla come spam.

NOTA: di questo tentativo di truffa se ne è occupata anche Repubblica.it.

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!