Core Web Vitals: cosa sono a cosa servono e come si misurano

Ti sarà sicuramente capitato di navigare su di un sito inusabile a causa degli infiniti tempi di caricamento e della quantità smodata di banner di ogni sorta. Esperienza terribile.

Proprio l’esperienza di navigazione dell’utente sta per diventare uno dei fattori con cui Google deciderà l’ordinamento dei risultati del motore di ricerca.

Nella pagina about di Google si legge che lo scopo fondamentale del motore di ricerca è:

La nostra missione è organizzare le informazioni a livello mondiale e renderle universalmente accessibili e utili.

https://about.google

Organizzare le informazioni a livello mondiale significa trovare e catalogare tutte le pagine web esistenti in modo da fornire i migliori risultati possibili sulla base delle parole chiave digitate dall’utente.

Ma Google non si limita a classificare i risultati solamente in base al contenuto. Immagina di cercare una parola chiave come “miglior software gestionale per hotel” su Google.

Ti sei mai chiesto come faccia il motore di ricerca a decidere l’ordinamento con cui sono mostrati i risultati quando tutte le pagine hanno contenuti più o meno simili tra loro? Al fine di fornire anche in queste situazione i migliori risultati possibili, Google dichiara di tenere in considerazione oltre 100 fattori differenti!

E tra i fattori presi in considerazione, a partire dalla prima metà del 2021, uno che guadagnerà maggiore importanza nella definizione dell’ordinamento dei risultati di Google sarà proprio la così detta Page Experience. Proprio per misurare in maniera oggettiva la qualità di navigazione di un sito web Google aveva introdotto qualche anno fa i segnali Core Web Vitals. Nei prossimi mesi questi indicatori verranno inclusi all’interno del punteggio della Page Experience e da Maggio 2021 diventeranno un fattore di ranking a tutti gli effetti.

Questo vuol dire che a parità di contenuto un sito pulito, veloce a caricarsi e di facile consultazione verrà favorito rispetto ad un sito lento, pesante e complesso da usare.

NOTA: Chi si intende di ottimizzazione per i motori di ricerca conosce benissimo il motto “content is king” che sta a significare che il contenuto informativo il vero motivo per cui gli utenti aprono un sito. Questo motto continuerà ad essere valido anche con l’avvento dei Core Web Vitals tra i fattori di ranking. Un sito con il contenuto confuso e sgrammaticato ma con segnali Vitals al top continuerà ad essere penalizzato rispetto ad un sito con contenuto di qualità ma scarse performance.

Ma prima di trattare nel dettaglio dei Core Web Vitals mi presento: sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Non perderti anche il mio canale Telegram in cui ogni martedì parliamo di news e curiosità legate al mondo della tecnologia!


Indice


Cosa sono i segnali Core Web Vitals

I segnali Core Web Vitals sono degli indicatori che servono a rispondere alla domanda: “Qual’è l’esperienza di navigazione che il mio sito sta offrendo?”.

Secondo Google i concetti su cui si basa una navigazione di qualità sono tre:

  • Velocità: la navigazione deve avvenire senza la necessità di attendere tempi infiniti di caricamento tra una pagina e l’altra;
  • Interattività: una volta che il contenuto è stato mostrato a schermo l’utente non deve attendere un’infinità di tempo prima di poter interagire con la pagina;
  • Stabilità visuale: il contenuto della pagina non deve subire spostamenti mano a mano che i contenuti vengono caricati (es. viene caricato un banner pubblicitario che fa si che il testo venga scrollato più giù nella pagina).

Questi concetti possono essere misurati utilizzando rispettivamente le seguenti metriche:

  • Largest Contentful Paint (LCP): il caricamento dovrebbe avvenire entro 2.5s
  • First Input Delay (FID): dovrebbe essere possibile interagire con la pagina entro 100ms dal caricamento
  • Cumulative Layout Shift (CLS): il punteggio relativo alla stabilità non dovrebbe essere superiore a 0.1

I report di Google mostrano come un sito che soddisfi a pieno i requisiti di qualità appena definiti abbia un tasso di abbandono più basso del 24% rispetto ad uno sito che non li rispetta.

Misurare i Core Web Vitals

Ora che hai capito le motivazioni che hanno spinto Google ad introdurre i Core Web Vitals come indicatore dell’esperienza di navigazione percepita dall’utente vediamo come misurarli praticamente.

