25 Ottobre 2016

Node.Js Italian conference – V edition

Sabato 22 Ottobre si è tenuta la 5^ edizione della conferenza su Node.Js, potevamo mancare? La risposta ovviamente è No…de, per cui zainetti in spalla e via, assonnati ma curiosi (quanti sticker prenderemo?) direzione Desenzano del Garda, Hotel Desenzano.

Chapter 1. Check-in

Arrivati a destinazione, (hotel molto carino con piscinetta vicino l’ingresso, peccato non aver portato il costume), ci siamo subito diretti verso il check-in point dove i ragazzi dell’organizzazione (WEBdeBS – www.webdebs.org) ci hanno consegnato il cartoncino di riconoscimento e omaggiato di una simpaticissima borraccia.
Non ci è rimasto altro quindi che prendere posto e goderci la conferenza, così organizzata:

  1. Morning session
    1. Keynote
    2. Coffee break
    3. Build cross platform desktop apps with Electron (workshop) oppure P2P for you and me
    4. AsyncHooks: A new API coming to Node.Js core
    5. Let’s talk security
  2. Lunch time
  3. Afternoon session
    1. Gossiping on node.js
    2. Pushing the Edge of Databases
    3. P2P File sharing (workshop) oppure Seneca.js, load balancing, broadcast and NSQ
    4. Coffee break
    5. You’ve got the power?
    6. Deploying node.js at scale
    7. The Future is Now: How to Realize Your Potential as a Cyborg
  4. Thanks and goodbye!

Il talk P2P for you and me è stato sostituito da un talk relativo al Logging e Benchmarking in Node.js

Chapter 2. Morning session

Keynote

Dopo un breve discorso di benvenuto da parte di Matteo Collina (@matteocollina), la conferenza è iniziata con il key-note di 1h a cura di Bryan Hughes (@nebrius) il quale ci ha parlato della storia della Node foundation citando le date più importanti relative alle release di Node.js, il ruolo di Microsoft nel suo sviluppo, npm e la continua crescita di questo framework grazie ad una sempre più folta community.

Build cross platform desktop apps with Electron

Il workshop, tenuto da Feross Aboukhadijeh (@feross) ha avuto l’obiettivo di mostrare l’uso di Electron, un framework che permette la creazione di applicazioni native sfruttando tecnologie Web come appunto Node.js e Javascript.

In solo 3 ore 😛 abbiamo sviluppato un Markdown Editor che gira su i più diffusi sistemi operativi (Windows, Mac, e Linux).

Logging & Benchmarking with Node.js

In questo talk Matteo Collina e il suo “pino brother” David Mark Clements (@davidmarkclem) ci hanno illustrato 2 moduli node per quanto riguarda il logging e il benchmarking, rispettivamente pino e autocannon

Pino è un logger estremamente rapido ed efficiente, ispirato a Bunyan. L’idea di questo modulo è nata dal fatto che si volesse ridurre il tempo computazionale speso per loggare una linea, e pare che i 2 brothers ci siano riusciti, dato che (dati presi dalla pagina di Pino su npm):

benchBunyan*10000: 1355.229ms
benchPino*10000: 269.109ms

“Pino is a way of life”, del resto 🙂

AutoCannon  invece è stato implementato per fornire uno strumento di benchmarking http, che supporta pipelining http e https, ispirato a wrk e .wrk2

AsyncHooks: A new API coming to Node.Js core

Thomas Watson (@wa7son) con questo talk ha voluto spiegarci e dimostrarci AsyncHook, una nuova API sviluppata dal team Node.js Diagnostics Working Group, del quale è membro.

Let's talk security

Dheeraj Joshi (@dheerajhere) ha voluto trattare una tematica personalmente tanto importante quanto sottovalutata quando si sviluppa un’applicazione: la sicurezza. Per fare ciò, ha mostrato una semplice e soprattutto vulnerabile web-app in Node.js composta da una form nel quale inserire nome e cognome, e un bottone per mostrare appunto l’ultimo nome e cognome inserito. Ci ha poi mostrato come sia semplicissimo “bucare” questa app iniettando del codice malevolo, e quanto sia altrettanto semplice prevenire tali disagi. Ma facile scrivere DOPO averci ragionato su eheheheheh.

Chapter 2. Lunch time

C’era di tutto e di più… roast-beef, pesce, pasta, verdure, pure il dolce a base di gelato su cialda… e pure il vino 🙂
Insomma, un’ottima pausa pranzo, come del resto i 2 coffee break dove oltre al caffè (you don’t say?) si potevano degustare diversi tipi di dolcetti.
Prima di riprendere con i talk della sessione pomeridiana, una chicca scritta non so da chi…

