G.K. Chesterton è stato uno scrittore e giornalista britannico. Ha scritto moltissimi saggi e libri, ed uno in particolare nel 1929 chiamato “The Thing” (successivamente tradotto in italiano con il…
Programmazione
Articoli riguardanti l’ arte della Programmazione.
Come evitare di usare null con esempi in Java
Durante una sua presentazione nel 2009, il famoso computer scientist Tony Hoare ha raccontato come abbia inventato la referenza a null nel 1965 nel linguaggio ALGOL. In questa stessa presentazione,…
Legge di Amdhal e legge di Gustafson per analizzare lo speedup di workload paralleli
In un mondo ideale, se il tempo di esecuzione di un programma su un singolo processore è $latex t_s$, vorremmo che il tempo per eseguire lo stesso programma su $latex…
Che cos’è io_uring e a cosa serve
io_uring è una nuova interfaccia introdotta nel kernel Linux 5.1 nel 2019. Questa interfaccia permette di chiamare systems calls che possono essere eseguite in maniera asincrona. Inizialmente è stato introdotto…
[Bash] Come scrivere in un file
Vediamo 3 modi con cui è possibile scrivere in un file da uno script bash. Possiamo usare la redirezione dello standard output, possiamo usare il programma cat per molte linee…
Ecco perchè non bisognerebbe usare mai java.net.URL e usare invece java.net.URI
La classe java.net.URL veniva aggiunta nella libreria standard di Java nel 1995, e già allora era presente un grave problema con l’implementazione del suo metodo equals. Il problema è evidente…
Introduzione alle metodologie di testing: unit testing, integration testing, e2e testing e property testing
Nel libro ‘Working Effectively with Legacy Code‘, Michael Feathers definisce il codice legacy come “codice senza test”. Questo perché è praticamente impossibile sapere se, modificando parte di un programma senza…
Crash del Sistema: i principi di Fail Closed, Fail Open, Fail Safe e Failover
Nel momento del design di un sistema, è sempre importante cercare di prevedere i possibili stati di errore. Durante il suo utilizzo però, a volte ci si trova di fronte…
Cosa sono e come funzionano le invarianti di ciclo (loop invariants)
Le invarianti di ciclo sono un utile strumento che permette di provare la correttezza e la terminazione di un algoritmo che esegue al suo interno cicli. Seguendo una metodologia di…
[OOP] Che cos’è la legge di Demetra
Popolarizzata dall’ottimo libro “The Pragmatic Programmer”, la legge di Demetra è anche conosciuta come Principle of Least Knowledge (“principio della conoscenza minima”) e suggerisce che una classe non dovrebbe conoscere…