My 2nd .NET App on Windows Mobile

After playing around in Visual Studio, and taking my first foray into the VB.NET world, I thought it might be kind of interesting to try and see just how portable .NET code really is. So I decided to port the little Math Game to my Windows Mobile 6 phone.

Guess what! I did it, and it wasn’t actually all that difficult to do.

The conversion of the code was pretty simple. I just exported the userform from my original Windows project and imported it into a new Windows Mobile 6 application. (Err… after I downloaded the Windows 6 SDK which doesn’t ship with VS2008 Pro.)

It worked just fine in the Emulator, so I then set about the deployment process.

It took way longer to get the deployment done than to write the project, I’ll tell you that right now. You can’t install an exe file on Windows Mobile 6, but rather have to package it up in a cab file. Great, but how do you do that?

After some searching, I finally found http://msdn.microsoft.com/en-us/library/zcebx8f8.aspx, which takes you right through the process. Fortunately I do have a digital signature at work, so I was able to use that to sign the code as well. I’m not sure if the certificate would be trusted on anyone else’s device or not, but it did work on mine.

So once I deployed the cab file to my phone, the install was easy, and the app works. It just goes to show you just how portable simple .NET code can be, which is really cool.

Despite all the goodness here, there are a couple of quirks that I ran into…

  • In the emulator, I can get my shortcut to show up in the Games folder off the start menu. For some reason I can’t get that shortcut to show on the actual device though. Instead I have to dig down through the File ExploreràProgram FilesàGames. Oh… wait… I think I got it. I was setting up a shortcut in the Games folder, but it looks like it needs to be in the “Games Files” folder.
  • My icon file only shows up when the shortcut is selected. When it’s not selected it looks like a DOS box.
  • I can’t figure out how to turn on the NumLock when the game starts. (I’m sure it’s easy when you know what you’re doing.) This means that you have to hold down the FN key in order to get a number into the box.
  • On my phone it also enters the numbers in a pop-up box, which you have to confirm, before you can press enter. (Nevermind… that’s the XT9 Predictive Text feature.)
  • I wish I could stop the incessant beeping when you click enter and the messagebox pops up, but don’t know how to do that.

At any rate, on the whole it works, and that’s the good thing.

I have no idea if this works on Windows 6.1 or Windows 6.5, but it seems to work on Windows 6.0 for me. I’d be really curious to know if it installs for anyone else. If you’d like to give it a try, you can get it here.

Random thoughts on phones

Some things kind of make me shake my head. When we were at the MVP summit, we think we left Dee’s cell phone charger at the hotel. So we headed down to our local dealer to see how much it was going to cost to replace it. $45. Ouch. Or… we could get a new phone for $40, which came with a charger. That seemed like a no-brainer, as Dee didn’t like sending text messages on her old phone anyway since it didn’t have a full keyboard. So now she’s sporting a nice new Samsung cell phone.

As nice as it is to have a shiny new phone, it does kind of make you shake your head at how disposable technology is though. And why does every different phone, even within the same supplier’s lines, have a different charger? Why can’t they all standardize on USB or something? That’s pretty irritating, IMO, and leads to a ton of unnecessary e-waste.

On a note that doesn’t seem related, but will be by the end of the post… (Relatively) recently, Canada put in place a “Do Not Call” list. We signed up right away, and it worked for a bit. Then slowly we started getting calls again. As it turns out, the CRTC doesn’t do any vetting of who buys the lists as every agency has an obligation to know who NOT to call. Sadly though, this means that bad companies can buy lists that only contain valid phone numbers. Arrgh! So go figure that my cell phone, whose number is only 11 months old, is now getting 2-3 “FO” calls per week.

