Monday, August 17, 2009

Palm OS to Google/Android: What Didn't Work (4.2)

What didn't work. Well, what did I try before that? Lots of things, with varying degrees of success (from zero to partial).

1. To preserve the link to the contact, it would have been nice to have a way to export from Agendus. Although Agendus has a menu item called "Export," it's always grayed out, and if you search the help file for "export" all you get is the part of the licensing agreement covering "Export Assurances." Agendus has been pretty good, but putting in a menu item for a non-existent feature is pretty cheesy, IMHO.

2. Next I tried "csv" files: these plain-text databases have been around probably since before VisiCalc was muscled aside by Lotus 1-2-3, if anyone remembers that there were spreadsheets before Excel. One of the difficulties of exporting contact data is that in the Palm DB you can set the labels for the phone fields, i.e. someone could have 5 "Work" numbers. I tried using Palm Desktop to export the address book, but it seemed that it just exported the phone numbers in order and used the default labels, so the user-defined label information was lost, as far as I could tell. In any case, the DB columns and the phone numbers didn't correspond correctly.

3. OK, so maybe if I were to sync with Outlook instead of the Palm DB, I could export the Outlook DB and the fields would be correct. I tried to sync using the HotSync conduits that come with the Palm software ("Start > All Programs > Palm > PIM Conduit Sync > Sync with Outlook"). This produced numerous "OLERR" errors. A Google search gave me the sense that this is pretty common. This is Palm's somewhat flailing set of suggestions for how you might fix this problem, and I wish to emphasize the word "might." The first thing I tried was to use DbFixIt ($12.95 from Pimlico Software, which I remembered from days of yore, experimenting with Pimlico's DateBk3 before settling on Agendus). Actually, it's free to check your DB for corruption, and $12.95 to fix it, which I don't begrudge in the slightest (especially since profits go to wildlife protection). Well, it found and then fixed a number of problems, but they were not what caused the Palm Outlook conduit gods to frown on my endeavors.

4. Next stop: PocketMirror (Standard) from Chapura Software ($29.95 with a 30-day money-back guarantee). This seemed to work, although it did generate some errors, which I contacted their tech support about. It's Saturday, by now. Or maybe Friday night (is this how I might have spent Friday night? Told you I was a geek). But there I was, looking at Outlook (2003) on my Windows VM and seeing lots of contacts and lots of events (but not all, it later developed).

5. So for the contacts: back to the ".csv" text file. I loaded it into Excel and deleted the many, many empty columns, just in case. Internationalist that I am, I still couldn't stand to have a field called "Business Postal Code," so I changed it to "Business ZIP". I reformatted the zip code columns with a "00000" custom format so that my zip code wouldn't come out as "2478" and I cleaned up a few other things (I won't bore you with a, uh, snafu where I sorted the first dozen or so columns but had left in a blank column so that excel didn't sort the last two dozen or so columns, kind of like sawing a deck of cards in half, shuffling one half and then gluing them back together, I really don't recommend trying this on any actual data. I hadn't been saving frequently and Excel (at least 2003) doesn't let you undo more than one step, so I had lots of stuff to redo on that one. OK, if you're still reading this maybe I did bore you. On the other hand, if you're reading this I will say that you don't bore easy or you have a very very high tolerance).

6. I then uploaded the csv file to Gmail Contacts. Presto! Lots of contacts. Oh, oops, the importer didn't understand that "Business ZIP" went with "Business City" and "Business State," so I had no Zip codes on the addresses, and lots of lines added to the Notes field that said "Business ZIP: 2478" and the like. What happened to my zeros?? Oh well, I could live with it, I decided. (I think that for the sake of "clarity" I'm not telling all of this in the order it actually happened, so by this time my resolve had been weakened by some of the steps detailed below. Lucky for me this didn't actually work out or I'd be cutting and pasting Zip codes for years. Or eventually got sick of it and tried to fix it with a program).

7. Having declared "victory" on the contacts, how about the calendar? Well, I was terrified of exporting the calendar as a .csv file because I was worried it would export recurring events as a sequence of many, many individual events, losing the ability to make changes on the whole series. Definitely not acceptable. But right there on the Google Calendar web site, it was telling me I could download "Google Calendar Sync" to my Windows VM and sync Outlook with the Google Calendar. I didn't really care about syncing, but uploading would be nice. So I downloaded and installed it. This is not a fancy looking piece of software. It's about as configurable as Apple's Time Capsule. (They both remind me of a joke tax form I saw as a kid: the "Simplified Form 1040," which had two lines "How much money did you make last year? _______" and "Send it to us _______." At least I took it to be a joke back then.) GCS has you put in your google account and password, and how many minutes to take between syncs, the default being 120. Sounds OK, I thought. I set it going and headed out to go pick up my sweetheart (from work, this was not an attempt to find a new sweetheart). Oh, yeah, this was definitely Friday early evening. Quite a thrill, toward the end of the errand, to go into the calendar on my G2 and see my appointments there, wirelessly. You can see how mired in the 20th century I've been—until now.

