An Introduction to GNOME Zeitgeist
In this article, Natan Yellin writes about GNOME Zeitgeist, a new user interface for documents and user information in the GNOME desktop currently planned for GNOME 3.0.
Zeitgeist is a data engine for the GNOME desktop. It logs and tags every document, website, conversation, email, note and application that’s opened on the GNOME desktop. All of the information is stored in one central database for quick access and any application can easily add it’s own data to the mix. There are several user interfaces which show the information stored in the database, sorting it by type, date, or relevance to other files. They let users tag documents, bookmark them, and even attach custom notes to each item in the database. One of the interfaces, currently being developed by Siegried Gevatter as a Google Summer of Code project, even shows information from Zeitgeist inside the new GNOME Shell.
Zeitgeist was founded eight months ago after the GNOME User Experience hackfest in Boston. The first prototype was based on Mayanna/Gimmie and had only two regular developers who hacked on it in their free time. Today, we have a whole new codebase and there’s already six developers who commit code on a regular basis and several other community members who help test Zeitgeist, handle bugs, and design mockups for future user interfaces. The Zeitgeist team recently presented at the Ubuntu Developer Summit and Zeitgeist is slated for adoption in future versions of UNR (Ubuntu Netbook Remix). Zeitgeist is also going to be used in the as-of-yet unreleased Ubuntu Parental Controls and is even at the heart of a thesis paper and a PHD research paper at a German university.
Parts of Zeitgeist are based on ideas from the “Document Centric GNOME” presentation which Federico Mena-Quintero gave at GUADEC 2008. His ideas inspired a journal and a calendar interface for Zeitgeist which lets users view files that they edited at previous points in time. In accordance with some observations made by Dave Richards at the User Experience hackfest, some of the Zeitgeist interfaces hide filenames and directories from users in an attempt to free them from worrying about where files are located on the hard drive. Instead, users can tag the files and find them based on what type of file they are and what other files they’re related to.
The current user interfaces for Zeitgeist do not give users a hint of the real power which lies dormant under the surface. Our current goal is to index as much information from as many different sources as fast as we can. Once that’s done, it’ll be easy to build exciting new user interfaces which pull information out of Zeitgeist’s database and display it to users in all sorts of innovative ways. For example, it should be possible to let users build their own interfaces where they define what documents they want to see and how they want those documents to be organized. For example, one recent mockup lets users build custom “Smart Feeds” which aggregate together all sorts of different files according to user-defined filters.
One of the key concepts in Zeitgeist is that users care about “Documents” and not “Files.” In other words, users don’t want to be bothered with the distinction between documents that are on their computer (files) and documents that aren’t on their computer. Therefore, we have plans to index documents from online sources such as Google Documents, Flickr, and Launchpad. In a world where everything is online, there’s no reason why file managers should focus only on local files!
The biggest question that we’re currently trying to answer is what’s next. We’re already planning on adding on support for optionally using Tracker or CouchDB as a backend in place of our own database. The aforementioned “Smart Feeds” are also on the development map along with UbuntuOne integration, LAN powered “Shared Feeds,” and support for associating people with documents. However, we’re a versatile bunch and after that anything is possible.
Zeitgeist is about humans – especially people like you and me who like technology and want to make a better user experience for everyone. We care just as much about the team work and the international cross-cultural collaboration that drives our work as we do about the end product that we ship. We love to see new faces and hear new voices. A lot of our best mockups are scribbled in love on the back of cafe napkins, which just goes to show that you don’t need fancy paper or great artistic skills in order to innovate. We’d love to hear your voice as well. When we’re not sleeping, we live in the #gnome-zeitgeist channel on irc.gnome.org and will soon have our own website up at zeitgeist-project.org. We look forward to seeing you and hearing your idea for GNOME 3 and the next generation user interface. Welcome to Zeitgeist!
About the Author
Natan Yellin is a high school student in Ra’anana, Israel. He first became involved with GNOME development through Google’s Highly Open Participation contest in 2007. Since then, he helped start GNOME Zeitgeist and several other open source projects. When he’s not coding an open source project or doing freelance development, Natan can be found at his school’s robotics lab, with friends, or practicing one of several styles of Karate. He usually tries to blog about what he’s working on at http://theesylum.com/.