What really gets my goat though, is what my phone company (Telus) did when I tried to deal with one. The calls I get on my cell are from an “agency” who asks me to dial 9 to speak to a representative. This is a well-known scam that allows them to make long distance calls on your number. The best part, though, is that the number shows up on call display on my phone. So I phoned Telus to let them know that I had the number for a scam artist. After all, they only control the entire phone system in BC and Alberta. They didn’t want to hear about it. I basically got the impression that they don’t give a crap what scam their customers may fall into, so long as they get their long distance funds. That is pretty piss poor in my opinion, as they should be able to turn them over to the RCMP or something, and make the phone lines safer for everyone. It’s a typical Telus attitude though, and the reason that the only Telus service in my house is the cell the company pays for. (I switched to Shaw’s home phone service the day it was finally available in my area.)

Now, back to Dee’s phone for a second… One really cool thing that I stumbled on is that she can actually put in a list of blocked numbers. How cool is that? We haven’t explored it in detail, but that got me thinking…

I’d LOVE to see a feature in my Windows Mobile device that would allow me to blacklist a number. And I’d like this blacklist to be serious enough not to just ignore a call, but rather a list of calls to discard completely. As it is, not only do I get the irritating ring, but the jerks leave me a message. In order to clear the voicemail icon, so that I know that I actually don’t have any unheard messages, I have to burn up cell time… and that costs me money. It would also have huge benefits to those who end up with social issues in their lives like harassment. Just blacklist the number and it’s done. Granted, you can phone the cell carrier and block a number for a fee per month, but let’s make this self serve and easy to implement. I’d rather burn my cell time making calls, rather than dealing with scam artists.

Granted, I’m not sure how practical it is for Microsoft to deal with, or if they’d have to reinvent the phone company. They are the largest software company in the world, though, so you’d hope that they could influence the future tech direction of a phone carrier.

Windows Mobile Smartphone thoughts

I still love my phone, but there are a couple of things I’d like to see…

We’re activating the feature which requires our users to put in a password to unlock the phone.  In addition, we’ll be activating automatic wipe of the phone if the pin is botched five times.  This should be interesting, as I haven’t yet tested just what “rest to factory defaults” means.  (I don’t know if I have to call the provider to reactivate it or not.)  I do know that it will clear all email, tasks, contacts, files, IM’s, pictures, etc… off the phone.

The issues I have with this are that, when the phone is locked, the screen is so dim that you can barely read it.  If you are in sunlight, the contrast is so poor that you really have to get close to the screen to see it.  If anyone knows a way to change this, I’m game to hear it, as I’m trying to type my password into a virtually invisible field to access the phone.  (Not to answer a call mind, but more on that later.)  My concern is that, because I can’t see what screen I’m typing in, I *could* end up wiping my phone be accident.

Another thing that I’m not huge on is that I constantly have to shut down applications to get memory back.  If I open the web browser, it stays open.  If I open email, it stays open.  If I play a game, you got it… it stays open.  So I constantly need to go to the task manager to shut down my apps.  This might be good for your IM client, but I wish there was a way to set a timeout on features so that they automatically closed at some point.

I also find that my phone just stops responding in a variety of ways on occasion.  Disconnecting from a bluetooth headset randomly triggered issues for me where the phone locked up so solidly that I had to remove the battery to restart it.  (That particular one hasn’t happened since I removed the Plantronics Voyager 510, and am only using my TomTom Go 920, so there may be something there.)  The other night, despite having closed all running applications, I still didn’t have enough memory to take a picture.  A reboot cured that.  Our sales rep recommended that do a “soft reset” at least once per week on these devices.  He then showed us how to do that… take the battery out.  (Didn’t seem so soft to me, but whatever.)  Personally, I don’t think this should be necessary more than once every few months, but I end up popping the battery out at least once a week.

Having my contacts all in my phone is awesome, especially since it is synched up with our Exchange server.  I do wish, though, that the corporate contact list was just merged into my own contacts list.  (This is probably more of an Outlook issue, actually.)  The effect, though, is that I have to tell the phone I want to search the company directory, then type in the name, then select it.  This after I have already gone to my own contacts list.  I’d WAY prefer to just type part of the name and have it pop up the person, a la regular contacts without all the extra keystrokes.

