Monday, October 22, 2007

Grading

It'd be helpful to know how I've been doing on the blog posts and on the assignment I turned in last week. I don't want to wait until the end of the class to find out that I've actually been supposed to be doing something completely different.

Overcomplexity

This week's reading put me in mind of a problem I've witnessed in the interfaces around me. That is that, in a quest for increased functionality, device or software designers will make the interface more complex than it needs to be. My parents recently bought a new microwave. On my last trip home, I wanted to boil some water for tea. However, I was stopped by a microwave with something like 18 buttons and a little digital display.

The old microwave had three control surfaces. A latch on the door allowed the whole system to be turned on or off by the very intuitive action of either putting food in or taking it out, a dial allowed for selecting a cooking time, and another dial allowed for selecting the cooking intensity.


Not the microwave I'm talking about


With the old microwave, my most basic interaction with the device (boiling water), was three steps:

1) Put the mug in and close the door, priming the system.
2) Check that the intensity is on "high," and if not set it to such.
3) Set the cooking time to three minutes by use of the dial.

If I was defrosting food, the procedure was:

1) Put the food in and close the door.
2) Check that the intensity is on "defrost," and if not set it to such.
3) Set the cooking time to the appropriate interval.

With only three control surfaces, and a largely stateless, analog machine, the procedure could never get longer than three steps.



Not the other microwave I'm talking about


However, with the new microwave, I still haven't figured out the intended procedure for boiling water. Presumably, there's a way to coax it into an "Enter time" mode, thus making use of the digit inputs, but the only way I've been able to do it is:

1) Put the food in and close the door.
2) Press the "clear" button until whatever is on the display is replaced with 00:00.
3) Press the "add minute" button until it's the desired cooking time rounded up to the minute.
4) Press "start."
5) Wait until the cooking time is up, if non-integer minutes are required.
6) Press the button to abort the cooking procedure.

The new machine has a number of features, like a "popcorn" button or a "defrost" feature. However, these functions were available in the old microwave, by use of the intensity dial. The new interface makes the rarest interaction as hard to perform as the most common one.

Photos of microwaves used under the Creative Commons license. Attributed to the persons to whose Flickr pages the images link.

The designers of the microwave either thought that the new interface would make the microwave easier to use or that buttons were more modern than dials. However, the old interface is much more intuitive. The same surfaces that are used as controls to set an input variable are the displays to show the status of the variable. The machine is stateless, so there's no different input modes to shuffle. When you approach the machine, you don't have to make sure what state it's in before you start inputing data.

This has caused me to become frustrated. I cannot say whether this is a general reaction to this microwave, as my parents seem fine with it, but my response was very negative.

Sunday, October 21, 2007

Self System

The lecture on Thursday was pretty darn cool. One of the highlights was the video of the Sun Self System. It really sparked my imagination.

Basically, it's a programming environment with no edit/run modes. All editing happens in runtime. Objects can be deconstructed and their properties and methods dragged around like so many Legos.

The only problem in my eyes was that it was discontinued in like 1995. I wished there was something like it still. I searched around for keywords that I thought would result in projects in the same vein as Self. And, lo, what was the first hit but Self itself!

Discontinued means something very different in software as compared to hardware.

So, I quickly downloaded the Self OSX binary and installed it. I ran the demo snapshot and it opened an OpenGL window and I was in. It had the same demo used in the video, with gas particles in a tank, bouncing around.


Click for larger image


I played around with the controls a bit, but I couldn't get the hang of it. It's a very different method of programming from what I'm used to.

I don't think I'll ever use it again, but it's a interesting idea. I'm sure it will give me perspective in the future, if I'm tasked to design an interface.