Taking a look at Zoe, “Google for your email”

I tried out Zoe (http://zoe.nu) recently, having seen it described as “Google for your email”. Of course that monikor will make less sense with Gmail here.

Zoe runs in the background on your machine, acting as a (non-real-time) proxy for your incoming (POP) and outgoing (SMTP) email connections; you continue to use your existing email client, seamlessly, while Zoe catalogs, cross-links, and full-text indexes every message. It’s a slick idea, and I believe that a few years from now, the features in it will be built in to many email clients.

Zoe provides a HTML user interface, even though it is a local application; it worked fine for me with both IE and Mozilla/Firefox. I also use POPFile (which uses an HTML interface), so the approach didn’t bother me, but it’s quite different from a “rich client” experience. The primary thing to do in Zoe is
to search, and web browsers work well enough for search/results/browse interfaces.

Zoe is written in Java, and other Java app writers should take a look at how painless the expierence is there: unzip the application, and run it. From the web site Zoe appears to be Mac-centric, but it works the same way on Windows (and presumably Linux/etc.)

I ended up giving up on Zoe after a few days, though, for several reasons:

  • Too many files: Zoe stores each email message in a separate file, plus various
    other files for indexes. After importing several years of stored email, I
    had 63,000 files under my Zoe directory. Aodern file system doesn’t mind lots
    of files, but there is more to life than file systems – try copying 63,000
    files to another drive, or backing them up, and it become clear that storing
    every archived email message forever in its own file, doesn’t scale well.
    (By the way, the emails are stored in directories named for the year/month/day
    of the message – good idea!)
  • Rebuild needed: A couple of times I was getting obviously wrong results
    from Zoe searches, and had to rebuilt its indexes to correct it. Easy to do
    – a one-line command. Downside: Zoe was unaccesible and my PC was working
    hard the next two hours while it rebuilt. I’ve worked with full-text-index
    systems in the past, and believe that this process could be made much faster.
  • Bugs – I sometimes get a “java.lang.NullPointerException” when
    clicking on a link in Zoe. It will go away… if I wait through another 2-hour
    rebuild.
  • I’m apparently not clever enough to tell how the GUI works – lots of things
    are clickable in Zoe; with many of them it’s not clear where the link will
    go
  • Missing hits – the search in Zoe often files far fewer hits for a term,
    than I know exist in my mail archives. This might be related to the Rebuild
    issue, though.
  • Lack of threading – contrary to some comments I saw about Zoe, I am unable
    to find any feature/view in it where it shows a threaded mail conversation.
    This is my #2 feature needed to manage a massive email collection, right behind
    Search.

In spite of this, I’m very pleased to see Zoe out there, wish them well, and
encourage anyone with a lot of email to give it a try, if only get an idea what
it coming.

Recommended Reading

Design Patterns, Gamma et al. I have purchased and read several other books on this topic, including language-specific books and longer books. I still like this one best.

Programming Perl, Wall, Christiansen, and Orwant. The "camel book" is a clear and concise book about a perhaps unclear but very concise language.

UML Distilled, Martin Fowler, Kendall Scott, and Grady Booch. An excellent introduction to and explanation of the UML. This book can clear out the fog of an initally dizzying set of diagrams and distill out (!) their importance.

Refactoring : Improving the Design of Existing Code, Martin Fowler. This is a book that resonates strongly with experiences I have had where an existing code base had to be brought under control, cleaned up, and then enhanced. Such work is not totally ad hoc, but instead can be understood (and performed) as a series of well defined transformation. By doing so, and talking about it, our ability to talk about and manipulate software at a higher level is enhaced.

Extreme Programming Explained, Kent Beck. There is a lot of merit in going to original sources… the first book on a topic, a specification document on a technology, etc. This is that book for Extreme Programming, and the subtitle on the cover expresses the core thrust of XP in two words.

 

The links all go to Amazon for simplicitiy’s sake; you can perhaps get them elsewhere at a lower cost.