Una prima importante differenziazione da fare nella misura dei segnali Vitals è la distinzione tra “dati sul campo” e “dati sintetici”. I primi sono i dati raccolti da Google tramite l’analisi dei visitatori reali del sito web mentre i secondi sono dati ottenuti in laboratorio simulando quello che potrebbe essere il comportamento dell’utente nel sito.

Google (ovviamente) utilizza i dati sul campo per determinare l’ordinamento dei risultati di ricerca e ti farò vedere non sono facilmente accessibili. I dati sintetici invece possono essere generati facilmente e sono utilizzati principalmente dagli sviluppatori per individuare quali possono a cui gli utenti vanno incontro.

Google offre diversi strumenti per la misura dei Core Web Vitals che coprono diversi aspetti dello stesso problema e in particolare gli strumenti più usati sono:

  • Google Search Console
  • PageSpeed Insight
  • Lighthouse
I 3 strumenti più utilizzati per la misurazione dei segnali Core Web Vitals

Search Console

La Search Console è un servizio di Google dedicato ai webmaster con il quale è possibile monitorare e gestire la presenza del tuo sito nei risultati della ricerca Google.

Tra i vari report che è possibile consultare nella Search Console ne puoi trovare proprio uno dedicato interamente ai segnali Core Web Vitals.

Il report sui segnali web essenziali di Google Search Console

Il report della Search Console mostra i “dati sul campo” ed è ottimo per individuare rapidamente i problemi comuni a più pagine del sito visto che tutte le pagine con problematiche simili vengono raggruppate insieme. Ad esempio, se più pagine del sito hanno un layout comune con una grossa immagine in copertina, è molto probabile che il loro punteggio circa il Largest Contentful Paint (LCP) sia simile. In questi casi il report di Google segnalerà un eventuale problema su tutte le pagine.

Per farla breve la Google Search Console è lo strumento giusto da utilizzare per identificare eventuali problemi di performance a livello globale del sito. Lo svantaggio principale però della Console è che ogni punto del grafico è la media dei punteggi alle performance dei 28 giorni precedenti. Questo vuol dire che un miglioramento fatto oggi non sarà visibili nel report prima di un mese.

PageSpeed Insights (PSI)

PageSpeed Insight è un applicativo web di Google che permette di vedere nella stessa pagina sia i dati sul campo (se disponibili) che quelli sintetici. Tutto ciò che devi fare per ottenere il report di PageSpeed Insight è inserire l’URL della pagina da analizzare nell’applicazione e premere invio.

L’analisi del punteggio di questo blog da desktop secondo PageSpeed Insight

L’analisi svolta da questo strumento è relativa al singolo URL specificato e solo nel caso in cui la pagina sia frequentata da un numero sufficientemente alto di visitatori è possibile vedere i dati raccolti sul campo, altrimenti saranno mostrati solo dei dati sintetici raccolti tramite test automatici.

All’interno della pagina dei risultati dell’analisi sono presenti anche dei consigli relativi alle aree su cui concentrare l’attenzione per migliorare il punteggio della pagina. (Attenzione si tratta di suggerimenti ottenuti dal test sintetico eseguito sulla pagina, gli utenti reali potrebbero riscontrare problematiche differenti).

In breve, tramite l’analisi della PageSpeed Insight è possibile analizzare con precisione i dati reali delle performance misurate dai visualizzatori del sito per una determinata pagina.

L’obiettivo di questo strumento dovrebbe essere quello di mettere a confronto i dati reali con quelli sintetici così da vedere se c’è un’effettiva corrispondenza in modo da scongiurare l’ipotesi per cui i dati sintetici siano migliori di quelli effettivamente riscontrati dagli utenti.

Il problema principale di questo report è che se la pagina da analizzare non è sufficientemente trafficata otterrai solo i dati sintetici (misurati tramite Lighthouse).

Lighthouse

Lighthouse è uno strumento automatico di analisi dei siti web incluso all’interno di Chrome (o anche il nuovo Edge basato su Chromium).

Questo strumento è principalmente rivolto agli sviluppatori e ha come finalità la raccolta di dati sintetici sulle performance di un sito.

