My Five Answers…

… to the five questions on the GUADEC website.

1) Who are you and what do you do?

I’m Calum Benson, and I work for Oracle (neé Sun). As well as working on some GNOME-based projects for Solaris and OpenSolaris, I’m one of the authors of the original GNOME HIG, and I’m one of the maintainers of gnome-themes, where I mainly look after the high contrast themes.

2) How did you get into GNOME?

I was hired by Sun in 2000 when they started to replace CDE with GNOME in Solaris. I’ve been working on GNOME ever since, and have attended every GUADEC except Paris and Stuttgart.

3) Why are you coming to GUADEC?

To talk about, and hopefully get some work done, on the new HIG and UI pattern library that we’ve been planning to do for GNOME 3.x. I dare say one or two beers may also be consumed.

4) In 1 sentence, describe what your most favorite recent GNOME project has been. (Doesn’t have to be yours!)

Hmm. Sadly haven’t really been involved enough with any recent project enough to have a firm “favourite”, but SparkleShare could revolutionise the way designers work on GNOME. (Except me, because just at the moment it’s way too hard to get it working on OpenSolaris…)

5) Will this be your first time visiting the Netherlands?

Yes.

Thoughts on Pattern Library categories

Most of you probably know that one of the things we’d like to do for GNOME 3.x, alongside a refreshed HIG, is produce and maintain a GNOME UI Pattern Library. (An example of what we mean by a GNOME UI Pattern is this semi-fictional example.)

I’m thinking we’d probably want a homepage that both allows you to search by text/tag, and browse by category (something like this quick mockup.) Which would, of course, mean picking some categories.

From a quick survey of other pattern libraries (which are mostly geared to web design) and the type of stuff the current HIG covers, here’s a first stab at what that list might look like.

  • Feedback: Showing messages, notifications and progress indicators.
    Examples: Alert messages, notification messages, InfoBar usage, status bar usage, focus indication, audio feedback.
  • Input: Enabling the entry of different types of information.
    Examples: Sliders, audio input, video input.
  • Layout: Arranging information and controls in a window.
    Examples: Frames, grouping, spacing, anatomy of creation vs viewer vs browser vs utility apps.
  • Navigation: Enabling users to move around and between documents and different parts of the application.
    Examples: Tabbed windows, sidebars, location bar, zoom controls, media transport controls(?).
  • Search: Enabling users to find items or information that may not be immediately visible.
    Examples: Find dialogs, in-place searching, filtering, auto-completion, Boolean queries.
  • Selection: Allowing the choice of one or more items from many.
    Examples: Marquee selection, keyboard selection, pattern matching.
  • Social: Maintaining contact information, and interacting with other users.
    Examples: Adding information to address books and calendars, Showing online presence, Initiating chat.
  • Workflow: Relating to the process/mechanics of using an application to achieve a particular goal.
    Examples: Desktop integration, undo/redo, drag-and-drop, extending open/save/print dialogs.

Feedback welcome… any obvious ones I’ve missed, or ones that seem redundant?

FWIW, I’m not sure nailing the list now is either entirely necessary or entirely possible. There’s no reason we can’t adjust them as the library grows, and I hope we’ll have some sort of tagging capability to handle the patterns that don’t fit neatly in a single category anyway. But it’s always good to start from as solid a foundation as we can 🙂

UI Patterns

The suggestion of designing some UI patterns for GNOME came up in tigert’s talk on Monday… I mentioned at the time that we’d already started working on this, so just for the record, here’s the list.You’ll notice we haven’t actually done any mockups yet, so feel free to start proposing some designs, or just add anything to the list that you think would be useful.