Friday, June 30, 2006

FAQs 2 - Pocket Pollster Setup Files

If I use Add/Remove Programs to uninstall Pocket Pollster, will my Data files be removed too?
No. All of the files & folders in your "Data" folder will remain intact. So, in fact, will a personal preferences file called "SysInfo.xml". So when you install a newer version, all of your files & settings will be exactly the same as before.

Do I have to first uninstall the old version before I can install the new one?
You did before but beginning with Alpha Version 1.1, you no longer do.

What has to be installed on my computer before I can setup Pocket Pollster?
Just 3 things:
  • A working version of Windows, with the latest service packs installed.
  • The dotNet Framework, either Version 1.1 or 2.0 or both installed.
  • A working version of ActiveSync 3.8 or 4.1. Newer versions will likely work too, though have not been tested yet. It's of critical importance that the synchronization with ActiveSync is working properly before Pocket Pollster is used, since the latter does not have the ability to correct any problems with the former.

Thursday, June 29, 2006

FAQs 1

An Alpha Tester asked some excellent questions today. I thought I'd start posting such questions, along with the answers, as they may benefit others too:

What exactly happens when I press Publish?
The master/working copy of a PP file resides in the "Data" folder. Pressing "Publish" simply puts a copy of it in the Templates folder, cleaning out any collected data it may have.

When collected data is transferred back to the Windows computer, where is it stored?
All collected data is stored in the files in the "Data" folder.

What's the Archive folder for?
Nothing at the moment, actually. The collected data, downloaded from the mobile device(s), is first appended inside the master copy of the files in the "Data" folder. But then each individual file is archived inside of the "Archive" folder. This is done purely for historical purposes at the moment. In fact, other than placing the files there, the program currently does not use them at all. At least not at the moment. But a future auditing feature will be available to interrogate these files, producing a detailed report of the data within. This won't be necessary for everyone but will likely be useful for certain clients with specific legal or accounting requirements.

Can Pocket Pollster adversely effect ActiveSync?
No. Pocket Pollster is a self contained application that in no way modifies any files or functionality connected with ActiveSync. But the opposite is not true. The current version of Pocket Pollster absolutely depends on ActiveSync working properly. There's an inherent assumption that a mobile device already properly syncs with ActiveSync. This is easy to test before Pocket Pollster is ever installed: Just sync your device and see if ActiveSync interacts with it normally.

Tuesday, June 27, 2006

European Success!

I received word back from the tester in England and the one in Portugal that the Desktop component of the software is now working on their computers! With that said, the English fellow is having synchronization issues but we're going to figure out why that's occurring.

The new version they installed is a preliminary version of Alpha 1.1. There are a few more changes to be made and then a newer version of 1.1 will be released to all active Alpha Testers.

Friday, June 23, 2006

Pocket Pollster on an Old Pocket PC

An Alpha Tester in Colorado informed me that he wanted to try out Pocket Pollster on an old Pocket PC 2000 device, namely an HP Jornada 540. This device uses an "SH3" processor, the files for which are not currently included in the MobileCabs installation package. But I compiled a special set of CAB files for him. He reported that it seemed to install okay but then he was getting an error upon startup.

It turns out that I had an old HP Jornada 545 (same device, albeit with 32MB RAM) in storage. So I found it, charged it, and tested Pocket Pollster with it. The problem was quickly revealed.
As is often the case with such things, it was one seemingly innocuous line of code.

The mobile component of Pocket Pollster examines the hardware and makes a distinction between a Pocket PC and a Smartphone. Unfortunately the hardware identification string retrieved from these old Jornadas is not "PocketPC", but "Palm PC2". A minor distinction but the app didn't know what to do with it and raised an exception. I laughed when I saw this string because it made me recall that Microsoft had originally used the moniker "Palm PC" before they lost a lawsuit to Palm Corporation and had to adopt the new name, "Pocket PC".

Anyhow, I quickly got the application running. Certain parts of it run really slow, but with only a 133 MHz processor, compared to today's 600+ MHz models, it's little surprise. Still, once one got into the poll itself, it worked pretty well. Whether I support this device permanently is really dependent on customer demand. But it was an interesting trip through memory lane nonetheless!

Wednesday, June 21, 2006

The International Culprit: Dates!!!

As the Alpha Testers in England and Portugal know, the current version of Pocket Pollster will not run properly on their computers. Today I found out at least one of the reasons why. It's the handling of the dates.

