Code Camp 9: Thoughts and Impressions
This weekend, along with 4 other Atalasoftians, I went attended Code Camp 9 at the Microsoft offices in Waltham, MA. The content was diverse and the presenters were very knowledgeable. The coolest part is that the idea of Code Camp is that all the presenters are regular people like you and me (albeit very good at what they do). For the most part, they aren't Microsoft employees loyally spewing their Corporate Kool-Ade, not that that is always a bad thing. They are experts in their fields, showing what they do with Microsoft's technology and other .NET-ish related techs.
Here's a list of all the sessions I attended with a brief summary of what they were about and what I took away from them:
Extending Powershell
Presented by Lou Franco
Before this presentation, I can say I knew nothing about Powershell. Because of it, I'm in the process of downloading and installing it as I type this. It's pretty darn powerful. Here's Lou's blog with notes from his presentation and all of the code that he used.
Real World httpModules and httpHandlers
Presented by Chris Love
I have an unrealistic burning desire to personally make Comet efficient in IIS, and I have an inkling that a custom httpModule will do the trick with maybe a Windows service running in the background as well... but isn't that something like rewriting IIS? Possibly, but that isn't what this presentation was about. Chris went over the basics of putting together custom httpModules and handlers to do things such as url rewriting and building and serving out vCards and PDFs on the fly. Very cool stuff.
"Shall We Play a Game?" - An Introduction to Game Development with XNA
Presented by Chris Bowen
Anyone who can write Pong in 20 minutes deserves some serious kudoz. Using the XNA toolkit, he was able to walk us through the process of setting up the logic and display for the entire game with sound and "AI". Ok, no AI, but still very cool.
Wpf Means Business II
Presented by Michael Hennessy
One benefit, to me, of using WPF is it's extreme similarities to web development. I don't have much (if any) experience in writing applications that leverage WPF, so this presentation was mostly an introduction for me.
Object Relational Mapping, an Introduction to NHibernate
Presented by Rik Bardrof
NHibernate is a .NET port of Java's Hibernate that maps an object-oriented data model to relational data structures. This presentation was filled with great information about how to set up your projects to basically build the data structures for you, however, a lot of the work seems to be translated away from writing DB create statements into writing xml descriptions of those data structures. Seems like the same amount of work for a similar result, but maybe I am missing something. Products like Django do a lot of this work for you already, so why can't NHibernate?
Extending Your Applications Using Dynamic Languages
Presented by Michael Cummings
Michael talked about how IronPython and IronRuby and how they can be used to extend current applications. He used an example of a capture the flag game where you could update the intelligence of the players (all AI) using IronPython and see the results right away. These scripting languages can allow your customers to leverage your product in ways you couldn't have imagined, extending their usefulness.
Introduction to Design: The Power and Glory of the User Experience
Presented by Michael de la Maza
This was a pretty cool presentation. He's at Code Camp, not design camp, so his take-away message was that there are people out there who are actually good at design and that they should be hired. Just like engineering your code and engineering your data structures, you must engineer your users' interaction with it. Users don't care that your database is fully normalized, they just care that the information is there and is accurate. They don't care that you're using WPF and that the interface is vector-based, they just want it to be able to scale to their brand new 30 inch HD display. Michael broke the session-goers into two groups whose jobs were to develop the user experience for a computerized version of Tic-Tac-Toe. This was a very successful way to get people who probably don't think about what users want very often to do just that. I think the only flaw was that our group didn't realize the target audience was the other team and instead decided to talk about two separate designs instead: one for kids and one for adults with 3 minutes to kill.
Test Driven Development w/TestDriven.net and nUnit
Presented by John Baird
I'm a fan of crude humor, and John didn't fail to deliver. His great talk on a test driven development process and how to use nUnit was sprinkled with boisterous yelling and possibly inappropriate jokes that I found hilarious. Atalasoft is an agile shop so John was preaching to the choir on this one (well, only if the choir was made up of the three Atalasoft employees there, because the rest of the crowd was still living in dark ages of simple bench testing). He walked through the benefits of the agile process and how you can cut programming time down from 7 days to 4 while adding in 3 days of test implementation. It's a hard concept to wrap your head around, but it's the truth. Those 3 days you're implementing tests, you're actually writing the actual code in your head, making the job of actually putting it into Visual Studio wicked crazy easy.