Monthly Archives: July 2009

iPhone Calendar sync with Google – comparison between activesync & caldav

If you haven’t realized it from my previous post, I am a fan of Google. So, besides syncing my iPhone contacts with Google, I also sync my Calendar.

I don’t have a Mac (YET), and I don’t have a copy of Microsoft Outlook, so I pretty much don’t have anything I can sync with on my Vista Desktop and XP netbook. Without Google, all I can do is backup my calendar to iTunes.

So, prior to OS3.0, I have setup my iPhone to do over-the-air activesync just for my calendar. It worked great and I loved it. What really surprised me that it also took care of subscribed calendars. e.g. My wife shares her Google calendar with me, and that also syncs to my phone; I also subscribe to a public holiday calendar for Singapore, and that syncs to my phone as well.

What impresses me is that once you have more than 1 calendar sync to the phone, all the items will get color coded. E.g. my calendar items will show up with a blue dot, my wife’s an orange dot, etc… On top of that I have permissions (set in Google Calendar) to add/delete/modify my wife’s calendar and I can do all those on the iPhone as well. There’s an option for me to choose which calendar an item is for when creating it.

When I was just surfing around on what’s new and what people are doing, I came across the new feature of the iPhone OS 3.0 and also supported by Google. That feature is caldav sync, as opposed to activesync. So, what’s the differences?

In short, very few differences. I’ll list the few I know

  1. Activesync – just need to setup your main account, and everything that is subscribed to in the Google Calendar interface will show up automatically
  2. Caldav – each calendar must be added for it to show up in iPhone, so this is more tedious.
  3. The advantage here is that activesync and caldav can both be used at the same time! A lot of people will likely sync their calendar with the office calendar via activesync. By using caldav, you can then also add on your personal calendar from Google. Lot’s of feedback I read in forums is that people are really pleased to be able to have both their work and personal calendars in the iPhone AT THE SAME TIME, and still kept separate. This is one of the biggest advantage, the marriage of both protocols.
  4. One thing that is important for me is reminders. In Google Calendar, you can set to receive multiple reminders for an item. E.g. for important events, I like to set pop-up reminders 10hrs, 1hr and 15mins before the event time. The activesync protocol only allows one of the reminders to go through to the phone, however caldav will sync all through. So, my phone will alert me at all the set reminders. Now, this is of a huge advantage for me.

As you probably guess, I’ve dropped activesync totally and now using caldav. Just a note though, when I started using caldav, in my appointments, I can start to specify “second alerts”, which is great! However, if you have more than 2 alerts/reminders for an item, you’ll only see the first and last one. I have items with 3 reminders, and all 3 will pop up in the phone in due time, I just can’t see the settings of the middle one in the phone. But that’s only a minor issue, as I would not change the alerts, but if I need to, just need to log on to Google Calendar to change it.

I’ll just keep things short (relatively) for this post, may post a how-to setup caldav post in the future. The guides I found only managed to get me half way. Had to figure out the rest of it myself by trial and error.

iPhone Contacts Sync with Google – comparison via iTunes and over-the-air activesync

Traditionally, one would sync a mobile/smart phone’s address book with a proprietary software (e.g. Palm Desktop), or via some conduit with Microsoft Outlook. In the recent years syncing with Outlook seems more popular as it’s more widely supported and it was my preferred way to transfer contacts from a phone from manufacturer A to another phone from manufacturer B. e.g. I once transferred from my Nokia N82 to a Samsung i600, then from the i600 to my iPhone 3G.

Recently I changed jobs and no longer have access to MS Outlook (it was on my work notebook), so I started searching for alternatives. Here are the options I have (in the Windows world)

  • via iTunes – sync with Google
  • via iTunes – sync with Windows Vista Contacts (or Windows Address Book on Windows XP)
  • over-the-air – sync with Google using Activesync protocol

I have been a fan of Google, and been using Gmail for years.  Little did I know, I have been shifting towards cloud computing without planning for it. This seems to be the all new popular shift the industry is heading towards. A lot of what we know now will eventually be hosted in the Internet cloud.

I decided that syncing with my Google account will likely be the best option. One advantage will be that I’ll never have to really worry about backing up my Gmail account. It’s something I trust Google to take care of. I also expect to see more support on syncing the contacts and calendar with more devices. So, this should protect future change of devices. In the worse case, I can export contacts as CSV files to be imported to other PIM tools.

