Chi sono

Mi chiamo Matteo Contri e mi definirei un sistemista/programmatore.
Mi occupo di informatica fin da quando ho memoria: prima alle prese con i comandi DOS. poi con le finestre di Windows ed infine sono approdato alla linea di comando di Linux.
In questo percorso mi ha sempre accompagnato la programmazione: BASIC è stato sostituito da Delphi che a sua volta ha ceduto il passo a PHP(e qualcos'altro).

rovescia

Competenze

  • Tutte
  • Nessuna
  • Database
  • Distribuzioni
  • Editor
  • Framework
  • Linguaggi
  • Mailserver
  • Monitoring
  • Networking
  • Virtualizzazione
  • Web
  • Webserver
netfilter

IPTables/NetFilter

Fin dalla notte dei tempi è stato il firewall di Linux: prima ipchains, poi iptables, con le sue versioni ip6tables per IPv6 ed infine l'ultimo arrivato, nftables. Un altro must-have per configurare un sistema Linux
nmap

NMap

Dalla rapida conta degli host presenti in una rete alla scansione di Internet, NMap è uno strumento all'apparenza semplice ma dotato di funzionalità estremamente avanzate. Un altro must-have
openvpn

OpenVPN

Software di primissimo ordine: ha contribuito enormemente all'abbandono di IPSec in favore delle più gestibili VPN SSL. Ove possibile è sempre la mia scelta in termini di sicurezza e flessibilità
openvswitch

OpenvSwitch

OpenvSwitch può letteralmente fare tutto quello che uno switch (anche davvero costoso) può fare. Forse anche qualcosa più
strongswan

Strongswan

tra tutti i vari fork e cloni per gestire IPSec, Strongswan è quello che preferisco. E' proprio IPSec che non mi entusiasma...
wireshark

Wireshark

Per me sniffare ha sempre significato "ispezionare i pacchetti di rete" e quando qualcuno usa altre accezioni solitamente inclino la testa come una lucertola in segno interrogativo. Wireshark? Ah- sì, è il pusher del networking; cioè volevo dire: è il migliore.

Sublime Text

Veloce e rivoluzionario. Con una buona emulazione di vi. Peccato per i tempi di sviluppo, il supporto a PHP limitato e qualche altra magagnetta

Visual Studio Code

Tutto quello che vorreste da un editor di testo avanzato. Unico neo il plugin di vi fa sentire la mancanza di vi...

Vim

Vi è sempre vi, o si ama o si odia. Certo che occorre passare troppo tempo per configurarlo decentemente come editor avanzato

NeoVim

Vi con dei default accettabili e tante belle idee per il futuro. Tenete duro e sarete il mio prossimo editor preferito!

Nginx

Il webserver per eccellenza: velocità, stabilità, funzionalità e sicurezza

Apache

Malgrado il nome che porta ho sempre trovato macchinosa la sua configurazione, poco leggibili i suoi file XML di configurazione e un assoluto non-sense i tanto blasonati .htaccess

Lighttpd

Avevo grandi aspettative su questo piccolo gioello. Purtroppo lo sviluppo pare stagnante ed i concetti interessanti assorbiti dai colossi concorrenti

Internet Information Services

Ogni minuto speso su IIS è un minuto perso

Varnish

Varnish non è un vero WebServer, ma un "acceleratore di applicazioni web". Tuttavia la necessità di avere un'applicazione congegnata per essere utilizzata con questo software e la complessità esponenziale delle sue regole, relega Varnish a prodotto di nicchia per pochi ambiti

Redis

Database in memoria con modello chiave-valore. Velocità imbattibile. Serve altro da aggiungere per innamorarsene?

MongoDB

Uno dei primi database NoSQL, con alti e bassi è rimasto un faro nel mondo contrapposto alla struttura SQL. Potente e flessibile

MySQL

Un grande database con una storia pluriennale messo in ombra dalle luci poco chiare di Oracle. Peccato

MariaDB

Le stesse caratteristiche che hanno reso grande MySQL, con il miglioramento delle performance e una licenza opensource chiara rendono MariaDB il mio database semi-relazionale preferito

SQLite

Agile, compatto ma comunque completo. Quando non ci sono grosse pretese è il mio database di riferimento

PostgreSQL

Il suo approccio estremamente formale, con infinite personalizzazioni dalla gestione utenti alla creazione degli schemi lo rendono un prodotto valido ma elefantesco. Mascotte davvero azzeccata

Gentoo Linux

Distribuzione basata su sorgenti e completamente configurabile. Alle volte i tempi di compilazione sono snervanti, e mantenere una toolchain di compilazione non è il traguardo della sicurezza. Non è per cuori deboli

Funtoo Linux

Distribuzione derivata da Gentoo con degli interessanti spunti. Purtroppo non risolve le problematiche endemiche del suo genitore

Alpine Linux

Tutto quello che volevo creare con Gentoo è stato condensato in questa minimale distribuzione. Semplice. Sicura. Adorabile

RedHat

E' stata la mia prima vera distribuzione prima che diventasse completamente commerciale. Ormai detta legge

CentOS

Un clone piuttosto fedele di RedHat. Per chi ha budget limitati ma non si fida delle alternative

Fedora

Migliora ad ogni release. Ormai per quello che mi riguarda è sinonimo di workstation e produttività

Ubuntu

Alla costante ricerca di personalità, Ubuntu si trova spesso a dei bivi che puntualmente sbaglia (mir, upstart, bazaar, etc.) lasciando perplessi sulle decisioni. Versione server con caratteristiche interessanti

Debian Linux

O si ama o si odia. Apprezzo la sua stabilità e il suo ruolo, ma ricado nella seconda categoria

Slackware

Approccio ruvido e spartano. Per veri puristi hardcore, intramontabile e longeva distribuzione

OpenSuse

Non aggiunge molto di nuovo ai rivali. Nota di merito per la rolling release pur essendo una distribuzione basata su binari

PHP

Non è il più veloce, non è il più facile, non è il più completo e non è nemmeno il più coerente. Eppure PHP fa così bene tutte queste cose da rimanere il mio preferito. Notevole il salto di performance dalla versione 7

JavaScript

Volenti o nolenti tutti devono avere a che fare con JavaScript. E' ovunque ma la sintassi discutibile e la variabilità di implentazione lo rendono imprevedibile. Meglio con ECMA6 ma molto migliorabile

jQuery

Dopo qualche momento a lottare con la follia di JavaScript si finisce per abbracciare sempre un qualche strumento che semplifichi la vita: jQuery è uno di questi, forse il più conosciuto ed utilizzato

jQueryUI

Invece di aggiungere tonnellate di funzionalità alla libreria jQuery, gli sviluppatori hanno pensato bene di creare una libreria nuova con tanti effetti visivi e componenti aggiuntivi. Raramente ne ho tratto beneficio

Perl

Vittima della maledizione delle versioni 6, Perl eccelle su regex e script di medie dimensioni. La sua sintassi estremamente flessibile permette fin troppe combinazioni lasciando anche troppa libertà al programmatore

Python

Come tutti i linguaggi senza il terminatore di comando non incontra la mia simpatia. Potente e supportato. Contro: avere due major release attive e parallele sta creando non pochi inconvenienti

D

Il nome fa capire quanta ambizione ci sia dietro al progetto. E bisogna ammetterlo D è davvero potente, purtroppo non vedo un vero significativo miglioramento rispetto al suo predecessore alfabetico

Nim

Un linguaggio di scripting compilato. Suona assurdo? Provare Nim per ricredersi. Una frescata di novità e semplicità, peccato per la mancanza del terminatore di comando e l'indentazione forzosa alla Python

Rust

Memory-safe senza garbage collector? Suona eccitante soltanto a dirlo, ma Rust è molto di più e gli sforzi profusi da Mozilla dietro questo progetto sono notevoli. Riusciranno a renderlo un linguaggio un po' più facile da usare?

Delphi

La naturale evoluzione di Pascal ad oggetti dal futuro quantomai incerto. Se è piaciuto Pascal, le stesse sensazioni si avranno con Delphi. Ormai è un po' che non stringiamo amicizia ma sinceramente non ne sento la mancanza

C

C è il linguaggio dei linguaggi. C è tutto ciò che è intorno a noi. C ha creato l'universo digitale come lo conosciamo... C è C. E la C sta per complicato e compilato

C++

Non che con C non si potessero fare gli oggetti, ma un po' di comodità a queste povere anime dannate!

Java

Linguaggio decisamente logorroico e farragginoso. Oracle ha dimostrato tutto il suo disammoramento, e la comunità farà bene a farsi avanti. Rimane pur sempre utilizzatissimo soprattutto nel settore enterprise

Go

Google ha reso C++ semplice e maneggevole. Molte librerie e il sicuro appoggio di Google lo rendono un prodotto idoneo alla sfida di eliminare C/C++ dalla scena

Twig

Prodotto efficiente e collaudato, non è un vero linguaggio ma un template engine con una sua sintassi. Di chiara ispirazione a Django rende scrivere codice con il paradigma MVC un autentico piacere

Bash

La shell di riferimento per antonomasia rende la possibilità di scrivere relativamente facili programmi di scripting. Un must-have nell'arsenale di ogni sistemista

SCSS/Sass

Quando mi trovai a scegliere tra Sass/SCSS e Less non ebbi dubbi. Il tempo mi ha dato ragione e questo sistema elegante per agevolare la scrittura dei CSS ormai è diventato lo standard de facto

Ruby

Per essere elegante è un linguaggio abbastanza elegante... Per essere semplice è un linguaggio abbastanza semplice, ma è lento. E la velocità è il primo parametro preso in considerazione in ambito enterprise

Yii Framework

Agli albori sembrava promettente, ma di fondo si percepiva un'idea confusionaria di base. Una volta appresi i fondamenti di Symfony mi sono ben guardato dal riusarlo. Al momento pare decotto

Laravel Framework

L'unico vero antagonista di Symfony. Documentazione davvero di ottimo livello, facile da usare, purtroppo l'utilizzo di Eloquent al posto di Doctrine gli fa perdere quel tanto che da preferire altro

Symfony Framework

Sono davvero poche le scelte che trovo discutibili su questo framework che ha rivoluzionato l'ecosistema di PHP. Potente e flessibile offre tutti gli strumenti di cui uno sviluppatore può aver bisogno. Novità entusiasmanti dalla versione 4

HTML

HTML5 è fico. E' semplice, espressivo, aperto e perdona qualche errore. Lunga vita all'HyperText Markup Language!

CSS

Con i Cascading Style Sheets ormai si può fare quasi tutto. Dalle animazioni alla grafica SVG. Il degno compagno di HTML

XML

Extensible Markup Language ha avuto il suo momento di gloria con il periodo XML-RPC, dopodichè la sua difficoltà di lettura e la sua verbosità lo hanno un po' emarginato

JSON

JavaScript Object Notation è facile da leggere, abbastanza da parsare e richiede poca elaborazione. Facile intuire il successo che ha avuto

Bootstrap

All'inizio vi era il chaos. Poi arrivò Twitter, e creò praticamente uno standard

Wordpress

Odio pochi software quanto Wordpress. Il discorso è semplice: per gli sviluppatori è atroce, per gli utenti è troppo complicato. L'unica categoria a cui piace è quella dei webdesigner, e nemmeno a tutti

Docker

Il re dei container: ha creato intorno al suo nome un enorme ecosistema fatto di immagini, tutorial e comunità di entusiasti. La sua architettura monolitica ha creato un po' di problemi in alcuni momenti di sviluppo

Rkt

Prendere Docker, renderlo snello ed efficiente e ribattezzarlo con un nome un po' bislacco: ecco Rocket! Se non avete ancora un'infrastruttura a container è sicuramente da valutare

LXC

Il vero capostipite della containerizzazione. Non so quanto sia diffuso il suo utilizzo senza altri strumenti tipo Docker o Rkt, ma se questi software esistono lo dobbiamo a lui

KVM

La sua ingegnerizzazione a piccole dosi nel kernel ne ha consentito uno sviluppo rapido e consolidato; inoltre l'adozione di QEMU per la parte userspace ha permesso una diffusione capillare. Collaudato e veloce

Xen

Nato da una tesi universitaria ha rivoluzionato il concetto di virtualizzazione di un tempo. Purtroppo l'eccessiva lentezza nell'escogitare un piano per l'inclusione nel kernel mainstream ne ha segnato il destino

QEMU

Ho conosciuto QEMU tanto tempo fa come vero emulatore di piattaforme; nel tempo è diventato qualcosaltro: il compagno ottimizzato di KVM e sotto questo riflettore è davvero veloce ed interessante

Silex

Il primo prodotto a microkernel di casa SensioLabs. Come pronosticato non sopravviverà a Symfony4, che ne assorbe ed estende i concetti.

Exim

Configurabile sotto ogni punto di vista. Un grande software di gestione della posta con radici antiche

Dovecot

Sicuro, veloce e affidabile. Una solida garanzia per IMAP e POP3!

DSpam

Un filtro bayesiano avanzato in grado di catalogare un flusso di dati in pochi secondi. Purtroppo l'autore principale si è ritirato dallo sviluppo e la comunità sta faticosamente proseguendo il lavoro. Peccato

Bogofilter

Bogofilter è un progetto semplice, ma assolutamente efficace e funzionale. Al momento lo sviluppo stagna

CRM114

CRM114 è un filtro bayesiano che implementa tutte le combinazioni di algoritmi conosciute dall'uomo. Impara, lo fa bene ed in fretta. Anche qui i progressi sono fermi a qualche anno fa. Menzione d'onore al sistema di scripting per creare regole personalizzate

Wireshark

Per me sniffare ha sempre significato "ispezionare i pacchetti di rete" e quando qualcuno usa altre accezioni solitamente inclino la testa come una lucertola in segno interrogativo. Wireshark? Ah- sì, è il pusher del networking; cioè volevo dire: è il migliore.

etcd

Un sistema distribuito chiave-valore permette di eseguire un monitoraggio distribuito di vari parametri. Non scala in maniera lineare e gli stessi autori consigliano di non superare il numero di 7 nodi

Consul

I concetti sono i medesimi di etcd: un database distribuito di chiavi-valori, ma l'implementazione sfruttando il protocollo gossip lo rende più robusto e scalabile dei concorrenti

Nagios

Ho abusato di Nagios in ogni modo, forzando escalation, aumentando ad un secondo il polling, creando complicate liste di contatto: non si è mai tirato indietro. Stabile come una roccia

Prometheus

Alcuni ex-Googlers hanno deciso di stravolgere il modo di fare monitoring, e ci sono riusciti! Anzichè pensare di gestire un evento con un suo stato, immaginiamo di gestire un flusso di dati ed imporre delle soglie con un flessibile meta-linguaggio. Rivoluzionario

NMap

Dalla rapida conta degli host presenti in una rete alla scansione di Internet, NMap è uno strumento all'apparenza semplice ma dotato di funzionalità estremamente avanzate. Un altro must-have

OpenvSwitch

OpenvSwitch può letteralmente fare tutto quello che uno switch (anche davvero costoso) può fare. Forse anche qualcosa più

Strongswan

tra tutti i vari fork e cloni per gestire IPSec, Strongswan è quello che preferisco. E' proprio IPSec che non mi entusiasma...

OpenVPN

Software di primissimo ordine: ha contribuito enormemente all'abbandono di IPSec in favore delle più gestibili VPN SSL. Ove possibile è sempre la mia scelta in termini di sicurezza e flessibilità

IPTables/NetFilter

Fin dalla notte dei tempi è stato il firewall di Linux: prima ipchains, poi iptables, con le sue versioni ip6tables per IPv6 ed infine l'ultimo arrivato, nftables. Un altro must-have per configurare un sistema Linux
dritta

Pinzillacchere

rovescia

Aneddoti tecnici

rifattorizzazione-software-php

rifattorizzazione software php

tempo di lettura: 16 minuti(continua)

sabotare la macchina del caffè

tempo di lettura: 7 minuti(continua)
sabotare-la-macchina-del-caffe
una-vita-senza-mouse

una vita senza mouse

tempo di lettura: 3 minuti(continua)