8. So far so good. Here's where things started to get quite ugly. I was cleaning things up in Google Calendar Saturday morning when I tried to edit a calendar item and got a message saying "You have reached the limit for the number of events you can edit," that the problem may be caused by "third party" sync software, and I should try again in a couple of hours, implying that the limit might be raised by then. Fair enough, I figured. I tried a couple of minutes later, no dice. I tried in the afternoon. Still no dice. Time for some research.

9. A (google) search came up with this current thread on Google Calendar Help forum. Some people were locked out after syncing, some people were locked out after inviting lots of people to events. There was lots of frustration and no comment from Google. One good soul (BigBenV) actually had a solution: export your calendar, delete it, and re-import it. Great! Unfortunately, when I tried it, it would only re-import about 800 of over 2000 events. Back to the drawing board. I also found this (archived) thread about the same problem, going back to November 2007. Some people reported that it took a week or two to get reinstated. On the second page, around post #28, there is a post from "Google Calendar Guide" in which a nice-sounding woman who signs her name Becky invites people to submit log files when they have this problem. Later, she says "We’ve made changes that should *mostly* alleviate this problem in the
future." That was June 2008. Oh well.

10. The verdict: unless you can afford to wait a week or two for Google to unlock your calendar (i.e. unless you don't use your calendar for anything particularly important), avoid Google Calendar Sync like the plague. I didn't spot it at the time, but looking around now I see this page from Google Calendar Help asking people upload their log files if they're having this problem, so the problem is still current. The whole experience gave me some pause as I google-ify my life: this is a problem that's close to two years old, if not older. It's caused a lot of inconvenience for quite a few people, and it seems that there are simple things that Google could have done to soften the problem (e.g., as one poster suggested early on, giving people the option of typing a "captcha" to complete each edit) or to be more accurate in saying how long the resolution takes. Google products don't seem to have "support" in the usual sense. As long as the products are things like search and mail that squintillions of people use, this seems to work relatively well. But when you get to products that are more niche-oriented (even though I would imagine syncing with Outlook could be a big niche), it may present problems.

Luckily for me, I found a way around Outlook completely, via the Mac, as detailed in the previous post.

Palm OS to Google/Android: What Worked (4.1)

OK, so Thursday I got my spiffy new T-Mobile "myTouch" (I'm going to call this my G2 from now on, to keep from gagging). It looks pretty cool, but of course it's no good to me without my calendars and contacts, which are on my old Treo 650. For my calendars and contacts, I've used a program call Agendus from Iambic Software for a long time (I think it was called "Action Names" when I first started using it, and since then it's gotten upto Agendus 13, so we're talking a good stretch of time in dog years). Agendus has a Palm OS client and a Windows client, and it lets me link an appointment to a contact. Since most of my appointments are meetings with patients, most of my appointments consist of just the link, without any other description. Agendus uses the native Palm databases, and it just appends " [Doe, Jane]" to the appointment if that's the contact you chose. If I get hooked on this blogging thing I will rant on this at some length since it's related to why I decided not to get an iPhone.

I was hoping that when I migrated the data, I might be able to preserve this link to a contact (eg as a "guest" in Google Calendar), but no such luck... So now I have tons of appointments on my Google calendar with "What" fields like " [Bullock, Sandra]" (just kidding, I don't have any meetings with her, but that's the first name that came to mind for some reason that I probably really don't want to know). Well, I can live with that; my calendar is still reliably searchable, which is one thing I need.

My current computer set up is this: I have a MacBook Pro, and I run Windows XP under VMWare Fusion (I cannot say enough good things about Fusion, BTW, and you will notice this is not true of many pieces of software for me). I got the MacBook maybe two years ago, and thought about moving my contacts and calendar to the Mac, but there was no Mac version of Agendus. So I've been continuing to sync my Treo using the Windows software.

I've been using Palm OS since 1997 or so, and I have almost 2500 contacts and probably 3000 calendar items (many, many more if you count individual instances, since many of my appointments are weekly). So I need something pretty robust to upload all of this to gMail and Google Calendar.

What worked. To cut to the chase: after years of avoiding syncing my Mac with the Treo, I used "The Missing Sync," from Mark/Space Software, to load my events into iCal and my contacts into the Mac Address Book. I spent $40 for this program, I don't expect to use it ever again, and it seems to have been worth every penny (see my next blog entry for the many problems I had with other approaches). [I realized as I was proofing this that the number of people who use Agendus on a virtual Windows machine running on their Mac may be relatively small (like, if there is another one of you, drop me a line). But nothing in this is particular to Agendus, it all applies to the usual Palm DB. You may need to find a friend with a Mac (but if you do, they'll probably want to create a separate User account for you, so you don't get synced with their iCal and Address Book). Or if you are fortunate enough to have cash lying around, maybe this will convince you to buy a Mac.

1. For the contacts: Missing Sync loads your contacts into the Mac Address Book database. For each category, it creates a group whose members include every contact who was in that category. (If you have a lot of groups in your Mac address book, you may run into trouble here because there's a limit of 15. I only used the Mac address book for email addresses, so I didn't have a problem here. Missing Sync has way to tell it to sync particular groups only, but it doesn't have a way to tell it not to sync a particular group. I don't really understand the technicalities here because I didn't run into a problem). As a happy extra, Missing Sync merged the email addresses in the Mac database with the address/phone etc info in the Palm DB, rather than leaving me with duplicates to merge by hand. Missing Sync also warned me with each DB sync that was going to change more than 5% of the records in each DB. It meant that I needed to interact during the sync, but it's a good example of how well thought-out the software seems to be: I can see that this feature could prevent some disasters.

From there, all you do is click on the "All" group in the Mac Address Book app, and go to "File > Export > Export Group vCard...," to export the contacts to a file. In Gmail, click on "Contacts" on the left sidebar, and then on "Import" along the top. I had actually deleted all my contacts before, because of some of the less successful attempts describe in the other post, so I don't know whether it tries to do any automatic merging. But I discovered that if you check two or even three contacts, Gmail will offer to merge them, and if you click it will propose something reasonably intelligent. So merging contacts one-by-one becomes quite painless. Score another point for the big G.

It was straightforward and it seems to have done a good job.

2. For the calendar: Missing Sync takes each of your datebook categories, and turns it into a separate iCal calendar. In iCal, you do need to go through these calendars one-by-one: click on the calendar, go to "File > Export..." to save the calendar as a ".ics" file. In Google Calendar, create a Calendar for each category by clicking "Create" under "My Calendars." Then import the file for that calendar by clicking on "Add" under "Other Calendars" and selecting "Import Calendar" which will take you to a screen which will let you upload the file you exported from iCal.

It's worth mentioning that your "main" calendar uses your gmail address as its name, and there doesn't appear to be a way to change the name. So you may want to take one of your categories/iCal calendars (such as "Home") and import it into your main calendar rather than creating a Google calendar called "Home."

This seems to have worked pretty well except that gCal choked importing my "Unfiled" calendar. A number of times it gave me a "Server Error" message saying gCal was temporarily unavailable and I should try again later. It seemed to have brought over lots of events (at least the recent ones, which I care about the most). But it would have been nice to have it tell me it's successful. The last time I tried again it imported 8 (out of maybe 800) events, saying I didn't have sufficient access to my calendar to import the rest. So there was this one glitch but given everything I'd been through, I was pretty happy. So now I have all my categories showing up in different colors, on both gCal and on the G2.

I do have an obscure problems with repeated events: I have a lot of weekly appointments, but if someone's on vacation we cancel an appointment out. Calendar programs handle this internally by having "exceptions" to recurrent events. All of these exceptions seemed to upload fine to iCal and from there to gCal but for some reason they did not seem to make it over to the G2. Maddeningly, even when I delete the extra appointments that were supposed to not be there, they come back. I'm hoping that this is just a problem with the uploaded data, not a problem with appointments that are entered into gCal, and when I tested the situation with a new recurrent event created in gCal, the exception seemed to get to the G2 just fine. Stay tuned and I will definitely rant if this keeps happening with newly entered data.

But so far, so good!

Sunday, August 16, 2009

OK, I give up

So until now I've resisted having a blog. "I don't have time to have a blog," I thought. Well, I still don't have time to have a blog, but I've been doing various tech-y things lately, relying extensively on postings around the web to solve problems. I decided I would start the blog so that people might see how I did some of these things (and so that I could see how I did them because I forget pretty quickly, I notice).

Of course, thinking about it, I started to think about all the things I could write about... I definitely don't have time to do those things now, but since they might come all out of order, I'm going to write down the ones I thought about and maybe fill them in later.

1. Me and computers through the ages
2. Me and PDAs through the ages
3. Nat sells his soul to Google
4. Migrating from Palm OS/Agendus to Google/Android