Problems in setting up sync to Google services in Windows Mobile

Google support has a page on synchronizing it’s services with Windows Mobile device.

The page is quite informative, the only problem is that it still has not been translated into Russian, which leaves out of border lots of potential users. Thus, a dig to Russian Google support team for lack of description 😦

Few nuances leading to digs to MS sync developers exist:

  1. Only one server is permitted: the MSDN Blogs thread discussion states that there’s the only solution yet – use POP\IMAP for another server. The user “zhamid” answers it quite well:

    “Yes, it is technical.  The way we initially implemented the application, it is restricted to using only one exchange account.  This may change in the future, but right now this is what we are stuck with.”

    Awesome, huh?!

  2. Only one email synchronization via ActiveSync is possible: in order to enable Gmail sync you have to disable email sync with laptop\desktop (assuming you have Outlook synс it sounds awful).
  3. The connection will be named “MS Exchange” (even though it’s Google nor Microsoft) and there’s no change option.

The user “stewartbryson” sees no future fixes, hoping for Google solution:

I can’t wait until Google has fully implemented calendar, mail and contact list in the Google Domain apps product. That way, I can move away from Exchange for my company email and use this very precious SINGLE exchange connection on my mobile phone for my largest customer at a single point in time.

The bottom line: the problem exists throughout several product generations, is well-known but no action was made. Even more: OMA (Outlook Mobile Access) was discontinued in MS Exchange 2007.


Windows Mobile: restoring PIM & SMS data

Recently I’ve updated firmware on my Asus P527 and (insurprisingly) SMS & PIM data (contacts, calendar items, tasks, etc.) were wiped.

Well, sure before updating I’ve:

  • backed up the entire system state,
  • manually copied two main files:
    • cemail.vol
      little database containing SMS and email,
    • pim.vol
      the same size DB with contacts, tasks and calendar items.

So I’ve started restore process but… Asus backup utility said the backup file is corrupted, so it won’t restore anything( I had to restore both files manually, again. The thing is that you can manually delete and copy back pim.vol, but not cemail.vol file – it’s always being already used by some process. No ideas which one – killing doesn’t help.

So here comes the solution (files were saved as pim_old.vol and cemail_old.vol):

  1. download and install MortScript software to PDA,
  2. create a script (using any ANSI-compatible text editor) with the following text:
    Delete “\cemail.vol”
    Copy (“\cemail_old.vol”, “\cemail.vol”)

    Delete “\pim.vol”
    Copy (“\pim_old.vol”, “\pim.vol”),

  3. save the file as “sms-restore.mscr” (beware of extension – it’s used by MortScript interpretating engine!),
  4. copy:
    • both “old” files to the root directory,
    • the script file to “/Windows/Startup” (or your localised startup folder),
  5. move files from the startup folder (to prevent them locking *.vol files):
    • MsgWait.lnk
      messaging subsystem,
    • poutlook.lnk
      Pocket Outlook,
  6. clear Today Screen (i.e. uncheck all the items in “Settings/Today“),
  7. reboot the device.

Check your messages and contacts… Voila! they’re restored.

Keep in mind that if you’re restoring messages from WM5 on WM6.1 (as I did) they’ll be transformed into chat view, it may take a couple of minutes (depending on amount of SMS).

NB! After you’re sure that eveything is okay don’t forget to move MsgWait.lnk and poutlook.lnk back to startup folder and reboot again.

MOSS 2007: Undeleteable (aka “sealed”) fields

Just understood that I can’t delete an “Article Date” column I’ve added to a document library.

After a brief googling I’ve found an article by John F. Holiday (SharePoint Server MVP), where he sais, that following columns can’t be deleted after you’ve added them to an object:

  • Article Date,
  • Contact, Contact E-Mail Address, Contact Name, Contact Picture,
  • Scheduling Start Date, Scheduling End Date,
  • Target Audiences,
  • Byline, Image Caption,
  • Page Content, Page Icon, Page Image,
  • Rollup Image,
  • Summary Links, Summary Links 2.

That's it, you can't delete it :(

Anyway, he gives a sample code which could help with deletion. Didn't tried yet, just've hidden the column.

Question of a day: where to put a message?

Just got this pic in my twitter from Valdis Krebs:

Where to put a message in a social network?

I’ve decided for Heather, and let me explain:

  • this person isn’t the most interconnected:
    • Diane – 6 connections,
    • Fernando, Garth – 5,
    • Andre, Beverly – 4,
    • Carol, Ed, Heather – 3,
    • Ike – 2,
    • Jane – 1.
  • Diane is the most obvious selection – she has the highest centrality (where n = 10, deg(v) see before as connections’ count):

Centrality formula

    • Andre – 0.4,
    • Beverly – 0.4,
    • Carol – 0.3,
    • Diane – 0.6
    • Ed – 0.3,
    • Fernando – 0.5,
    • Garth – 0.5,
    • Heather – 0.3
    • Ike – 0.2,
    • Jane – 0.1.
  • but she’s the only connection with the shortest path – the maximum route length (thus also message distributing speed) will be:
    • for Diane – 5 nods,
    • for Heather – 2 nods.
  • And the winner is… Heather! (as the fastest message spreader).

    Statistics generation: custom solution instead of Reporting Services

    Today we’ve finished one project which took a plenty of time to be realised – a custom statistis module based on SQL data and realised as MOSS\WSS (SharePoint) webparts kit.

    We have extremely tough queries and quite complicated data model, so we decided to get another solution:

    • The whole thing is divided into 5 parts each describing different business viewpoint of the data; all these viewpoints have been deployed as custom web-parts with initial constructor implemented with 1st webpart.
    • SQL code takes about 14 500 (!) lines in 6 different UDFs, which all were written by one person; another guy created webparts.

    Finally, we’ve done it. Hurray!