Alessio Biancalana Grab The Blaster di Alessio Biancalana

Un nuovo logo per Fedora

Fedora new logo proposal

Parliamo di questo nuovo logo che Fedora sta analizzando: sono veramente troppo troppo contento che il progetto Fedora, una delle distro Linux a cui sono più affezionato e che mi ha servito più fedelmente, stia valutando una nuova proposta di logo.

Le proposte che hanno ricevuto maggior cura, attenzioni, e su cui sta avvenendo una scrematura e un rework ulteriore sono due: io nell’immagine allegata in capo al post ho inserito quella che mi piace di più, che mi piace (giustappunto) un casino perché rappresenta un punto di rottura rispetto al passato, un rebrand forte dove non è più la “goccia” classica a rappresentare Fedora, quanto il simbolo dell’infinito che ho sempre trovato d’ispirazione.

Questa proposta si presta oltretutto benissimo alle varie coniugazioni di Fedora, dalla versione Server a quella Workstation, e gli splash screen che verrebbero fuori secondo me sono clamorosi. Ci sarebbe sicuramente uno slancio maggiore verso un futuro più roseo, magari un po’ di adoption in più. Se solo Adwaita (il tema di default di GNOME) fosse più accattivante oltre che funzionale.

Fwd: Engineering management: the pendulum or the ladder

Mi è capitato oggi di cominciare a leggere un post di Charity Majors sulla dicotomia tra management e ruoli operativi nelle aziende tech. Devo dire che la metafora della scala e del pendolo che usa mi ha colpito molto, e ci sono tantissimi estratti che da una persona di maggior esperienza possono essere veramente utili a qualcuno che come technical leader si vuole fare le ossa.

More critically, your patterns of mind and habits shift over time, and become those of a manager, not an engineer. Consider how excited an engineer becomes at the prospect of a justifiable greenfield project; now compare to her manager’s glum reaction as she instinctively winces at having to plan for something so reprehensibly unpredictable and difficult to estimate. It takes time to rewire yourself back.

If you like engineering management, your tendency is to go “cool, now I’m a manager”, and move from job to job as an engineering manager, managing team after team of engineers. But this is a trap. It is not a sound long term plan. It leads too many people off to a place they never wanted to end up: technically sidelined.

Devo dire che questi paragrafi mostrano un pattern che ho visto ripetersi tante e tante volte su persone vicine geograficamente, vicine al cuore, e anche lontane rispetto a entrambi gli ambiti, quello geografico e quello affettivo. Ce la metti tutta come developer, e la tua azienda pensa che farti smettere di programmare sia qualcosa che possa minimamente interessarti. Personalmente, sono arrivato alla conclusione che per me potrebbe essere uno sgarbo tra i peggiori1.

Per chi vuole programmare, personalmente ho sempre considerato l’intraprendere un percorso da manager estremamente stupido. Anche perché la leadership tecnica spesso è qualcosa di totalmente diverso, e necessita che la propria figura resti autorevole nel tempo; per fare questo è necessario praticare il pendolo, ovvero continuare a sporcarsi le mani con l’operatività ove possibile. E questo non è assolutamente praticabile in ruoli di “manager management”. Intraprendere una carriera diversa dovrebbe essere un cambiamento dettato dalle proprie aspirazioni in assoluto, non da (tra l’altro) un fattore monetario. Il che ci porta al punto successivo.

It is in no one’s best interest for money to factor into the decision of whether to be a manager or not. Slack pays their managers LESS than engineers of the same level, and I think this is incredibly smart: sends a strong signal of servant leadership.

Quanto è bello leggere queste parole? Parecchio.

E purtroppo è meno bello ma vero, troppo vero, leggere una tra le conclusioni:

If you want a sustainable career in tech, you are going to need to keep learning your whole life. The world is changing much faster than humans evolved to naturally adapt, so you need to stay a little bit restless and unnaturally hungry to succeed in this industry.

Stay restless ragazzi. Qualche notte alzati, e potreste mettere un divario incolmabile tra voi e i vostri pari (di grado, di età). Non è molto incoraggiante, ma per quanto l’IT sia pieno di placidi nerdacchioni dal cuore gentile, è anche pieno di persone che hanno una voglia di imparare che alla maggior parte delle persone “ordinarie” risulta quasi tossica.

  1. Assicuratevi che la vostra azienda sappia che voi volete programmare, se volete farlo. 

An unexpected, awesome, journey – ovvero il mio clamoroso viaggio negli Stati Uniti tra The Big Elixir, New Orleans, e una stupenda New York

Ho aspettato troppo a scrivere questo post. Non avrei voluto farlo, vorrei aver documentato ogni briciola del mio viaggio oltre oceano, vorrei aver fotografato ancor più di quanto ho fatto, vorrei aver fatto di ogni cosa almeno il doppio, lo vorrei così tanto che già ho intenzione di tornare e troppo grande è la sensazione struggente che mi coglie ogni volta che ripenso a tutto quello che è successo una volta salito su quell’aereo, insieme ad Agnese. Una volta varcato il confine americano. Una volta arrivato a toccare con un dito quello che è uno scampolo di vita da quelle parti così piene di tecnologia, di progresso a volte forzato.

Alcune briciole le ho lasciate, ma non è abbastanza. E ogni volta che provavo a riassumere in qualche modo il mio viaggio, non era possibile perché questa bestia abnorme non sapevo da che parte prenderla. Così metterò in pratica il consiglio degli amici che ci hanno ascoltati al ritorno: “Beh, comincia dall’inizio”.

E giustappunto, l’inizio

Un arrivo concitato in aeroporto, baci in fretta e furia per paura che i controlli ci rallentino, una coda sorprendentemente liscia verso un aeromobile enorme che deve portarci al di là del Mediterraneo prima, e dell’oceano poi: una decina di ore dopo lo stesso aeromobile tocca terra, e noi reduci da un viaggio non poi così noioso veniamo sbalzati da una coda all’altra. Prima il controllo dei documenti di viaggio, poi l’aereo per New Orleans. Nel frattempo però ci teniamo a prenderci un assaggio dell’America: un hamburger, appena arrivati, così a gradire. Un paio d’ore dopo arriviamo a New Orleans, ed è una sera un po’ particolare.1

