February 2004 Archives

UsabilityNews: Seeing design in context

| 0 Comments

Usability news is running an interesting article by Paul Curzon of the Interaction Design Centre at Middlesex University.

Curzon discusses how context, not just smart thinking is important in design, to highlight his point he cites J-D Bauby, an author who suffers from locked in syndrome. In order to write his book Bauby devised a system where he would blink when his assistant said the letter he wanted to use. They refined this slightly so that instead of using alphabetical order (a,b,c,d) they would use letter frequency order (e,s,a,r).

Looking at optimising this system by reducing the number of question the assistant asks Curzon suggests several ways a computer scientist might "enrich" Bauby's life, all very straight forward. But then looking at the problem again from Bauby's point of view, Curzon shows that what sounds like a reasonable solution out of context, might not enrich Bauby's life at all. In fact it might have the opposite effect!

What Curzon is demonstrating is that designing a solution to a problem is all well and good but that solution must really enrich the life of end user. The only way this can be achieved is by completely understanding the user; this means seeing the bigger picture, understanding the environmental factors, the context and not doing anything to compromise that.

Distributed computing in dotNet

| 0 Comments

Do you remember those DCOM days and the struggle of authenticating over a firewall or proxy server? If you succeeded you were hailed as a hero (but secretly vowed never to do it again). If you failed you could join the hoard of developers disillusioned with distributed computing.

Then along came web services, never again would we have authentication problems.. "everything is plain text over http", distributed programming was viable again and this time it would be easy!  Why then has it taken me a day to consume a web service and I'm still not any closer to creating the sodding proxy class! What's my problem you ask...:

There was an error downloading 'zzzzzzzzzzz'.

The request failed with HTTP status 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied).

AUTHENTICATION!

I spent ages seeing if I could manually enter my proxy information into one of the multitudes of config files but the most I could do was specify in the machine.config that I didn't want to use system default and to specify a proxy address;

<defaultProxy>                 <proxy usesystemdefault="false" proxyaddress="[myproxyaddress]" /> </defaultProxy>

No username and password entry

!

I then turned to the good old command line (if these things are available on the command line, then why not through VS?) with WSDL.exe. WSDL does allow you to specify the proxy servername, username, password and domain and it look as if it was going to work but now I have another problem;

Error: There was an error processing 'zzzzzz.asmx'.   - There was an error downloading 'zzzzz.asmx'.   - The underlying connection was closed: Unable to connect to the remote server.

Searching the internet I get tantalizing glimpses of what the problem might be but no definitive answer! I know the problem must be to do with my network setup but I though all this was supposed to be easy with web services! If a lot of people have similar problem (as my google searches seem to suggest) then I'm not sure we should be heralding the days of distributed computing!

I'm now going to go home and sulk, then I'm going to try to create the proxy class at home and see if I can copy it into my solution here tomorrow! Apparently once you create the proxy class you can set the authentication properties of the class programmatically!

Follow up

I managed to create the proxy class(using WSDL.exe properly) and then compiled and added a reference to it in my project but when I tried to execute a method on the web service I got an authentication problem again!

However using the following code I managed to solve this.

NetworkCredential nwkCred = new NetworkCredential("username","password","domain"); myProxyClass.Proxy = new WebProxy("proxyaddress",false,null,nwkCred);

myProxyClass.Proxy[.credentials] sets the credentials (login) details for the proxy server you use to get on the internet with. Try not to get confused with the credentials property on the proxy class itself, this sets the login details for the web services.

Signal vs Noise: Yellow fade technique

| 0 Comments

The Signal vs Noise guys have invented the Yellow Fade Technique (YFT), a technique which highlights an updated screen area with a yellow background which then slowly fades to white.

I like this idea a lot, I think it's an ingenious way to draw a persons attention to a specific area of the screen but I can't imagine a site like BBCi using it. Also, what would happen if the updated area was a screen down the page? Surely there is a chance that YFT is missed all together!

Where it would work well is on an content authoring system or blog where you could instantly show an updated paragraph or sentence in a mass of text, an example similar to that shown in project management screen shots on the site.

Let hope when this technique is put into practice it doesn't become the blinking text of its time!

Comments

Jason Fried

"Also, what would happen if the updated area was a screen down the page? Surely there is a chance that YFT is missed all together!"

We always anchor down to the FYT point so you never miss it.

Good design days

| 0 Comments

I love days like today!

Today I've been redesigning some of our internal content management pages and have simplified the process for keyword searching massively.

We used to ask the content editors to select the keywords they want to assign to a particular topic from a list. Obviously (why we didn't see this before I'll never know) when the keyword list get large it becomes a mammoth task to select the appropriate ones.

In a eureka moment I realised that the Content Editors were just matching keywords to words in the topic title and/or content - a process which could be easily automated - so that's what I've decided to do.

The icing on the cake is that any new keywords are compared against the current keywords to make sure that there are no duplicates, then a process is run to match it to any relevant topics automatically.

The content editor no longer need to worry about dealing with keywords, they just add them when they want and the system will do the rest. This frees the content editor up to do what they want to do, author content.

Whist this sort of searching problem has been solved many times before it highlights why I love interaction design so much, instead of just painting the corpse I looked past the UI problems and simplified the whole process, making the system work for the Content Editor. Not the other way round.

BJ Fogg: Seven steps to innovation

| 0 Comments