Chapter 3 . Afternoon session

Gossiping on node.js

Raul Pino (@p1nox) ci ha parlato di come fare gossip in node…meglio, ci ha illustrato e spiegato alcuni modi per implementare il protocollo di gossip per lavorare con applicazioni distribuite, come ad esempio le applicazioni web:

  • P2P (peer.js/P/freedom.js)
  • Message passing frameworks (zeromq, klyng)
  • mix tool (capataz.js, lateral.js)

lateral.js è un progetto di Raul Pino che implementa un mix tra i protocolli di gossip e membership che ha lo scopo di aiutare la comunicazione in situazioni di emergenza dove il segnale del dato è debole o inesistente.

Pushing the Edge of Databases

Mark Nadal (@marknadal) ha mostrato gun, un database engine con le seguenti caratteristiche:

  • Realtime
  • Distributed
  • Offline-first
  • Graph

Ha poi dimostrato con un breve tutorial come gun lavori, in particolare per dimostrare la caratteristica offline-first.

Seneca.js, load balancing, broadcast and NSQ

Massimiliano Mentone (@M_a_s_s_i) ci ha parlato di come utilizzare Seneca.js, un toolkit ovviamente node per sviluppare microservizi, abbinato a NSQ, una piattaforma per il messaging realtime distribuito. Personalmente degno di nota lo stile retro delle slide usate nella sua presentazione, che richiama i primi terminali a sfondo nero e caratteri verdi

Deploying node.js at scale

Luca Maraschi (@lucamaraschi), rispetto agli altri speaker di questa conferenza, ha basato il suo talk non su di un aspetto particolare della programmazione o di un modulo node ben preciso, bensì ha voluto ragionare e farci ragionare sul perchè ha senso passare da un’architettura monolitica in favore di un’architettura basata sui microservizi, dando qualche spunto relativamente al mondo Node.js. A modo suo va detto, personalmente molto divertente e coinvolgente basato su domande del tipo “How many of you use x instead of y?” seguito da risposte del genere “ah, 10 of you are using X?’ you’re wasting your time and money”, ha quindi intrattenuto la platea 🙂 e lasciato degli ottimi spunti in merito ad alcuni moduli node:

  • upring: fornisce un meccanismo di sharding delle risorse, gestibile a livello di applicazione, basato su streams in Node.js. Con questo modulo, puoi allocare risorse ad un nodo, tramite un meccanismo di hash basato su una  key, e operare sul nodo tramite un pattern request-response (basato su oggetti JS) che può fare uso di stream.
  • fuge: fornisce diversi modi per aiutare nello sviluppo di microservizi in Node.js:
    • fornendo un ambiente di esecuzione del servizio;
    • riducendo il gap tra container e processi durante lo sviluppo.

The Future is Now: How to Realize Your Potential as a Cyborg

Ed eccoci arrivati all’ultima talk della giornata, curata da Emily Rose (@nexxylove) la quale ha voluto usare il suo spazio per convincerci tutti di una cosa: siamo dei cyborg. Gran parte del suo tempo lo ha usato per snocciolare cifre su quello che sarà il mondo dal punto di vista di Internet, dell’esponente crescita dei device connessi e il potenziale business derivante. Tutto molto interessante, ma i momenti più divertenti ed anche per un certo verso emozionanti sono stati 2: l’interazione con la sua trasposizione di un cyborg (lei era accovacciata da qualche parte e mandava avanti le slides, simulando la conversazione di tale cyborg con noi), e soprattutto per la poesia da lei decantata (oltre che composta) a fine presentazione, che è doveroso riproporre:

Chapter 4. Thanks and goodbye!

Va detto, è stata proprio una bella giornata, passata in mezzo a persone che amano ciò che fanno, e che sono capaci di trasmettertelo.
Noi poi siamo stati ancora più felici perchè abbiamo ampiamente raggiunto il nostro obiettivo (STICKERS!!!) e buttato l’occhio su come il mondo node si sta muovendo.
Concludo dicendo che eventi come questa Node.js Italian Conference vogliono dimostrare una e una sola cosa: MAI E POI MAI FERMARSI! (tranne che per fare i selfie)

Arrivederci all’anno prossimo!

Tag
Serendipità: viaggio alla scoperta del mondo incerto dello sviluppo software

Il racconto dell'esperienza di viaggio del collega Marco Testa nell'incerto mondo dei progetti software

Agile Venture Vimercate 2019

Il racconto della giornata di conferenza tenutasi a Vimercate.

Top
Ogni nostro Sprint ha l'obiettivo di massimizzare il Valore per l'utente finale