Stretto il sodalizio con il clima umido, ci siamo affidati ad un taxi per arrivare sino in albergo, nei meandri del quartiere francese, in una sera così nebbiosa da dover andare avanti a tentoni, nella quale l’architettura del quartiere ha dato il meglio di sé accogliendoci in una coperta notturna spettrale così insolita per noi da inquietarci anche durante i due metri di tragitto dall’auto alla porta dell’albergo.

Albergo che con la sua parete di mattoni e le sue luminarie soffuse mi ha dato quella sensazione da “mi trovo sul set di Intervista Col Vampiro o cosa?” molto più di tante altre piccolezze. Forse più di quello c’è stata solo la location dove si è tenuto The Big Elixir, la conferenza su Elixir il cui biglietto mi è stato regalato da Agnese.

Il primo giorno ci siamo goduti New Orleans in tutto il suo splendore. Visita d’ordinanza al Lafayette N. 1 Cemetery, dopodiché dritti al Garden District2. Per pranzo non te lo mangi un po’ boy3? E poi dritti a fare un tour del bellissimo bayou, dove abbiamo trovato ad attenderci un sacco di alligatori, un sacco di vegetazione di palude e soprattutto un tenerissimo uragano che ci ha tenuto a ricordarci dove eravamo e chi comandava inondandoci di pioggia, vento e fango a tratti.

The Bayou

Per essere la prima giornata non era niente male no? Nonostante New Orleans ci avesse accolti con una perfetta ambivalenza tra il suo splendore e una dimostrazione di quanto potesse essere terribile, noi eravamo lì, pronti ad immergerci in entrambe le cose. E affogati lo siamo stati davvero, con quella pioggia. Nonostante questo però io mi sono innamorato a prima vista di una parte degli Stati Uniti che ci tenevo tanto a vedere, e che ho scoperto essere tenace come poche regioni del mondo: passata la pioggia, di nuovo tutti a suonare e cantare per strada. Bourbon Street è una piccola meraviglia, nonostante il disagio che può suscitare a persone dalla provenienza simile alla nostra. Il centro “turistico” di New Orleans è sfrenato in ogni aspetto della festa; da quello musicale, dove ragazzi di ogni ceto sociale mettono l’anima nel loro strumento causando quantomeno un sorriso a ogni passante, noncuranti della cacofonia dei diversi generi che si mescolano nell’aria fino quasi a diventare una melodia unica, a quello sessuale, dove le case di piacere non fanno mistero alcuno di avere ognuna a disposizione “the best chicks in town”, con tanto di buttadentro.

Nonostante la mentalità aperta, non nego che questa cosa mi abbia fatto pensare, e tutt’ora scrivendo mi ricordo di aver espresso anche ad alta voce il parere che una camminata su una di queste strade farebbe bene a chiunque. Amsterdam, New Orleans, poco importa: fa sempre bene entrare in contatto con leggi e costumi diversi da quelli della propria cultura d’origine.

Una colossale mangiata piena di piatti Cajun4 e un sonno ristoratore dopo, eravamo pronti. La mia lei per addentrarsi nei meandri di una New Orleans ancora umida del giorno prima e piena di cultura mistica da esplorare, il sottoscritto per il primo giorno di The Big Elixir.

Garden district

The Big Elixir - Day 1

Non avevo capito bene. E quando l’ho realizzato, comunque non mi aspettavo che fosse così, qualsiasi cosa significhi “così”. Suggestivo? Da pelle d’oca? Anticheggiante5?

Me! A day after a long, long trip

Fatto sta che The Big Elixir si è tenuta in un teatro. E i teatri a New Orleans sono fatti come ti aspetteresti da un teatro dove recita tutte le sere il Fantasma dell’Opera. Non il romanzo, proprio il fantasma in persona. Poltrone di velluto rosso, legno ovunque, travi che reggono il soffitto da rimirare in qualsiasi momento, lampade che ricordano lanterne con tanto di candela dentro appese alle pareti, ornamenti in ferro battuto intorno alle luci in uno stile barocco ma non troppo che strizza l’occhio ad ogni appassionato di cultura dark. L’unica cosa che non ci fa pensare di essere tornati indietro nel tempo è la cura per ognuno di questi particolari. L’essere infilati in un contesto dove comunque ne emergono altrettanti datati anni duemila, come il pavimento. Una mescola perfetta per ospitare una conferenza su un linguaggio di programmazione all’avanguardia, talmente all’avanguardia che consente di essere produttivi in un soffio e poter affrontare agevolmente tematiche e problematiche che con altre tecnologie richiedono settimane di studio solo per arrivare ad una strategia di base, come la distribuzione.

Quel linguaggio è Elixir. E un teatro di New Orleans è il posto dove ho scoperto che Elixir non è soltanto un linguaggio che mi piace. È una tecnologia che adoro.

The Big Elixir in a theater

