Firefox disattivare la comparsa della barra dei menù quando si preme alt

Io sono un’amante delle scorciatoie da tastiera, quando posso cerco sempre di utilizzarle al posto del mouse. Utilizzando Firefox su Ubuntu però mi sono accorto di un fastidioso effetto collaterale quando premo il tasto alt (ad esempio quando premo alt + tab per cambiare applicazione aperta).

In pratica quello che succede è che nel momento in cui si preme il tasto alt della tastiera Firefox mostra la barra dei menù (che di solito è nascosta) facendo scorrere di qualche pixel la pagina. Questo, oltre ad essere fastidioso e brutto a vedersi, a volte cattura combinazioni di tasti non desiderate abilitando comportamenti “strani” del browser.

Il fastidioso “balletto” della pagina quando si preme il tasto alt

Intanto mi presento, io sono Lorenzo Millucci e sono un software engineer che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Iscriviti al mio canale Telegram per non perderti nessuna notizia!

Ma ora torniamo sul pezzo e vediamo subito come risolvere il problema utilizzando due differenti modi.

Modifica della configurazione di Firefox (migliore)

Questo, secondo me, è il metodo migliore da seguire per risolvere il problema alla radice andando a modificare la configurazione interna di Firefox.

La prima cosa da fare è digitare about:config nella barra degli indirizzi di Firefox. Si aprirà una pagina in cui Firefox ti avverte dei rischi collegati alle modifiche che è possibile fare dal pannello delle impostazioni avanzate. Per proseguire bisogna premere il pulsante Accetta il rischio e continua.

A questo punto nella barra in alto bisogna inserire la chiave di ricerca ui.key.menuAccessKeyFocuses e cambiare l’impostazione da true a false.

E il gioco è fatto, d’ora in poi non sarà più visualizzata la barra dei menù quando viene premuto il tasto alt.

Modifica al registro di Firefox per modificare il comportamento del tasto alt
Modifica alla configurazione di Firefox

Rendere sempre visibile la barra dei menù

Questo metodo non richiede di entrare nel pannello delle configurazioni avanzate del browser ma si basa sul rendere sempre visibile la barra dei menù grazie alle infinite possibilità di personalizzazione di Firefox. Tuttavia a parer mio, mostrare sempre una barra che occupa spazio verticale su un monitor 16:9 è proprio uno spreco di spazio per cui preferisco il metodo descritto prima.

Per rendere sempre visibile la barra dei menù devi:

  • premere il bottone con l’icona a forma di hamburger (sarebbe quello con le tre linee orizzontali in alto a destra),
  • clickare sulla voce personalizza
  • selezionare barre degli strumenti e mettere la spunta a barre dei menù
Visualizzare sempre la barra dei menù

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

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!

Ubuntu 20.04 disponibile al download! 🎉

La mia scrivania

Ubuntu 20.04 Focal Fossa è stato appena rilasciato! Questa è l’ultima versione LTS del famoso sistema operativo open source con supporto fino al 2025.

Bando alle ciance, se non vuoi perdere tempo procedi subito con il download dell’ultima versione tramite il link sottostante:

Novità

Sebbene il rilascio ufficiale sia oggi io è già da un mesetto che lo utilizzo quotidianamente sul mio PC del lavoro senza alcun problema. Per cui di seguito ti mostro le novità dell’ultima fatica di Canonical con qualche commento personale sul mio utilizzo.

NOTA: i miei commenti fanno riferimento al passaggio dalla versione 18.04 alla 20.04. Se hai aggiornato di volta in volta alla 18.10, 19.04 e 19.10 probabilmente avrai già notato alcuni dei cambiamenti che ho riportato.

Iniziamo a parlare dei miglioramenti sotto il cofano. L’ultima versione di Ubuntu utilizza il Kernel 5.4 che, oltre ai soliti miglioramenti alle performance e a migliorare il supporto all’hardware più recente, introduce il supporto nativo ai file system exFAT. Finalmente non sarà più necessario installare pacchetti aggiuntivi per leggere chiavette e memory card.
La mia vecchia guida su come montare i volumi exFat potrà finalmente andare in pensione.