Here in Canada (and the U.S.) June 21, 2006 is stored as "06/21/2006". But in a country like England, it's stored as "21/06/2006". So when Pocket Pollster is running on a computer in England and sees "06/21/2006" it thinks "The 6th day of the 21st month". And then kicks out an error!

This is a little more tricky to resolve than one might think at first glance because we have to be sure that a file created in England can be properly viewed & used in the U.S. and vice-versa. But at least the error is now tracked down and obvious. I just have to find a solution that works for every situation.

Monday, June 19, 2006

Significant Mobile Installation Improvements

That older Toshiba e330 Pocket PC 2002 I was loaned by one of the Alpha Testers has proved invaluable. Since I need to send it back tomorrow, I did extensive testing with it this weekend. This consisted of complete uninstalls and reinstallations - over & over & over again. What started becoming clear is that the OpenNETCF 1.4 CAB file would not consistently install its contents; sometimes it would, sometimes it wouldn't. Though this isn't my "fault" it simply isn't good enough to tell a customer this. I hate it when one department or company blames another and then says, "Sorry, but there's nothing we can do." Nonsense! Customers just want the product or service to work properly. Period. And they're right!


The strangest thing is that this problem never seems to happen with a newer, faster Pocket PC. I considered removing the functionality that the OpenNETCF libraries provide but they offer some good features so I quickly dismissed the idea. I then went on a long walk and considered my options. I suddenly realized that OpenNETCF is merely a series of DLLs, so why couldn't I just incorporate the ones I need directly into the Pocket Pollster CAB file? I researched this on several developer forums and some anecdotal evidence suggested it to be a viable approach.

So I implemented the idea. And lo and behold, it worked perfectly each & every time! A side benefit is that the overall installation is now about 25% faster because the entire OpenNETCF library doesn't have to be installed.

Another lesson I learned (read "was reminded") from all of this testing with the old Toshiba was how much the Pocket PC hardware has improved in the past few years. The speed of installation is dramatically improved with the newer devices. For example, once the NetCF CAB file is copied to my Dell Axim X30, it only takes 2 - 3 seconds to install itself. But on the Toshiba it takes well over 10 seconds! The original version of the Data Transfer module never accounted for such a slow installation process. It's now improved dramatically. It now goes through 10 iterations of 2 seconds each, checking each time to see if the CAB file has done its work. This flexible approach works equally well for the older devices as well as the new ones.

Not a very exciting weekend - especially with the World Cup going on - but it feels great to have accomplished a lot! These improvements will hopefully address all of the mobile installation issues brought to my attention so far.

Saturday, June 17, 2006

Pocket PCs a Plenty!

Today I had the great pleasure to meet one of the Alpha Testers from Seattle. He, his wife, & his brother were visiting Vancouver and agreed to meet me ... and brought a lot of their hardware with them!
I thought I was a mobile technology afficionado but now realize that my collection pales in comparison to that of others! Shown here is a Dell Axim X5 on the left and 3 identical iPaq Pocket PC Phone Edition units. Very, very cool technology.

The ensuing discussion was very interesting. They gave me some great marketing tips about educational institutions, GIS applications, and a host of other things. Thanks, guys!

Wednesday, June 14, 2006

Troubleshooting an older Pocket PC

An Alpha Tester from Sudbury, Ontario shipped me his Toshiba e330 device, onto which he could not get Pocket Pollster installed. I tried on one of my development machines and it wouldn't work either. So I removed the app and then tried to remove the two "frameworks" (code libraries) that come with it: OpenNETCF 1.4 and .Net CF 1.0. Strangely, neither one would allow me to remove it via Start -> Settings -> System -> Remove Programs. I had never observed this before.

So I copied the 3 CAB files in C:\Program Files\Pocket Pollster\MobileCabs\wce300\arm over to the \Temp folder on the Pocket PC. I went into File Explorer on the device, navigated to \Temp and then installed each in sequence:
  1. .Net CF
  2. OpenNETCF
  3. Pocket Pollster
When prompted as to whether I wanted to reinstall, I clicked "OK". Sure enough, everything worked fine after that!

What's most peculiar is that the two frameworks were installed, but just not correctly. What I did manually is exactly what Pocket Pollster does automatically: copy file to device and run it. If this is reported on more devices then I'll likely have to keep reinstalling these frameworks until it's clear that they're correctly in place.

At least from all of this there's a new FAQ that can be added: "If the mobile software won't run then try removing it and both of the frameworks. If either framework won't uninstall then it is likely the culprit and a reinstallation must be done."

Tuesday, June 13, 2006