Dopo un benvenuto da parte degli organizzatori, ovvero Joe Ellis, Nicky Mast e Bryan Joseph, siamo partiti a bomba con la sessione di apertura: la keynote di Josh Adams. Adams è veramente uno che spacca: ha portato il suo punto di vista sulle similarità che hanno le piattaforme oggi, e cosa significhi nel 2018 “building a system”, uno di produzione per giunta. Ci ha offerto uno spaccato incredibilmente preciso di come alcuni tratti di un progetto software siano straordinariamente comuni, di quali sono i tratti somatici di un buon progetto, come replicarli nei nostri e soprattutto quali sono le sue scelte per quanto riguarda Elixir. Siccome ha iniziato a sciorinare un sacco di roba, ed era tutto fichissimo, mi sono preso gli appunti sulle best practice da adottare in un progetto Elixir, che riporto qui sotto:

  • Process! Scegliete un buon tool di processo, e soprattutto applicatelo. Il processo fa parte del sistema che costruiamo, non ne è avulso. I passi che una feature compie prima di andare in produzione sono importanti quanto la feature stessa e quanto le tecnologie che usiamo.
  • Dialyzer per il type checking
  • Semaphore per la Continuous Integration. Io uso Travis, ma questo vale la pena approfondirlo. In ogni caso, se il progetto prevede più di due commit scemi, mettetelo sempre sotto Continuous Integration, anche solo per vedere se continua a compilare in un ambiente asettico.
  • Coveralls per la code coverage. Quanto codice in percentuale è coperto da test automatici? Io personalmente non considero la coverage un tema caldo all’interno dei miei progetti, ma ultimamente ho rivalutato in positivo lo sviluppo test-driven. In ogni caso le feature business critical andrebbero sempre coperte da test unitari e d’integrazione. Cosa che di solito il tuo capo non ti dà mai il tempo di fare.
  • Ebert per l’analisi statica del codice e code review automatiche. Penso sia una figata, non l’ho ancora mai usato, ma nei progetti ricchi di regole e regolette può essere un’arma potentissima.
  • Dependabot per le pull request automatiche in caso di aggiornamento delle dipendenze del nostro progetto. Personalmente ho trovato questa pratica molto utile nel tempo, soprattutto per avere immediatamente, one-click-away, aggiornamenti di sicurezza importanti in un lampo. In azienda stiamo iniziando a usare Greenkeeper per questo; non conoscevo Dependabot, ma credo che gli darò una chance nel prossimo futuro.
  • Absinthe come libreria per GraphQL
  • Distillery per le release. Una delle cose più importanti, per me, all’interno di un progetto; e devo dire che Distillery ti permette di fare le cose in un modo che non so se va benissimo o va malissimo, ma è il mio modo. Ce ne sono tanti come lui ma questo è il mio.
  • Docker per gestire i container. Da qui è partita una interessantissima digressione su come i container stiano diventando lo standard de facto per operare il software, dallo sviluppo alla produzione. Il che ci porta dritti, infatti, a…
  • Kubernetes per la produzione. Quando ho sentito questa parola mi sono spaventato, perché mantenere un cluster Kubernetes secondo me richiede uno sforzo tale da necessitare un team dedicato, ma Josh ha nominato un paio di tool e concetti clamorosi.
  • StatefulSet, un concetto/feature di K8s per gestire applicazioni stateful. Chiaramente quando abbiamo uno stato che ha bisogno di essere mantenuto, come quello che portano in pancia i nostri GenServer, ci serve qualcosa in più che la classica deployment strategy.
  • ksonnet. “Streamline how you write and deploy Kubernetes configurations”. Sembra veramente una grande promessa. Ho smesso di smanettare con Kubernetes, ma se riprendessi questo sarebbe veramente un bel modo di riprendere.
  • Prometheus come tool per collezionare le metriche, unito a Grafana per visualizzarle.

Cosa portiamo a casa da questo talk? Un sacco di roba, mh? Mi ci è voluto tutto il resto della conferenza per digerirla. Ho anche fatto due chiacchiere con Josh, che è veramente un tipo a posto, tanto da avere anche uno sticker di qualcosa che rappresenta una parte stupenda e rilevante della mia vita, ovvero Arch Linux.

Mentre ci gustavamo ancora qualche scone, godendoci una scelta musicale clamorosa che spaziava da Dave Brubeck a Santana, è iniziato il talk di Jon Carstens, TIL by breaking production. Una collezione stupenda di “WTF facts” relativi a servizi Elixir in produzione, false sicurezze degli sviluppatori, e qualche piccolo quirk illustrato da una persona che di Elixir sotto gli occhi ne ha visto passare parecchio:

  • Occhio alle guardie che usiamo
  • È stata la seconda persona di fila a consigliare di usare il type checking con Dialyzer. Io ancora non ho provato, e mi sento una brutta persona.
  • Varie ed eventuali utili, tipo IO.inspect, il debugger, e il consiglio di usare direttamente Erlang per formattare i numeri decimali.

Di seguito, i talk rispettivamente di Eric Oestrich e Logan Leger, l’uno legato più alla distribuzione e alle applicazioni multinodo, mostrando le ottimizzazioni che sono state fatte su ExVenture per renderlo performante anche sotto un carico abnorme, l’altro legato al deployment tramite Terraform su AWS di un’applicazione basata su Phoenix Framework. Ed è proprio qui che, oltre a rendere onore alla pazzia di Eric, ho cominciato a sentire la parola “Phoenix”, parola il cui uso si è protratto fino alla fine della conferenza; personalmente ho iniziato a rendermi conto da poco di quali siano le potenzialità di un framework full-stack di questo tipo, e invece a New Orleans ho trovato un sacco di persone molto legate a questo framework, che ormai è un po’ lo standard de facto per le applicazioni web in Elixir.

Successivamente è stata la volta di Desmond Bowe, che ci ha spiegato per filo e per segno come funziona un Hot Upgrade, spiegandoci il fatto che gli hot upgrade del codice6 non sono gratis, assolutamente (anzi), e soprattutto che non si comportano benissimo con Docker. Quindi, innanzi tutto, per fare hot reload del codice da una versione all’altra della nostra applicazione ci sono tre concetti da afferrare:

  • Niente Docker (con buona pace di tutti i promotori di Docker e Kubernetes, tra cui mi trovo anch’io)
  • Le funzioni che possiamo scrivere all’interno dei nostri GenServer per gestire l’aggiornamento di versione in versione
  • Ma soprattutto il fatto che questa non è roba “brainless”, anzi, e dobbiamo capire bene come funziona il file relup generato da Elixir/Erlang.

Subito dopo, un talk che mi ha emozionato un sacco anche solo per lo speaker: Paul Schoenfelder, l’autore di Distillery, ha presentato Cadre, una libreria ancora in lavorazione per gestire la distribuzione delle applicazioni. Il talk di Paul mi ha un po’ deluso, ma emozionato allo stesso tempo. Mi ha deluso perché non mi aspettavo una cosa di una complessità simile e secondo me parlando di distribuzione è facile mancare il punto: da una certa slide in poi hanno cominciato a volare per la sala formuloni e paginate di calcoli, senza arrivare a qualcosa di convincente tranne quello che ha finito per emozionarmi. Ovvero il fatto che con Elixir, come ho già scritto sopra, possiamo permetterci di trattare con sufficienza tutto il resto dei problemi che avremmo usando un’altra piattaforma o un altro paradigma. Problemi come la scalabilità e la concorrenza. Problemi a cui possiamo permetterci di fare una risata in faccia, per dedicarci ad affrontare qualcosa di ancora più complesso, come la distribuzione, con un set di attrezzi veramente potenti che ci faccia sentire a casa nostra. Elixir è una piattaforma orientata al risultato, e questo talk me l’ha fatto percepire. Le slide erano piene di codice; non pseudocodice, codice reale. Ed era sorprendentemente poco.

