March 21st, 2014

P'unk Ave Goes to San Francisco

Joel Smith

The development team at P'unk Avenue has solidly committed itself to a darling little language called JavaScript. Fluency in JS has become a mark of success for developers here, on both sides of the browser.

So when we stumbled onto a "festival" dedicated to Javascript, our attendance seemed nothing short of necessary. That said festival was happening in San Francisco at the tail end of what has been a dreary winter cemented our decision. We started packing our bags.

That JSFest was so particularly named as a festival instead of a conference was of course a point of interest to us. It meant that we could travel around the Bay Area  a bit, attending a session in one spot and then participating in a workshop in another. The diversity of the events made it easier to justify traveling as a cohort of developers with diverse interests and levels of experience with JavaScript.

I'll try, as best I can, to give a sampling of the things we learned while bumping around on BART from session to session.

WebRTC Camp & RejectJS

While a good number of our developers didn't attend events on Saturday, our fearless lead developer, Tom, took on the slew of rejected talks with gusto and got to play around with some cool communication projects built on the emerging technology around WebRTC. You may have already read his live blogs on those talks, but I'll try summarize them here for you.

WebRTC, for the uninitiated like me, is a technology focused on direct peer-to-peer communication in the browser, eliminating the need for every drop of data to pass through a central server. A good example of a program that leverages WebRTC is talky. Some of the other cool applications of WebRTC include an emerging project called WebTorrent which allows direct file sharing between users in a browser without any plugins. Another interesting application of WebRTC is a Mozilla project called TogetherJS which allows users to collaboratively browse the internet. We actually got to see a demo of this during the main talks, and it was pretty interesting (although pretty hectic once everyone at the talk got on the same screen). For the interested, there’s a great place to get started with building stuff on WebRTC: SimpleWebRTC.

On the same day, Tom also attended RejectJS which featured talks not quite interesting enough for the main event days (Sunday and Monday). I won't get into all the details of the talks here, but he learned a good deal about how the Node.js community is thinking about databases these days. He heard about node wrappers for MySQL and even some Node databases built around Google's LevelDB (more about that in NodeSchool). Tom, as I take it from the slew of emails he sent to the front-end developers on our team, also heard quite a bit about Browserify, which allows Node’s package manager (npm) to be used for browser-side code as well.

Main Event Talks

On Sunday and Monday, all five of the temporarily-West-Coast-P'unks converged on the Marine Memorial Theatre in downtown San Francisco to hear the talks given at the "Main Event" of JSFest. We got to hear about some really interesting projects like JavaScript running on an NES, an underwater robot controlled by Node, and even a Node controlled cutting machine.

Some of the more interesting talks for our team included a talk on Sheetsee.js which allows you to use a Google Spreadsheet as a database for simple sites hosted on Github Pages. We also heard about pixel art generated dynamically by altering multiple box shadows in CSS (you can watch the video of his talk which was pretty amazing). We also heard about some interesting graphically oriented JS projects like a graphing tool called Vivagraph and a vanilla JS 3D renderer. There was also a lot of focus on the notion of building small modules, building tests, and keeping the Node community decentralized while still emphasizing quality. It was a lot to take in, but we walked away full of conversation and ideas about our own use of JavaScript and our participation in the larger community of JS developers.

Node School


For the last two days of JSFest, Olivia and I attended an event called NodeSchool which was an opportunity to work through some guided, command-line-driven exercises to learn more about Node.js, Streams in Node.js, and LevelUp (the Node.js wrapper for LevelDB). For the two of us, these were some of the most exciting days of the festival because we were able to roll-up our sleeves and really improve our JS chops. Perhaps more importantly, though, was the fact that the workshop environment allowed us to get to know some of the other attendees (not to mention prolific Node.js mentor-developers like substack and maxogden), something you can't always do during a lecture-heavy session. We were so excited by the NodeSchool events that we decided to run NodeSchool ourselves at some point.

So What?

JSFest was a great opportunity for us to plug in to the larger community and to meet people in a format that actually made sense. We learned a lot, soaked in a lot of California sunshine, and we're more excited than ever to keep honing our JavaScript chops.