Lighthouse in particolare permette di ricavare vari report:

  • Performance del sito: è il report che contiene le metriche legate alle prestazioni (tra cui i Core Web Vitals) ed è in grado di fornire agli sviluppatori vari suggerimenti sulle aree in cui intervenire per migliorare l’esperienza dell’utente.
  • Progressive Web App: questo report è rilevante solo nel caso in cui abbinata al sito ci sia una PWA e serve ad identificare se il sito web aderisce a tutti gli standard richiesti ad una PWA.
  • Best Practices: questo report si concentra sugli aspetti legati alla sicurezza e sugli aspetti legati ai moderni standard di sviluppo web.
  • Accessibilità: questo report serve ad individuare eventuali problematiche che possano rendere la pagina web inutilizzabile da persone con disabilità.
  • SEO: in questo report è indicato quanto la pagina web è facile da scansionare per un motore di ricerca (non solo Google). Più il punteggio è alto e più sarà facile che la pagina venga indicizzata e compaia come risultato della ricerca di un utente.
Punteggio relativo alle performance misurato da Lighthouse su dev.to (in rosso ho evidenziato i Core Vitals)

La navigazione web in questi anni si sta spostando sempre più dai PC verso i dispositivi mobili come smartphone e tablet.

Google è ampiamente a conoscenza di questo fenomeno e proprio per questo motivo tiene in particolare considerazione questa categoria di dispositivi permettendo a Lighthouse di simulare l’esperienza utente da uno smartphone.

La navigazione da smartphone però non è sempre ottimale. Dispositivi dalla scarsa potenza di calcolo e connessioni lente e/o ballerine sono molto più comuni di quanto si pensi. Per tenere conto di queste situazionivo Lighthouse simula uno smartphone che non sia un top di gamma (Moto G4) e che sia sotto una connessione lenta (slow 4G = 1.6Mbps download / 750 Kbps upload – latenza 150ms).
Proprio a causa di questa scelta il sito web che si carica in un lampo nel tuo iPhone 12 Pro potrebbe ottenere un punteggio delle performance basso (per verificare questa ipotesi il test da eseguire è quello della PageSpeed Insight).

Il ragionamento che ha spinto Google ad percorrere questa strada è il seguente: se la pagina web ha performance buone su un dispositivo limitato sicuramente sarà un piacere consultarla su di un cellulare di ultima generazione.

Il modo più semplice per misurare i segnali Core Web Vitals tramite Lighthouse è utilizzarlo direttamente da Chrome usando i seguenti comandi:

  • Naviga sulla pagina per cui vuoi misurare le performance
  • Apri gli strumenti per sviluppatori usando F12 (o utilizzando ctrl+shift+I)
  • Seleziona dalle tab in alto il menù Lighthouse
  • Metti la spunta sulla voce “Performance” (e rimuovere le altre se non sei interessato agli altri report)
  • Seleziona mobile o desktop per decidere se quale report vuoi ottenere
  • Avvia il test tramite il bottone “Genera Report”

Al termine dell’analisi del sito verrà mostrato un voto complessivo del sito e sarà possibile analizzare nel dettaglio tutte le voci che concorrono alla determinazione del punteggio. Per sapere come sono combinate tra loro le voci per il calcolo del punteggio complessivo ti lascio la documentazione ufficiale di Google.

Nel momento in cui scrivo Lighthouse 6 utilizza questi pesi per mediare le metriche e determinare il punteggio complessivo

Il report è diviso in due sezioni: metrics e opportunities. I valori delle metriche sono quelli che vanno ad influire direttamente sul punteggio globale assegnato alle performance mentre le opportunità non incidono direttamente. In ogni caso aggiustare una delle problematiche segnalate nella sezione opportunità può avere un impatto sul valore di una delle metriche e quindi contribuire ad aumentare il punteggio globale.

Analizzando i le voci contenute nella sezione metriche è possibile individuare i valori dei Core Web Vitals:

  • Largest Contentful Paint
  • Cumulative Layout Shift
  • Total Blocking Time (che non è esattamente il First Input Delay ma lo approssima con buona precisione).

Conclusione

L’ottimizzazione dei siti web per i motori di ricerca (SEO) non è una scienza esatta. Gli algoritmi usati dai motori di ricerca cambiano continuamente e quello che è valido oggi potrebbe non essere più valido domani. L’unica cosa certa è che ci sono dei principi generici a cui i motori di ricerca si ispirano costantemente. Tra questi principi fondamentali uno che nel 2021 acquisirà maggiore importanza sarà proprio la valutazione delle performance del sito misurata tramite i segnali Core Web Vitals.