Joe e Bryan, dopo questo ultimo talk, hanno invitato tutti all’happy hour in un locale meraviglioso dove ci hanno servito, coi nostri bigliettini per i free drink, un bel po’ di birre locali. A quel punto mi ha raggiunto Agnese, che continuava a guardare la mandria di nerd attorno a lei affascinata, annuendo mentre le raccontavo di tutto quello che questa giornata ha significato per me.

E c’era persino un secondo giorno tutto da affrontare.

The Big Elixir - Day 2

Il secondo giorno di The Big Elixir è iniziato, per me, con una passeggiata insieme alla mia fidanzatina verso il teatro, facendo qualche foto a New Orleans, e cercando negozi di cose fichissime tipo un sacco di teschi. Una volta arrivati, una volta indossato il mio badge, ma soprattutto una volta ingerito un numero di scone che credo sia illegale in almeno quaranta stati7, abbiamo iniziato subito col talk di Ben Wilson, l’autore di Craft GraphQL APIs in Elixir with Absinthe, che ci ha portato un talk stupendo sul linguaggio di dominio, sul non capire più bene che cosa fanno determinate applicazioni “sotto il cofano” dopo tanti anni di vita, ma soprattutto su come riscriverne alcune parti, su come la programmazione funzionale abbia aiutato il suo team a “ricatturare” il controllo sugli applicativi, e su come Elixir come piattaforma abbia giocato un ruolo chiave in questo, grazie anche all’event sourcing8.

Successivamente è stato il turno di Jeff Martin di Teachers Pay Teachers, che ha dato degli indizi interessanti su come testare una API GraphQL abbastanza grande con poche librerie, come una custom che varia da progetto a progetto e che fa wrapping di ExUnit.Case, come Sobelow. O best practice come il property testing. Devo ammettere che nonostante fosse sicuramente più lineare come talk questo di quello (ad esempio) di Paul Schoenfelder, ci sono stati passaggi che mi hanno aperto la testa in due.

E ancora, Brooklyn Zelenka con Exceptional, una libreria per la gestione di eccezioni ed errori, esposta in un talk che aveva un solo grande punto chiave: “let it crash” non è sempre la strategia giusta. Poi abbiamo avuto sul palco Matthew McClure e Jaqui Manzi, ad esporci qualcosa di lapalissiano eppure così tante volte (almeno negli ambienti sia virtuali che reali che frequento io) dimenticato: Phoenix è un framework potentissimo, che mette a disposizione di tutto, e che consente di risolvere qualsiasi necessità nella metà del tempo. Nello specifico, loro hanno scritto un’applicazione di real-time analytics (una dashboard interna di Mux.io) in poco tempo, con pochissimo codice, rispettando le deadline cortissime che avevano.

Come ultimi due talk, Elijah Kim che ci ha mostrato come implementare un event bus da zero usando GenStage con delle slide divertentissime, e il buon Justin Schneck di Nerves, che ha affrontato un excursus attraverso tutte le potenzialità, le funzioni e le cose meravigliose che ci offre il progetto Nerves. Contestualmente ha fatto vedere un sacco di esempi di progetti hardware costruiti con Nerves, tra cui il meccanismo di accensione della sua moto che reagisce a un gesto particolare delle braccia del suo giubbotto. Da pazzi, mh? Farci una chiacchierata a evento terminato è stata una delle soddisfazioni più grandi di sempre.

Justin Schneck presenting Nerves @ The Big Elixir

Verso New York City

Ed è così che mi sono apprestato a lasciare New Orleans, una città che mi è rimasta radicata nel cuore e non se ne andrà mai. Un posto davvero particolare, che mi ha fatto assaggiare la carne di alligatore, che mi ha fatto ascoltare dell’ottima musica, che ha coronato uno dei miei sogni di sviluppatore. Proprio a poche ore dalla serata in hotel che poi ci ha condotti all’aeroporto e poi nella grande mela, ho ricevuto un tweet del mio amico Andrea, che mi avvisava che CouchDB stava cercando contributor per portare la suite di test di integrazione immensa che hanno da JavaScript a Elixir. Ho pensato, perché no? La conferenza mi aveva lasciato il desiderio bruciante di mettere in pratica tutto quello che avevo imparato su un progetto reale. CouchDB mi attirava, l’avevo già visto e non avevo idea che si potesse contribuire anche su quel fronte. Così ho cominciato a portare una piccola suite di test, scrivendo il codice sin dall’aereo del ritorno. Poi un’altra. In men che non si dica, sono diventato un contributor fisso della loro suite di test Elixir, e voglio continuare a farlo per fare advocacy del mio linguaggio preferito anche con loro. Il team di sviluppo sta persino pensando di supportare Elixir per scrivere nuove feature di CouchDB, e questo oltre ad essere positivo secondo il mio punto di vista, è anche incoraggiante per altri sviluppatori più giovani9.

New York – this is my spot

Ero moderatamente preparato a quanto cara fosse New York. Cara in senso pecuniario intendo. Quello che invece non ero assolutamente preparato ad affrontare invece, è stato quanto mi sarebbe stata cara nel cuore, quanto mi avrebbe riscaldato, quanto sarebbe stato tutto ammantato di un calore soffuso datomi dalle persone che avevo intorno e da un posto che – ho scoperto – mi sa far sentire a casa in mille e una maniere.

New York and a ship going

Non so veramente da dove partire con il racconto di una permanenza di una settimana e più nella Grande Mela, quindi partirò dalla cosa più prossima a me in termini di affetto. Anche se li vedevo solo per la prima volta, Barbara, Edward e il piccolo Ulysses, amici di Agnese da così tanti anni che non bastano le dita di svariate mani a contarli, ci hanno fatti sentire i benvenuti. In città, nel quartiere, nel salotto di casa loro, ovunque. E prima di farci fare un giro per Dumbo e per il Lower East Side, ci hanno tenuto a ribadire chi comanda preparandoci una cena tipica americana clamorosa. A loro io dico grazie. Perché oltre la cena, oltre lo scorrazzamento vario, hanno persino condiviso con noi un pub crawl del venerdì sera, dopo il lavoro. Con una performance10 anche degna di nota, devo dire.

Ed è stato a quel punto, frastornato da Time Square, davanti all’ennesima New York Slice, guardando il Flatiron Building11, che ho pensato: ok, io ho un problema con questo posto. Io voglio viverci. Perché è una città che sa farti sentire compreso e benvenuto, è casa di tutti e nessuno allo stesso tempo, ed è qualcosa che ti si radica dentro sin dall’aeroporto.

