Category: Revelation
User interface design for programmers with no sense of style
Years ago I was working on Kodak’s Cineon system, an innovative system for digital post-production of movies. It was a great gig, but unfortunately Kodak pulled the plug because there were too few post-production houses doing digital work to support a competitive marketplace, and because some really questionable business decisions were increasing the development costs. I still think they should have held on a bit longer until the market caught up to us, but that’s life.
One of the projects I worked on was a “clip editor”, where the users got a view of multiple film clips (ie. different shots from the same scene) and they could cut them, shrink or expand them, slide them up and down relative to each other, and then define the transitions between them. Our competitors called theirs a “virtual light table” or something like that. Ed Hanway was doing the guts of the program, and I was doing the user interface. I liked working with Ed – he’s one of a handful of people I’ve worked with over the years I’d consider as good if not better than me, and easy going and easy to get on with in spite of it.
I had the basic outline for what I wanted the clip editor to look and work like, but I felt that my own aesthetic sense was lacking (which you’d agree with if you’ve seen the way I dress), so I wanted some feedback on the aesthetic aspects of the design. Kodak didn’t have a Corporate Design and Usability department like they do now, or if they did nobody was telling me about it, but since the Cineon tech support department was staffed by people who edited movies, I figured they’d have some artistic instincts.
Oh quick aside here – our tech support people often pitched in at customer sites when they were using our software on big projects, which meant that you could always tell the Cineon people at a Rochester movie theatre, because we’d always wait for the very last credit and cheer when it had one of our people’s names.
But I couldn’t get anybody to answer any of my questions. So I figured I’d force the issue by choosing two of the most hideous colours I could find. I think I chose two that had pre-defined colour names in OpenGL, but I toned them down a bit because the people using our software always seemed to do it in dark rooms and the rest of our interface was in shades of grey because of that. I think I ended up with a sort of mauvey-pink and a light limey-green. I knew *somebody* would have to complain about these colours, and then I could ask them what colours they thought it should be.
Oh, another aside – the program had been started at Kodak’s Australian office, and then moved to Rochester, and then we had some code contributed by the office in London England, and then half the development moved to San Francisco for no good reason. One of the things that led to was continual problems with the spelling of the words “colour” and “grey”. You’d find both Commonwealth and US spellings of both those words in method names, and sometimes both variations in the same method. The method name confusion was the worst – you’d write your code to call “adjustColourSpace3D” only to have the compiler bitch because you meant to call “adjustColorSpace3D”.
But I never got any complaints about the colours, so that’s how they went out in the release. And a year or two later, somebody brought some literature back from our big trade show, ShowWest, and lo and behold one of our competitors had copied my hideous colour scheme in their virtual light table.
A few weeks ago I was telling this story at lunch, and one of the other former Cineoners who got to go to customer sites mentioned that the customers had loved my hideous colour scheme because of how well it stood out. Huh. Who knew?
I guess the secret to good user interface design is to purposely make something that offends my senses, and I’ll come up with something that normal people like.
Gratuitous Icon Post
If you’ve ever built an airplane model, stand in awe
This is the most amazing bit of modelling I’ve ever seen: Supermarine Spitfire Mk.I by David Glen (Scratchbuilt 1/5)
That was easy
I needed to re-arrange some disk space. I explained the situation in Rants and Revelations » Why didn’t I use LVM on everything? with a table showing the current layout and everything. At the time, my plan was:
- Migrate the content of
/dev/hdc3
off using“pvmoveâ€
and“vgreduceâ€
. - Delete all three partitions on
/dev/hdc3
and add it back to thevg
using“pvcreate /dev/hdc; vgextend xen-space /dev/hdcâ€
. - Migrate the content of
/dev/hde2
off using“pvmoveâ€
and“vgreduceâ€
. - Delete the
/dev/hde2
partition and increase the disk of/dev/hde1
to fill up the drive, and useresize2fs
to make/dev/hde1
use the whole partition.
I did steps 1-3, and it all worked perfectly. I didn’t have to shut down anything, and it didn’t interrupt the normal operation of either the dom0 or the domUs. But when I’d done that, I realized I actually had enough free space on the lv that I could do an even better plan:
- Set up a 250Gb
lv
. - Use rsync to copy everything from
/dev/hde1
to the lv
. - Once that was done, shut down domU 1.
- Make
/dev/hde1
part of thelv
. - Make the 250Gb
lv
bigger usinglvextend
– I chose to add 100Gb to it, and I have space to add more if I need it. - “
e2fsck -f
” and “resize2fs
” thelv
. - Restart the domU 1, using the
lv
instead of/dev/hde1
.
This worked perfectly. The domU was down about 10-15 minutes tops. /dev/hde is still partitioned into two partitions, even though both partitions are part of the same vg
. But other than that, it’s exactly what I’d have done if I were setting it up from scratch now.