mgroves

Codemash 2010 - last day

Today was the last day of CodeMash 2010.

I went to some great sessions, and had some great conversations, but I want to take this time to thank everyone who had a hand in making my CodeMash experience a blast.

  • First, Jim Holmes and the entire CodeMash staff. These guys work so hard and do such a great job simply for the sake of improving the developer community. I really can't thank them enough.
  • Me and Alex Papadimoulis
  • Quick Solutions, my employer, which demonstrated their commitment to excellence and community involvement again by sending a whole bunch of us to CodeMash, sponsoring the event, sponsoring prizes, and generally supporting CodeMash.
  • All the speakers at CodeMash, including but not limited to Joe O'Brien, Jim Weirich, Barry Hawkins, Leon Gersing and Hudson Akrdige. It's the people, not the topic, that make sessions great, and these guys are exemplary of that.
  • Jon Fuller, for lending an ethernet cable to a total stranger from Twitter.
  • Mel Grubb, Matt Casto, John Dages, Steve Horn, Vince Fabro, all the random guys I sat with during meals ...I could go on and on. The conversations and the gaming and the drinking and the eating with fellow passionate nerds outside of the session structure are a key part of what makes CodeMash so fun.
  • Alex Papadimoulis, for being such a gracious nerd celebrity.
  • All the vendors, especially the Amazon guys. They were great to talk to about coding and the Kindle. All the vendors were so cool, and had great swag for us.

Well that's enough gushing. CodeMash was such a great experience, and I'm already looking forward to CodeMash 2.0.1.1.

CodeMash 2010 pre-compiler

Today was the pre-compiler, the "optional" first day of CodeMash.

I did two sessions: Ruby Koans and Software Craftsmanship.

Ruby Koans is simply a series of tests that "prove out" Ruby as a language, with the primary goal of teaching Ruby as you make the tests pass, and the secondary goal of actually seeing if anything in Ruby breaks from version to version. One could write Koans for any language, actually, and the whole concept of such Koans is a fantastic idea, especially for open source languages that are updated frequently. Check out the Ruby Koans on GitHub.

This is my first real experience with Ruby, and I have to be honest: it doesn't really appeal to me very much, yet. I can definitely see why people like it, and I can kinda see the advantages that it might bring, but I just don't feel confident enough in my own abilities to see myself using Ruby. But, like I said, this is only the beginning of my experience with it, so who knows what the next couple of days have in store for me...

The software craftsmanship session was really about practicing the craft of development via "katas", or repetitive development exercises. The first was Uncle Bob's Bowling Game Kata. The presenters demonstrated Uncle Bob's version, and then I paired up and used Mono (my first experience with Mono/Monodevelop) to implement it. Clearly we both need more practice with this Kata, as our version turned out as quite a monstrosity. The second kata was a variation of the Supermarket pricing kata that I've done before. I was humbled by the expertise of the people that I worked with on this kata, and learned a great deal about the strategy pattern, resharper, and test-driven development. The last "kata" was FizzBuzz, which was kinda disappointing, because it's entirely too simple, and writing tests around it feels wholly unessential, or at least wildly unwarranted. So I took the time to work on the shopping kata some more.

Finally, I unwound after the sessions with my fellow Quick Solutions colleagues, and had a great time discussing current and past projects over drinks and large portions of Italian food.

All in all, an excellent day of coding and nerding out.

CodeMash 2010

I've arrived at CodeMash 2010 in Sandusky, Ohio.

It's a great time to reflect on how much has changed since last year: what I've learned, the new people I've met, the new kid on the way, everything. Keep an eye on my Twitter feed if you're interested in what I'm up to, and keep an eye on the RSS feed, as I'm going to try to update at least once a day, as I did last year.

On the docket for Wednesday: Ruby Koans with Jim Weirich and Joe O'Brien. Should be interesting, as I don't know a lick of Ruby. After that, Software Craftsmanship? Then maybe check out the game room or the Microsoft room.

CodeMash wrap-up

CodeMash is over.

On day 3, I spent some time in a LINQ session, a TDD session, and even a Cloud Computing session (which I found really boring--not the session, just the topic).