NYC skyline

Con Agnese abbiamo fatto un numero veramente infinito di cose. Due sono quelle che però mi piace ricordare più affettuosamente, oltre il pub crawl e il pastrami da Katz: la visita all’American Museum of Natural History, e la visita al Whitney Museum of American Art.

Katz' pastrami

La prima mi è rimasta piantata dentro con gli artigli, artigli da velociraptor. Già, perché nel museo di storia naturale oltre ad essere conservati una marea di diorami con animali da ogni ecosistema possibile e un quantitativo imbarazzante di oggetti e vestiti provenienti da ogni cultura, hanno un piano completamente dedicato ai dinosauri. Mi sono quasi commosso di fronte ai loro scheletri completi di allosauri, triceratopi, maiasauri, e persino uno stupendo titanosauro. Sono rimasto colpito dall’approccio all’arte che hanno i musei americani, quei pochi che ho visto: c’era persino un fossile esposto appositamente per essere toccato; ed ho potuto realizzare un piccolo sogno della mia infanzia, quello di toccare un vero osso di dinosauro, io che da piccolo guardavo Alan Grant e Ian Malcolm in Jurassic Park sognando di diventare l’uno o l’altro. E – beh – con la mia fissa per la programmazione funzionale e la vicinanza che ho sempre provato da quando faccio il mio mestiere nei confronti della matematica, forse ho preso più da Malcolm che da Grant. Con la differenza che posso toccare un fossile, oggi, senza provare un brivido a causa di un morso di tirannosauro.

AMNH dyno

Il Whitney invece mi è rimasto impresso in maniera totalmente diversa, per due motivi: ho sempre sottovalutato l’arte contemporanea anche nei suoi esponenti più chiacchierati, e ho avuto l’occasione di ripensarci con una stupenda mostra su Andy Warhol. In secondo luogo poi, perché Agnese ha scovato per me un’esposizione sull’arte generativa e algoritmica, ossia “Programmed: Rules, Codes, and Choreographies in Art, 1965–2018”.

Programmed: Rules, Codes, and Choreographies in Art, 1965–2018

Se avete una ragazza che gode a fomentare il vostro animo nerd per stupirsi e immergercisi, può capitare di ritrovarsi in cose assurde come questa esposizione che sinceramente mi ha lasciato senza fiato per la maggior parte del tempo, e soprattutto rintronato alla fine della visita. Rintronato da voci, suoni, opere e omissioni che i curatori della mostra avevano piazzato in ogni dove, rendendo quello specifico piano del Whitney un coacervo di pirpiri e piripò, di trombette, di suoni di transistor, di pigolii di aggeggi, ma soprattutto di musica proveniente dalla gigantesca installazione che accoglie gli spettatori all’ingresso, fatta di decine di televisori in sequenza che cambiano immagine a ciclo continuo, secondo un algoritmo prestabilito, mandando in onda a ripetizione videoclip musicali.

Già solo così mi consideravo soddisfatto. E invece no: c’era il resto della mostra, una mostra completamente dedicata a ciò che può venire fuori dalla mente umana unita alla computazione automatica di forme, colori, suoni. Mi hanno colpito parecchie cose.

Me at Programmed

Primi fra tutto i lavori semi-3D animati di Casey Reas, dei programmi in JavaScript che disegnano forme in dipendenza delle forme vicine e ne muovono dei particolari. Le sue “Software Structures” sono un esempio meraviglioso di macchina che debitamente istruita può generare arte a partire da una descrizione in linguaggio naturale. Qui potete vedere qualche esempio.

Un’altra cosa che mi ha mandato fuori di testa è stata “Baby feat. Ikaria” di Ian Cheng: un software, riprodotto su un televisore verticale enorme, che esegue a turno delle richieste a tre chatbot diversi, mettendoli in comunicazione tra loro. Il risultato del dialogo viene a sua volta passato a una libreria di text-to-speech, e contemporaneamente analizzato per produrre un’immagine che va via via congregandosi e disgregandosi. Il dettaglio inquietante e meraviglioso al tempo stesso è che la voce del text-to-speech è quella di un bambino, il che ci fa sprofondare nel surreale più assoluto: un etereo bambino meccanico che chiede una storia ad un robot, il quale comicia a raccontarla con la voce del bambino stesso. Da quest’opera sono stato letteralmente rapito.

The visuals and behaviors of the floating debris capture an artificial intelligence that is lifelike yet mechanistic, reflecting the mix of nonhuman and human conversations that increasingly permeates our lives.

Ultimo ma non per importanza è stato CodeProfiles, che da sviluppatore chiaramente mi ha mandato in visibilio: un software che è in grado di analizzare il codice sorgente di un altro software, e in base a quello che legge produrre poi delle linee sullo schermo, che spesso e volentieri si traducono in veri e propri disegni, forme d’onda, colori e variazioni di tono. La chicca, per finire, è che CodeProfiles in questa esibizione è messo all’opera su se stesso, leggendo il proprio codice, e fermandosi sui propri cicli for per produrre raggi, righe, disegni. Un’intuizione che mi ha fatto rimanere a bocca aperta, e che mi ha fatto riflettere un sacco sull’estetica del codice, su quanto la concezione di “bel codice” possa andare ben oltre il mero funzionamento e la logica pulita, su quanto fosse vera la proverbiale frase di Matt Mullenweg “Code is poetry”.

Per vedere CodeProfiles all’opera come l’ho visto io, potete andare a guardare su YouTube.

Programmed: Rules, Codes, and Choreographies in Art, 1965–2018 mi ha fatto impazzire. È una mostra che dà tantissimo a chi è appassionato di tecnologia e di approcci non convenzionali all’arte, di cultura contemporanea, di innovazione, di futurismo e mezzi nuovi. Se capitate a New York prima del 14 Aprile prendetevi questo consiglio, custoditelo e mettetelo in pratica durante il vostro viaggio che sicuramente sarà stupendo. Se a New York ci vivete, beh, non mi resta che dirvi che avete appena trovato come spendere un sabato mattina.

Andy Warhol – From A to B and Back Again

Nonostante Programmed mi abbia colpito molto di più, complice l’affinità che ho nei confronti dell’ambito tecnologico che rimane il mio lavoro nonché il mio più grande hobby, l’esibizione su Warhol merita assolutamente un po’ di parole.

