Blogging OSCon 2011: Day 1 Tutorials

It is 2011 and I have decided to start a blog. That is a term coined by my friend Peter Merholz which means a “web log” or “online journal.” As you can see, Peter has been blogging perhaps since the beginning of time, or at least since the beginning of Swatch Internet Time. Whereas I have forsaken this flash-in-the-pan trend until now. I thought perhaps this would be a great way to ease into using Twitter, and also as a means to justify the cost to my company of dispatching me to Portland to attend OSCon. With that in mind, my first post shall concern the topic of OSCon 2011 and What Was Learned Therein.

OSCon Day -1 & 0: Community Leadership Summit

Before OSCon starts, a bunch of very friendly, talkative people get together to discuss the ins and outs of community management. These are evangelists, marketing folks, product managers, generally good people persons. They get together to discuss the craft of people person-ing; when by “people” you mean “many geographically diverse people gathered around a particular open source project or other product.” I only attended one session, but my partner who is in developer marketing attended both days and got a lot out of it. I found it interesting but did not connect it to a direct relevancy to the art of software engineering management. That said, being on the forefront of user input and feedback for Contacts, I could probably spend more time thinking and acting on the topics discussed in this forum.

OSCon Day 1: A Battle of Old and New

The morning was spent learning the latest thinking on the PHP framework front, the afternoon in a session on the new hotness that is Node.JS.

Top Shelf PHP (Kris Wallsmith, Jeremy Mikola, Dustin Whittle): I was impressed with the problems these guys are tackling, very relevant to the challenges we face on the Yahoo! Contacts team. To summarize:

  • Symfony 2: Influential application framework, I later saw ideas from Symfony re-implemented in some of the Node.JS middleware. I am interested in Symfony as I have personal projects written in version 1 of this framework, however this is less relevant in the work context.
  • Assetic: Asset management for symfony / php. Solves some problems we run into in an elegant way, by allowing runtime, configurable transformations of your static assets as developer runtime, which you can also integrate in your build process for simple CDN deployment. Uses a decorator-like “filter” system to apply various transformation steps to your assets, and is easy to configure for dev vs. production environments. As we are currently investigating our build process with regards to assets and speed, this might be work a look.
  • Behat and Mink: BDD test creation and driving system. Allows you to write natural language behavioral tests in the same format as a user story, turn that to code, or with Mink, turn it into something that can automatically test your app. The simple case demoed was fairly impressive. The Contacts team is moving to a more lean development methodology and we need all the help we can get in the QA automation space. This tool has promise. Very similar to Pyccuracy, a tool written by our friends in the team in Brazil.
Introduction to Node.js (Tom Hughes-Coucher): This was a great heads-first dive into Node.js. I admit to knowing nothing practical about Node before this session. So I was shocked to learn you are expected to write your own web server before you can start writing your web app. I was stunned, frankly, at the impracticality of that concept. I was so stunned that after three hours of struggling through installation and the example exercises, I cornered Tom after the tutorial and had the “I don’t get it” talk with him. Being a very recently ex-Yahoo!, he was able to bring the business case in a more relatable way for me. This session was very necessary for me to be able to appreciate the presentations at Day 2: Node Day. Having thought through it a bit, and seen some examples, and heard the discussion, it no longer seems so unreasonable to have to spin up your own http/https server, logging infrastructure, and web application framework from scratch. More on that in Day 2: Node Day. A few tool-related notes I jotted on this day:
  • node-inspector: in-browser Node.js debugging tool
  • The Chrome team has an Eclipse-based Node.js debugger as well, it looked very impressive on the big screen.
  • npm: Node Package Manager, developed by ex-Yahoo! Isaac Shlueter (who also lives in Oakland, woot!) is a necessity (but does not install if you followed the instructions to install node from the ubuntu package. I spent the second half of the tutorial re-installing node from source so I could install npm. Very irritating!)
The slides for this talk should be available on-line and have a great series of problems to help learn the basics of Node. I recommend trying them out if you are looking for an introduction to the concepts behind Node.
Time to hit the Puppet Labs Party before heading to bed. Will try to catch up with the bloggin’ tomorrow with OSCon Day 2: Node Day. In which more things of a Nodeish nature are revealed. Perhaps I will even try live-blogging the keynotes! Ha! Who am I kidding! I am just getting started with this blogging thing. I am pretty sure you have to have a podcast before you can live-blog.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.