Starter Step

Archive for January 2009

I have been working on a port of the popular PureMVC framework to my beloved language Ruby.  Brian introduced me to PureMVC with our latest Travel Studios project “tripview”.  We were finding that our Objective-C codebase was becoming unmanageable and we had horrible coupling between our view components.  Brian’s thought was to bring the power of MVC to the Objective-C world for iPhone Development.  The result was a new port of PureMVC with Objective-C.  We have been using it for a month or so and I had really let us compartmentalize our code as we would in our services layer.  We have even introduced some cool dynamic features on top of the PureMVC core to help create some “Black Magic” for us.

Objective-C is definitely not Ruby..and being the Ruby fan that I am, I wanted to take the same great idea and try it in my favorite language.  The result is the PureMVC Ruby port.  I used wxRuby to implement the canned Employee Admin application that Cliff Hall asks all owners of ports to complete as a pre-requisite to releasing the port.  You can read more about the release at:

I’m a social guy..I promise. I created a twitter account ages ago and haven’t spent much time using it. The same story goes for MySpace and Facebook. To my surprise, I logged into my Twitter account today and noticed I had no avatar! What!?!? Didn’t I add my avatar when I created the account? I guess not. Funny thing is, I just went through this same problem with my Facebook account a few weeks ago. I quickly open my browser and feverishly type “Optimus Prime” and click “images”…ahhh…he we go. Now, why am I doing this every time? I seem to pick the same picture of Optimus Prime to use for my avatar. I think now I am starting to realize “why” gravatars are useful.

I have been struggling with my weight for a few years now.  When I got married I was a whopping 145lbs.  One would say that I was a bit too thin I guess but I felt great and was in great shape.  Eight years later, a 3 1/2 yr old, and a baby on the way…..I am now 198lbs.  I’ve tried to loose weight a few times and was pretty successful. My last attempt got me back to 165lbs while doing Body for Life.  It worked great and I really enjoyed the program.  I’m at the point now where I feel I need more monitoring tools to put this beast to rest.  A co-worker and now one of my neighbors bought a “bodybugg” and have raved about how accurate it is at calculating the number of calories you are burning.  I went out today and bought one for myself and my wife.  We will see if it helps….

Day 1 – 198lbs

I’m a believer in coding for readability.  I recently started back on building Comparative Agility.  Before the holidays, we were in a bit of a crunch to get a functional app ready for a conference that Ken and Mike were attending.  In the crunch, I did not create any helpers.  In my last project with Mike I did just the opposite.  I had time and was able to create helpers for a ton of stuff.  The result was very readable.  I can pick up the Userstories code and very quickly jump into adding features or fixing issues.  The Comparative Agility project is much more ui intensive and helpers are going to be my savior.  Now that the crunch is over, I can go refactor and clean up the ui.  If you haven’t had a chance to check out Comparative Agility, you should….its a great concept, awesome site, and of course its Ruby 🙂

I had to take a minute to write this one down…

I recently was training a group of folks on tdd and showing them some dependency injection techniques.  One of the techniques was how to break dependencies where the Factory Pattern was being used.  All was going well until the “tech lead” speaks up that “we should not be using the factory pattern” and continues to babble about how “j2ee discourages the factory pattern”.

Have I missed something? I of course told the guy I disagreed with him and could not understand why he would make that comment.  How could the Factory Pattern itself be “Evil”?

During this converstation, I had to bring up “Design by Difference” to this guy.  Remember that?  Yeah, that is the idea of creating a subclass to introduce new features.  You could see how potentially harmful it is to continually subclass in an inheritance hierarchy for adding new features. The pattern can do more good then bad when used correctly. How about the arguement of “singletons are evil” or “statics should never be used”.  These conversations make me want to hurl stones at people.  Is it too difficult to accept that these things are there for you to use and it is up to you to decide if it is the right tool for the job.

Meh! Why cant we all just use Ruby…

Lately, my brain has been  over stimulated and has suffered some of what I call “mind meld”.  I have been working with Ruby on Rails for some time now and was in my groove.  Thanks to Brandon Aaron, my javascript skills were also starting to improve.  I then got a consulting gig for FitNesse and I had to learn C# in about a week to deliver a class on building FitNesse fixtures.  I had delivered the class in Java some time ago, but the client was an all .Net shop.  After that gig, I had to dive into Objective-C for an application that we are building at Sabre.  Brian then introduced me to PureMVC and showed me what he was doing in Objective-C to port the meta-pattern.  So at this point I have Ruby, Rails, JS, C#, and Objective-C all running around in my head. Then my brain went into overload!  I got a call to do some consulting for a j2ee shop for a week.  I was excited to play around with Java again.  It had been a few years since I had gotten my hands dirty with Java.  I then learn that the company is using the 1.4.2 sdk with struts 1 and ejb2.  Talk about taking it back a few years….I had to really dig in and refresh myself.

All this has happend in the last 2 months.  My thoughts are that the languages and frameworks you use don’t make you great.  I enjoy the challenge of picking up and dusting a part of my brain I havent used in a while and applying knowledge I havent used in 5 years.  My core thought is that being able to communicate and and solve problems is what makes you a ninja.  Am I a [insert your favorite language here] badass…..uh no.  Can I solve a problem and then figure out how to get that to work in [insert your favorite language here]….ohh yeah!

Meh! more ramblings later…

  • Dave: I can tell you're a ruby guy because you forgot the 'return' keyword. Thanks for the tip though!
  • Chandrashekhar H M: Hi, Thanks its working fine in iOS 6 but not in iOS 7.0. Any Suggestion on this.
  • Coeur: To change a rootViewController, without all this TVNavigationController : myNewRoot = [[UIViewController alloc] init]; myNavigationController.view