Friday, January 29, 2010

Codemash v2.0.1.0

This post is long overdue... oh yeah, and long itself. :P Basically, everything below could be summed up into one word: Codemashkickedass!

I attended CodeMash this month and it was a blazing success (yet again). This has become a nationally recognized event, bringing in A+ keynote speakers from all over. The inaugural event back in 2006 brought out The Gu himself for crying out loud! Each year seems to out-do the year before, and this year was no different. I mean, last year, I played GuitarHero with Scott Hanselman!! This year was very laid back for me, and I'm already excited for next years event. I actually plan to continue my attendance to CodeMash each year until I get out of the computer business and move to Maui to become a full time surfer. (yeah right)

Ironically this was a very low-key year for me. I've been at every Codemash so far, and this was the first one that I attended as a .NET developer desperately wanting to learn something new. Usually I just go to see what I can learn, but with no real goals of getting my mind blown. I used to mainly get excited about going to meet up with all my geek friends. I've never really taken the sessions for granted before, but the last few years I'd always run around with my entourage and just kind of "be there". However this year it was just me, and I was set to learn a lot of stuff; I was on a mission to learn Ruby.

I woke up at 4am and packed my drumset into the car (more on this later) and headed up to Kalahari Resort for the 8:30 am check-in and a nice breakfast before the 9 am Precompiler sessions start.

Test Driven Development - Leon Gersing
For the Precompiler session this year, I attended Leon Gersing's - Test Driven Development session. This was a very (, very, very) cool session where Leon actually got requirements from Jim Holmes (The Codemash President) for a "session scoring system". It was Leon's job to lead a (large) group of willing developers to build this system from Concept to Completion in one day. It seemed impossible as the session started and Leon was very casual in getting everybody setup with the tools needed for the day.

I literally sat down in the 2nd row knowing zero about Ruby, Rails, Git, or and what the hell is a Ruby Gem?! :) Leon used a rendition of Scrum, and that, I did know. I was on a team that implemented scrum at my last company, and it proved to be a very successful approach to managing epic projects.

Leon was awesome in his role as the Iteration Manager. He encouraged all of us to be "courageous" and just be real. If you didn't know something, speak up and let everybody know. There's no shame in not knowing something. I actually used it a few times in order to get all the tools installed on my machine. I felt as though everyone around me was leaps and bounds ahead of me as I struggled to understand simple concepts like installing gems and understanding the what Ruby was and what Rails was.

I sat through the morning part of the session, but decided to move onto another session after lunch (no hard feelings Leon). :) I was simply in over my head without knowing Ruby or Rails. The team I was in had good knowledge of these technologies and I felt like I was (1) slowing them down and (2) learning nothing as they pushed forward without keeping me in the loop. No blame, just the facts. I plan to learn Ruby on my own within the next few months. I've heard too many good things about it to not give it an honest effort.

Advanced Presentation Patterns - Jeremy D. Miller
At lunch I actually sat next to Jeremy D. Miller (Mr. Code Better, himself). I was sitting with some other people and he sat down next to me. I had no idea who he was so I (of course) introduced myself only to find out it was him shortly thereafter. I've read his blog in the past and have known his name for quite some time. It was cool to shot the breeze with him, if only for a minute or two. After I finished eating, I actually decided to attend his session after lunch on a whim. It was standing room only, so I stood in the back and watched as he discussed different concepts for building robust user interfaces that allowed full control over the hosting UI dialog in regards to adding buttons, menus, and mapping navigation between windows. It was pretty informative, and I took some intense notes as he showcased some pretty complex user interfaces concepts with simple enterprise architecture models.

After this session, I went upstairs and decided to take a little nap. Again, I woke up at 4 am, and it was now approaching 5:30. After a short 1-2 hour nap, I woke up and took an intense 4 mile run on the treadmill and then headed out for a quick bite of dinner. Precompiler day was over.

The keynote was awesome! Mary Poppendieck gave a great presentation outlining the 5 Habits of a Successful Lean Organization:
  • Purpose
  • Passion
  • Persistence
  • Pride
  • Profit
She showcased the attributes associated with teams and business that have succeeded. And gave detailed specifications and examples on how they succeed. For example, on thing that stuck out for me in the 'Passion' section was to hire and enable passionate people. When people are in a position to do what they love to do, they will exceed and spread excitement to those around them. Ironically, she showed how open source projects tend to be successful by nature due to the fact that the people involved are passionate about what they're doing... even though they aren't getting paid. I could go on about this keynote as I took a lot of notes and really enjoyed her keynote.

What Makes Ruby Different - Joe O'Brien, Mark Peabody, and Leon Gersing
After the keynote, I headed over to "What Makes Ruby Different" where the EdgeCase guys showcased various aspects to the Ruby language and concepts that let Ruby stand out from the other languages. It was very informative and I learned quite a bit. They showed how a few lines of Ruby code can go a long way, and showed the different approaches of the same concepts in other languages. While the other languages were purposefully "ceremonial" to drive home some key points, I did gain a lot of respect for the Ruby language.

