Go forward in time to November 2009.
The vision behind Zeitgeist, part 1
Jon McCann recently asked me to clarify the vision behind Zeitgeist.
Zeitgeist started when Seif Lotfy implemented the Journal idea that I presented during GUADEC 2008. With apologies to people who already saw this presentation, I'd like to review some of its ideas here.
Let us start with a few well-known problems with computers and the traditional desktop paradigm.
"Where was I?" Resuming your work
This is a picture of my (non-computer) desk as I found it this morning:
There's a book on woodworking, opened on the page that talks about workbenches. There's a torn-out page with little diagrams of the various things I want in my workbench. There's a drawing pad with another diagram of the workbench I'm about to build. Finally, there is my mechanical pencil and eraser.
Why is all of that stuff on the desk like that? Simply, because that drawing is precisely what I was doing last night. I can resume work by simply sitting down and taking a brief look at what I've done so far.
By contrast, this is a picture of my computer's desktop as I turned it on today, and as I logged in:
There is my panel full of the usual trinkets, some folders and files that I left there ages ago, and some random crap from the system. Nothing there is related to what I was doing the last time I used my computer. There is no way to resume my work except by remembering what I was doing and then by laboriously opening everything that I had open.
Before you yell, "session management!", let me tell you a story.
Starting a journal
Some years ago, after I stopped working on Evolution, I worked for a brief period in the Ximian edition of OpenOffice.org. Before that, I had never worked on such a complex code base. The source tree was huge. Finding your way around it was real hard work. Things didn't make sense to me at first; there were toplevel directories called things like "sc" and "sw", which didn't make sense at all (later I learned that "sc" was the spreadsheet, StarCalc, and "sw" was the word processor, StarWriter).
The actual source files were buried 5 or 6 levels deep inside the hierarchy. The source for large C++ classes was split into multiple files, called something like shrtnm1.cpp, shrtnm2.cpp for the class ShortName — for someone who had not been working with that part of the code for a while, it just didn't make sense.
Back then I was doing simple changes to OO.o, where I only needed to tweak a couple of files at a time. Simply finding the right file to tweak was hard, and after that, I had a lot of trouble remembering where those files actually were — buried 6-down in the weirdly-named directory hierarchy. After a few days of hunting and re-hunting down the same files, I decided to look for a solution. I could never get desktop-save-mode in Emacs to work, so I started a text file to write down the full pathnames of the files I had been modifying. This way, the next day I wouldn't have to hunt for the files again. Eventually I wrote a chunk of Elisp to do that for me, but that's an implementation detail — if you google for "emacs recently used", you'll see that many people have implemented pretty much the same thing.
This made things much better. I could resume work quickly; to open the last file I had been working on, I simply looked for its filename at the top of the journal, as well as related files which I had opened around the same time as that one.
Before you yell, "dude, get a real IDE!", let me continue the story.
The journal evolves
Some time after that, I started annotating the journal of filenames-in-a-text-file, and turned it into a journal of my work. I've been keeping that journal for almost 4 years. This is a sample from yesterday:
2009/Oct/07
10:42 - About to read "In pursuit of desktop evolution" by Ravasio et al - ~/Downloads/10.1.1.96.398.pdf
12:56 - Finished reading and taking notes in ~/Documents/Gnome/design/articles.txt
13:05 - Paid phone bill, $XXXX, transaction 9404.
14:20 - Worked on http://en.opensuse.org/Documentation_cleanup
15:31 - bgo#597101 - gnome-panel does not start anymore (RANDR) - vuntz fixed it
16:39 - @natfriedman: Recommended sites to find rental apartments:
homeaway.com, roomorama.com, airbnb.com, seamlesstransition.com.
+ check why my subscription to opensuse-wiki didn't work
+ Add autotools to gnome-activity-journal
+ See if you can help with bnc#329959 - build service doesn't validate project names
+ Read http://wiki.zeitgeist-project.com/Teamgeist and send comments
+ Read Finding and Reminding - http://old.sigchi.org/bulletin/1995.3/barreau.html
Every day I type stuff like that: interesting files that I use, wiki pages that I modify, interesting web pages that don't merit a bookmark but to which I want to keep a reference, random notes, snippets from IM/IRC/Twitter, and a few items from my to-do list (the ones marked with a +).
I find this journal to be extremely useful. Interactive search in Emacs (C-s) lets me find stuff instantly: if I was taking notes on something, I hit C-s notes, then maybe C-s a few more times, and I'll end up finding that part where I wrote "taking notes in ~/Documents/...". I put "(RANDR)" next to anything related to multiple monitors, so it is easy to find.
The journal serves me as a reminder of what I've done, as a repository of links to stuff I've seen, as a note-taking device, as a cut&paste repository of interesting bits of conversations, as a very short-term to-do list, and in general as a chronological dumpster of potentially useful information.
But I'm not an obsessive-compulsive note-taker like you
Uh, maybe. Still, it takes really very little time to annotate stuff there, and it doesn't feel like a burden. I can't live without the info in that journal now.
(That journal is also really useful when I have to fill the stupid timesheets that Novell makes us fill every so often — I can see how many hours I devoted to each thing.)
However, this journal is rather pedestrian, especially when it comes to noting down filenames and URLs. The computer could perfectly well do that for me, and still let me add hand-written notes to the items it logs.
Later, more problems with the desktop metaphor and the vision behind Zeitgeist.
Last week, after the openSUSE Conference, the gentlemen in the following picture hiked through the forests and fields of Franconian Switzerland (don't be deceived, that's actually in Germany), with two purposes:
Allow me to introduce you to the members of the openSUSE Boosters team. All of them have Mexican names.
Top row:
Middle row:
Bottom row:
Our purpose is to work on growing the openSUSE community, by eliminating barriers to entry and by enabling people to contribute in the way they wish.
We will be working in two-week sprints, with a model loosely borrowed from the agile programming community. The initial sprint consists of three teams working in three projects:
Centralized, discoverable and comprehensive developer documentation
The openSUSE wiki is a mess. We will be gathering all the documentation pages, sorting them into a meaningful scheme, and seeing what is missing to document the mass of software, processes, and things that form openSUSE.
Pool openSUSE web services under a common umbrella
We have en.opensuse.org and all the other language wikis, software.opensuse.org to download software (which is not the same as download.opensuse.org), users.opensuse.org for the user directory, and other sites... and it's all a big mess. It is hard to find anything from anywhere. We will get all of these together from a place that is easy to reach.
factory.opensuse.org: Entry page for openSUSE:Factory development
Right now it is pretty hard to find information about how to get started with openSUSE Factory, the development version of the distribution. It is also hard to monitor the status of the distribution: which packages build and which ones don't, what the pending projects are, etc. The proposed factory.opensuse.org will make all of this easy to find.
How to reach us
Every team will be working together with existing subcommunities within openSUSE: the documentation team with the wiki masters, the services people with the sysadmins, etc. You can see the page for the Boosters Team for our individual email addresses, IRC nicks, and all that.
After a pleasant nocturnal hike through the mysterious German woods, we did some light painting.
Those are Guille as lbearing and Pedrito as rbearing. You can see the faint ghost of Pablo with the flashlight behind the big E.
So, how did we do this?
First, set up a tripod precariously on a garden fixture. Have Roberto hold the tripod steady.
Second, have two people (Guille and Pedrito) serve for various purposes: set the focusing distance, and figure out the extents of the text so that it will fit within the picture. Both are pretty hard to do when it's pitch dark outside.
Third, have Pablo use his flashlight, and his beautiful aerial handwriting, to paint the text. He used his spare hand plus a sweater to cover the flashlight when there was a jump in the strokes. Remember LOGO? Pen-up? Pen-down? Same thing here. He started painting next to Guille, and tried to fit the text before bumping into Pedrito.
Fourth, take several test shots with the camera in Bulb mode. You can tweak the aperture to give more/less light to the background. I just pushed the button; they did all the work.
Go backward in time to September 2009.
Federico Mena-Quintero <federico@gnome.org> Fri 2009/Oct/02 14:54:22 CDT