Last Friday and Saturday I crossed over the Rio de la Plata to attend JSConf Uruguay in Montevideo. The conference included talks from local and foreign speakers that covered JS libraries, best practices and emerging technologies. There were also workshops with hands-on experiences with Node.js, Nodebots and Firefox OS. It was a great event. It was very well organized and had fantastic speakers. Kudos to the organizers!
The first day was opened by Guillermo Rauch (@rauchg), creator of Socket.io, who talked about new features coming to Socket.io like binary streams. He gave a great demo of a Gameboy emulator running in the server, with multiple web-based clients which all send commands at the same time. All rendering is done in the server and streamed using binary sockets to the client browser which then paints it to a canvas! It´s still online as an experiment to figure out how long it takes to collaboratively beat Pokemon Yellow. Check it out at weplay.io!
Lenny Markus presenting Kraken.js – photo by @jsconfuy
Day one also included a great recap by Lenny Markus (@LennyMarkus) about how they hacked their company’s culture to switch from a heavily customized Java application to using Node.js in PayPal. They built a small team that managed to outpace the development of larger teams using their traditional stack. He then gave an introduction to KrakenJS, a small framework they developed to give some convention to Express applications. I particularly liked Lusca an Express middleware that implements several security measures to prevent clickjacking and cross-site request forgery.
Jeremy Ashkenas (@jashkenas), creator of Backbone and CoffeeScript, gave the closing presentation. He talked about good design practices in single-page apps and common patterns for Backbone apps. His slides were all beautiful photographs from his last trip across the world (you should check out his blog for more!). Afterwards we got to hang out with Jeremy during the drink-up and he gave us some great travel tips. Also check out his laptop sticker (a pun about @BrendanEich).
James Halliday (@substack) opened day two with an awesome live-coding presentation. He introduced his Node.js bundling tool for the client, Browserify. James presented different demos showcasing small modules that worked together to do impressive things such as replacing jQuery with minimal modules that do exactly what you want (making Ajax requests or using classlists). He also demoed using WebAudio to generate music using mathematical formulas, running the Fast Fourier Transform on the generated waves, and painting the result into a canvas based oscilloscope. His conclusion was to avoid big frameworks and instead write tiny modules that do one thing exceptionally well.
Zeno Rocha discussing Web Components – photo by @jsconfuy
The rest of the day included talks about security best practices (see Joe Petterson’s slides), testing, and JSON Web Tokens. Zeno Rocha (@zenorocha), Liferay employee and YUI community member, gave a great presentation about the future of Web Components and the work he’s been doing on polyfills and documentation in collaboration with Polymer and other Liferay developers.
During the afternoon I attended a Nodebots workshop which turned out to be a great introduction to Arduino and Johnny-Five. I love the idea of communicating servers and hardware. I can’t wait to get an Arduino kit!
The conference ended with Douglas Crockford and his talk The Better Parts. He enchanted everyone with his witty humor and discussed some of the new syntax coming in EcmaScript 6. His newly recognized good parts include the module system and the spread and rest operators. He also introduced DEC64, a potential standard for a new number type designed to be friendly to the web. He closed in typical Crockford style: “Don’t make bugs”.
Overall I got back home very impressed by the Uruguay JS community. Lots of smart people with great ideas. I’m looking forward to the next JSConfUY!