Friday, June 13, 2008
Third post of the day :)
Just realized it is friday the 13th! Since I don't have Triskaidekaphobia, happy Friday or 0x0D in hex if you prefer...
jk
I was just browsing MSDN Magazine (online, i'm trying to save trees LOL) and ran across a new column titled "Patterns in Practice" which looks promising!
"This is the first installment of a new MSDN® Magazine column on software design fundamentals. My marching orders are to discuss design patterns and principles in a manner that isn't bound to a specific tool or lifecycle methodology. In other words, my plan is to talk about the bedrock knowledge that can lead you to better designs in any technology or project. "
For any developer who wants to get better at their job (you DO want to improve don't you??), common patterns and best practice can only help lead you into the 'pit of success'.
Single Responsibility Principle
On the first release of a product our team just completed, one section of code violates the Single Responsibility Principle in a BIG way. We will refactor it during the next release, but it would be great to spend that refactoring time on something else (new features, better perf, more unit tests....).
The Chain of Responsibility Pattern
I actually implemented this pattern in a web service to do querying/filtering in a financial application. e.g. I want to find a particular fund based on criteria which were specified dynamically at runtime (per query by the user). The web service used other services and did not have a direct connection to a SQL Database (so appending where clause conditions wouldn't work). The Chain really worked nice because I could dynamically construct a chain based on the input criteria, then run funds through the chain. As soon as a fund failed a criteria, the code could stop looking...if it got to the end of the chain, it passed! I was really pleased with the implementation and it turned out really clean.
Liskov Substitution Principle (LSP)
If you Google LSP, you'll get a ton of results. The ObjectMentor PDF is an excellent read and Ward Cunningham's Wiki is always top-notch content. I think of LSP as just programming to an abstraction instead of an implementation. e.g. in .NET, when you write a method that returns a collection, do you return ArrayList (an implementation), or do you return one of the abstractions IEnumerable, ICollection, IList?
I'm hoping for great things out of the Patterns in Practice column. It is one thing for a developer to learn a grammar or syntax of a language, but to become a better developer/engineer, applying solid programming principles is essential!
cheers
jk
Have you registered for the Magenic Technology Summit yet (June 20, 2008 in Chicago, IL)? If so, GREAT! We're looking forward to seeing you. If not, you still have time to register!
See you in Chicago!
jk
Thursday, June 12, 2008
The 2008 US Open started this morning at Torrey Pines in San Diego (the South Course). I had the privelege of playing Torrey Pines back in 1999 when I was on a project in San Diego, so any tourney played here is *extra* fun for me to watch as I've walked the same fairways (ok, maybe it was the rough lol) as the pros!
The 2008 US Open web has an excellent virtual tour of the course...check it out: http://usga.usopen.com/course/index.html
It 'almost' makes me want to become a flash developer...ok, maybe not, but it is a super cool application nonetheless!
Fore!
jk
Monday, June 02, 2008
Last saturday, I got to play in a 4 man scramble at the Cannon Golf Club down in Cannon Falls, MN. We had a beautiful day; sunny, light wind, and plenty of beer. :) Our team ended up winning, which is always fun!
It was my first time there so I didn't really know what to expect, so I went to the web page and got a lot of great information (I really like the details for each hole on the scorecard), and the hole by hole tour was also informative.
The course was in great shape, the greens were consistent and there were some intresting holes. Hole 4 down by the river was probably my favorite, with the par 3 12th hole coming in a close 2nd (yes I was dry on #12). Hole #10 got us though...grrr
I would definitely make the drive back down there to play again sometime.
Fore!
jk
It's 18 days and counting until the Magenic Technology Summit! Have you registered yet?
As previously mentioned the Technolgy Summit will be held June 20, 2008 in Chicago. Please visit the Magenic website page or contact your local office for more information. It is sure to be an excellent event, and it is the best price...*FREE*!!!
Hope to see you there! I'll be the dapper guy directing traffic all day :)
cheers!
jk
Thursday, May 29, 2008
Kirstin found this for me tonight. I'm going to start implementing this in ALL MY CODE! (ok, kidding...)
the short and long of it is...
throw new VirtualMachine();
Read on: http://secretgeek.net/throw_new_vm.asp
and thanks for the laugh TFS Princess... :)
cheers
jk
Thursday, May 22, 2008
No one really likes notes on their computer monitor. You know you're in for a *good day* when you find a note like this one...

Ahh the life of a consultant :)
Think I'll go find the author (a former Magenicon) and give him a hug; he's crying out for one!
Happy thursday!
jk
Wednesday, May 21, 2008
I got the pleasure of helping my client interview a potential candidate today. It *never* ceases to amaze how it is possible to learn something from EVERYONE you talk to, including the candidate and other co-interviewers.
Former Magenicon Mike Frey brought up this web stie to help do x-browser javascript compatibility: Jslint.com
The candidate talked about Gliffy.com as a site he had used to create diagrams, flowcharts, design artifacts...
My takeaway from this experience is to keep a 'beginner mind', even when interviewing a candidate who has 10 years less experience than you!
cheers
jk
Saturday, May 17, 2008
Played my hometown course Greystone - today. It was designed by Tom Lehman (PGA Tour pro from Alexandria, MN).
The front nine was pretty benign (excuse the rhyme), but on the back, the NW wind picked up to 30 mph (reminded me of living in Fargo). A couple of those 500+ yard par 5's play pretty LONG into the wind. It was a good mental challenge for me, no doubt.
Fore!
jk