Wednesday, March 23, 2011

Smartphone as PDA

After posting about potential PDAs 4 months ago, and spending several more hours researching alternatives, I finally concluded that the HTC Touch Diamond really is the perfect (or as close as the market will allow) device for me. Even better that it occasionally shows up on sale for about 30% off at Newegg, so I recently picked one up.

Several more hours of investigation have followed. I've seen it may be possible to upgrade the device to Windows Mobile 6.5, and even install Andorid. Not being ready for that kind of commitment, I've just been finding various programs and tweaks to turn it into my new PDA.

Thus begins the migration from my Palm z22 to Windows Mobile 6.1 HTC Touch Diamond

Programs

First programs I install are .NET Compact Framework 3.5, SQLServerCompact 3.5 Core, and full featured Japanese Display and Input.

After a reset, Dred Sensor, OpenMobileMaps, (Japanese) Pocket Dictionary (along with EDICT), JWPce (be sure to use the ARM "palm" version), Pocket Digital Clock, Total Commander Pocket.

System tweaks

  • Settings -> Personal -> Menus -- Remove Phone
  • Settings -> Sounds & Notifications -> Notifications
    • All Phone and Messaging options -- Disable all sounds/notifications
    • Event: Reminders -- Disable visible calendar popups
  • Settings -> Today -> Items -- Deselect TouchFLO 3D and select Pocket Digital Clock and Calendar
  • Settings -> Today -> Items -> Pocket Digital Clock Options -- Disable seconds display
  • Settings -> System -> Error Reporting -- Disable it
  • Settings -> Comm Manager -> Always keep Phone turned off

I hunted a long time for a (free) program to change button behavior. Dred Sensor had all the power I needed. Using Dred Sensor, I replace all the Send and End button behavior as shortcuts to Calendar and Notepad (similar to how my Palm was setup). I also set a long-press shortcut of one of the buttons to open Comm Manager for quick toggle of WiFi setting.

Copy a pic to the phone, then browse to it and select it, then set it as the background to change its translucency setting (you can't set that from Settings -> Today)

Google Maps is a very nice program, but pretty much requires constant connectivity--something I (thankfully) don't have (to pay for). So to save maps for OpenMobileMaps, first start OpenMobileMaps so it can setup its cache folders. Then download a fixed version of JTileDownloader, browse an area of interest on the OpenMaps site, download the tiles, and copy them into the cache folders on the Diamond.

I haven't yet needed to tweak the registry, but MobileRegistryEditor is my editor of choice.

Transferring Data

I've used HandyShopper on the Palm for years -- it's a brilliant program. Thankfully it's also available for Windows Mobile. Transferring the shopping list is a breeze. Just find the backed up database in %USERPROFILE%\Documents\Palm OS Desktop\<id>\Backup\HS2_Shopping.PDB and simply copy it to the device. Browse to the PDB file on the device and just click on it. Your list is now available on the Diamond.

The biggest issue I had was getting the Palm Note Pad scribbles off the z22. Since Palm all but dropped support for the Palm OS and Windows 7, I had to download their latest (and final) version of the desktop client off their website. Unfortunately that version of Palm Desktop doesn't provide an interface for Note Pad. Forum posts suggested I had to find a computer with WinXP and install the older software that came with the z22 to sync those Note Pad images off the device.

While I still have XP on my lappy, it sure seemed like a hassle -- and what about people who don't have XP anymore? So I turned to Open Source for help. After installing all variations of Palm related software in Ubuntu, nothing seemed to provide a GUI for getting those Note Pad images. Then I happened upon a man page for a command-line tool called pilot-read-notepad. To my surprise, the following command actually worked

pilot-read-notepad --type=png -p usb: > list.txt

After pressing sync on the device, I found myself with all the images exported (some of the note titles with illegal characters had to be tweaked).

Blogging with Markdown

I haven't done much blogging lately, so most of the asciidoc esoteric syntax is gone from me. Meanwhile, I've been using Markdown on a couple of popular web sites. Markdown has come a long way since I first investigated a blogging markup language with code highlighting. There is now a Python module with the built-in CodeHilite extension. This post gave me the confidence that Markdown was ready for primetime.

Here's how I setup my new blogging solution with Markdown*:

  • Install Python 2.5+
  • Download Markdown source code
  • Download Pygments source code
  • Uncompress the Markdown directory
  • Uncompress the Pygments directory
  • From the Pygments directory, move the pygments and external sub-directories into the Markdown directory
  • Apply this patch to the Markdown source files so noclasses configuration is exposted and fenced_code is also highlighted (I'm bummed this patch isn't included in the downloaded source)
  • Download and install the jEdit syntax and Notepad++ syntax files

Now the following command will do the work**:

python markdown.py input.md -o html4 -x "codehilite(noclasses=True)" -x fenced_code -f output.html

I still have to manually create the blog post in Blogger, but then it's just a copy-paste of the html, and I'm done.

* I don't like installing Python modules because I rarely use them--hence the simple uncompressing and use in-place.

** Like with my previous blogging solution, I like the syntax CSS to be inline.