Ho sempre trovato interessante il lavoro di Warhol, ma non c’era mai stato niente a chiamarmi all’approfondimento. Poi è successo qualcosa di magico: ho letto “Infinite Jest”, di David Foster Wallace, così pieno di spunti, di innovazione, di particolarità da lasciarmi squassato. E in Warhol, nei suoi cortometraggi e nella sua stravaganza così compatta ho ritrovato così tanto di James Orin Incandenza, così avanguardistico da tenere le persone incollate a un televisore per sempre, così pazzo da infilare la testa in un microonde, da farmi venire la pelle d’oca.

Ho subito un’attrazione fatale nei confronti dei video di Warhol più che verso le sue opere relative al disegno e alla replica. Trovo che il suo video mentre mangia un hamburger sia clamoroso e talmente precursore di alcuni generi di video su YouTube che probabilmente tra anni e anni staremo ancora scoprendo cose di un futuro, di una contemporaneità nostra, che lui aveva visto tanto e tanto tempo prima.

La fine di un viaggio

E così siamo qua. Io davanti ai miei monitor in ufficio a Roma, Agnese nella stanza accanto, tornati dal gorgo statunitense che ci ha preso, impoverito in maniera considerevole il portafogli, arricchito senza possibilità di misura l’anima.

Un po’ ci ha stancati tutto ciò, è vero, ma con noi portiamo tanti nuovi ricordi, tanti addobbi per il nostro albero di Natale, un’esperienza in più sul groppone e una voglia rinnovata di mettercela tutta. Senza contare la depressione che mi ha attanagliato il cuore il giorno del ritorno: il taxi l’ho chiamato con la morte dentro, e c’era una parte di me che sperava costantemente che il nostro aereo non partisse mai. Sono state le ferie più belle di sempre, e il ritorno al lavoro è stato come una porta in faccia. Nonostante la faccia ammaccata, però, è stato bello osservare le facce dei nostri amici di fronte a questo racconto, ed è stato bellissimo dover condensare tutto questo in uno scritto, perché mi fa capire ad ogni scroll del mouse quanto abbiamo vissuto e quanto vogliamo ancora vivere. Quanto possiamo fare e splendere. Quanto sarà bello andarci ancora, a New York, e a rivedere New Orleans magari per un Halloween.

E magari un giorno viverci. Chissà.

Central Park boat

P.S.: Le foto dove ci sono io ritratto sono ad opera della mia meravigliosa Agnese.

Agnese

  1. Volete cenni metereologici sulla Louisiana? Eccovene un paio, relativi al nostro soggiorno. Non appena siamo scesi dall’aereo, ci ha colti una cappa che ha rischiato seriamente di farci prendere un coccolone (termine per dire un colpo. Credevo fosse romano, ma il Garzanti mi stupisce e mi dice che è italiano). L’umidità regna sovrana, ma a tratti. Fortunatamente per noi era inverno, quindi ce la siamo cavata tra il caldo assurdo, il freschetto di alcune sere, ma soprattutto un tour nel bayou con tanto di alligatori interrotto improvvisamente da un piccolo uragano durante il quale la nostra barchetta stava per affondare dato che ha cominciato a piovere talmente tanto da allagarci. In salvo dagli alligatori che ci avrebbero sicuramente trinciati in parti uguali, ci siamo rifugiati nel centro visitatori. Non credo che dimenticherò mai l’immenso uomo di colore che mi si è parato davanti quando ho aperto la porta per guardare se c’era ancora la tempesta perfetta, il quale fradicio emergendo dalla coltre di pioggia mi ha guardato e con un sorrisone ci ha urlato “… and welcome to Louisiana, guys!” 

  2. Distretti e posti da cui siamo andati e venuti con Lyft. Non lo conoscevo assolutamente, e mentre avevo avuto modo di installare e paciugare con Uber, ho approfittato di questa esperienza sul suolo statunitense per provare il suo competitor diretto. Devo dire che sono rimasto sorpreso dalle tariffe vantaggiose, almeno in Louisiana, ma soprattutto dalla qualità delle applicazioni iOS e Android, sempre reattive e con una UX disegnata da mani sapientissime e cervelli ineguagliabili. Una volta tornati in Italia, per giunta, ho scoperto che Lyft è la “mamma” di due software open source clamorosi: Envoy (emergente standard de facto per service mesh et al.), e Confidant (un bel gestore di secret). 

  3. Ho documentato la mia digressione sui po’ boy qui, se volete. 

  4. Gumbo, Jambalaya, and so on: ho scoperto di amare la cucina creola, e ho scoperto che è davvero facile ingurgitando cose che non costano poi così tanto. L’alligatore è un piatto abbastanza comune, così come i gamberi d’acqua dolce, spammati dentro ogni pietanza a non finire. Tutto questo rigorosamente in albergo, almeno per la prima sera: sul suolo statunitense, sprovvisti di JustEat e senza la benché minima voglia di uscire dato che eravamo appena rientrati e fuori impazzava un piccolo diluvio, abbiamo approfittato di ogni chance per provare Uber Eats. E DoorDash. E Caviar. Siamo stati fortunati, credo sia il miracolo del Natale un po’ di giorni prima, ma abbiamo preso pochissimo peso - e questo nonostante le ripetute staffilate di mac ‘n cheese, New York slice, cheesecake, hamburger, […] scones, muffin, cupcake. E nonostante una cena americana a regola d’arte preparata da Barbara e Eddie, i meravigliosi amici di Agnese che ci hanno accolti, implumi e reduci da tre ore di aereo e un inaspettato cambio di itinerario della “subway line” su cui ci trovavamo, nel loro appartamento a Brooklyn. 

  5. Esiste questa parola? Ho deciso di fidarmi del mio istinto, e ho deciso di sì. 

  6. Ovvero quando abbiamo un’applicazione che sta girando, e rimpiazziamo i suoi file sul disco. La BEAM (ovvero la macchina virtuale di Erlang/Elixir) se ne accorge, e se istruita a dovere mette in pratica tutto quello di cui c’è bisogno per servire il nuovo codice direttamente agli utenti. È un meccanismo molto potente, ma a cui bisogna stare molto attenti. 

  7. Ragazzi, gli scone. Ma che ve lo dico a fare, non potete capire. 

  8. Segnatevi questa “cosa”. L’event sourcing è un pattern che sta prendendo parecchio piede ultimamente, ma che soprattutto ho visto trattare in questa e altre conferenze nei modi più creativi. Ci torneremo su più avanti. 

  9. Non per darvi dei vecchi, cari Erlangers, ma un po’ lo siete. Poco poco. Promesso. 

  10. Eddie, we’re totally going to Jimmy’s Corner next time. I’m working towards having countless chances to do that. You’re the only person I know that can discuss Andy Warhol’s works during a pub crawl, and it was amazing! 

  11. Ho sviluppato una fissa per il Flatiron assurda. Quasi nulla mi ha colpito, durante la nostra permanenza a Manhattan, quanto quel particolare edificio che non solo è a forma letteralmente di ferro da stiro, ma è così architettonicamente ineccepibile e magnificente da sembrare bidimensionale visto da un determinato angolo. Ogni volta che passavamo lì vicino, gli rivolgevo uno sguardo affettuoso. Credo di averlo anche sognato. 

