Model-View-Presenter Webcast Series

Craig Shoemaker over at Polymorphic Podcast has created a series of short webcasts on the Model-View-Presenter design pattern. I spent some time tonight looking through them and was pretty impressed with the topic overview.

While I have heard others discuss the MVP design pattern and its benefits, I have neither implemented it myself nor seen it implemented in any concrete fashion. So I went into the webcasts with some skepticism to determine whether the pattern was as useful as I had been told.

After watching the first webcast, my initial reaction was, “Why would people want to write all that extra code? Just to say they had another layer of abstaction? I could never sell anyone on this idea!” But I decided to watch the second webcast, which took the first project (a web project) and applied the Presentation (Presenter) and Business (Model) layers to a new WinForms application. Without a single change to either of the two aforementioned layers, Craig was able to re-create the UI functionality with minimal coding changes.

Now, granted, the examples are a bit vanilla and more real-world projects will require additional forethought. And, as with everything else, this design pattern is no silver bullet. However, I can say with certainty that I am a bit less skeptical of the MVP design pattern after watching these webcasts.

Changing of the Mock Tool

I’ve just recently started using NMock2 on a new class library that I am building, which makes use of several external resources (e.g. mail server, FTP, etc.). So, in writing my unit tests, it made sense to use some type of mock object so that I was not dependent on these external resources during testing.

However, because my assembly is strongly-named, I discovered that I can’t use the NMock2 library because a strongly-named assembly can only reference other strongly-named assemblies – and for some reason, NMock2 is not strongly-named. There have been a couple requests, but they all seem to have fallen on deaf ears – or nobody is at the wheel steering this project anymore.

So I am left looking for other options. I thought I’d give Rhino Mocks a try after hearing about it from Tim. It looks promising…

WordPress Adapts Agile, Iterative Philosophy

WordPress released their latest version of blogging software on Monday. I haven’t had a chance to upgrade yet, but I’m excited to see the new features in action.

In reading their release notes, I was most interested in what they had to say about their future development plans (scroll down to the section The Future). More frequent releases? Development based on user-requested features? Specifying a release date immediately following the current release (a.k.a timeboxing)? Those are agile methods, my friend! The developers all but announced their shift to adopting agile practices, without actually mentioning the term Agile anywhere.

It makes me wonder if they are familiar with Agile, but don’t want to (or didn’t find the need to) say it; or if they just came to the conclusion that these practices make sense without actually knowing anything about Agile development. If it is the latter, than it speaks volumes to the argument that many agile practices are just plain common-sense.

SparkPeople: Fitness Made… errr… easy

Note: The following could be mistaken for a spam advertisement. I promise you I write this myself, willingly, as my own opinions on the matter. Any typos are genuine, not the result of some foreign-speaking hacker writing spam about the latest third-world leader dying and wanting to leave his fortune to you…yes, you! And All your base are not belong to us.

My job doesn’t require a lot of physical activity, unless you count walking to the bathroom, the printer, and the occasional meeting as physical labor. So, I have noticed in the last couple of years that I’ve put on good 15 pounds.

One of the perks of my employer is that they have a strong health and wellness program for their employees. For example, earlier this month, I attended a company-offered seminar over the fundamentals of getting into a fitness plan.

Along with all of the useful information the speaker provided, she also spoke highly of a web site called SparkPeople, a site I first heard about in November. SparkPeople is a free, on-line health and fitness tool containing a plethora of tools and resources from actual health and fitness specialists. When I registered for SparkPeople, I was able to define my weight and fitness goals right away, and set up a weekly personal fitness and nutritional program.

One of the great philosophies of SparkPeople is that they don’t try to shove some quick-and-easy diet scheme down your throat (literally or figuratively). They advocate adapting healthy lifestyles, such as exercising more days of the week and eating more healthy foods, rather than temporarily taking a pill that promises to “lose the weight for you.” Because, let’s face it: Once you’ve hit your target weight, if you haven’t changed your lifestyle, what’s to stop that weight from coming back in full force?

My biggest problem with working out was that I did it sporadically, without a set schedule. With SparkPeople, I was able to set up my own workout routine, pick my exercises, and measure my progress (because I love measurement tools).