Google ha avvisato con largo anticipo che il cambiamento avverrà intorno al mese di Maggio in modo da dare tempo a chiunque gestisca un sito di iniziare a valutarne le performance e ad apportare i cambiamenti necessari. Chi non si adegua in tempo vedrà soffiarsi il primo posto nei risultati di ricerca da i competitor.

Come ho accennato poco fa, Google non fornisce delle regole esatte ma solo dei principi a cui si ispira per questo motivo quello che è scritto in questo post potrebbe essere aggiustato e modificato da Google in ogni momento. Per tale motivo ho cercato di mettere sempre i link alla documentazione ufficiale in modo da poter risalire sempre alla fonte di ogni dato riportato nel post.


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!

Il mio 2020 in review

Il 2020 è stato un anno strano. Per tutti. La pandemia ha sconquassato le nostre vite in modi che non avremmo mai pensato.

Per quanto mi riguarda, tra le varie rivoluzioni portate dalla COVID-19, quella che mi ha impattato di più è stata probabilmente lo sdoganamento dello smart-working.
Se da una parte mi sono reso conto che non è assolutamente richiesta la presenza in ufficio tutti i giorni, dall’altra parte il non vedere i colleghi per lunghi periodi mi ha fatto sentire un po’ più solo e ha reso il luogo di lavoro un po’ più asettico riducendo le interazioni con i colleghi a poche righe su una chat.
Credo che solo recentemente abbia raggiunto un giusto compromesso andando 2 giorni alla settimana in ufficio.

In ogni caso il tempo risparmiato sugli spostamenti da e verso l’ufficio mi ha permesso di dedicarmi maggiormente alle mie passioni e di approfondire maggiormente lo studio del tema della sicurezza informatica (di cui ho anche scritto su queste pagine: qui e qui).

Visto che ormai l’anno volge al termine approfitto di questo post per fare il punto della situazione guardandomi indietro in modo da tirare le somme.

SPOILER: pensavo che quest’anno fosse andato molto peggio, scrivere questo post mi ha fatto pensare che tutto sommato non è andato troppo male.

Blog

Il blog quest’anno è stato fonte di molte soddisfazioni. Ho pubblicato 24 articoli in 12 mesi riuscendo a mantenere la media di almeno un articolo a mese che mi ero prefisso.

Ci tengo a ringraziare uno per uno i 21mila lettori che hanno consultato ben 28mila pagine di questo blog. Siete stati fantastici!

Vorrei anche dare un abbraccio (Covid permettendo) ai circa 60 di voi che hanno speso un minuto per lasciare un commento.

Infine vorrei poter offrire un caffè ai 16 eroi che seguono il mio canale telegram!

Grazie. Davvero.

YouTube

Quest’anno ho provato anche a pubblicare un video tutorial su YouTube. Non avevo particolari aspettative visto l’enorme imbarazzo che ho provato nel registrarlo eppure vedo che nel momento in cui scrivo sta per raggiungere le 300 visualizzazioni. Risultato del tutto inaspettato ma assai apprezzato!

Open source

Anche quest’anno ho dedicato un po’ del mio tempo libero a fare qualche piccolo contributo al mondo open source. In particolare ho fatto un piccolo contributo a Symfony, qualche miglioramento al portale developers.italia.it e all’estensione per Firefox Share Backported. Non è molto ma mi consola sapere che è meglio di niente.

Musica

Per me la musica è tutto. La ascolto ogni mattina mentre mi preparo, la ascolto mentre vado al lavoro e la ascolto persino mentre lavoro. Di frequente mi sveglio anche canticchiando qualche motivetto nella testa. E il mio fidato compagno di ascolti è Spotify che quest’anno segna ben 75600 minuti di ascolto!

Il mio 2020 su Spotify

Libri

Nel corso dell’anno ho comprato ben 17 libri ma sono riuscito a leggerne solo 11. L’anno era partito alla grande per cui “grazie” al primo lockdown ho dedicato veramente molto tempo a leggere e poi mi sono perso. E quindi anche quest’anno mi confermo come malato di “tsundoku” (parola giapponese che indica l’accumulo di libri non letti).

Tra i libri che mi sono piaciuti di più quest’anno annoverano sicuramente Factfulness e Advanced Web Application Architecture.