I went to an IronRuby session. The presenter asked who was a web developer, and then told us that this was not a session that will have anything to do with the web. It was for those people "in the trenches" with desktop applications. It just seemed like a hostile-to-webdev session, so I left. That's what CodeMash is about, baby!

That turned out great though: I joined Joe in a session called "Test Infecting the Legacy Organization", which may have been the best session all CodeMash. It really changed my perspective on how to introduce better practices to your shop: ninja-style. "It's easier to ask forgiveness than it is to get permission."

Speaking of ninjas, Amazon's recruiters were at CodeMash, and they posted some "coding brainteasers" in the hallways. If you solve one, you get a ninja-coder sticker. I got two right! Here's the first one, see if you can figure it out:

What's a better name for this function?

 unsigned int greaterNinja(unsigned int a, unsigned int b)
{
if(b == 0) return(a);
return(greaterNinja(b,a%b));
}

And here's the second one:

For what two values v does this function return "true"?

 bool ninjaPair(int v)
{
return(v+1 < v-1);
}

I got the first one in about 20 minutes, the second one in about 5.

In the wrap-up raffle session, I won a book (More Effective C# - the writer of which gave two sessions that I sat in on). Everyone (literally) at my table won a prize.

Ali & I are hanging out at Kalahari for a couple extra days. Matthew has started saying "da da" like crazy. I've learned a couple harmonica songs. The Candy Hut has an amazing treat called a "butterscotch porcupine" (chow mein noodles covered with butterscotch). Am I having a good week? No. I'm having a great week.

CodeMash Day 2

Day 2 of CodeMash is over. I can't imagine a better conference for computer nerds, except maybe a hypothetical CodeMash which was a few days longer.

Today was the first "official" day, and so there were more sessions (which are shorter). I sat in on a Prototype/Scriptaculous session, which was odd because I'm a jQuery guy, and Leon spent a good amount of time praising jQuery. He also stuck it to ASP.NET AJAX, which I found interesting; he also said that it's "going away" now that MS has officially adopted jQuery. MS says that both will coexist, but I think jQuery will cause it to become stale, if not completely go away.

I went to a PM-oriented "Three Ways to Improve Your Dev" process, which had some interesting ideas.

Venkat Subra..Subra...not-gonna-work-here-anymore delivered what can only be described as coding stand-up comedy, as he listed a half-dozen programming fallacies during the morning keynote. Mads Torgersen delivered a keynote on the future of .NET.

I spent the next two sessions in functional programming: 1) Erlang, and 2) a more general session covering Erlang, Scala, and a couple others (to go along with the F# I did lab yesterday). It was interesting to dig back into functional programming, but I don't think it's my bag of potato chips just yet.

Finally, I sat in on an Extension Methods for C# session, which I found worrisome: extension methods seem really dangerous to me, and I'm having a hard time seeing then being used well (outside the .NET framework itself). They are cool, and they can be useful, but they seem to fall into my "on error resume next" bucket for now.

I had dinner with Ali, and then I went to the cocktail party. I played a ton of Rock Band, and then I watched some real musicians pull some fantastic improv songs right out of thin air: lyrics, guitar, drums, everything.

I think CodeMash 2010 needs to be at least 1 day longer--I'm having a ton of fun and learning a lot.

CodeMash Day 1

I just finished up the CodeMash "precompiler" (aka the first optional day).

I went to a TDD session and I spent some time in the Microsoft kitchen, where I also did some TDD work. I am more convinced than ever that TDD is the way to go. I'm not even that good at it yet, and yet it feels so natural, so minimalistic, and so correct.

I also spent some time in a Kanban session, which seems like a useful little tool. I bet every shop has some sort of Kanban already, but they don't call it that, and they certainly don't formalize it or recognize the potential.

I also watched a live recording of .NET Rocks podcast, and I think Leon Gersing has officially ushered himself into my personal pantheon of developer demigods. He may come off like a "stick it to the man, maaaan!" type of guy, but if you pay attention, he makes so much sense that it makes me want to grow a beard and wear silly hats. Oh wait...I already do that.

Check out the Twitter hashgroup for CodeMash if you are interested in the goings-on.