I stole that from the back of a T-shirt I saw at the Orlando Code Camp 2010. This was my first code camp and my first time volunteering for an event like this as well. It was an awesome day. I cannot begin to count the “aaahh”, “I did-not-know I could do that”, in the crowds and for myself. I think it was a great day of learning for everyone at all levels. All of the presenters were different and provided great insights into the topics they were presenting. Here’s a list of the ones that I attended.
KodeFuGuru, “Pirates vs. Ninjas”
He touched on many good topics to relax some of the ways we think when we are writing out code, and still looks good, readable, etc. As he pointed out in all of his examples, we might not always realize everything that’s going on under the covers. He exposed a bug in his own code, and verbalized the mental gymnastics he went through when he knew there was something wrong with one of his IEnumerable implementations. For me, it was great to hear that someone else labors over these gut reactions to code quickly snapped together, to the point that we rush to the refactor stage to fix what’s bothering us – and learn. He has some content on extension methods that was very interesting. My “that is so cool” moment was when he swapped out AddEntity method on an entity class and used a With extension method instead. Some of the LINQ scales fell off my eyes at that moment, and I realized my own code could be a lot more powerful (and readable) if incorporate a few of these examples at the appropriate times. And he cautioned as well… “don’t go crazy with this stuff”, there’s a place and time for everything. One of his examples demo’d toward the end of the talk is on his sight where he’s chaining methods together, cool stuff.
Quotes I liked:
“Extension Methods - Extension methods to put features back on the model type, without impacting the type.”
“Favor Declarative Code” – Check out the ? and ?? operators if you’re not already using them.
“Favor Fluent Code”
“Avoid Pirate Ninja Zombies! If you see one run!”
I’m definitely going to be looking at “Extract Projection” when I get into VS2010.
BDD 101 – Sean Chambers http://github.com/schambers
This guy had a whole host of gremlins against him, final score Sean 5, Gremlins 1. He ran the code samples from his github repo in the code github code viewer since the PC they school gave him to use didn’t have VS installed.
He did a great job of converting the grammar between BDD and TDD, and how this style of development can be used in integration tests as well as the different types of gated builds on a CI box – he didn’t go into a discussion around CI, but we could infer that it could work.
Like when we use WSSF, it does cause a class explosion to happen however the amount of code per class it limit to just covering the concern at hand – no more, no less. As in “When I as a <Role>, expect {something} to happen, because {}” This keeps us (the developer) from gold plating our solutions and creating less waste. He basically keeps the code that prove out the requirement to two lines of code. Nice.
He uses SpecUnit to merge this grammar into his .NET projects and gave an overview on how this ties into writing his own BDD tests. Some folks were familiar with Given / When / Then as story acceptance criteria and here’s how he mapped it: “Given <Context> When <Something Happens> Then <I expect...>” There are a few base classes and overrides in the SpecUnit framework that help with setting up the context for each test which looked very handy.
Successfully Running Your Own Coding Business
The speaker ran through a list of items that sounded like common sense stuff LLC, banking, separating expenses, etc. Then moved into role playing with business owners and an ISV. That was pretty good stuff, it pays to be a good listener all of the time even if your client is sitting on the other side of the phone tearing you head off for you – but that’s all it is, and get used to it its par for the course. Oh, yeah always answer the phone was one simple thing that you can do to move your business forward. But like Cory Foy tweeted this week, “If you owe me a lot of money, don’t have a message that says your away for five weeks skiing in Colorado.” Lots of food for thought that’s on my list of “todo’s and to-don’ts”.
Speaker Idol
Next, I had the pleasure of helping Russ Fustino tape this part of Code Camp as my primary volunteer opportunity that day. You remember Russ, “know the code” from the awesome Russ’ Tool Shed series. He did a great job orchestrating and capturing the Speaker Idol finals. So I didn’t actually miss any sessions, but was able to see three back to back in one setting. The idol finalists gave a 10 minute talk and very deep subjects, but different styles of talks. No one walked away empty handed for jobs very well done. Russ has details on his site. The pictures and video captured is supposed to be published on Channel 9 at a later date. It was also a valuable experience to see what makes technical speakers effective in their talks. I picked up quite a few speaking tips from what I heard from the judges and contestants.
Design For Developers – Diane Leeper
If you are a great developer, you’re probably a lousy designer. Diane didn’t come to poke holes in what we think we can do with UI layout and design, but she provided some tools we can use to figure out metaphors for visualizing data. If you need help with that check out Silverlight Pivot – that’s what she was getting at. I was first introduced to her at one of John Papa’s talks last year at a Lakeland User Group meeting and she’s very passionate about design. She was able to discuss different elements of Pivot, while to a developer is just looked cool. I believe she was providing the deck from her talk to folks after her talk, so send her an email if you’re interested. She says she can talk about design for hours and hours – we all left that session believing her.
Rinse and Repeat
Orlando Code Camp 2010 was awesome, and would totally do it again. There were lots of folks from my shop there, and some that have left my shop to go elsewhere. So it was a reunion of sorts and a great celebration for the simple fact that its great to be a developer and there’s a community that supports and recognizes it as well. The sponsors were generous and the organizers were very tired, namely Esteban Garcia and Will Strohl who were responsible for making a lot of this magic happen. And if you don’t believe me, check out the chatter on Twitter.