The “holster” that comes with the phone either isn’t padded enough, or the buttons on the phone depress too easily.  It is constantly activating the “unlock” screen in the holster when I bump the phone.  (I’ve pulled it off my belt and can see the keys lit up.)  Not a phone design issue, per se, but the manufacturer does outfit it with a standard case, so I’m tarring it with the same brush.

I have “Any Key Answer” set to Off, and yet, whenever it rings, the call often picks up and is answered in the action of pulling it from the holster.  Except for the confusion of trying to figure out if it was answered this time or not, this can be good.  I do get calls I’d like to ignore, though, and invariably those get answered too.  I was under the impression that “Any key answer”=No would mean you’d have to press the “Talk” button, but apparently this is not the case.

And, of course, I’ve already covered the lack of the “create Excel file” option.

Despite these minor annoyances, I still love the phone though.  I can totally see how people can get addicted to them quickly though… it’s way too easy to sneak in and check your email when you should be doing something else… ;)

Office Mobile

With my new Windows Mobile phone came Office Mobile, including Excel Mobile version 6.1.  (I always thought it was Pocket Office and Pocket Excel, but my phone says otherwise.)

Being an Excel guy, I was kind of excited to see this because… er… it’s Excel.  What other reason do you really need?  :)  Now, to set expectations, I was aware that there was no VBA in it, and I’m okay with that.  I just really wanted to see how much they could pack into it.

So off I go into Excel Mobile, and it asks me what file I want to open.  Hmm… I don’t have any Excel files on my phone, so I’ll just create a new one… huh?

IF there is a way to create a new Excel document on the Windows Mobile 6 smartphone, it is so well hidden that there might as well not be.  No amount of clicking on the simple menus would yield it for me, and there are no template installed by default.  Not so good, I’m thinking.  At any rate, I downloaded one from my email, opened it, cleared all the cells and saved a copy as a blank workbook on my phone.  So at least now I have a way to start from a fresh file.  It even gave me a warning that I might lose features if I saved it in that format.
Now, when it first opens the file, it goes into full screen mode.  At first I thought it was just a viewer, but after a bunch of key pressing, I finally figured out that if you click the right “soft key” up on the phone, it will actually give you a menu.  The UI is pretty simple, so I’ve listed it all below. (Simon Murphy might like it… it doesn’t have a Ribbon.  ;) )
The initial Menu in the viewer screen includes:

  • Close File
  • Edit
  • File (with Save As and Send… as options)
  • Go To
  • Find
  • About

So naturally, I’m heading into Edit mode.  In here, I have two menus.  The left soft key gives me a View menu including:

  • Full Screen
  • Cell Text
  • Overview
  • Freeze Panes
  • Zoom (with a 5 presets from 50% to 150% in 15% increments)
  • Sheet (with each sheet listed)

The right soft key gives me a “Menu” menu with the following:

  • Close File
  • Preview
  • File (Save As & Send…)
  • Edit (Cell Text, Clear Cell, Define Name, Delete Cells, Cut, Copy, Paste)
  • Insert (Row, Column, Shift Right, Shift Down)
  • Select (Cells, Columns, Rows, All)
  • Tools (Sort, Find, Go To)
  • Undo
  • Redo

And that’s it for menus, folks.  What surprised me here was that Define Name was part of the selection.  The rest all make sense to me, but I see Define Name as more of a developer command than a user command. I guess it is logical though, as it could be used with Go To since the device has such a small screen.

I’ll admit that I found the inital View screen weird, as it was full screen, and none of the formulas showed, but rather only the results.  Once you get in to edit the sheets, though, you can see the formulas.

Creating content is clunky, but then it isn’t really surprising given the device, I guess.  To enter anything in a cell, you need to click the centre navigation button to get into Edit mode, then you have to manually type (on the tiny keyboard) your entire formula or data.  There is no arrowing over one cell in a formula… you have to write in the whole thing one keystroke at a time.  Maybe it will get easier in time as I get better with the keyboard, I don’t know.

