Mantenersi l’infrastruttura di un’applicazione in casa è un rischio

E ne hanno pagato le conseguenze i mantainer del linguaggio PHP che ieri si sono visti aggiungere due commit malevoli alla branch di sviluppo della versione 8.1 in uscita a fine anno. 

Fortunatamente, grazie al processo di code review di ogni commit, è stato possibile individuare e correggere in poche ore il problema impedendo quindi che il codice venisse rilasciato nonostante i due commit fossero stati inviati utilizzando gli account di Rasmus Lerdorf e Nikita Popov (due autorità per quanto riguarda il linguaggio PHP).

Uno dei commit malevoli inviato usando l’account di Nikita Popov

Come sia potuta accadere una cosa del genere non è ancora chiaro ma si sospetta che il colpevole possa essere il vecchio server git su cui era ospitato il repository del linguaggio. Questo vecchio server era gestito “in casa” direttamente dai responsabili di PHP che ne curavano la manutenzione gli aggiornamenti e che gestivano l’amministrazione dei permessi con un progetto sviluppato ad-hoc per il servizio chiamato “Karma”.

Per tagliare la testa al toro è stato deciso di dismettere immediatamente il vecchio server per passare ad un servizio specializzato nella gestione di repository git come GitHub. In modo che i mantainer possano concentrarsi solo nello sviluppo del linguaggio senza dover dedicare attenzione al mantenimento dell’infrastruttura su cui è ospitato il repository.

Al di là degli effetti catastrofici che un attacco del genere avrebbe potuto causare alle applicazioni scritte in PHP (circa il 79% di tutte quelle web), di questa storia ci sono due aspetti che mi hanno colpito particolarmente.

Il primo è che ha ribadito l’importanza di avere un processo di code review in modo che ci siano sempre almeno quattro occhi ad ispezionare ogni modifica al codice prima del rilascio in modo da garantirne la qualità e, come in questo caso, l’assenza di vulnerabilità.

Il secondo aspetto è legato alla comodità dei servizi Platform-as-a-Service (Paas) a cui è possibile delegare completamente la gestione dell’infrastruttura dell’applicazione. In molti ambiti si dice che “se una cosa funziona allora non si tocca”. Questo motto è quanto di più sbagliato esista nel mondo dell’informatica visto il ritmo estenuante con cui vengono rilasciati aggiornamenti e patch di sicurezza. Per cui quello che oggi funziona ed è sicuro rischia di essere vulnerabile domani se non ha personale dedicato che segue attentamente il ciclo di sviluppo del software. Molto spesso si preferisce tenere il server che ospita l’applicazione “nello scantinato” per risparmiare i soldi che un provider cloud richiede per lo stesso servizio senza intuire quali sono i vantaggi derivanti dall’investimento.

https://news-web.php.net/php.internals/113838


Grazie per aver letto questo articolo della rubrica Input/Output.
Ogni martedì prendiamo in input una notizia legata allo sconfinato mondo tecnologico e ci ragioniamo insieme per produrre nuove idee in output.
Infatti sono fermamente convinto che solo esponendosi ad input a cui gli altri non si espongono si possa arrivare a produrre risultati innovativi a cui gli altri non arrivano.
Ah, io sono Lorenzo Millucci e ti aspetto martedì prossimo per un nuovo input!

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!

La crisi dei chip nel mercato delle automobili

I produttori di auto utilizzano un approccio “Just in time” per l’approvvigionamento dei chip elettronici necessari alla costruzione dei veicoli. In questo modo non è necessario tenere riserve di chip all’interno degli stabilimenti produttivi ed è sufficiente limitarsi ad ordinare i microprocessori che servono nel momento in cui servono. Così facendo si riducono i costi di stoccaggio dei componenti e, considerata l’evoluzione dell’elettronica, si minimizzano il rischio di trovarsi con scorte di chip obsoleti.

Questo approccio alla gestione del magazzino ha funzionato alla grande permettendo alle case automobilistiche di seguire con precisione le piccole oscillazioni di domanda che si hanno in condizioni normali.

Ma poi è arrivata la pandemia…

Da un giorno all’altro la popolazione si è trovata ad essere confinata in casa e a non aver più bisogno di una nuova auto.
I produttori di auto allora, rispondendo al crollo della domanda, hanno interrotto immediatamente le forniture di microprocessori.

