Mail migration

Over the weekend I was able to complete my mail migration from starsky.ee.ucla.edu to acis.ufl.edu. The main challenge was that starsky uses mbox folders (uw imap) while ACIS uses Maildir folders (cyrus). Maildir folders are superior, and the cyrus imap server is faster than the uw imap server. I am glad to move to Maildir, however, there was some pain in doing so.

My mail consists of over 1 GB of data going back to as early as 1995. The complete record only starts around 1999 however. In addition to physically moving the mail, I had to convert all my scripts to deal with Maildir folders rather than mbox. This includes my Procmail setup, along with several home-brew spam fighting scripts.

Along the way I found a few new tools:

  • Offlineimap: this is a great tool that allowed me to synchronize my mail on starsky with the mail at ACIS. I also use it to keep a local copy of my email on my laptop (where I read my mail with muttng).
  • Mairix: once I have a local copy of my mail, I want to be able to quickly search that 1 GB of data. The only way to do that quickly is to index it, and query the database. Fortunately, the mairix tool makes this trivially easy (depending on your definition of trivial). Mairix along with mutt is making me love email again.

Hopefully, ACIS will be the home of my email for many years to come so I won’t have to deal with this again for years to come. By then, hopefully there will be more powerful tools.

PDB to Ical conversion

For some reason, I cannot find any command line (scriptable) program that can convert palm datebooks into ical format. Given an ical file, I can display it using PHPICalendar.

As they say, if you want something done right, you have to do it yourself.

So, using Perl’s Palm database support package Palm::PDB I hacked up a simple script. This converts my datebook into an ical file which can then be shown via PHPICalendar. It does not support all the options yet, but it covered about 95% of what I need, so I am going to not worry about the rest for now.

Hopefully, this will be of some use to someone else. If anyone knows of a more complete command line tool, please let me know.

(Update 6/1/2006):
I have updated the script to add UID and thanks to Jeroen van Nieuwenhuizen, exceptions to repeating events are now respected. Please note, this script is very poor coding, however, it works for me. (Shamelessly stolen disclaimer): It comes with an almost Kafka-esque lack of warranty. It may steal your motorcycle, and drink all your milk. If you have any improvements or bug reports, please mail them to me. I will be happy to accept them.

Download the latest.

Update: 5/31/2007, I have created a repository with the latest version of the code (which includes some improvements and bugfixes from contributors). Find the repository for date2ics here