Problems with Desktop on European Windows

I've now received the 2nd report of the application not working on a version of Windows for the European market. The first report came from Portugal, the latest from England. Though Pocket Pollster is not yet "internationalized", the infrastructure is there to make it so. Since this same error is not occurring on Canadian and U.S. machines, it's logical to assume that the error must have something to do with an international lookup reference. I plan to resolve this asap.

Tuesday, June 06, 2006

Alternate E-mail Address

I've been experiencing some strange e-mail issues of late, with some outbound ones not being received and several inbound ones not getting to me. I always try to answer all Pocket Pollster e-mails within hours of being received. If you've sent something and didn't get an acknowledgement then please try resending it to: pocketpollster@gmail.com This is a backup e-mail account that I monitor as well.

Detecting Which .Net Frameworks Are Installed

I'm getting a small handful of reports that the basic PocketPollster Windows application cannot be installed and run successfully. This is very odd. The only explanation I can think of is that the .Net Framework 1.1 is either not installed or not installed properly.

To detect the former, one can look in the registry for the presence of this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

The children of this key determine which versions of the framework are installed. Here's a guide:
  • Version 1.1 - 1.1.4322
  • Version 2.0 - 2.0.50727
Of course, the fullproof way to ensure it's installed properly is to remove it if it's present and then reinstall it. You can get a copy here.

Monday, June 05, 2006

Installation Challenges

I've been a receiving a potpourri of feedback from those testing the software. In terms of installation, they fall into one of three categories:

  1. Everything installs & works perfectly right off the bat.
  2. It installs properly onto the desktop but then there are problems getting the mobile app working.
  3. It doesn't even install properly on the desktop.

I am actively working to resolve the issues associated with #2.

As for #3, this is a great mystery. Pocket Pollster is a regular .Net Framework 1.1 application and should install easily without any problems. But yet they are occuring on some machines. Here's the troubleshooting advice I gave to a tester in Portugal:

  1. Uninstall Pocket Pollster.
  2. Go to Start -> Control Panel -> Administrative Tools
  3. Check whether there are 2 icons referring to "Microsoft .NET Framework 1.1". If not, then proceed to #5.
  4. Go to Start -> Control Panel -> Add or Remove Programs and remove all entries referring to "Microsoft .NET Framework 1.1" (there will likely be 1 or 2 of them).
  5. Go to here to install a fresh copy of the framework.
  6. Ensure that ActiveSync is installed and your device is synching properly with MS Outlook.
  7. Restart your computer and try installing Pocket Pollster again.

I'm enquiring with other developers about what else could be done to resolve such problems. Frustrating!

Sunday, June 04, 2006

How's The Beef?

A recent Baseline magazine had an interesting story about how the USDA implemented mobile computers to speed up the inspection process.

Thursday, June 01, 2006

Smartphone Arrived!

One of the great benefits of my work is that I get to interact with people from all walks of life and from all around the world. Last week I had a very interesting discussion with a gentleman from San Francisco. Like me, he was clearly a mobile technology enthusiast. After our hour long conversation he told me that he was going to send me a Motorola Smartphone to borrow for awhile. I was, well, pleasantly surprised that a complete stranger would do this.

In case you're not aware, the Smartphone is a cellular phone that uses Microsoft's "Windows Mobile" operating system (OS). This is very similar to the OS in the Pocket PC, albeit utilizing a different sized screen and input options. I don't know the actual sales figures but I've long suspected that there will soon be many more SmartPhones sold than Pocket PCs.

Personally, I don't like these devices very much. On my laptop, I have the screen setup to display a 1600x1200 resolution. My Pocket PCs have 240x320 resolution; smaller but still ideally suited for software like Pocket Pollster. Smartphones have only a 176x220 screen, no touch-screen, and just a few buttons to navigate & input data. But ... and it's a big BUT ... the cellular phone form factor is the mobile computer of choice of most people in the world. So if that's what the customer wants then that's what the customer gets!

In point of fact, right from conception, I always had a plan to create a version of Pocket Pollster that would run on the Smartphone platform. It'll utilize every last pixel of screen space available and make the most efficient use of the available input buttons. But I still think Pocket PCs are a superior mobile input device.

One thing that was really cool was that when I connected the Smartphone to my computer with its USB cable, ActiveSync fired up, immediately followed by Pocket Pollster's Data Transfer module! Pocket Pollster then asked whether it could install its mobile component on the phone! I clicked "No", because I knew it wouldn't work [yet] but it was still really neat to see.