May, 2010

Vending Machine UX Fail

Here's a vending machine that receives far too many of the coins out of my pocket.

This vending machine has a problem.

When someone wants to purchase some Hershey's chocolate, they end up with liquorice instead.

I've seen this happen at least four times - not counting the one time it happened to me!

WCF and IList<T>

Here's an interesting problem I encountered recently with a WCF based web service and the humble IList<T> interface.

I'm working on a classic 3-teir system: Client/Application/Database. The Client and Application are using Windows Communication Foundation (WCF) to interact. For convenience, we have an assembly of Data Transfer Objects (or DTOs) which is shared across both the client and the server.

While working on a recent system enhancement, I encountered an odd error - a NotSupportedException with the message "Collection was of a fixed size".

Specialist Classes

Sometimes, you can simplify a complex class by extracting out a specialist helper class to provide dedicated assistance. And, sometimes, old lessons turn out to be the most relevant.

Attack of the Lazy Coder

I'm having such a great time dealing with lazy code. Check out these gems I've found just today ...

var periodError 
    = string.Format(
        "The Survey Return does not contain a valid Reporting Period");

Why format something that with no parameters? I changed the code to this:

var periodError 
    = "The Survey Return does not contain a valid Reporting Period";

Simplicity

Listening to Udi Dahan on Deep Fried Bytes Episode 49, I heard Udi say something very simple, but very important.

When people hear the word "simple" they translate that in their head to easy. So when someone talks about "Keep it simple" they think the message is "Keep it Easy". But, keeping things simple is not easy at all.

Gadget Envy

So, here I am, suffering gadget envy. Half the team at work has iPhones - the things seem to be like some kind of disease. Every time I turn around someone else has one.

Logitech: UX Fail

Here's an example of simple user experience design gone wrong, courtesy of the product registration wizard from Logitech.

Asserting Convention

I'm using PostSharp on a project, with a custom aspect that provides standard handling for authentication and authorisation.

To ensure that all our service methods are properly annotated with our custom aspect (there are only a couple of service calls that shouldn't have the attribute present) I wrote a unit test:

What makes a Developer?

Thanks to Twitter, I've just found the interesting blog over at agile?faqs. One of Naresh's posts, "Who is a Developer?" struck a chord with me.

Naresh wrote:

A lot of people think, if they can write some code, they qualify as a software developer.

I too have met a lot of people who think the ability to write a simple Excel macro or to craft a couple of SQL statements makes them a developer.

They're dead wrong.