After this session, I got a few things done and then sat with Josh Holmes at lunch while we watched Hank Janssen give a keynote about open source technologies that Microsoft is working on. It was very informative and I learned that Microsoft is actually giving a lot of attention to this area, even though they are known for avoiding it. The ecoustics were difficult at times and we had a hard time hearing at times, but the slides really painted the pictures pretty well.

Ruby and Rails for the .NET Developer - Matt Yoho
Following lunch, I attended the Ruby and Rails for the .NET Developer. It was a toss up between this session and Powershell: Ten Things You Need to Know - by Hester and Lerch. I was happy that I attended the Ruby session, for I learned even more great things about Ruby. For example in Ruby, when you connect to a database, the language itself is so descriptive that you can query data simply by calling it in "english" like method calls. For example if I'm querying a table and want to find a row by a certain column, I simply say:
(note: ignore my syntax ignorance)
def rowByUser = db.find_by_username();
def rowsByState = db.find_by_state();
I don't have to actually create these methods to query the database by user name and by state. In .NET there is a lot of extra work that we (as .NET developers) have to do in order to make these two calls work. Not with Ruby! Rails does this automatically!! That is cool!

Vendor Sessions
For the vendor session, I attended the Telerik Code Ninja session where they showed some cool little coding tricks.

Refactoring the Programmer - Joe O'Brien
This was an awesome session. I'd introduced myself to Joe earlier in the day during lunch break or something and he is a very humble person. I've seen him at Codemash in previous years and have attended sessions of his before. I have actually followed him on Twitter for sometime now and he is just an all around great guy. This session was about getting developers to stay on top of their game and keep their skills sharp. This is something that I have to keep reminding myself actually, for I tend to get comfortable in my current skill set and have to force myself to really explore new things around me.

Joe was hilarious, for his session was another one of those sessions that was standing room only. Best yet, he didn't have his projector adapter (ie. "dongle" (ie. my wife's favorite geek word)) and therefore was forced to do his presentation with no over head display. It was just him and his scotch (?) in front of ~100 geeks. He nailed it! He kept it humorous and interesting, and best of all he provided some great advise for everyone in the room. He left everybody with 4 great books to check out and read:
... these are all in my Amazon wishlist (hint hint).

Vendor Sessions
After Joe's session, I walked around and talked to a lot of the vendors. I remember being there as a vendor myself, and recall how frustrating it was to see people walk by the booth all day long but never stop. I stopped at every single booth and gave them my undivided attention for as much time as they needed to really explain their product to me. Of course, I gathered some t-shirts and drink tickets too. ;)