Nonostante il Kernel 5.6 non fosse pronto per il rilascio di Ubuntu, gli sviluppatori di Canonical si sono comunque adoperati per fare il backport di WireGuard anche su Ubuntu 20.04. Per chi non lo conoscesse, WireGuard è un software che permette di connettersi a tunnel VPN senza bisogno di utilizzare tool esterni.

Passiamo ora all’avvio del sistema. Fin dalla pressione del tasto di avvio è possibile accorgersi dei miglioramenti fatti dagli sviluppatori. Infatti è stato introdotto un nuovo splash screen che mostra all’avvio il logo del produttore del computer. Inoltre la velocità di avvio del sistema è stata ulteriormente migliorata grazie all’introduzione di un nuovo algoritmo di compressione (lz4) del kernel e di intramfs.
Sul mio PC Ubuntu ora si avvia veramente in un lampo!

Arrivati alla schermata di accesso del sistema operativo è possibile accorgersi anche di altri piccoli miglioramenti all’usabilità. Innanzitutto non esiste più la “tendina” da trascinare verso l’alto per inserire la password. Gli sviluppatori hanno anche lavorato alla rifinitura della grafica. Ora è possibile vedere dalla schermata di blocco le notifiche arrivate e come background viene utilizzata un versione sfocata dello sfondo del desktop dell’utente.

Inserita la password di accesso, GNOME 3.36 ci accoglie in tutto il suo splendore. Chi proviene da Ubuntu 18.04 apprezzerà fin da subito la maggiore pulizia e la migliore cura dei dettagli nella UI.
Tra i miglioramenti più utili all’usabilità del sistema operativo c’è l’introduzione della modalità non disturbare. Attivando questa modalità tutte le notifiche verranno silenziate. Veramente utilissimo durante le presentazioni e durante le videochiamate di lavoro.

La nuova modalità non disturbare nel centro notifiche

Anche l’app switcher (alt+tab) è stato migliorato. Nella versione precedente di Ubuntu, aprendo due finestre di FireFox queste venivano raggruppate in un unico elemento. Ora invece ogni finestra ha la sua icona nello switcher.
Per me che utilizzo quasi esclusivamente alt-tab per cambiare finestra questa è veramente una manna dal cielo!

Sopra: Il vecchio task switcher che raggruppava i software; Sotto: il nuovo task switcher con un icona per ogni applicazione

Un altro cambiamento è stato fatto all’applicazione Ubuntu Store che è stata rimpiazzato con il più moderno Snap Store. A prima vista potrebbe sembrare quasi la stessa cosa ma a parte il lavoro di bug-fix e di miglioramento generale, il nuovo Snap Store permette di avere delle funzionalità più avanzate (ad esempio è possibile selezionare quale versione del pacchetto installare).

Il nuovo Snap Store permette di selezionare la versione del software installare.

Un altro cambiamento che farà la gioia di chi utilizza monitor 4K è il supporto al fractional scaling. Da ora non sarà più necessario scegliere tra un fattore di scala del 100% o del 200% ma sarà possibile selezionare dei valori intermedi come ad esempio 125% o 150%.

Ma la cosa più bella dell’ultima release di Ubuntu è l’introduzione del tema scuro! Finalmente è possibile modificare con un solo click l’aspetto complessivo del sistema. Da nautilus (per esplorare i file) a gedit (il text editor), dal pannello delle impostazioni a firefox ora tutto il sistema utilizzerà consistentemente i colori scuri.
L’ultima release di Ubuntu è un piacere per gli occhi per me che adoro il tema scuro.

Qualche bug

L’ultima versione di Ubuntu però non è perfetta e nel corso di questo mese ho notato anche qualche bug minore durante il mio utilizzo giornaliero.

Partiamo dal più fastidioso, il tema scuro di gedit rende praticamente illeggibile il testo in quanto, nel momento in cui viene selezionata una riga, questa viene evidenziata di bianco con il testo bianco. L’unica soluzione per aggirare il problema e leggere il testo è selezionare tutto il testo. Speriamo in una patch a breve.

Testo bianco con evidenziazione bianca. Decisamente poco leggibile.

Un’altra piccolezza piuttosto fastidiosa è il fatto che da nautilus non è possibile trascinare con il mouse i file sul desktop. Non capisco se è una scelta di progetto o un bug ma spero che gli sviluppatori di Canonical riescano a risolvere anche questo problema.

