Tarin Gamberini

A software engineer and a passionate java programmer

Controllore di vulnerabilità di dipendenze Java pronto all'uso

La maggior parte del Software Libero o a Sorgente Aperto è costituiti sia da nuovo codice sorgente sia da codice “binario” di terze parti. Quando scriviamo un nuovo software lo facciamo dipendere da molte librerie di terze parti (tali librerie da cui dipende sono anche chiamate dipendenze).

Per dare una idea riguardo a quanto possa essere complesso e profondo il grafo delle dipendenze supponiamo che il nostro nuovo software abbia una dipendenza diretta sulla libreria di terza parte rampart-core-1.3 (sulla sinistra nella figura sopra). Tale libreria dipende a sua volta da librerie di terze parti. Questo secondo livello di librerie di terze parti, rispetto al nostro software, comprende librerie dette dipendenze transitive. Ora pensate che il nostro nuovo software potrebbe avere molte dipendenze dirette ed immaginatevi di quante dipendenze di terze parti potrebbe essere costituito.

Grazie ad alcuni Analizzatori Statici di Codice java pronti all'uso sappiamo come scovare alcuni bug nel codice sorgente, ma cosa possiamo dire dei bug e delle vulnerabilità presenti nelle dipendenze di terze parti?

Il resto di questo post al momento è disponibile solo in inglese.

Diventa un traduttore!

Analizzatori Statici di Codice java pronti all'uso

Un analizzatore di codice statico è un software che ispeziona un dato codice sorgente, o un dato codice compilato, al fine di scoprire problemi di varia natura che spaziano dai bug al codice duplicato, da questioni di prestazioni ad aspetti di leggibilità.

FindBugs, PMD and Checkstyle sono tre analizzatori di codice statico estremamente semplici da usare.

Il resto di questo post al momento è disponibile solo in inglese.

Diventa un traduttore!

Refactoring Esplorativo

Un paesaggio da esplorare

by Andrew Collins - CC-0

Il Refactoring Esplorativo consiste in una serie di piccole modifiche applicate al codice sorgente che sono eseguite dal programmatore allo scopo di rispecchiare meglio ciò che ha compreso del codice esplorato.

Come l'esplorazione è un modo per scoprire luoghi camminandovi attraverso a disegnando una mappa, così il Refactoring Esplorativo è un modo per scoprire cosa fa un frammento di codice leggendolo e riscrivendone una piccola parte.

Il Refactoring Esplorativo è una tecnica che uno sviluppatore, che lavora su del codice legacy, potrebbe usare per capire la logica del codice prima di iniziare con il refactoring vero e proprio.

Il resto di questo post al momento è disponibile solo in inglese.

Diventa un traduttore!

Strumenti per l'identificazione delle Competenze Digitali

Infografica

by European Schoolnet - CC BY-SA 3.0

Il 15 gennaio 2016 le associazioni ICT insieme ad AgID presentano i dati 2015 sulle competenze digitali:

... il livello di copertura delle competenze è al 67% delle società in house delle Regioni e Province Autonome, ... scende al 41% nella PA Centrale e al 37% nella PA Locale.

In generale le giornate dedicate alla formazione per la crescita delle competenze interne sono pochissime: la media è di 6,2 giornate annue pro-capite nelle aziende ICT, 4 nella PA, 3 nelle aziende utenti.

Ma come identificare le competenze digitali?

Scegli il tuo font oppure lui sceglierà te

La settimana scorsa, un mio collega si è seduto alla mia postazione di lavoro per insegnarmi come risolvere un problema che aveva avuto nell'utilizzare una (non molto intuitiva) interfaccia client. Era divertito dall'aspetto dei caratteri nella mio IDE e trovava divertente che avessi scelto il font Dejavu Sans Mono per scrivere programmi.

Penso che ogni programmatore avrebbe dovuto pensare a quale font utilizzare, almeno una volta nella propria vita professionale, sia per essere più produttivo, sia per ridurre errori di lettura, e anche per alleviare l'affaticamento degli occhi.