At SD2004, I gave a talk on data handling in disconnected mode (mobile / wireless) applictions. The ideas here apply to wireless / mobile applications running on notebook PCs, PDAs, even smaller devices like “SmartPhones”.
Source Code: disc-data-ex.zip
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
- 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
- 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
- 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
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