Ma il problema più fastidioso è che a volte, quando a fine giornata arresto il sistema, il processo di chiusura del sistema operativo si inchioda ed è necessario attendere diversi minuti prima che si spenga completamente. Sospetto che possa essere un bug legato ai driver proprietari di nvidia ma nulla che non possa essere risolto con una patch.

Ma quindi devo aggiornare?

Secondo me se non fai uso di software particolari puoi aggiornare senza troppi pensieri all’ultima versione per godere di una versione che non rivoluziona il modo di lavoro ma rifinisce vari aspetti del sistema operativo che lo rendono più efficiente e più piacevole da utilizzare.

Se utilizzi un sistema a 32bit tuttavia non potrai aggiornare direttamente ad Ubuntu 20.04 visto che gli sviluppatori hanno deciso di abbandonare questa vecchia architettura per concentrarsi unicamente nello sviluppo del sistema a 64bit.

In ogni caso Ubuntu 18.04 è ancora supportato fino al 2023 per cui se non vuoi rischiare l’aggiornamento o se non sei sicuro che il tuo hardware sia compatibile puoi posporre l’aggiornamento e farlo tranquillamente più avanti nel tempo.


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!

Comprimere PDF su Linux utilizzando Ghostscript

Documenti da scansionare

Ti è mai capitato di dover scansionare un documento di diverse pagine e di accorgerti solo alla fine che il file PDF ottenuto abbia un peso spropositato?

A me è capitato giusto ieri. Dovevo mandare una serie di scartoffie al commercialista ma il file PDF che ho ottenuto risultava troppo pesante (11 MB) per il form di caricamento dei documenti (max 5MB).

Per risolvere questi tipi di problemi esistono vari servizi online che ti permettono di caricare il file PDF e di comprimerlo senza dover installare nulla nel tuo PC. Tuttavia, trattandosi di documenti privati ho pensato non fosse il caso di regalare così i miei dati ad un servizio che non so cosa combini con i documenti caricati dagli utenti.

Quindi mi sono arrovellato il cervello e mi sono chiesto: “Possibile che su Ubuntu non esista nulla che permette di comprimere i PDF direttamente dal terminale?

Ovviamente la risposta a tale domanda è: si, esiste il modo di comprimere i file PDF da terminale. E per farlo esiste il seguente non-troppo-semplice comando di GhostScript:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=<LIVELLO-COMPRESSIONE> -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<OUTPUT-FILE> <INPUT-FILE>

All’interno del comando devi sostituire:

  • <LIVELLO-COMPRESSIONE> rappresenta la qualità (e quindi la dimensione) del file finale. Sono ammessi i valori:
    • /screen minima qualità
    • /ebook qualità media
    • /printer buona qualità
    • /prepress massima qualità
  • <OUTPUT-FILE> è il nome del file compresso prodotto dal comando
  • <INPUT-FILE> è il nome del file da comprimere

PS: per avere più informazioni su tutti i possibili parametri di GhostScript ti basta digitare sul terminale man gs

Quindi per ottenere un buon rapporto qualità/peso ho deciso di utilizzare il livello di compressione /ebook tramite il seguente comando:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=documenti-ebook.pdf documenti.pdf

Statistiche

Utilizzando un documento da 11,6MB come prova ho ottenuto i seguenti risultati:

  • 536,5kB a qualità screen
  • 1,4MB in qualità ebook
  • 11,6MB in qualità printer
  • 11,6MB in qualità prepress

Come puoi vedere gli ultimi due livelli di compressione non hanno cambiato la dimensione del file ottenuto. Questo vuol dire che di default l’applicazione dello scanner utilizza printer come livello di compressione.

PDF ottenuti utilizzando i vari livelli di compressione
PDF ottenuti utilizzando i vari livelli di compressione

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

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!

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

NOTA: Ubuntu 20.04 offre di default Python 3.8. Se stai usando l’ultima LTS di Ubuntu questa guida non è più necessaria.

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 e 20.04

AGGIORNAMENTO: alcuni utenti mi hanno segnalato che questa guida può essere seguita con successo sia su Ubuntu 20.04 che su Fedora 31!

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!