At any rate, it’s not set up for full development, but then we knew that.  I was able to set up a pretty basic spreadsheet to track how many kilometers I get vs how many litres of fuel I used since the last fill for my car though.  So it does work.

I’d have to say that I wasn’t expecting much, truly, so am pretty happy with what is there.  The lack of ability to create a new file is a pretty big oversight though.  Hopefully they’ll fix that at some point.
I just think it’s pretty cool to tell people I have Excel on my phone.  They usually nod and smile and say “Of course you do, Ken”.  :)

Windows Mobile Smartphone

As of this afternoon, we’ve finally got our new Windows Mobile Smartphones hooked up to our Exchange server.  :)

This is really cool, as I no longer have to plug it in to sync up the device with my Outlook installation.  I’ve got full access to my task list, contacts and calendar, which are updated on virtually a live basis.  (I actually created a new appointment in Outlook, picked up my phone, and it was already there.  Very nice!)

In addition, of course, I can access my work email from anywhere.  It’s funny to me that this seems to be the number one selling point on these devices, and yet it’s the last piece I was really interested in.  I try to leave my email at work, as I have my own email to deal with in off hours.  Regardless, it is nice that we didn’t have to set it up where every email is pushed down to us as it comes in, but rather we can use “Pocket Outlook” to retrieve the email when we want to read it.  It’s not quite POP3 email, though, as it does retrieve it to the phone regularly without me asking, but I don’t get notified every time an email comes in.

The biggest win for me here so far is the task list and calendar being online.  Earlier this week, (while I was syncing manually,) I went to the dentist.  When it came time to set the next appointment, I could check my schedule 3 months out and see where I had an opening.  No more guessing!  And then I could add it right to the device and I’m done.  Gotta like that.  And then the tasks… I was out at dinner with my wife, and something she said reminded me of something I had to do at work… that wasn’t on my list.  A minute later, it was linked into my task list, and I’m good to go.   This was the whole reason for I wanted one of these babies.  The great thing now is that as soon as I enter it, it’s on the server and good to go.  So if I log in via my web portal, it’s there.  If I’m on the Smartphone, it’s there. ;)
I’m pretty stoked about this whole thing, and really impressed with the phone so far.  The carrier though… not so much…

I used my IT Contractor to set up the Exchange server intergration for the Smartphone.  (Word to those looking at Blackberry and shuddering over the cost of the Blackberry server… if you have an exchange server, you can set up Windows Mobile devices already, and the functionality is better!)  At any rate, we’re working on the install, and I run into an issue with my digital certificate.  It’s trusted under the private key for my mail server, but the Root CA for Verisign isn’t installed on the SmartPhone.  Without that, the private (leaf) certificate can’t be trusted, as it was issued by Verisign, and Verisign isn’t a trusted authority.  (Crazy, as Verisign is only one of the biggest CA vendors, so why Telus doesn’t have it installed by default is beyond me…)

My IT Contractor suggests that Telus’s Tech Support department should be able to tell me how to get the Verisign Root CA onto my phone, and asks me to call Telus… which turned out to be a waste of time.  Here’s my route through:

  • Call the Tech Support number in the box –> Get told that I’m a corporate customer (duh) and transferred to Corporate (General)
  • Corporate General is confused by my question and figures out that I need Tech Support –> They transfer me to the Corporate Tech Support department… in French… with no option to bail to an English menu
  • I hang up and call back
  • I request Corporate Tech Support.  They can’t do that, so transfer me back to Corporate General again
  • I request Tech Support.  The CSR asks what the issue is, so she can tell Corporate Tech Support, then admits she doesn’t understand a word of what I tell her
  • I finally get Corporate Tech Support (in English) and the guy is USELESS
  • After about 10 minutes of my telling him that I’m trying to sync wirelessly and reinstalling software on my PC isn’t going to make that happen, he refers me to… get this… Microsoft!  I kid you not, he actually gave me Microsoft’s phone number.