Quello che nessuno si aspettava era che la domanda di veicoli potesse ritornare ai volumi pre-pandemia già da fine 2020. Nel frattempo però le fonderie avevano dirottato la propria capacità produttiva al servizio dei big dell’elettronica i quali già da diverso tempo arrancavano nel cercare di soddisfare l’altissima richiesta di processori per computer, schede grafiche e componenti per smartphone. Infatti, se segui il mondo dei videogiochi saprai sicuramente quanto è difficile trovare in vendita una PlayStation 5 o un Xbox Series X proprio a causa della bassissima disponibilità causata dalla carenza di chip.

Di conseguenza il mercato automobilistico si è trovato senza scorte di processori e nell’impossibilità di ottenere rifornimenti in tempi brevi. Proprio per questo motivo General Motors si è trovata costretta a chiudere temporaneamente 3 stabilimenti che non erano più in grado di produrre alcunché senza disponibilità di microprocessori.

Secondo i più ottimisti la situazione potrebbe stabilizzarsi già a metà 2021 ma ci sono voci che parlano di una risoluzione definitiva del problema non prima del 2022.

È incredibile come questi giganti del mercato dell’automobile in realtà si appoggiassero su piedi di argilla. E altrettanto incredibile è il fatto che un’automobile il cui costo supera spesso e volentieri le decine di migliaia di euro non possa essere consegnata a causa della carenza di qualche chip da poche manciate di euro.

In ogni caso in questi giorni, andando a sentire da un concessionario la prima data di consegna disponibile per un veicolo nuovo è inizio agosto. Quasi 5 mesi da oggi!

Fonte

Grazie per aver letto questo articolo della rubrica Input/Output.
Ogni martedì prendiamo in input una notizia legata allo sconfinato mondo tecnologico e ci ragioniamo insieme per produrre nuove idee in output.
Infatti sono fermamente convinto che solo esponendosi ad input a cui gli altri non si espongono si possa arrivare a produrre risultati innovativi a cui gli altri non arrivano.
Ah, io sono Lorenzo Millucci e ti aspetto martedì prossimo per un nuovo input!

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!

WordPress: Disabilitare i Google Fonts sul tema Jupiter X

Jupiter X è un tema per WordPress che concentra eleganza e personalizzabilità senza compromettere le performance del sito.

Tra le varie possibilità di personalizzazione del tema c’è non poteva mancare quella dei tipi di carattere da utilizzare. Tra i vari tipi di font che è possibile abilitare nel tema ci sono anche i Google Fonts.

Il problema con i Google Fonts però è che basta abilitarne una tipologia per fare in modo che il tema scarichi tutti i font di Google (compresi quelli non necessari). E il download di asset non necessari al sito non viene visto di buon occhio dall’indicatore delle performance dei segnali Web Vitals.

Sfortunatamente non esiste un modo per permettere il download selettivo dei font Google necessari (anche se gli sviluppatori ci stanno lavorando) ma esiste il modo per disattivare completamente il download dei Google Fonts e scaricare manualmente solo quelli utili.

Ma prima di vedere come disattivare completamente i Google Fonts 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!

Disattivare completamente i Google Fonts

Per disattivare completamente i Google Fonts scaricati dal Jupiter X devi fare una piccola modifica al file functions.php:

function lm_disable_jupiterx_webfonts() {
    wp_dequeue_style( 'jupiterx-webfont' );
    wp_deregister_style( 'jupiterx-webfont' );
}
add_action( 'wp_print_styles', 'lm_disable_jupiterx_webfonts' ); 

Puoi fare questa modifica direttamente dal pannello di controllo del sito andando su Aspetto -> Editor del tema e selezionando la voce “Theme functions” oppure modificando il file wp-content/themes/jupiterx/functions.php con il tuo editor preferito.

Una volta salvate le modifiche il sito verrà caricato senza i Google Fonts. Se utilizzavi i Google Fonts in qualche pagina ora, avendoli disattivati, la vedrai con il font predefinito.

NOTA: Per accertarti che il cambiamento non lasci in cattivo stato qualche pagina ti consiglio di di fare un bel giro all’interno del sito verificando che non si sia rotto nulla.

Abilitare selettivamente i Google Fonts

Qualora tu abbia bisogno di attivare una singola font-family di font per il tuo sito puoi modificare lo script descritto precedentemente aggiungendo esplicitamente quale Google Font tu voglia caricare.

Ad esempio, se tu volessi caricare il font “Roboto” dovresti modificare lo script in questo modo:

function lm_disable_jupiterx_webfonts() {
    wp_dequeue_style( 'jupiterx-webfont' );
    wp_deregister_style( 'jupiterx-webfont' );
    
    // Import only webfonts actually used
    wp_enqueue_style( 'gfonts-roboto', 'https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap' );
}
add_action( 'wp_print_styles', 'lm_disable_jupiterx_webfonts' ); 

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!