Last week was CodeMash 2009, a developer's conference in Sandusky, Ohio. The conference, which lasted from Wednesday, January 7th, through Friday, January 9th, was held at the Kalahari Resort, a hotel and indoor water park; this makes the conference unique, as families are able, and encouraged, to join the attending developer for the week, and while the developer is off learning about the Next Big Thing, the significant others, spouses, and children are off enjoying the fun of the water park. As for the conference itself, it is billed as an event where opposing developer communities congregate and mash together. Attendees are encouraged to exit their comfort zone—.Net developers can attend sessions on Java or Ruby; Java developers can attend sessions on Azure or .Net—allowing a seasoned developer to get a new perspective, and allowing communities to cross-pollinate ideas and practices. This was not only my first CodeMash as a speaker, but also as an attendee, and it will not be my last.
As Brian Prince points out, we developers love to start lists with zero. It's cool, now that we no longer think digital watches are a pretty neat idea. Day Zero at CodeMash was the Precompiler, an optional extra day of sessions that was new feature of the 2009 event. Unlike the conference's traditional hour-long sessions, the precompiler is split into two half-day sessions, allowing attendees to take a deep dive into a particular topic. For me, it was a dive into Ruby by Joe O'Brien and Jim Weirich and into Windows Azure with David Aiken.
In the Ruby session, @objo and @jimweirich used "koans" to teach Ruby to the attendees. Effectively, these koans were unit tests coded in Ruby against the Ruby language. Each test purposefully failed, and the process of correcting the code of the each test progressively taught more and more about the ruby language. The tests begin with assert false which must be converted to assert true to pass, and proceeds through conditionals, strings, arrays, hashes, blocks, and beyond. Ingenious.
In the Azure session, @thedavidaiken, the evangelist for the Azure platform, gave a once-over and code demo to Azure. After this talk, I'm very excited about playing in the Azure sandbox, and have been brainstorming for a good topic. I have since gotten my invite into the Azure CTP, and should be making sand castles, soon.
Other precompiler sessions were available, including 101-level sessions on iPhone development, Java, and more, and what I have only heard described as a phenomenal talk by Mary Poppendieck on Value Stream Mapping. Also, an all day CodeJam allowed any of the attendees to pop in and code with their friends, colleagues, and other attendees. I wish I could have cloned myself, and attended some of these other sessions.
After a night that included a few hours of water park slides followed by a few hours catching up with people I hadn't seen since DevLink 2008 or last fall's Ann Arbor Day of .Net, the conference officially kicked off with breakfast and a fantastic keynote by Venkat Subramanian. Then it was off to a day of sessions and Open Spaces, split by a keynote by Mads Torgersen during lunch. I attended Jeff Blankenburg's A Lap Around the Live Framework and Mesh Services talk, and stopped in to Bryan Weber's Functional Concepts for OOP Developers talk for a bit, all in between preparing for my talk. The Open Spaces, where this year's theme was Techniques, Not Tools, are always a part of my day at conferences, especially since these were facilitated by Alan Stevens. Any time he is involved in organizing an event's open spaces, the attendees are in for a treat. We had some great conversation on testing practices and on pragmatic learning (which incidentally spawned another open space on Day Two on mentoring.
During Day One's final block of sessions was my talk, Continuous Integration: It's More Than Just a Toolset. Though this was my first presentation at a conference, it went off great. Having given this talk a few times prior at various area user groups, I was comfortable with the talk and had all of the bugs worked out. I was fortunate enough to have a sizeable crowd and great questions from the audience. I am looking forward to speaking, again.
The second day kicked of with another breakfast keynote, this time delivered by Eric Meyer. I spent the entire day involved in open spaces. Alan Barber convened a discussion on Getting in to Speaking. Rick Kierner convened an open space on having and becoming a mentor, a topic that originated from the pragmatic learning discussion from the prior day. I hope that the outlines of these discussions make its way to Heartland Open Spaces, soon.
The day, and the conference, ended with a trip to the open spaces Closing Circle followed by the Closing Giveaway. The Closing Circle, open to anyone who wished to participate, is where we could all look back on the open spaces of the event, and discuss what we liked and provide constructive feedback on how to improve for next year. Alan did another great job with organization; I would have liked the open spaces to be in a more prominent location, to help introduce open spaces to the crowd, and apparently, this is already taken care of for next year. The Closing Giveaway in the conferences Great Hall ended the show for everyone with an hour of prize giveaways, which included two XBox 360s, a Wii, the full Rock Band 2 set, the full Guitar Hero World Tour set, and much more. My number was cursed; I did not win a thing. I'll have to acquire Rock Band 2 through some other means.
This was my first CodeMash. I loved it. It is a very cool event, for if no other reason than it is great to have the conference and the hotel room be in the same building. I enjoyed the opportunity to learn new things that were outside of my day-to-day space, as well as share the wealth by giving a talk to others. I look forward to next year, and I hope that they will again have me as a speaker.
Thank you to all of the CodeMash organizers for a great event.
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in any way.