Going off track a little, I tested out syncing with my Vista Contacts. Just to see what it does. The good side is that it can sync contact photos, which Google does not support. But the bad side is that when you delete contacts from the iPhone, they remain in Vista Contacts.

The real test started first with syncing via iTunes. Let me start off with what I started the test with

  • on the iPhone – I have my full set of contatcs with phone numbers, some email addresses, etc.
  • in my Google Contacts – I have some email addresses Gmail auto saved into the contacts.

I put in the config in Tunes to sync contacts with Google. Then I let it rip. The initial sync took about 10mins (I have about 1200 contacts in the phone).

When it was done, I looked through Google contacts and everything was uploaded nicely. I had some contacts with numerous phone numbers and all showed up well. Even some has custom phone types, e.g. I have a contact with a “home kitchen” as a phone type. Google accepted it as well. I was pleased.

Syncing with iTunes over a few days proved the updates and sync are working nicely.

Then, I decided to try out syncing over-the-air. It would be nice not having to remember to plug the phone to sync every other day. Any updates to the contacts will sync within minutes with “push”.

On the iPhone, I went to settings -> mail, contacts, calendars -> add account -> Microsoft Exchange. Went through the account creation wizard, and picked to only sync Contacts, keeping mail and calendar off. (side note, the server you want to connect to is

It prompted that all contacts in the phone will be wiped out (this was pre OS3.0). I know that my contacts are already well sync with Google already so I could confidently hit yes.

My contacts on the phone became blank, and then the over-the-air sync started. I could see contacts starting to be populated. If you scroll right to the bottom of the contacts, you could see the total count of contacts in the phone. In under 10 mins, I could see all my contacts downloaded.

Verification : the number of contacts were right, all contacts were downloaded. Then I picked up some names and check… looked fine. Until I hit some special contacts with a lot of numbers and email addresses… not everything was downloaded. Some numbers and email addresses were missing. Double checking in the Gmail interface, they were still on Google. So the sync was not perfect. After searching around, I found that it was a limitation of the activesync protocol.

You can read the actual post here. But here’s the essence of the issue. It’s not an iPhone nor Google issue. It’s a limitation of the activesync protocol.

Activesync only allows the following per contact

  • up to 3 email addresses
  • 2 Home numbers
  • 1 Home Fax
  • 1 Mobile
  • 1 Pager
  • 3 Work (which one will be labeled as ‘Company Main’)
  • 1 Work fax

So, if you have contacts with 2 Mobile (type) numbers, only one will show up after the sync. You won’t lose the other number, but it will stay at the original source. If you have custom phone types, they won’t show up either. So, this did not work for me.

One more shortcoming when using activesync is that the phone types becomes limited. The list that I used to be able to choose in the iPhone becomes limited to that listed above. It would make sense to conclude that it’s due to the limitations of activesync.

Other than the above though, the sync worked pretty well. The push updates went well and I was pleased with that as well. But since I have needs beyond just a few numbers and email addresses, I prefer to sync via iTunes.

On the 11th July, I picked up my new iPhone 3GS from my service provider, Singtel. Out of the box, I put in my SIM card, quickly configured activesync, and BAM! my contacts came in over the air. Even before I paid for it my contacts are ready for use. That was one proud geek moment :D. But when I got home, did a restore from my 3G backup, I reverted back to sync via iTunes instead.

So, in conclusion, syncing of your iPhone contacts with Google has 2 methods. You just need to pick the option most suitable for you. If all your contacts have very minimal numbers and email address, and you have a mobile data plan, go with over-the-air. Otherwise, sync via iTunes should be preferred. At when during moments where you’ve lost your contacts somehow, or you’ve picked up a new iPhone, you can turn on activesync until you can get back to your computer to sync.

Roasted Pork Belly (Sio Bak) .. Babi Panggang

Hi Guys!!  So Jason has been encouraging me to start writing on this blog to share my journey on the newly found hobby.. baking and cooking.. yes.. it took me 30 years to realize that I actually like to cook and bake.. This started when Jason bought me an oven (Thanks Bay!! 🙂 )

Last week, I decided to make Roasted Pork Belly (yummm yumm…) , my mom loves this, so rather than buying from the hawker center why not make it myself. I went to Tiong Bahru market to buy the pork belly from Uncle A Guan. Jason’s family has been buying pork from this stall for 3 generations and Jovan (our son) seems to be liking that Uncle too :). I also dropped by the vegetable stall to buy fresh lemon grass, lemon and rosemary.

