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.