Personal Info


  • email address
  • IM addresses
  • Blog
  • phone
  • mailing
  • personal websites
  • audio streaming address
  • video streaming address


  • conversations/emails
  • web sites viewed with
  • documents (shared, collabed)


  • physical location
  • availability
  • what they're doing
    • away messages

Info About

  • blog content
  • avater
  • personal website content
  • flickr (photo gallery) content
  • audio (music)
    • what they like
    • what they're listening to right now/last
  • video
    • clips they like
    • clips they're viewing right now


  • info from websites from flickr that's associatable

Web Content caching/freeing

  • a Gnome service to pull your data off closed services
  • Conduit?
  • pulling together from disparate devices

Interactions/Addr/Presence/Info About/Events

(past, present, future) Much of this has time-based (meta) data brainstorm overlaps...we can form a GUI from the relationship between categories. If calendar info says two people were at Gnome summit, then that creates an interaction

  • Addresses are manually input. Can be inferred/learned
  • What users want to do with this info/metadata
    • Communicate with an individual
      • IM, email, meet, talk, voip
      • VNC collaboration
        • interactive presentations hands-on tutorial, interactive demonstration
      • Considerations:
        • localtime/availability
          • don't call while sleeping


  • context based searches? when was it written, who did you work on this with

  • who

  • what

  • when

    Decided against: Context is way too application-specific -- we should expose the data, and let the apps do what they need to with it

UI abstracts/General integration points

Timeline (Time Browsing)

Graphical representation of your interactions

  • (everything is relative to YOU)

  • People
    • Viewing your own timeline of what you've done is just a special case of interactions with another person
    • Auto-hinted search box selects user (defaulted to "Me")
  • Interactions (y-axis)
    • Filters:
      • Conversations
        • (should not need to be filtered down)

      • Documents/Websites
        • edited together (Collabra, CollabEdit, wiki pages, Writely)

        • types
          • text
          • image
          • audio
          • video
          • Web pages
      • Events
        • (should not need to be filtered down)

        • Includes schedules (events in the future)
    • Context Pane
      • Contextual information about the Interaction
        • Thumbnail
        • Diff/what changed in that Interaction
    • Activation (double-click Interaction's icon)
  • Time (x-axis)
    • Scale adjustment
    • Position adjustment
    • Solutions:
      • Click-drag "paints a stripe" along the x-axis; releasing zooms into just that time
        • Left-to-right zooms in (?)
        • Right-to-left zooms out (?)
      • Have timescale/position (also/instead of the above) handled with key phrases
        • "Last Tuesday"
        • "Mon Oct 9"
        • "Last week"
        • "Last May"
        • [This coming] "Thursday"
        • "Summer 2004"
        • "Mondays" (non-contiguous times - ONLY exposed via search like this; otherwise not useful enough for widget space))
  • (there is a TON of points for user interaction, so this UI needs to be very careful about how it exposes them all, so it doesn't get cluttered/unusable)

    • Drill-down search box:
      • Starts as a full-width field (with lower-contrast text "Type keywords here")
      • Each time you hit Enter (or click a button at the end), the text in the box becomes a button with a close button (much like a Firefox 2.0/Epiphany tab) at that position, and the leftmost side of the search box shrinks right to accommodate it.
        • Think of the FileChooser button bar with a max-width box to the right of it

      • Like the FC button bar, clicking on a button reduces your filtering to that keyword plus all the ones to the left of it
      • Would be best with widget changes that would highlight the current keyword and all to the left, but "unhighlight" everything to the right, to indicate they aren't applied to the view below)
      • TODO (TravisReitter): Create mockups

JDub recommends looking at Atom/OLPC journal

  • how to publish data
    • Lifestreams: everything you do gets dropped on a stack
      • The stack is the history of what you've done. A photo album would just be photos on the stack, possibly with related meta data.

People and Devices as folders/launchers

How is a Person object abstracted to the user?

  • Dropping an object on a person starts an intuitive action
    • drop a document --> share/collab edit

    • drop a person --> share metadata

    • activate --> communicate/view context

    Similar for devices


Ways to communicate with someone, from lowest to highest latency (from impulse to communicate to main conversation handshake)

  1. Talk (VoIP)
  2. Instant Message
  3. IRC
  4. email
  5. Meet (in-person) [which we can't do end-to-end, but can make scheduling easier]

Use cases

You want to reach someone, and you don't care how:

  • Drill down the priority list above, initiating a conversation in the first mode both you and the other person can use at the moment.
  • Considerations:
    • "At the moment" means after trivial dependency resolution (like: they're signed on to a messaging service, and you need gaim/Gossip/etc. launched for you)
    • What is the other user's local time? AKA: Don't call them if they're in a different time zone, and it's 3 AM there.

You have something low priority that you don't want to spend 15 minutes talking about right now:

  • Provide a sensible list of generic comm. types to initiate in one-click (ie, "I want to IM, but I don't care which service")
    1. Talk
    2. Instant Message (collapsed by default, but expands to the list of services your apps support and are configured for):
      • Jabber
      • AIM
      • MSN
      • Yahoo
      • etc.
    3. IRC (?) (pretty hard to handle, nicks aren't persistent, and regular people don't use IRC (esp. for messaging))

    4. email
    5. Schedule a meeting (?) (does this make sense here, or should that be a separate action?)

Content sharing

Use Cases

You want to listen to music your friend has, but you don't want to listen to what they're listening to right now

  • Right-clicking on their avatar (or some other mechanism) gives you the option "Browse their music" (if they have serving turned on), which points your music player (Rhythmbox, Banshee, etc.) to their server, giving you a list of songs.

You want to listen to some music your friend is listening to right now

  • Same as above, but the option is "Listen to their music" which points your music player to their server, and synchronizes your music selection to what they're listening to at the time.
  • The main point of this is to let your friend act as a DJ, when you want to check out music they're into

You want to view a web clip your friend has viewed

  • Maintain a list of web clips (where the the URL is the URL of the page that embeds them) viewed
    • Like the audio cases above, right-clicking on their avatar (or another mechanism) lets you browse recent video clips

You want to view a web clip your friend is currently watching

  • A similar mechanism to view the web clip that was visible on their screen most recently (ie, what they're viewing now, but focusing other windows/changing desktops doesn't nullify "currently watching")
  • needs to scrub out ads and other junk that are the same format as regular web clips

FIXME: add cases for personal photos, videos, other content (which is meant to be public, also what is meant to be shared just among friends)

Attic/High5/OriginalBostonSession (last edited 2013-11-22 23:21:24 by WilliamJonMcCann)