This recipe is my own creation inspired when watching Jamie Oliver make his Roasted Chicken. I thought of experimenting and it turned out to be fantastic and a totally different flavour than those you buy at the hawker stalls. And by the way, this is my second try.

The ingredients:

  • Pork Belly (I only use 0.5kg but it depends on how many people in your house)
  • Fresh Rosemary
  • Lemon
  • Minced Garlic
  • Salt & Pepper

The tools:

  • Aluminium Container
  • Satay sticks
  • Oven

The method:

the meat prepared for roasting

  1. Clean the remaining hair from the pork belly’s skin with a tweezers
  2. Insert satay stick this is manner ..“X” to avoid it from curling up when roasted. Place pork belly in the aluminum container with the meat part facing up
  3. Heat up oven at 160C top grill and roast the belly for 30 minutes (stage 1)
  4. After 30 minutes, take the belly out from the oven. At this stage it is half done. Poke the skin with tooth pick (yes.. tooth pick.. at this stage the skin is soft). Do not miss any corner of the skin as this is the secret of a perfect crackling skin.
  5. Apply the minced garlic all over the meat side (avoid the skin), sprinkle a little salt and pepper
  6. Sprinkle salt all over the skin
  7. Lay rosemary and lemon grass on the bottom of the aluminum container and squeeze the lemon. Put the pork belly on top of it with meat part facing up.
  8. Roast for another 30 minutes at 160C top grill.
  9. Remove the rosemary and lemon grass from the container. Remove the satay sticks. Turn the pork belly so that the skin face up. Dab the skin with kitchen towel to remove any water/sweat.
  10. Crank up your oven to maximum temperature and roast the skin for 45 minutes. At this stage, you will be able to hear the crackling sound of the skin.. (yum yum)
  11. Some part of the skin will get a little black but it doesn’t matter, you just have to scrape it off
  12. Slice and serve

Cross Section of the meat after roasting

The learning:

  1. On my 1st experiment, instead of grilling for 30 minutes (stage 1), I blanched the belly for 1 minute in boiling water but the skin turn out to be tough and difficult to poke. At the same time, the meat becomes dry. By grilling, the skin is very soft and the meat stays moist.
  2. You may score the meat part around 1 inch thick before grilling. This is for easy cutting when belly is done.
  3. If you want the taste of the belly to exactly the same as the hawker stalls, you should use the 5 spices (Ngo Hiong) instead of using rosemary, garlic, lemon grass and lemon.
  4. To make the belly a little tangier, you can rub Coleman’s Mustard on the meat part before applying the garlic.

The belly turned out to be very crispy, moist and the aroma was just superb. Jason and my mom love this dish, next time I’m gonna make a little more for Jason’s parents.

The Meat cut into chunks ready to be served

Blueant V1 Voice Command Fix with iPhone OS 3.0

thought I’ll share something which I found today and worked for me.

Blueant V1

Blueant V1

About 2 months ago I bought my current favorite bluetooth headset. This is the Blueant V1. This headset has built in noise cancellation, provides voice command and dialing for the iPhone and a bunch of neat voice controlled functions.

When I upgraded my iPhone 3G to OS 3.0, the voice dialing stopped working. My only thought at that time was that the OS 3.0 has changed something and so broke then function between the V1 and my iPhone.

I checked with a friend of mine who recommended me the V1, he had the exact same problem with the iPhone after the upgrade.

Searched around for a bit, but I guess it was too early to find any reports on the net… until today I finally found a forum post of someone having the same issue, and a fix was posted. After reading, I realize I have done almost the same steps, except one, to reset the V1. The forum thread can be found here. Below is the steps I’ve summarized and tried, I eliminated some which I thought should be insignificant.

Hope this is useful for anyone else out there who is experiencing the same problem.

  1. Blueant V1 on and connected to iPhone
  2. on the iPhone : settings -> general -> bluetooth -> select “blueant v5.3u” -> “forget this device”
  3. power off the iPhone
  4. on the V1 : press the Blueant button to activate voice command [say] -> “settings menu” -> “reset the V1”
  5. power on the iPhone
  6. go through the pairing steps between the Blueant V1 and iPhone
  7. when completed voice dialing works again