Factfulness è un libro sui bias cognitivi che affliggono ognuno di noi. Il libro si apre con 13 domande di cultura generale per il lettore. Tirando puramente a caso se ne dovrebbero indovinare circa 4. Io invece ne ho indovinate appena 2. Come mai? Perché il nostro cervello è nato come strumento per evitare pericoli immediati e quindi tende a tirare conclusioni frettolose e quindi semplicistiche.

Consiglio a chiunque di leggere questo libro per avere una visione del mondo basata sui fatti e non sulle percezioni (sbagliate).

Il secondo libro, Advanced Web Application Architecture, è un manuale tecnico sulla progettazione e sull’implementazioni di applicazioni web. Se il tuo obiettivo è scrivere codice pulito, riusabile e indipendente dal framework utilizzato questo libro è una lettura obbligata.

Videogames

Per la prima volta da anni il backlog si accorcia. Nel corso dell’anno ho acquistato 9 nuovi giochi ma sono riuscito a finirne ben 11!

Parte del merito è sicuramente del tempo risparmiato sulle trasferte casa-lavoro. Inoltre anche l’abbonamento all’xbox game pass mi ha permesso di giocare di più acquistando di meno.

Se dovessi scegliere il miglior gioco dell’anno tra quelli che ho giocato penso che darei l’ambitissimo premio a… Quantum Break!

Quantum Break è un gioco fantascientifico dove si mischiano alle sezioni di gioco vere e proprie delle parti girate da attori in carne ed ossa come se fosse una serie TV.
Tutta la trama gira attorno ad un evento per cui “si rompe” il normale scorrere del tempo e a cui il protagonista dovrà porre rimedio. La cosa favolosa è che gli sviluppatori si sono affidati ad un ex scienziato del CERN per rendere gli eventi del gioco coerenti con le più moderne teorie di fisica quantistica.

Se avete una quindicina di ore da dedicare ad un gioco ve lo consiglio veramente! (Ed è pure incluso nel game pass :D)

PS: Spero che venga rilasciato al più presto un sequel in grado di chiarire alcune domande lasciate in sospeso dal titolo.

E per il 2021?

Per il nuovo anno l’idea è quella di mantenere la direzione intrapresa nel 2020 ma non voglio stare a definire piani che poi non riuscirò mai a mantenere (mi conosco troppo bene). L’unica cosa che mi sento di dire con certezza è che manterrò la pubblicazione di almeno un post al mese su questo blog e che continuerò a pubblicare ogni martedì una riflessione sul mondo tecnologico sul mio canale telegram.

Visto il buon risultato raggiunto quest’anno vorrei buttarmi maggiormente su YouTube ma l’imbarazzo di parlare di fronte ad una videocamera non è facile da superare. Ma mai dire mai.

Se hai letto fino a questo punto non mi rimane altro che ringraziarti per la pazienza e augurarti un grandioso nuovo anno!


Com’è andato il tuo 2020? Se ti va di scambiare due chiacchiere lascia pure un commento qui sotto oppure scrivimi 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!

Immagine di copertina by @giusugar

Responsible disclosure: SQL Injection su portale sanitario

Hero image: ho trovato una sql injection in un portale sanitario

I dati sanitari delle persone dovrebbero essere tra i segreti meglio custoditi al mondo visto che la loro divulgazione senza esplicito consenso risulterebbe in una gravissima violazione della privacy dei pazienti. Non a caso ogni singolo dato sanitario ottenuto può valere fino a 250$ nel mercato nero .

Proprio per questo motivo mi aspetto che gli applicativi software che trattano questi dati siano protetti seguendo i più alti standard di sicurezza informatica esistenti.

Immaginate il mio stupore quando mi sono accorto che uno dei portali web utilizzati dai medici per il controllo dei proprio assistiti era vulnerabile a quello che OWASP mette al primo posto come fattore di rischio per le web app: la SQL Injection.

Per chi non sapesse di che cosa parlo, tramite un attacco di tipo SQL Injection un attaccante è in grado di eseguire dei comandi in linguaggio SQL con i quali può leggere, alterare ed eliminare qualsiasi dato presente all’interno di un database.

Non oso nemmeno immaginare le conseguenze disastrose che avrebbe potuto avere l’accesso e la divulgazione non consentita dei dati anagrafici e dei percorsi sanitari di migliaia e migliaia di pazienti.

Ma prima di procedere con i dettagli della SQL Injection mi presento: sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Iscriviti anche al mio canale Telegram in cui ogni martedì parliamo di piccole curiosità legate al mondo della tecnologia!

Cos’è una SQL Injection