Ruby and Rails for the .NET Developer - Matt Yoho
After walking around the vendor booths, I headed over to see some of the cool things that Ruby has to offer for me. Unfortunately I only had about 15 minutes to spare and (honestly) I was having a hard time keeping my eyes open at this point. :( It wasn't the information that was making me tired, it was my brain that was making me tired. I tried to focus, but found myself slipping in and out of consciousness here. Sorry Matt, I'm sure it was a great session; I came in late, but... never really showed up I guess.

Dinner and Jam
From here, I stumbled out into the hall and got some dinner. After dinner, I headed up to my room and gathered my drumset. Upon gathering everything, I quickly realized that I HAD NO CYMBALS!! I had packed everything except for my cymbal bag. This is what I get for rushing out of the house at 4am I guess. It sucks that I packed all the big / bulky stuff, but forgot the one consolidated peice of equipment in the basement. I couldn't believe it... I had brought a set of toms with a bass petal. :( Luckily Grag Malcolm had brought his drumsticks! Otherwise, we would have been playing hand drums (yeah, my drumsticks were in the cymbal bag).

Regardless, I set up the drums and decided to go mingle instead. I caught up with some fun friends and we all played euchre for the remainder of the night and drank a lot of booze. Fun was had by all! Unfortunately, I didn't get to see one second of Enter the Haggis. I'm kicking myself for that!! :(

Woke up at 7am sharp and then headed back up to my room to change and workout for the first round of sessions. After that, I went back to the sessions and got into some cool content.

An Introduction to Functional Programming with Scheme - Michael J Norton
This was a bit over my head. I tried to get into it, but I went in knowing very little and left knowing just as much. I'm sure had I known some of the functional concepts that were being discussed ahead of time, I would have been able to keep up. I left early and mingled. :(

It was about this time where I'm getting fuzzy without my updated schedule list; a lot changed in the schedule that I"m going off of..

Pragmatic Keynote
I do recall the keynote by Andy Hunt, and he was AWESOME! I really do plan to get his books and catch up on all the great content I'm missing. He was a great keynote speaker as he really knew how to work the crowd and had everybody's undivided attention for his entire keynote. I took a lot of notes and really enjoyed the lunch break.

Analyze and Optimize your .NET Web Application - James Avery
I learned quite a lot in here. James demonstrated how to fine tune any ASP.NET application using a set of profiling tools. He started with the ever famous "Nerd Dinner" and found that it was calling the database countless times for simple lookups. He used tools like RedGate - Ants Profiler, SQL Profiler and some other tools to help him isolate the bottle necks. It was pretty interesting to say the least and I learned a thing or two. Great session James! :)

I didn't win anything... again. Four years in a row, nothing. Oh well, it was fun to sit and watch others win in a weird way. Plus the CodeMash crew always works the crowd pretty well with shenanigans and cool giveaways. Simply a great event, CodeMash organizers!

If I didn't provide enough content for you in this single post, please read more here:

Tuesday, January 12, 2010

I'm LogMeIn Savvy

I just signed up for LogMeIn. This totally solves so many problems for me. Ever since my Toshiba died, I've been stressing out about getting my new laptop setup with all the software I need in order to attend CodeMash.

After a few minutes of stressing, I realized that I don't need to have everything installed on the new laptop. I can just use this computer while I'm away at the conference. The only downside to this little epiphany is that I have to have an internet connection to be productive. This causes problems when I fly, and when I'm at a location that doesn't have internet. I do know that CodeMash has had spotty wifi at times due to the mass amounts of geekery going on. However, that's ok, because I'll probably only be logged into my computer when I'm back at my room anyway. While I'm at sessions, I'll just have my man-purse to take notes, and will probably be developing in Notepad as I learn how to become a Ruby guru.

For those that haven't heard of LogMeIn, you should definitely check it out. It was blazing easy to setup and best of all, it is FREE! It took me about 5 minutes total to get setup; I created an account, installed a little application on my desktop, and then went upstairs to test it out from my laptop. Viola!

Technology kicks butt!!

Friday, January 08, 2010

The Toshiba Died Today

Back 2004, I got a new Toshiba Portege M200 Tablet PC for work. It was the cream of the crop in it's day.

I love this thing. It's been the most solid and reliable laptop I've ever seen anybody own; I've been proud to call it mine. It's gone everywhere with me. From west coast, to east coast. I took it to Russia with me, and it was my main development box while I was in France a few months ago. Every time I visit with my friends at coffee shops to code, it goes with me as well. Jennifer uses it exclusively in the house, and the girls even tinker on it from time to time to play WebKinz or draw in MS Paint. I can honestly say that it's been a solid member of the Hardbarger family.

Well, Jennifer was upstairs surfing on it this evening, and she got the blue screen of death. I tried a few things to see if I could find what might have happened, but to no avail. It's officially dead.

I'll always remember the good times we had together...

Next up: A MacBook!! :D

Monday, January 04, 2010

A Real 3 Year Old Conversation

Yesterday was Lizzie's 8th birthday. She's getting way too big! We had a little party here with cake and ice cream. There were lots of family and friends that came over and we all just had a great time. It's hard to believe that our oldest is already 8. These years are flying... I'm digressing, sorry.

Anyway, we were putting them to bed last night and Daizi started rambling to me while she was supposed to be getting ready for bed.

She said: Da-ee, Sissy birfday today and my birfday tomorrow.
I said: Your birthday is tomorrow?!
She said: Yeah!
I said: No, your birthday isn't until September...
She said: Tha's wha I told you!
I said: Oh...?

Yeah. She's 3. :)

Sunday, January 03, 2010

Another Great Year Behind Us

Hope everybody had a great 2009. We did!

Not too much happened in 2009 that was ground breaking for us. We got a new dog. Got a new popup camper. Sold the truck. Paid off the van. Paid off the car. Girls are each a year older. Jen and I are each a year older. I ran some races. Visited France and Romania. Wrote some killer code in my basement. My sister had a baby. I lost some weight. I gained some weight. We lost some money. We earned some money. That's pretty much it... We had a good year.

My goals for this year is to blog more. Limit my Facebook usage to a minimum, since it's a total time-suck when I'm on my computer; sorry to all my Facebook friends. I am also shooting for a sub-4 hour marathon this year. In order to do this, I'm gonna have to train smarter and eat smarter. My fastest marathon was 4:27 and I was in pretty decent running shape at the time. I've already started my training regiment and diet (somewhat). I'm eating every 2 hours no matter what and I'm not stuffing myself anymore. I'm also trying to run more tempo runs rather than just "slow and easy" like I did last year. I'm down 7 lbs since the week before Christmas (not bad), but I need to lose another 20 lbs or so more before I can attack a sub 4 hr marathon.

Oh yeah!! Jen and I are taking the girls to Maine this summer on a 2 week camping trip. We've already starting to save for it, and we're all VERY excited about it. I've always wanted to go to Maine, and we're finally going to do it.

Anyway, like I said, I'm hoping to get back into blogging more regularly. These last two months have been pretty chaotic with work and everything else, so I've not put too much effort or stress into posting my thoughts, since they're mostly around what I need to do to be productive and blogging doesn't fall in that category. :)

Here's to 2010!