The short synopsis of the call to Telus is that I basically got told by they don’t support the setup of the device, they just sell them.  Nice!  How these guys end up with every increasing stock prices seriously baffles me, as everyone I know despises the company, from the employees to the customers.
I get so frustrated with Tech Support departments where the tech has no clue how to use their own hardware/software.  (I recently had an issue with Symantec where, after 10 minutes of using their product, I was teaching their Tech Support guys how to use it!)  Why can’t companies actually train their staff properly to support what they sell?  All this guy really needed to do was identify what the issue was… he didn’t even know what a digital certificate was!  They sell these to Corporate users (hence the department name), so surely I can’t be the only Exchange shop who has run into this issue?
At any rate, I was Googling the issue the whole time I was arguing with the “Tech Support” guy, and found this awesome tool which fixed my issue for me.  It basically extracts all the required components of the digital certificates that need to be installed on the client to allow the Mobile Device to link in to the server.

I should also say that my IT Contractor, after doing some research, has let me know that my Verisign cert wasn’t actually installed properly, so I shouldn’t have had to go to this length.  They have apparently fixed it now.  :)

Now, for the funny part… Because I’d been syncing my contacts and calendar items via USB, it duplicated all of them when I switched it to the Exchange server!  I made an attempt at coding a duplicate removal in Outlook, but gave up on it.  (Ran fine on my local (non-Exchange) Outlook in tests, but came up short when I tried to run it live on my work install.)  So I had to manually edit my contacts and calendar items, but I’m all good now.

I love technology… when it works.  When it doesn’t it can sure be frustrating though, but it make it all worthwhile when you finally get it right and it pays immediate dividends.

Cool Toys…

First off, I haven’t forgotten about this, and am going to get back to it as soon as I have time. Between the extra pressure of being short-staffed again, all of my kid’s year end activities, father’s day and setting up a web site for my brother, I haven’t had a lot of time to deal with it.

I did get a couple of new toys over the last few days though, that are pretty cool.

For Father’s Day I got a new TomTom Go920 GPS unit. This thing absolutely rocks and:

  • Acts as a bluetooth hands free unit which links to my cell phone. My cell phone links to it as soon as I turn it on, and with 3 clicks I can call a defined contact. Very nice. :)
  • Allows me to update maps, including rename streets, update addresses and such
  • I can download different voices for it (like John Cleese) to give me my directions
  • Acts as an MP3 player

It’s got a bunch of other features as well, and I’m still trying to figure my way through all of them. I’ve been wanting a GPS for a while, as it makes life a lot easier when I’m driving into an unknown city to teach an Excel class.

The other thing I got was a new cell phone, which arrived this morning. It’s an HTC S640, which is a Windows Mobile SmartPhone.

I’m pretty stoked about this, as it is going to let me link to my Outlook data on the go. Lately I’ve been trying to manage so many things, and I often remember some of them on the way home. I can now pull over and add it to the list. (Or use the voice recorder to do the same.) Because we’re using a Microsoft Exchange server, it links in quite easily (although I still have to do this part, so reserve the right to change my opinion on that,) and I’m going to be able to access my calendar, tasks, contacts and email. The bluetooth links seamlessly with the TomTom in the car, as I mentioned above, and I’m expecting the actual coverage to be 100% better than the Mike phone that I was using previously.

It’s been less than 24 hours so far, but I’ve been wanting to get rid of the Mike phone for so long that this is probably the most exciting technology thing that has happened to me since… er… I bought a new server about a month ago. :D

At any rate, I need to go work on my home server now, so that I can port my data there, reformat a PC that currently holds the data, and set it up fresh. I’m trying an experiment to see if I can get my wife the ability to book our personal appointments into my work calendar (without granting full access to work) so that I end up with a complete calendar on my SmartPhone. (I’d be lost without her, truly. I figure that this might help avoid her irritation when I keep asking her “what is on for tomorrow night” for the hundredth time!)