Zeitgeist engine: A full year of developing new experience

It has been almost a year since Zeitgeist started. Last year on october 10th I hacked up a little timeline, based on Federico’s mockups and the old gimmie/mayanna code during the Boston UI summit. And ever since alot has happened. From a UI we developed an engine, and the project kept growing while the ideas just kept flowing in. We had 2 releases for the engine and working on a big 3rd one. From a GNOME project we became a cross desktop project. We finally found our use cases and working on them allowing other applications to make use of it. Beside a 0.3 release we are planning to infect apps to make use of the zeitgeist engine. Here are some current use cases and deployments of an event aggregation fraemwork.

  • GNOME Activity Journal: What triggered the whole project. Many iterations no release yet but to come soon


  • GNOME Shell: Thanks to GSoC we were blessed with the “wunderkind” RainCT
  • Chronosoup aka (Buttbuddy): A little sidebar app to be reimplemented in Docky2 (and Shell if they don’t mind). It was inspired while chatting with Mikkel Kamstrup and can be regarded as a reviving of Gimmie.
  • Docky: Using some complex queries Jason Smith intends to push Zeitgeist to its limits soon. Basically on right clicking on an app you get “The most used documents within the last week of mimetypes supported by the applicaiton clicked”. There is more to come though…


  • Zeitgeist FS: Makrus Korn came up with this brilliant idea and to be honest this is my favorite app using zeitgeist engine.
  • GNOME Parental Control: This could be a good way to market GNOME 3. We will be needing some help from the tracker guys on that one. We forward events of interest to parental control while extracting metadata from tracker to analyze semantically for PG content.
  • We can also provide any app over dbus most used documents/apps/or tags  with some set of filter

These are already semi functional usages of the zeitgeist engine. Now there is still more to come. Let me now list projects worth looking at:

  • Teamgeist: imagine cross distributing events in teams. This will allow a Team Activity Journal as well as better workflow management. Thanks to Rob McQueen for hacking a prototype at GCDS now Collabora put Youness Alaoui and Sumana on the Project to make it happen. THANK YOU COLLABORA
  • Tracker+Zeitgeist collaboration: We will be working alot with Tracker in the future, based on the fact that they have same interests as we do. Introducing GNOME to the semantic era. Tracker will handle “What is my data about and how are they related over metadata” While we are focusing on “How is my data used and how are they  contextually related”. Zeitgeist hackfest ftw.
  • Contextual Relevancy analysis: Our kinda secret weapon, Alex Gabriel and me are putting lots of energy into it. Basically we monitor hwo the user switches his focus between documents and generate trees describing the contextually relevant data to a URI, it is pretty accurate for a first run. We will be exposing it over dbus for the GNOME Do crew to have a look at. It should be out with the next release. Here is a little example:
  • 0 = “http://git.codethink.co.uk/”
  • 1 = “http://google.com”
  • 2 = “pidgin://Facebook/Karl Latimer”
  • 3 = “pidgin://Facebook/Philip Van Hoof”
  • 4 = “pidgin://Co-Workers/juergbi”
  • 5 = “pidgin://Co-Workers/einalex”
  • 6 = “tomboy://Today: Friday, August 28 2009″
  • codethink

  • Ubuntu one storage management: Natan Yellin will be hacking on a dynamic storage management for ubuntu one allowing us to populate the storage dynamically according to most used/ recently used/ and bookmarks.

There is still alot to come and the team kinda grew dynamically currently around 12 developers have been providing awesome contributions and feedback to the engine (not the UI):

First the fulltime hackers:

  1. Siegfried Gevatter: Splitting the engine form the UI, Shell integration, engine maintenance, and making me feel clueless and redundant.
  2. Mikkel Kamstrup: Rewriting and planning what is now be to considered the stable fundamentals of Zeitgeist. Also taking the time to think of future plans and deigns of zeitgeist.
  3. Markus Korn: the mystery guy who appeared form no where rewriting all of our dataproviders and adding awesome features such as an exchangeable DB module (Tracker guys should thank him). Also maintaining the engine
  4. Natan Yellin: Putting the project on launchpad. Hacking the first concepts of zeitgeist and the Journal.
  5. Alexander Gabriel: Taking time form mayanna to actually hack the context relevancy graphs with me. Kinda my partner in crime when we hack.
  6. Me (Seif Lotfy): Uhm basically pissing the rest off. Getting into trouble and being a jerk. Thanks for not killing me yet guys, for my aweful code.

Other notable engine contributers would be:

  1. Jason Smith
  2. Youness Alaoui
  3. Sumana Harihareswara
  4. Federico Mena
  5. Thorsten Prante
  6. Rob Taylor
  7. Sebastian Faubel
  8. Moritz Eberl
This was an awesome year. Let us hope it gets better. We will start talks with KDE for KDE deployment :)