I'm just back from a very good conference. And for once, I can proudly say, it was organized by Italians! The host were WEBdeBS, a web company based in lovely Brescia, and the topic was... very hot: Node.JS.
Once arrived, we have been welcomed by a prompt start and VERY nice t-shirts, and a sharp, on time start (a rarity for Italians, I know :P).
I took some notes/bullet-points during the talks, as I usually do at conferences. So, I'll share them here, adding a little abstract or some comments of mine. Below every section there is a link the actual notes (in Markdown format), so that you can download and read as you please. Also, where available, I linked the slides.
00 - Keynote - Is not supposed to fly... but it does!
The keynote speech was given by... an Erlang expert: Gabriele Lana (@gabrielelana). Expert in high-concurrency and high-reliability, I think he is the perfect speaker to kick-start the conference.
Who can better talk about Node.JS, a software that surprised everyone since it's birth for being "not designed for THAT!", if not someone that has learned using it that "it suits surprisingly well this role". Indeed the recurring theme of the keynote was the bumblebee, an insect that flies, non the less his body structure doesn't seem to be really suitable.
Link to 00-Keynote-It's not supposed to fly but it does.md. Slides on SlideShare.
01 - Event based architecture is here to stay, baby!
This was an interesting talk by a very nice and sociable German guy, Golo Roden.
He introduced a new, fresh perspective to look at "code modularity": look at your code as a computer chip. Design and code your classes/functions as a fully independent, self contained, easy testable unit of code. A module that you can introduce in any code environment, and it will still be usable.
Those "chips" will than communicate with the outside world firing events. If nothing is there listening, the code will still work. In other words, 100% of the IO for any module of code becomes Event Driven.
Also, that would make code easy to test, as mocking will become almost trivial.
Something really cool about Golo was his business card:
02 - Scaling node to 50M requests per day
This talk was from the great guys at Forward, a sort of "umbrella company/brand/business creators".
They presented a bunch of intriguing Open Source projects they use as solutions for their business needs, all based on Node. Interesting is also all the detailed, data-driven comparison they do between their previous use of Rails, and their current stack on Node. Of all of them, creek is the one that attracted my attention the most. It seems to be the perfect instrument if you want to make sense of a stream of live data, fast.
Also it is an interesting talk in general, if you care about scalability and how Node can help with that.
03 - Deploying Cloud9 in Cloud9
Sergi Mansilla @sergimansilla presented Cloud9, and demonstrated how this amazing project is self-hosted: this means that they develop it using Cloud9 itself. Also, Cloud9 is opensource, and you can install it on your own server, and, even better, contribute to it.
So, give a good look at Cloud9. I'm thinking it would be perfect for some Node playing around I'm currently doing.
Link to 03-Deploying Cloud9 in Cloud9.md.
Well, we were in Italy: what do expect if not amazing food for the lunch break? I had mushroom risotto and what not in terms of sour and sweet dishes. But the best things were the "spuntino":
They couldn't do anything better on this side: this is the first time I actually enjoy myself with conference food. Normally is just "food to survive" - this was "food to enjoy".
This talk was a bit controversial for me, but still interesting. Oleg Podsechin @olegpodsechin introduced the "risky" topic of Sync vs. Async conding. And, particularly, discussed how the Async coding pattern doesn't seem to fit very well within Server Side programming.
He made some examples, like CRUD services, having some issues when coded asynchronously.
Also, he presented various benchmark, and all of them showed that Common Node had to pay a price respect to plain Node. Still, though, a very interesting presentation.
05 - Going real time with Socket.io
What is really superb is how they managed to abstract the transport layer, so that it can automatically pick the best option for the client browser (WebSockets, Adobe Flash Sockets, Comet), down to JSONP Polling). And yes, it does work on IE >= 5 too_!
Arnout gave us also a sneak pick of the upcoming support for clustering. Well, now there is no excuse for not being real-time.
Link to 05-Going real time with Socket.io.md.
06 - Back to Data
PubSub.io is revolutionary in the way makes you look at data. Instead of the usual bucket that you interrogate (send a query), with this you declare what you are interested in (declare a query). The query are published in a hub. Data are received by the hub that delivers a subset of those to the clients, based on the query they declared. A total inversion of flux, I say.
But what was really amazing of Ian's presentation where the demo. And in the specific, how he glued PubSub.io to Arduino! Data generated on the board by sensors, was published on a PubSub.io hub (through HTTP), and that was then published and delivered to a web client of the same hub. Imagine the applications of such simple connection.
It was a very good experience: visiting my home country, in a beautiful city I know little about, eating good food and talking about cutting edge technology.
Again, I do apologize if my notes are the made of the worst stenography. They are written very quickly, while I try to grab as much as I can from the speaker. And it is even more difficult when the topic is interesting, because good ideas initiate thinking.
If there is another nodejsconf.it next year, I'll definitely join in!