Un attacco di tipo SQL Injection è un attacco che sfrutta la mancata validazione degli input digitati dall’utente per fare in modo che questi vengano interpretati come comandi per il database al fine di introdursi in un sistema informatico.

SQL infatti è un linguaggio di programmazione utilizzato per creare, modificare ed interrogare un database relazionale.

Normalmente quando un utente prova ad inserire un’istruzione SQL all’interno di un campo di input (come potrebbe esserlo il campo username di una pagina di login) il sistema si occupa di validare i dati inseriti accertandosi che non ci siano caratteri illeciti e/o facendone la traslitterazione verso una versione non dannosa (ad esempio il carattere < di solito viene convertito in &lt;).

Se questo processo di validazione dei dati immessi dall’utente non avviene potrebbe essere possibile sferrare un attacco di tra quelli appartenenti alla famiglia delle injection (a cui la SQL Injection appartiene).

Il tipico esempio di SQL Injection riportato in tutti i libri di testo è quello di una schermata di login in cui, per verificare che username e password siano corretti, viene usata la seguente query:

SELECT * FROM users WHERE username = "Foo" AND password = "bar" 

Un attaccante potrebbe aggirare questa schermata di login digitando come username Foo e come password " OR "" = ". In questo modo la query con i dati inseriti dall’utente diventerebbe:

SELECT * FROM users WHERE username = "Foo" AND password = "" OR "" = "" 

E poiché l’uguaglianza tra stringhe vuote "" = "" risulta essere sempre verificata l’attaccante si vedrebbe garantito l’accesso al sistema come un regolare utente senza che sia stato necessario conoscerne la password.

La SQL Injection sul portale

Esattamente come nell’esempio descritto poco sopra, nel portale in questione era possibile aggirare la pagina di login confezionando una stringa SQL ad-hoc e usandola come nome utente.

Per verificare l’esistenza del problema mi è bastato inserire il carattere ' nel campo username della pagina di login ottenendo come risposta la query SQL che il server ha provato ad eseguire per verificare la correttezza delle credenziali inserite.

Il messaggio d’errore restituito inserendo il carattere ‘ come username

Una volta accertata l’esistenza del problema mi sono immediatamente preoccupato di contattare chi di dovere affinché approntasse un fix per la vulnerabilità.

Timeline

20/10/2020 Mi accorgo del problema sul portale

20/10/2020 Invio email all’indirizzo di supporto generico (mai risposta)

26/10/2020 Invio email al dirigente del reparto IT che mi mette in contatto con il tecnico incaricato del portale

28/10/2020 Riporto la vulnerabilità al tecnico responsabile

11/11/2020 Mi segnalano che la vulnerabilità è stata sistemata

Conclusioni

Il problema sembra essere stato corretto e ora quando si prova ad inserire il carattere ' all’interno dei campi di login non viene più visualizzata la query SQL eseguita ma viene mostrata una semplice pagina bianca. Tutto bene quel che finisce bene.

O no?

Sinceramente ho l’impressione che il problema sia stato “risolto” semplicemente nascondendo il messaggio d’errore e lasciando la vulnerabilità esattamente dove si trova ma siccome non sono in grado di dimostrare questa mia ipotesi confido nella bontà della correzione. Avrei dormito sogni tranquilli vedendo un messaggio d’errore generico del tipo “nome utente non valido” piuttosto che una pagina bianca.

In ogni caso, vista la natura estremamente sensibile dei dati sanitari, mi auguro che le istituzioni incaricate al controllo e alla gestione di questi dati si impegnino maggiormente a garantire i più alti standard di sicurezza possibili.


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!

Windows 10: come rimuovere l’icona “Riunione Immediata” dalla barra delle applicazioni

Windows 10 è un ottimo sistema operativo ma non sopporto l’idea di Microsoft di riempirlo di ogni sorta di pubblicità ai propri servizi.

“Riunione Immediata” è una funzione che sicuramente sarà molto utile a tutte quelle persone che hanno necessità di avviare una video-chiamata con pochi click ma a me disturba l’anima vedere un’icona indesiderata nella barra delle applicazioni.

Soprattutto perché non ho richiesto io di avere quell’applicazione ma me la sono trovata con gli aggiornamenti di sistema.

La mia reazione alla nuova icona

Ecco perché non appena ho visto la nuova icona nella barra ho subito cercato di capire come rimuoverla.

