The Mozilla foundation has developed a new open-source, experimental email and communication platform called Raindrop. Raindrop is being devloped by focused on highlighting and breaking out personal conversations, making it easier for all to see all of their conversations in one simple client.

Moziila says that “is an effort that starts by trying to understand today’s web of conversations, and aims to design an interface that helps people get a handle on their digital world.” Still in prototype form, the platform is very young but it aims categorize messages and then separate the personal messages from bulk messages, so you know what to respond to vs. just noting a communication. So Raindrop will import all of your email, but break out your personalized email from your mailing list emails and will portray the personal emails higher on the page. Raindrop will be also work as a client between you and Twitter , making ease of using all Twitter stuffs.

Installation: The software is not ready yet but you can try by compiling source code.

couchdb

Install couchdb, version 0.10 or later. 0.9 will not work. See:

* http://couchdb.apache.org/downloads.html for most platforms.
* http://janl.github.com/couchdbx/ for a MacOSX installer
* http://wiki.apache.org/couchdb/Windows_binary_installer for Windows.

When building couchdb from source, it can be run without installing via a ‘dev’ install:

cd couchdb; ./bootstrap && ./configure && make && make dev
./utils/run

raindrop

* Install Python 2.5 or 2.6 (note that Python 3 is not yet supported).

* Install Mercurial (http://mercurial.selenic.com/)

* Checkout raindrop

% hg clone http://hg.mozilla.org/labs/raindrop

* Execute the ‘check-raindrop.py’ script in the raindrop/server/python directory.

This should check all dependencies and let you know what you are missing, then check your couchdb for certain configuration requirements.

If you are brave, try executing ‘check-raindrop.py –configure’ (prefixing that command with ’sudo ‘ on some platforms). This will attempt to automatically install all dependencies necessary and configure couchdb.

If you are less brave, run it without the –configure option, then manually resolve any dependency or configuration issues it reports, then repeat until no problems are found.

A summary of the dependencies are: setuptools, twisted, PyOpenSSL, Skype4Py, python-twitter, simplejson, feedparser and paisley.
Notes

Note for mac users: doing easy_install PyOpenSSL after May 1st, may install some badly. It may be a PyOppenSSL 0.9 issue. 0.8 is known to work. Try the latest code, but if that does not work, switch to 0.8.
Running Raindrop

After check-raindrop.py reports everything is in order, the next step is to set up the accounts to use with raindrop, then have raindrop fetch the messages
Configuring

These steps should become less necessary as time moves forward (it will be possible in the future to do this work though a web interface), but for now, you need to set up the accounts you want to use in raindrop via a .raindrop file:

configure raindrop by editing ~/.raindrop

if your ‘local’ couchdb isn’t on localhost, add a section along the lines of:

[couch-local]
host=hostname
port=port

Add one new section per account; note the “account-” prefix is important when defining accounts:

* Add gmail accounts along the lines of

[account-gmail-username]
proto=imap
kind=gmail
username=username@gmail.com
password=topsecret
ssl=True

* Add twitter accounts along the lines of

[account-twitter-username]
proto=twitter
kind=twitter
username=username
password=topsecret

* Add imap accounts along the lines of

[account-imap-username]
proto=imap
kind=imap
host=imap.example.com
port=993
username=username
password=topsecret
ssl=True

* Add skype accounts along the lines of

[account-skype-username]
proto=skype
kind=skype
username=username
password=topsecret

Once you are done with ~/.raindrop, then go to the command line, to the raindrop/server/python directory and run the following command:

% ./run-raindrop.py sync-messages –max-age=5days

It will take a few minutes for run-raindrop to complete. The above command gets the last 5 days of messages for each account configured above. Once the above command finishes, then open your favorite Firefox or WebKit-based browser and go to:

http://127.0.0.1:5984/raindrop/inflow/index.html

You should see some of your messages displayed.

There are many issues with the UI and how messages are processed, but hopefully you now have a feel for how raindrop works.
Controlling

The run-raindrop.py script is capable of fetching messages, re-running extensions, etc. It is expected that over time, this functionality will be rolled into the couchdb controlled couch-raindrop.py script. As a result, some functionality is duplicated in these scripts.

In particular, there is no protection against ‘couch-raindrop.py’ and run-raindrop.py attempting to perform the same thing at the same time, which will cause many errors to be logged. Before using the advanced features of run-raindrop, you should ensure couch-raindrop.py is not running by executing a command similar to:

% curl http://127.0.0.1:5984/raindrop/_raindrop/exit

When run-raindrop.py is executed, it always checks to see if the accounts and other documents required by raindrop (eg, the front-end applications) are up to date, then performs the requested operation, then terminates. If no operation is requested a web-browser pointing at raindrop will be opened. This means you can edit any of the files in the ’schema’, ‘client’ or ‘couch_doc’ directories, then see those changes reflected in the front-end when run-raindrop is next started. We don’t detect the changes while we are running though, only at startup.
Get messages from all accounts:

% ./run-raindrop.py sync-messages –max-age=2days –folder=inbox

Both –max-age and –folder are optional – see –help for details. Reload the front-end applications to see the messages as they arrive.
Unprocessing:

To delete all the intermediate messages in the DB, execute:

% ./run-raindrop.py unprocess

The next time you execute a ‘process-backlog’ command, all your messages will be reprocessed.

Read more here…