Code Camp Wrap Up
Three weeks ago (on November 6th, 2010), I had the good fortune of being selected to deliver two talks at the recent Fairfield Westchester Code Camp (FWCC) in Stamford, Connecticut. Even though its about equidistant from my house as the Philadelphia Code Camp, I’ve not prior considered participating in FWCC because it always seemed conceptually too far away to make a day trip out of. When I accidentally stumbled into the role of helping to organize the 2010 NYC Code Camp in the early part of this year, I came to know and work closely with Mark Freedman who, along with others from the area also organizes the FWCC event. So when word reached me of the next FWCC event being scheduled, I determined to submit several talks for the event, hoping that I would be selected to participate. Fortunately, two of my talks were chosen:
- Unit Testing Patterns and Anti-Patterns
- Taming Your Dependencies with Inversion-of-Control Containers
Both of these were repeats of talks I’d previously delivered in other venues. The Unit Testing talk had been most-recently delivered at the Philly Code Camp in October of this year and the IoC talk had been delivered prior for the venerable NotAtPDC2009 online event that shadowed the PDC event last November. For each of these, I spent some time polishing the content and updating it a bit as well as rehearsing the live-coding examples that accompany each of the talks but the process served to remind me how much easier it is to (re)deliver talks from prior content vs. creating new presentations from scratch
Taming Your Dependencies with Inversion-of-Control Containers
This presentation begins with my explaining that the goal of the talk isn’t to create IoC Ninjas out of the audience but to introduce the basics of Dependency Injection and Inversion of Control and to discuss the value of the techniques and the role that IoC containers play in reassembling collaborating classes to accomplish meaningful work. As part of explaining these core concepts, I rely heavily on using the LEGO block metaphor to relate to the decomposition and reassembly of components in code.
After a bit of refactoring our existing code sample to introduce dependency injection, we look at some techniques for manually injecting dependencies and then move on to understanding how an IoC container can assist in this process of reassembly. To finish things off, we take a very brief look at how IoC containers can be used with Aspect-Oriented-Programming (AOP) approached to introduce so-called cross-cutting-concerns in your applications.
The feedback from my delivery of this talk was almost universally positive. In addition to written reviews received afterwards from evaluation forms, I also was approached by several people immediately afterwards who offered their thanks for my presenting what had previously seemed like a complex and challenging set of topics in a form that they could easily understand and in a manner than suggested several real-world scenarios in which they could begin to apply the principles I discussed. In a sense “thanks to your presentation, I finally ‘got it’ ” is perhaps the best thing an attendee could tell me about my efforts – it clearly shows that I was able to reach at least some of the people in the room
I’m pretty certain that the delivery of this session was captured on video so once I know more about where this is available for download, I will update this post to reflect that. I the mean time, here’s links for the slides and the sample code for download:
- Taming your Dependencies with IoC Containers – Slides
- Taming your Dependencies with IoC Containers – Code Sample
Unit Testing Patterns and Anti-Patterns
I also delivered my Unit Testing Patterns and Anti-Patterns talk for the second time (the first being at the Philly Code Camp referenced above) and for the most part this was a successful session as well. The room wasn’t quite as packed as it had been for the Philly Code Camp delivery but it was a good crowd, engaged and offering good feedback and commentary. This talk is more of an interactive conversation with the audience rather than a straightforward lecture and so its success (or not) is heavily dependent on the audience’s willingness to engage. For the most part, the audience offered good input and helped move the discussion along.
The slides and sample code are available for download here:
- Unit Testing Patterns and Anti-Patterns – Slides
- Unit Testing Patterns and Anti-Patterns – Code Sample
Thanks for the Speaker Dinner!
The photo at left was taken at the Speaker’s Dinner, held at a local ale house after the event. Unfortunately, it’s the only photo of the event that I have to share, but it captures the part of these events that I (secretly) value the most – the opportunity to interact face-to-face with other smart people in the .NET ecosystem, share ideas, and argue opinions.
Often times, such events even provide opportunities to meet people that I’ve interacted with online many times but haven’t had a chance to meet in person. Although he’s turned away from the camera, on the left hand side of the table is George Mauer who lives in New Orleans but (unbeknownst to me) happens to have family in the NYC area. He managed to time a visit to see his family with FWCC and so I got to meet someone I’ve “spoken to” online many times but who (normally) lives over 1,300 miles away! Code Camp networking FTW!
I’m also joined at the table by Dane Morgridge, John Zablocki, Ned Ames and others. John Baird and Greg Shackles are there too (both off camera to the left).
I understand that Telerik had something to do with sponsoring the Speaker’s Dinner, so it wouldn’t be fair to enjoy the meal without offering a shout-out to them in exchange for their funding a very enjoyable evening of food, drink, and great conversation.
I’ve no idea when the next FWCC is scheduled, but hopefully I’ll get the chance to come back and give more talks again next time; I had a blast at this one~!