Ma prima di mostrarti come rimuovere dalla vista l’icona mi presento: sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Iscriviti anche al mio canale Telegram in cui, ogni martedì, commento una notizia curiosa legata al mondo tecnologico!

Come rimuovere l’icona “Riunione Immediata”

Fortunatamente rimuovere l’icona dalla barra delle applicazioni è semplicissimo ed esistono almeno due modi per farlo.

Un primo metodo pressoché istantaneo consiste nel fare click destro sull’icona e selezionare Nascondi dal menù.

Nascondi l’icona con un paio di click

L’altro modo è un po’ più lungo ma ugualmente efficace e prevede i seguenti passaggi:

  • Aprire il pannello con le Impostazioni
  • Selezionare la voce Personalizzazione
  • Selezionare la voce Barra delle applicazioni dal menù di sinistra
  • Selezionare la voce Seleziona le icone da visualizzare sulla barra delle applicazioni
  • Deselezionare Riunione immediata
Andare sul pannello di controllo è un po’ più lungo da fare ma ugualmente efficace

Nel caso in cui voglia riattivare l’icona nella barra delle applicazioni devi seguire la procedura appena descritta e abilitare la voce Riunione immediata.


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!

Linux: trovare i file più grandi o più piccoli di una certa dimensione

Copertina: trovare i file con dimensione maggiore o minore di una dimensione specificata

Le immagini costituiscono circa il 21% del totale dei dati scaricati per visualizzare una pagina.

Nell’era in cui la velocità di caricamento di un sito è fondamentale il ruolo dell’ottimizzazione delle immagini è sempre più centrale per ottimizzare una pagina web in ottica SEO.

Proprio per questo motivo nei giorni scorsi mi sono trovato a dover cercare tutte le immagini di questo sito che avessero una dimensione eccessiva in modo da poterle comprimere accelerando il caricamento delle pagine.

Se hai mai utilizzato WordPress per creare un blog saprai già che ogni immagine caricata viene salvata all’interno di una cartella con l’anno che al suo interno ne contiene un’altra con il mese (es. /2020/11/myImage.jpg).

Fino a che il numero di immagini è basso si può anche pensare di cercare manualmente i file navigando tutte le cartelle ma dopo anni e anni di file caricati l’idea di passare tutte le cartelle una per una non mi sembrava percorribile. Per questo motivo mi sono messo a cercare se esistesse un modo più furbo di affrontare il problema. Fortunatamente Linux ci viene incontro con un comando da terminale in grado di trovare istantaneamente tutti i file con dimensione maggiore o minore di un peso dato.

Ma prima di mostrarti come fare per trovare tutti i file con una certa dimensione mi presento: sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con Symfony e a cui piace condividere in questo blog le cose che impara. Iscriviti anche al mio canale Telegram in cui, ogni martedì, commento una notizia curiosa legata al mondo tecnologico!

Trovare tutti i file con dimensione maggiore o minore di un certo valore

Per farlo ti basterà utilizzare un paio di opzioni aggiuntive del comando find.

Ad esempio per trovare tutti i file maggiori di 1Mb all’interno di una cartella (e di tutte le sue sottocartelle) basterà dare il comando:

find . -type f -size +1M

Per specificare la dimensione dei file da cercare puoi passare all’opzione -size le seguenti unità di misura:

  • c per indicare la dimensione in bytes
  • k per indicare la dimensione in Kilobytes
  • M per indicare la dimensione in Megabytes
  • G per indicare la dimensione in Gigabytes

Per esempio, eseguendo il comando sulla cartella con le immagini caricate in questo blog ottengo come risultato:

./2019/06/print_queue.gif
./2020/03/vue3_cover_lm.jpg
./2020/03/IMG_20200402_121709__01.jpg
./2020/05/webpack_performance.jpg
Tutti i file con dimensione maggiore di 1 Mb

NOTA: di default il comando cerca i file includendo anche tutte le sottocartelle. Se vuoi limitare la ricerca alla sola cartella attuale puoi aggiungere al comando l’opzione -maxdepth 1

Se invece avessi voluto trovare tutti i file con dimensione minore di 500Kb avrei dovuto modificare il comando in:

find . -type f -size -500k

Infine se avessi voluto cercare tutti i file compresi tra 500Kb e 1Mb il comando sarebbe stato:

find . -type f -size +500k -size -2M
Tutti i file con dimensione compresa tra 500Kb e 2Mb

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!