April 2007 Entries


Gravatar

I discovered today, way behind the blogosphere eight-ball, a site that provides online avatars: gravatar.com.  A gravatar is a Globally Recognizable avatar, which means an 80x80 image is associated with an email address.  The gravatar service will serve images from its database for use on blogs where you post comments or any other location where an avatar-accompanied email address makes the content a little more personal.  The service is very simple, to see the image associated with an email address, you add the MD5 hash of that email address (I use this utility) as a querystring parameter named gravatar_id to the url: http://www.gravatar.com/avatar.php. In...

Quantum Computing and Public Key Cryptography

I have just finished reading Decoding the Universe by Charles Seife, which tells a fascinating tale about the emergence of information theory over the past hundred years.  I have read many texts on classical physics, quantum theory, and the mathematics behind modern information technology.  However, while many have given good insight into their particular field, none have done so wonderful a job of tying all of these disciplines together as Charles Seife does in this text.  The great scientific revolution of our generation is that of information theory and this book presents summaries of the many great theories and articles that have led...

Ambiguous Error Messages

Last night I came across an instance of poor software design that is all too common in modern applications, one that has troubled and annoyed me ever since I became involved with computers and software development. Worse than my ruffled feathers, this is an issue that is responsible for such a vast amount of wasted time and money that it never ceases to amaze me how little has been done to correct it. I have a Canon Powershot A710 IS digital camera. It's a middle of the range compact digital camera with just enough features to give me power without having...

The ObjectDataSource Web Control

There exists a wide variety of ways in which data for a web page can be retrieved from a data store. One of the ways introduced in ASP.NET 2.0 involves using the ObjectDataSource control. This article discusses the ObjectDataSource control and how it fits into the ASP.NET 2.0 toolkit. A working example is provided demonstrating how the ObjectDataSource control can be used with a typed data set to provide search results to a GridView that are filtered based upon search parameters entered into other controls on the same page. The results can be paged and sorted within the grid, demonstrating...

Overloaded Indexers cause Ambiguous Match

Developing custom web server controls can be a powerful way to provide opportunity for code re-use while retaining strong design-time support and Visual Studio integration.  This is especially useful when developing a solution that will be handed off to a maintenance team as it allows full control of the rendering and behavior of your control whilst retaining ease of use and configuration for the maintenance team at a later date.  One of the common patterns that appears in such server controls is the definition of a child collection of items.  This is akin to the collection property Columns on the System.Web.UI.WebControls.DataGrid control.  When defined in .aspx,...

CascadingDropDownList and Page Validation

While working with the AJAX Control Toolkit (http://ajax.asp.net), I came across something interesting with the CascadingDropDownList control and ASP.NET page validation.   What Does the CascadingDropDownList Do? The control is used to create tiered drop-down lists that each depend upon parent values for their own data population.  The canonical example given regards using three DropDownList controls to narrow a selection of a car.  The first list displays a list of manufacturers, the second a list of models, and the final a list of common packages, with each successive list control populating only the relevant values based upon its parent.  For example, selecting "Ford" from the manufacturer list would...