Shadow Plan to Ecco converter

I use the Shadow Plan outliner on my Garmin iQue for general notes and organization. I use Ecco Pro on the desktop. I needed some way to connect the two, and this is what I came up with.

The whole system is arranged around the Getting Things Done methodology. I have posts here and here about how I implemented this. The system is scarily effective, mostly because of the "next action" principle, although I tend to be completely lost when I've left my iQue somewhere.

There's a converter for Shadow Plan written in Java. It can import and export Shadow Plan's XML format (described here) to and from OML.

I then have an Ecco library written in Perl which can read Ecco items and export them as OML, and ancillary Perl scripts which can parse OML and create and insert Ecco items through DDE.

Here's some UML use cases showing how import and export works:

The shadow converter has support for tags -- if you have items in an Ecco folder and there is a Shadow Tag with the same name, the tag will be linked to the item when you export the Ecco view. You still have to create the tags yourself though.

Source code is included in the zip file. Adding new importers and exporters should be fairly easy to do if you're a programmer. The converter creates an internal tree of items and the XML parsing is already done, so you can just switch the formats around. The code is written to compile against Java 1.4.2.

You will need ActiveState Perl to start with. Download that and make sure you can run 'perl -version' from the command line before continuing.

Java will likewise be easy to install. Go to java.com and pick up the latest install.

Once you've done that, unzip shadowConverter.zip and look at the ecco directory. You'll find a Perl shellscript called syncall.pl, which you can edit to your tastes. However, this perl script depends on the Win32::Ecco library, which is not included by default.

You can install the Win32::Ecco library by going to the ecco directory and run install-ppm-modules.bat, or you can install it by hand. If you run it by hand, then you should run the following commands from a command prompt:

  • ppm repository add tersesystems.com http://tersesystems.com/code/eccoapi
  • ppm repository add brides.org http://www.bribes.org/perl/ppm
  • ppm install Win32-Ecco-Sample-GTD

You'll also find some properties files in the ecco directory. These determine what shadow XML files will be mapped to which Ecco folders. These files have the following format:

file=d:/usr/shadowConverter/Someday.xml  # the XML file to be created.
user=wsarge                              # the palm username.
shadowName=someday                       # the shadow file
destructive=true                         # removes previous items.
importer=oml                             # Import from OML (Ecco generated)
exporter=shadow                          # Exports to Shadow XML format.

The syncall.pl perl script depends on a couple of variables which you can set by hand or set using environment variables. The script won't work without these, so make sure you set them.

my $username = $ENV{'SHADOWCONV_USERNAME'};
my $shadowConvHome = $ENV{'SHADOWCONV_HOME'};

Once you've done that, run the syncall.pl script from the command line with 'perl syncall.pl'

Once you've verified that it works from the command line, you can integrate it into Ecco Pro by setting up a launch item with the script. And that's it!