DeeKnows Homepage

Main menu:

DeeKnow’s Grotto

Blogging from a Palm PDA via Radio

Some notes about an effective (if rather convoluted and potentially fragile process) for blogging from a Palm PDA to an aggregator published blog or web site.


The process I use involves the following steps to get from Palm to webpage. The details of each individual stage follow.

  1. Author blog entry on Palm using standard Memopad utility
    and assign the memo to a specific category (Blog)
  2. Synch Memopad database from Palm to Desktop
  3. Extract all 'Blog' category entries we haven't seen before
    and save to RSS (XML) file
  4. Copy RSS file to Aggregator accessible location
  5. Fetch and Publish RSS to Blog using Aggregator

1. Authoring Memopad Entry

Nothing flash here, just a new memopad entry using the standard Palm utility. I've created a custom category (Blog) which you can see selected in this sample entry. This is so only the entries for this category will be blogged. I don't really want everything in Memopad blogged by default, although this could be a useful way to publish to multiple blogs or categories within a blog.

The script we use later to extract this memo entry will take the first line of the memopad and use that as the title for the blog entry

2. Synching Memopad to Desktop

The next stage is to synch the Memopad database including the new blog entry to the PC. This process involves...

  1. disabling the hostsynch process running on the desktop
    (will be holding the COM port open)
  2. use pilot-xfer to fetch the memopad database from the Palm
    specifically (MemoDB.PDB)
  3. run Perl script over the PDB file to extract entries
    and write out to an RSS (XML) file
  4. restart hotsynch so we can synch as per usual

What happens in the Perl script will be described shortly but the above steps are sequenced using the following batch file (with the Palm connected to a hotsynch cradle or cable, obviously)...

set PILOTRATE=57600
pilot-xfer COM1 -f MemoDB
perl > palm-blog.xml
copy palm-blog.xml "d:\program files\radio userland\www\categories\personal\"

3. Extract Blog entries to RSS file

The Perl script (source) spits out all entries found in the category to a single RSS file, so its up to any aggregator that fetches the RSS file later to determine whether or not its seen any of the individual RSS items.

The script requires Andrew Arensburger's p5-Palm bundle (cpan souce) using the PDB and Memo modules to extract the Memopad entries from the PDB file which that application maintains. The script also requires Jonathan Eisenzopf's XML:RSS module (cpan souce) to generate and spit out the RSS output once the Memopad entries have been extracted.

Here's some sample output from the script containing a single RSS item based on the Memopad entry shown above...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
<rss version="0.91">
<title>DeeKnows Palm Blog</title>
<description>A collection of notes authored on my PalmPilot and
published using the Radio aggregator.</description>
<pubDate>6 Jan 2003 11:49:41 UT</pubDate>
<title>First blog from Palm</title>
<description>This is kinda exciting. I've just written a
script which synchs my Palm pilot memopad with my PC and extracts
any articles in a category name 'blog' into an RSS file which gets
upstreamed by Radio to then on the hour the radio
aggregator fetches the RSS and publishes the new memopad entries
back to my public website.</description>

4. Copy RSS file to aggregator accessible location

Now that we have an RSS file containing our Memopad entries we need to place that file somewhere where our (and other folks) aggregators can get at it for publishing purposes.

I currently use Userland's Radio tool for blogging and outlining. Radio includes an aggregator that can fetch an RSS file from a web accessible location and automatically publish new items through a template to a blog site. So all I need to do is place the RSS file in a location that Radio can get to, subscribe to the RSS feed, and Bobs-your-Aunty.

Conveniently, Radio also supports something Userland call upstreaming, where anything you place into a local file system location can be FTP'd to any other location (providing you have the username/password for that FTP site).

So, I place the RSS file generated by the Perl script into an upstream folder on the workstation where Radio runs, and Radio upstreams the RSS file to my public website.

Note: You could obviously use FTP to deliver the RSS file to a web accessible location, or if you run a web server on your desktop just copy the file to its web volume. I'm not able to run a publicly accessible web server on my desktop.

5. Fetch and Publish RSS to Blog using Aggregator

Resources / References