Erlang factory lite e UniversalJs day

5'
Marco Perone 12/04/2017 05:54
Categoria: Varie

Perché andare ad una conferenza alla volta quando si può andare a due conferenze in due giorni? Questo è il pensiero che devo aver fatto quando ho visto che Erlang Factory Lite e UniversalJs Day si svolgevano in due giorni consecutivi. E’ stato impegnativo, ma ne è decisamente valsa la pena!

Erlang Factory Lite era la prima conferenza italiana a tema Erlang/Elixir. L’aver scelto Roma come location della conferenza e la presenza di due dei creatori di Erlang ha attirato partecipanti da tutta Europa per un pubblico molto internazionale.

La giornata si è aperta con il talk di Robert Virding che ci ha guidati in un pellegrinaggio verso la terra promessa nella quale il software è altamente concorrente, facilmente integrabile con sistemi esterni e resistente ai fallimenti interni. Come da filosofia Erlang, è necessario accettare che prima o poi qualcosa fallirà e progettare il nostro software in maniera da gestire gli errori per far si che questi influiscano il meno possibile sul funzionamento delle applicazioni.

Il pomeriggio, invece ci ha riservato un ottimo talk di Joe Armstrong che ci ha raccontato come ha utilizzato Erlang per controllare da remoto e programmare il funzionamento di un Sonic Pi per riprodurre fedelmente un brano di Rachmaninov. Sfruttando l’ottima gestione della concorrenza di Erlang, ogni singola nota era prodotta da un processo separato, ciascuno con il suo specifico timer indipendente dagli altri. Il risultato finale è paragonabile ad un concerto in cui più di 19000 pianisti suonano insieme un singolo brano producendo con una tempistica perfetta una nota a testa.

Molto interessanti, dal mio punto di vista, anche i talk di Michele Finelli, che ci ha introdotto la teoria dei tipi illustrando la corrispondenza tra programmi in un linguaggio tipato e dimostrazioni logiche delle proposizioni corrispondenti, e di Jo Liu che con Elixir e qualche RaspberryPi ha creato una replica del funzionamento di Internet. In chiusura, Francesco Cesarini ci ha raccomandato l’importanza di un monitoring accurato, sia per prevenire problemi gravi quando iniziano a manifestarsi, sia per essere capaci in seguito di ricostruire accuratamente l’origine dell’issue. Per fare questo sono necessarie tre componenti fondamentali, le metriche dell’utilizzo dei singoli componenti, i log degli eventi che succedono nel sistema e gli allarmi, eventi che possono scatenare conseguenze (per esempio, svegliare qualcuno se si è verificato un problema grave).

Il giorno successivo mi sono spostato da Roma a Ferrara per poter prendere parte anche a UniversalJs Day, la seconda edizione della conferenza che raccoglie le esperienze più interessanti riguardanti l’utilizzo di Javascript non strettamente in un client web.

Ha aperto la giornata Maurizio Mangione che ci ha introdotto nel mondo delle progressive web applications, soffermandosi sopprattutto sull’utilizzo del Service Worker, che ci permette di ottimizzare il critical rendering path e di avere un controllo completo sulle nostre strategie di caching. A seconda del nostro caso d’uso, possiamo decidere di andare sempre a pescare dalla cache, prima dalla cache e, in caso non ci sia quello che cerchiamo, dalla rete, oppure prima dalla rete e in caso di fallimento dalla cache; in quest’ultimo caso, riusciamo ad ottenere il funzionamento di una applicazione web anche in scenari offline o di connessione instabile.

Matteo Frana e il nostro Andrea Coiutti, ciascuno nel proprio talk, ci hanno raccontato le problematiche e le soddisfazioni che hanno incontrato implementando server side rendering in applicazioni complesse, il primo utilizzando React, il secondo con Mithril. Dal routing fino alla condivisione dello stato e l’internazionalizzazione, ci hanno guidato attraverso i vari passi e le piccole accortezze che permettono di implementare correttamente un’applicazione isomorfica. Un dettaglio dei vari passaggi potete trovarlo su https://isomorphic-mithril.mvlabs.it.

Il pomeriggio Francesco Strazzullo ci ha presentato Pixi JS, un framework per la creazione di interfacce web utilizzando direttamente WebGL. Questo consente di saltare il ciclo di rendering del browser andando a interagire direttamente con le potenzialità della scheda grafica per ottenere animazioni 2D molto fluide.

La giornata si è chiusa con il talk di Francesco Raimondo che ci ha introdotto nel mondo del retro gaming in Javascript utilizzando Phaser.io, mostrandoci come si può realizzare facilmente un gioco veramente addictive da godersi nel browser!

Complimenti agli organizzatori di entrambe le conferenze per la gestione degli eventi!

Ci vediamo alla prossima conferenza!

Articolo di Marco Perone

Segui @marcoshuttle su twitter.

Inserisci un commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

*