New year's eve, ovvero la mia retrospettiva su questo 2018

Mi servirebbero delle slide

Per tenere il punto

Di tutte le cose che ti voglio dire

Una canzone, l’unica canzone che io sia mai stato in grado di scrivere, inizia così. L’ho scritta quest’anno. Ed effettivamente, per quest’anno ci vorrebbero davvero tante e tante slide per analizzarlo, metriche alla mano, e per raccontare tutto quello che è successo.

Quest’anno è iniziato malissimo. È iniziato nell’incertezza, nell’oscurità, nella consapevolezza, nuova, improvvisa, di avere qualcosa di irrisolto alle spalle e di star camminando con la palla al piede, una cavigliera da arresti domiciliari dettata solo dalla mia sconsideratezza, dalla mia disattenzione per i dettagli, da un eccesso di senso di colpa per le morti che mi porto dietro e che non riesco a superare, e per le vite che tante volte non riesco ad arricchire come vorrei.

Le vite degli altri.

Ma anche la mia.

È stato un 2018 strano, che nella prima parte, nel dolore, mi ha fatto imparare tanto. E sapete qual è la prima cosa che ho imparato? Non c’entra la vita, no, ho imparato prima di tutto qualcosa che riguarda me stesso. Ho imparato che se c’è qualcosa che so fare, è rialzarmi quando tutto sembra perduto. Smetterla di piangermi addosso, trovare la forza e mollare un destro.

E il destro l’ho mollato. Aprendomi la strada a colpi di cannone verso la seconda parte del 2018, la parte in cui ho conosciuto una felicità sfolgorante, la parte in cui mi sono buttato a terra come un verme e ho deciso che era importante che notassi che tutto quello che avevo imparato a fare, era ora di imparare a farlo di nuovo. Imparare a camminare.

Ho trovato una persona che mi si è messa accanto, e in un momento di massima disperazione mi ha detto “vieni qua. Curiamo queste ferite, poi ti insegno come si fa”. Mi ha fatto capire quanto dietro la maschera della mia sicumera crassa si nascondessero le incongruenze che mi avevano portato a quel punto. Ho cercato un analista, e ho iniziato un percorso insieme a lui che mi ha permesso di riportare chiarezza nella mia testa, e di poter essere un uomo migliore per la persona che ho affianco.

Lei si chiama Agnese, è bionda, gioca a fare la bionda, ma non è così bionda come uno potrebbe pensare. Ha un coltellino svizzero della dialettica in tasca. È simpatica, così simpatica da farti mancare il respiro a forza di battute, travolgente, intelligente anche se non si confessa tale. È una donna dai mille perché, e dal momento in cui l’ho incontrata mi è stato impossibile smettere di parlarle.

Mi spertico in lodi non perché mi piace ed è la mia fidanzata, ma perché è stata la prima persona a credere in me, quando io ero alla canna del gas, quando credevo che sarei stato considerato uno stronzo da tutti. Perché? Beh, perché avevo deciso di interrompere un rapporto di sei anni e un matrimonio, spiegando le mie ragioni, non venendo compreso, venendo additato come colui che abbandona. Ed è stato lì che ho scoperto che la maggior parte del mondo è una merda. Che fai cose, ti spieghi, non vieni capito. Lotti, e ricevi solo manganellate in fronte.

Ma è stato lì che ho scoperto anche che quando ogni altra luce si spegne, la luce di Earendil esiste e può essere accesa solo invocando il nome delle persone che ti sono più vicine. Persone che a buon bisogno sanno come ci si sente, sanno cosa ci vuole, sanno come farti felice. Persone che sanno metterti una mano sulla spalla, sollevarti, insegnarti di nuovo a compiere i passi, da zero.

Da zero perché quello che c’era fino a quel momento era scorretto.

Ho ricominciato a vivere. Ho ricominciato a viaggiare. Ho ricominciato ad amare.

Ho ricominciato a parlare ai talk, e ho notato che ho iniziato a prendere sul serio alcuni aspetti di me che prima neppure conoscevo. Ho imparato a non fare promesse a vuoto. Ho imparato a non parlare prima di essere sicuro di poter fare. Ho imparato che un’azione conta come cento parole, e che a volte quelle parole è meglio risparmiarsele, agendo e basta.

Ho imparato però che a volte le parole servono. Per non tenersi tutto dentro. Per comunicare. Per far capire a chi mi sta intorno come mi sento e per ricevere un feedback. Questo lo devo principalmente a due persone: ad Agnese, e a Gianluca, il mio analista.

Ed è stato così che ho riscoperto cosa significa essere me. Ci ho messo un po’ per liberarmi da tutto quello che mi portavo dentro, ma ho conosciuto una felicità come mai mi sarei aspettato, dopo tanta lotta con me stesso e col mondo. La seconda parte di quest’anno è stata all’insegna di questa luminescenza, luminescenza che viene da me ma viene anche da Agnese, che stata la prima artefice di tutto questo, che mi ha fatto vedere quanto valevo, quanto ancora potevo dare a questo mondo, e quanto potrò fare negli anni a venire. Volevo dedicarle un paragrafo, un capitolo, un qualcosa, ma la verità è che tutto questo post è dedicato a lei, perché senza di lei non sarei riuscito ad arrivare nemmeno alla metà dei traguardi che ho raggiunto quest’anno. Traguardi che, paradossalmente, hanno molto a che vedere col settore tecnologico di cui parlo su questo blog.

