How to write an application supporting plug-ins

Google AdSense

In one of my current projects, I’m designing web services that may interact with various different third-party software. Right now, I’m just integrating one third-party API into the web services. In the future, there may be a few different third-party APIs integrated into the system.

I didn’t want to include all of the third-party libraries as dependencies of my web service application and some of the data providers may be written by other developers, who I really don’t want messing around with my source code. So this lead me to the plug-in architecture design.

As an example, a client may submit a request information from a specific data source that has been configured in the host web service to use a specific plug-in. Of course, there’s exception and error handling built into the host web service to make sure every request is validated and verified.

Continue reading

Halo: The Flood (Book Review)

Google AdSense

The second book in the Halo series is titled “[amazon_link id=”0345459210″]The Flood[/amazon_link]” The book is written by William C. Dietz who’s background of serving in the US Navy as medic might have helped him with the characters and background stories.

This book is a novelization of the first Halo video game (Halo: Combat Evolved). I never got a chance to play the first Halo game, so the events of the game were unfamiliar to me. For most other Halo fans, they’ve probably played the game and remember quite a few events of this book.

Continue reading

Who believes in evolution?

The Gallup polling organization has just released the results of an interesting survey. Yesterday was the 200th anniversary of Charles Darwin’s birthday and Gallup polling results are as follows.

Believe in evolution 39%
Do not believe in evolution 25%
No opinion either way 36%
No answer 1%

Unsurprising, there’s a strong relationship between education and belief in evolution.

  % Yes, believe in evolution % No, do not believe in evolution % No opinion either way
High school or less 21 27 52
Some college 41 29 30
College graduate 53 22 26
Postgraduate 74 11 16

The range of believing in evolution goes from 21% to 74% (53%) with the various education levels, while the range of not believing in evolution goes from 27% to 11% (16%) with more education.

You can see more survey results at the Gallup poll results page.

Streaming video to your TV via your console

I read about the PlayOn Media Server on LifeHacker last week. It’s software that runs on your Windows computer and streams video to Xbox 360 and Playstation 3. The PlayOn Media Server streams content from YouTube, Netflix Instant Queue, Hulu, CBS, and ESPN.

The PlayOn Media Server demo works for 14 days and I’m almost half way through the demo now. Since downloading the demo, I’ve been able to stream a couple of episodes of 24 (from Hulu), some random and mostly useless YouTube videos, and watch a movie from my Netflix account.

Continue reading

How to serialize SubSonic objects with nullable properties

Recently, I ran into the following error when trying to serialize some SubSonic generated classes.

Cannot serialize member ‘XXX’ of type System.Nullable`1[XXX]. XmlAttribute/XmlText cannot be used to encode complex types.

The SubSonic autogenerated classes cannot serialize nullable types such as DateTime? and GUID?. This is really a .NET serialization problem and not directly related to SubSonic, since the SubSonic library just uses the native .NET code for serialization.

Continue reading