We'll see | Matt Zimmerman

a potpourri of mirth and madness

Putting the “person” in “personal computing”

When performing a task on a computer, what types of objects do you work with?  Files and folders?  Web pages?  Application programs?  Settings?  Each of these have well-established conceptual models which, on a good day, provide some consistency in different contexts.  Files have a hierarchy of folders, web pages have histories and search, applications live in a nested menu, settings have tabbed notebooks, and so forth.  The details of how these work may vary, but the conceptual model is the same.  Donald Norman, among others, tells us this is a good thing, because it makes these systems easier to learn.

Ubuntu top-level menus

Ubuntu top-level menus

In Ubuntu, our top-level navigation (the GNOME panel) includes: Applications (a menu of programs), Places (a hierarchy of files and folders) and System (mostly tabbed settings dialogs with a few odds and ends).  Web pages, for the most part, live in the web browser application, as they do on other systems.

Now, I don’t know about you, but I spend a lot of my time on computers working with people.  But where are they to be found?  Some of them are in my web browser, on social networking websites and blogs.  Others are in my instant messaging client, in channels, conversations and contact lists.  Others are in my email application, in address books and threads.  Still others are at the opposite end of a voice connection.  None of them look or work the same way.

What is a good general conceptual model for people in software?

I think the social networking sites come the closest so far.  There, one’s interactions with people are oriented around social concepts.  People:

  • Have a profile which describes them for purposes of recognition and acquaintance.
  • Have relationships with other people.  The word “friend” has been abused into common usage on the web to denote “someone who is known to me”.  People are also members of groups, are linked by participation in organizations, and so on.  Relationships organize people just as hierarchical folders organize files.
  • Perform activities, which are of interest to people with whom they have relationships.  These may range from trivial status updates to detailed descriptions of recent activity.  Activities provide social context and the opportunity to respond to events.
  • May be present and available for synchronous communication (or not) by various means.  Presence provides a notion of who is “here” to interact with right now.

How might we translate these metaphors onto the desktop?

There seem to be plenty of social networking applications, but so far, they’re little more than alternative user interfaces for the corresponding websites, with some added features.  What better place than the operating environment to represent people, who are independent of any particular program or data?  What kind of activities could be possible and natural?

  • Collaboratively develop any type of content with your friends, independent of a particular application
  • Let your friends know what you’re doing, without having to write about it separately
  • Control access to data based on social relationships, rather than abstract credentials like passwords
  • Give a copy of any file to your friend as easily as putting it on flash media (this still isn’t easy enough in 2008)

How could it look?  What would a People menu look like?  A simple first attempt might include only people you know, and indicate their presence.  Selecting a person would display an interactive window with their profile, recent activity and associated data.  Controls would enable you to contact them, or share your applications, session, data or activity.  Your ideal email address book and IM contact list would display the same people in the same fashion (Telepathy is helping make this kind of integration possible).

Adding or removing a new acquaintance would instantaneously take effect in all relevant applications: receive an email from someone, add them to your list of people, notice they’re online and show them the new song you’re working on, all in one fluid motion.

Sign me up.


Written by Matt Zimmerman

September 1, 2008 at 12:00

Posted in Uncategorized

Tagged with ,

11 Responses

Subscribe to comments with RSS.

  1. You need to look at:

    and in some ways:



    September 1, 2008 at 13:26

  2. Great Ideas. Some of them are already built into Pidgin. Sending Files. Automatic Status Message showing the tune you are listening to. I like the idea to offer those kinds of things as a service, that all apps can use. Just for a start: I for example would like to see more apps making use of evolution data server. it’s silly that every apps ha sits own address book.


    September 1, 2008 at 14:03

  3. Don’t forget about libsoylent.

    Don’t forget to do stuff upstream.

    Ignore pidgin, telepathy and soylent are the future.


    September 1, 2008 at 16:47

  4. I also would like that implementation integrated on the desktop.

    Some different projects are heading to achieve that.
    – People Project (https://launchpad.net/people-project/)
    – Soylent (libsoylent) (http://live.gnome.org/Soylent)
    – Empathy (now on Gnome itself!!!)
    – Telepathy (you already mentioned it; empathy is based on it)

    I believe that these 3 projects integrated can achieve more or less a “personal” desktop…


    September 1, 2008 at 17:41

  5. People would make an excellent top level menu. I also think that Tasks would be, that would give a guided approach, even just using zenity scripts.

    Write a letter
    Write an email
    Read the news
    Post to your blog

    This would be so much simpler if each entry were a file! Possibly, with your People idea as well.


    September 1, 2008 at 18:26

  6. For some reason my first comment was eaten; I was saying you might find the maemo implementation (here in diablo) interesting:

    Lucas Rocha also had a nice mockup for GNOME:

    Loïc Minier

    September 1, 2008 at 21:23

  7. And this is what a good part of KDE 4 is all about.

    At least in theory, it’s not there in 4.1 at all. But the underlying libraries are in place (akonadi, khalkhi, decibel, telepathy, plasma, nepomuk…)

    Yuriy Kozlov

    September 2, 2008 at 01:59

  8. Well, i think that a GREAT piece of software alrerady exists with these ideas, take a look

    “Gimmie is an elegant way to think about how you use your desktop computer.Gimmie is a new concept of the panel designed to shift the direction of the desktop beyond the standard WIMP model (Windows, Icons, Menu, Pointer) towards one directly representing the concepts that modern desktop users use every day. It is being considered for inclusion in Project Topaz (a.k.a. Gnome 3.0) ”

    unfortenaly, it REALLY needs some love. It suffer from lack of devs =(


    September 2, 2008 at 15:56

  9. check this mockup made with gimmie/mayanna (gimmie’s fork, it appears to be more active)

    mayanna google group:



    September 2, 2008 at 16:11

  10. […] developers, such as Matt Zimmerman, who works on the Ubuntu Linux system, are rethinking how the way people socialize through the web integrates with the operating system they u…: Now, I don’t know about you, but I spend a lot of my time on computers working with people. But […]

  11. […] dass jedes einzelne Kommunikationsprogramm eigene Frameworks mitbringt. Eine schöne Idee mit viel Potential. Sie ist nur noch nicht so ausgereift. In ein bis zwei Jahren würde meine Empfehlung […]

Comments are closed.

%d bloggers like this: