I went on an unexpected treasure hunt yesterday while trying to get my life organized.
Between work, home, a couple of hobbies, and volunteer work, I have a fairly large "to do" list. I should say, "lists" -- one of them includes project ideas dating back years, which I will do someday. I'm looking for an easy way to organize and
present these -- so that on Monday, I can call up the most important "work" task outstanding, but on Saturday, I can see the "home" list.
Up until now I've been making do with my Palm PDA and
Jpilot. The Palm has a fairly well-designed To Do List function, allowing 15 categories of tasks, and five priorities. Unfortunately for me, it's oriented toward showing tasks by
due date, and my tasks mostly don't have due dates, only relative importance. Within each priority level, I can't control the order of presentation. Also, I like to plan hierarchical lists -- tasks with subtasks -- and the Palm doesn't do that.
I decided I didn't need to keep the list on my PDA, so I began looking for suitable desktop programs. A Google search for "open source to do list" turned up
this recent article on Ars Technica, which was exactly the information I was looking for.
The three that were mentioned were
GTG,
Tasque, and
Korganizer. I'd tried Korganizer years ago, because it would interface with my old Palm; but I found it more clumsy to use than Jpilot, with no better features. But this review said that KOrganizer now supports subtasks, so I decided to give it another look. (It's already installed on my KDE system.)
It does support subtasks -- multiple levels of them! -- and it's easy to move tasks around by clicking and dragging. This is what I'm looking for. There are also nine priority levels instead of five, which just might be enough; and apparently any number of categories (though fifteen is plenty).
So then I began to wonder if it would import tasks from my PDA. And
that was a journey.
Korganizer works with
Kpilot, the KDE Palm tool. Kpilot stopped working when I got a USB Palm, but I thought maybe the new version had fixed that.
Not exactly. First I found out that Kpilot (which came with my Debian distribution) requires pilot-link (which did not). No problem; pilot-link is easily installed from the Debian repository.
Then, Kpilot wouldn't auto-detect my iQue PDA, and the two USB devices mentioned in the FAQ -- /dev/ttyUSB0 and /dev/ttyUSB1 -- didn't work either. Following the debugging instructions, and using 'dmesg' to read system messages, I found that my Palm does not get installed as a "tty" device.
I remembered getting this to work with Jpilot years ago, so I launched Jpilot and found that it was connecting to device "usb:". Kpilot uses
pilot-link to talk to the Palm, but alas, there is
no documentation on the pilot-link page, just mailing lists. Finally I Googled "kpilot usb ique", and eventually found
this post whose last response described that usb: works with pilot-link, as in this example:
pilot-xfer -p usb: -lThat worked. In fact, my very old PDA backup script, that used pilot-link, now works again with this one change.
So, back to Kpilot. Since I had some very old Palm data still sitting in my directory, I decided my first operation should be "Copy Handheld to PC", thus bringing all my current data into the PC, and preventing any inadvertent changes from affecting the PDA. I'd learned with Jpilot that one must press the "hotsync" button on the Palm cradle
before attempting to connect, so I did that and then launched Kpilot.
Kaboom. Halfway through the sync, the Kpilot daemon (a "helper" program that runs constantly in the background) crashed, with a SIGSEGV error.
Back to Google, this time searching for "kpilot daemon sigsegv". After chasing down several false leads, I found
this blog page from 2006 that described the problem exactly:
FINALLY took a couple of hours late, late, late tonight and looked at the pesky little kpilot bug which caused a nasty little SIGSEGV with the vcal-conduitbase::slotProcess code during a "copy handheld to PC" sync.
Yes, the bug has been known since 2006; but alas, the 2006 version of Kpilot is what Debian offers. (I guess no one uses Palms anymore.) So my choices are to recompile kpilot from source code, or to work around the problem. Since the problem is limited to the "copy" operation, I should be able to do a normal hotsync. And if I start with a clean kpilot, it should simply fetch everything from the handheld. Call this Plan B.
(I should mention that before I tried any new software with the Palm, I was careful to back up its contents to the PC.)
Fortunately the Kpilot FAQ
did inform me that the files are kept in ~/.kde/share/apps/kpilot. So I simply deleted that directory and launched Kpilot to get a clean start. And....kaboom.
I did notice, though, that Kpilot loaded, into ~/.kde/share/apps/kpilot/DBBackup/Brad, the same ".pdb" (Pilot Database) files that I get with pilot-link. So for Plan C, I wondered if I could manually copy those files from Jpilot (or import them directly with pilot-link). Alas, I can't. I can read the copied ToDoDB.pdb from Kpilot, but apparently its "conduit" won't export to Korganizer without a hotsync operation.
Plan D: My trusty Jpilot will export an iCalendar (.ics) file. And Korganizer will import an .ics file. Hooray! This works!
So...I can get my current "to do" list into Korganizer. I can probably get it back into the Palm, by the roundabout method of exporting an .ics file from Korganizer and importing it with Jpilot, then synchronizing Jpilot with the Palm. Not the most elegant of solutions, but as I said, I really only use the to-do list on my desktop anyway.