Ad esempio:

  • Ho visitato New York e New Orleans per la prima volta. Tra pochissimo pubblicherò un post dettagliato, per ora vi basti sapere che è stato il miglior viaggio della mia vita, dove ho assistito a una conferenza su Elixir, a un alligatore che mangia un marshmallow, e al fatto che la vita è meravigliosa (hi Ulysses! This is for you!)
  • Ho tenuto il mio primo talk in inglese. Quasi in lacrime. Davanti a una piccola platea tra cui la nostra insegnante di soft skill Krishma Parekh (si, abbiamo fatto un corso aziendale di soft skill). Ed è stato bellissimo, perché non solo non ho parlato di qualcosa di tecnico, ma ho parlato del mio mantra di quest’anno: “when unsure, go back to basics. Always.”
  • Ho imparato che a volte più che un principio immutabile (tipo una best practice) è importante portare a una platea la propria esperienza, per fornire un punto di vista aggiuntivo.
  • Ho ricominciato a parlare in pubblico, in assoluto. Forse sto anche cambiando stile.
  • Ho maturato un’esperienza di programmazione funzionale abbastanza consolidata grazie al fatto di aver imparato a valutare in maniera più seria i miei side project e le mie idee.
  • Sono diventato un contributor di CouchDB!

me e Agnese

C’è tanto e tanto altro. Ma l’aspetto principale, che permea tutto questo, è l’avere costantemente la mia fan numero uno a bordo campo. È stata la conquista più grande di quest’anno, e come è normale che sia vi trovate a leggere di lei spesso. Anche se lei si imbarazza e mi apostrofa sempre di non scrivere così tanto ché poi sembro un sottone. Ma che ci posso fare?

Un messaggio a reti unificate dal presidente Blaster

Tirando le somme di quest’anno, non c’è spazio per analizzare tutto nel dettaglio. Quello che vedo è tantissima felicità, e tantissime battaglie, ognuna combattuta con fatica. Mi ricordo del bene che mi è stato voluto, dell’amore che ho ricevuto, ma soprattutto della grande massa di sesquipedali stronzi figli di puttana che ci hanno tenuto a ricordare quanto piccoli siano, quanto la dimensione che gli si confà sia quella del kindergarten, e quanto alla fine tutto l’odio che mi è stato rivolto contro abbia solo funto da propellente per andare avanti col meglio di me.

E nella giornata, presto notte, di San Silvestro, quello che voglio ricordarvi è una cosa: guardate sotto il letto, prima di addormentarvi. Potrebbe esserci il mostro che risiede nella vostra coscienza, coi denti affilati, in attesa della prossima vittima. E se non ne trova, non gli resterà che saziarsi delle vostre carni.

È tempo di andare avanti. Ma non di dimenticare i vostri nomi.

Ma soprattutto, è tempo di smetterla col senso di colpa: se non mi avete capito, allora sono cazzacci vostri.

Torniamo, però, a un tono normale.

(2018) => 2019

Siamo quindi alle porte di questo 2019: speriamo che ci regali tanta felicità, almeno regalandoci una maggioranza di governo nuova. Per me è tempo di buoni propositi, una volta terminata l’analisi, e quindi quest’anno voglio fare le seguenti cose:

  • Tornare a New York. Viverci, forse, tra un po’.
  • Tanto tanto Elixir, tanta tanta programmazione funzionale
  • Almeno un esame all’università. Ho il libro di Fisica Generale che ormai mi supplica.
  • Tante tante persone giuste, sin dalla mezzanotte. Chi c’è stato da prima, chi ci sarà poi. Per sorridere ancora e ancora, per essere felici, per vivere nell’amore, senza il timore di essere giudicati, senza freni, senza niente che non siano lacrime di contentezza.

Per me quest’anno è stato un anno di resoconti, di chiarificazione, di scoperta. Alla luce di quello che ho scoperto, ossia che si può sorridere a volte oltre ogni umana possibilità, do il benvenuto ad un anno di gioie, continuando sulla scia della seconda parte di questo, che mi ha regalato tanto. Un anno di sfide. Un anno fatto di intensità, abbracci, viaggi, traguardi, braccia al cielo, baraonde, calore, e visto che leggete questo blog tanto tanto tanto codice.

Me lo auguro per me. Ma lo auguro soprattutto a voi.

Buon inizio 2019, ragazzi miei.

Nest is sexy

Se c’è un oggetto che nelle ultime settimane ho bramato, quello è il Nest. Poi ho letto il post di Andrea, e la mia sete di potere nei confronti della temperatura dentro casa è solo aumentata esponenzialmente. Il motivo è piuttosto semplice: se attraversi un periodo un po’ particolare dove hai molto da fare e torni a casa in maniera assolutamente irregolare, hai bisogno di poter impostare il riscaldamento in maniera decisamente più flessibile (e quindi da remoto, leggasi) di come ti permetta qualsiasi termostato, anche uno tra i più evoluti come quello che ho io – che però, purtroppo, essendo evoluto a sufficienza per guidare un’astronave, ma avendo solo un piccolo monitor LCD con dei controlli piuttosto esigui, beh la verità è che più lo guardo più non capisco una mazza di quello che c’è scritto sopra.

Classico giro di idraulico e risolto con un’uscita, quest’ultimo mi ha fatto notare la vecchiaia dei miei termostati, difficili da impostare quanto Java senza aver mai visto un linguaggio di programmazione.

Andrea mi ha fatto pensare alla mia esperienza di questi giorni. Un’esperienza fatta di “manual mode” perché sono stato capace di studiare Rust in qualche ora, ma non riesco a trovare la voglia di capire come si programma quell’aggeggio del diavolo. Nest, dal canto suo, ha un monitor decisamente migliore e ho una voglia di sperimentarlo che levati, per questo e per due motivi ancora:

  • Alexa è arrivata dentro casa! Siamo i fortunati possessori di un Amazon Echo, e tra poco ne arriveranno altri. Il motivo principale era la filodiffusione, ma vorrei vedere se riesco a sfruttare o sviluppare qualcosa tipo “Alexa, accendi il riscaldamento”;
  • Ho il riscaldamento autonomo, quindi a parte la spesa iniziale non dovrei aver bisogno di niente se non di un cacciavite (heh: ottimista).

Al solito, la user experience da rivedere completamente la noti quando hai un problema grosso. Non stiamo morendo di freddo, certo (anzi), ma vuoi mettere accendere i riscaldamenti senza mani? E senza timer? E senza niente?