Sunday, March 22, 2009

I used to think OS X had some decent security advantages...

Someone with credibility says not at all ...
Questions for Pwn2Own hacker Charlie Miller | Zero Day | ZDNet.com

... It’s really simple. Safari on the Mac is easier to exploit. The things that Windows do to make it harder (for an exploit to work), Macs don’t do. Hacking into Macs is so much easier. You don’t have to jump through hoops and deal with all the anti-exploit mitigations you’d find in Windows.

It’s more about the operating system than the (target) program. Firefox on Mac is pretty easy too. The underlying OS doesn’t have anti-exploit stuff built into it...
If true, then the only security advantage of OS X is that fewer hackers are interested in exploiting it.

Reading onwards he's comparing OS X to Vista, not to XP. That does make sense, I'd not thought of OS X as being secure compared to Vista.

In his opinion Chrome on Vista is a very tough target, but nothing on Vista is trivially easy. By comparison everything on OS X is trivial. A good bit of the difference appears to be address randomization, a Vista feature that, think, was supposed to have been a part of 10.5 but didn't make the cut.

Friday, March 20, 2009

Wednesday, March 18, 2009

Google Calendar Sync out of order - error 2016, connect to internet

It's been Google Cloud Heck month for me.

First Google Video Chat was malfunctioning. We didn't figure out the cause, but it's been better lately (thanks Justin). Then Google Reader became flaky, and the Google team was AWOL for a week.

Now Google Calendar Sync is balky (again), and I'm not the only victim. It's giving misleading "Please connect to the internet" and "error code 2016" error messages when I attempt to sync Outlook to my Google Calendar (where I also sync my iPhone via their Exchange sync service).

I've been trying to debug ...

Please connect to the internet to use Google Calendar Sync - This is an old problem and seems to have cropped up again - Calendar Help

...I tried uninstall/reinstall and deleting my Google Calendar and I tried resetting IE.

I'll check the link found in the log. I think Firesea might be on the right track. Something's timing out and Google Calendar Sync is producing a misleading error message...

... Google calendar sync log
gcal_server = https://www.google.com
gaia_server = https://www.google.com
user = myname@gmail.com
user agent = Google-SyncOL-0.9.3.5 Win-5.1/SP-3.0 Outlook-12.0.0.6316 Mode-3
Sync data file to use: 9770....75
Base time: 2009-03-17T18:51:00.000Z
Sending GET request to https://www.google.com/

calendar/feeds/default/private/full?max-results=25000&updated-min=2009-03-17T18:51:01.000Z&gsessionid=edfafdd....
SEVERE: GCalConnection::GetGCalXML -> status_code = 500, error_msg = Google Calendar Sync: Error syncing your calendar. Error code: 2016....
SEVERE: Unable to get events from GCal

My next debugging steps are:

  1. Extract the magic feed url from the Outlook sync log and see what it generates.
  2. Sync to a calendar on an unrelated Google account and try to see if it's account specific.
  3. Turn off Exchange sync and see if the calendar will then permit Outlook sync
  4. Wait for Google to fix it.

I'll have more to say on my feelings about "the Google Cloud" in an Gordon's Notes opinion post.

Update: Ok, definitely making progress. I set up a fresh, unused calendar on one of my Google Apps accounts. I was able to initiate a sync, stop the sync, then restart it. On restart the step of downloading existing data worked normally. The second sync completed. So the bug is specific to my primary gmail calendar, the one I sync via Exchange server.

Update: I went to http://m.google.com/calendar and I was unable to edit the calendar sync settings there. The checked boxes won't uncheck. I've seen this bug before and it's gone away without explanation. I've posted against an old post of mine on the Google Mobile Help forum. So now I'm thinking there are two connected bugs here.

Update: I disabled calendar sync in the iPhone calendar Exchange account settings, and, on a whim, I turned off calendar sharing as well. Then I tried http://m.google.com/calendar and this time I could uncheck all but my primary account calendar. Of course maybe a retry without disabling iPhone connections would have had the same effect. Then I (for the fourth time) removed all the items from Google Calendar for my primary gmail account. I was again able to initiate synchronization to my Gmail account, but this time I could also stop it and restart it.

During this latest work I noticed a NEW option in the iPhone settings for Google Exchange synchronization. You can now sync Google email via Exchange sync. I haven't seen this announced, so I'm guessing it's a new tweak. My hunch is that whatever Google did to enable email sync changed enough things on their exchange server that they secondarily broke the Outlook Sync.

I think I have another entry for my Synchronization is Hell list.

Update: Ok, I can now complete a full (one way) Google to Gmail Calendar sync and I can then repeat it. The key is the repeat, until now I couldn't do a repeat on my primary calendar.

I've also re-enabled my iPhone Google Exchange Calendar sync and added back the Calendars to http://m.google.com/calendar. The phone is filling up. Now I'll see what my Google Outlook sync logs say in the morning.

Except ... I'm now seeing "the user has exceeded their quota" messages in my transaction log. Could be I've stressed Google Calendar a little too much.

I'm getting warmed up for my post on what I fear the Cloud ...

Update 3/19/09: It's working again. I don't know if I really fixed anything of if Google fixed something during all my debugging attempts. I'd give it a 70% probability, because of how it played out, that turning off Exchange services, purging the calendar, then restocking it, then re-enabling Exchange services did fix the problem.

Update 3/26/09: I've been tracking the logs, and it looks like I get this error about 50% of the time now.

Update 4/21/09: After not synchronizing for a few days 2016 was back and persistent. This time it was easier to repair however. I removed all events from my Google Calendar (note I only push from Outlook to Google, I don' think bidirectional sync will ever be safe), then I opened my iPhone and waited until the corresponding iPhone calendar was empty.

I then put my iPhone in airplane mode as a convenient way to turn off all push sync events. I don't want to burden Google Calendar during the initial load. (If you try this approach and it fails I think you need to follow the more onerous disabling of iPhone sync I describe above.)

Once all downstream targets were purged I initiated a desktop sync to repopulate the Google calendar. The subsequent sync is very slow.

I think Google's Calendar app is getting more burdened and slower. My guess is that Google is cutting back on their infrastructure build-out and they're getting strained. Another reason to fear the cloud.

Update 4/22/09: I was back to the error code 2016 on my next sync, so it's still broken. I think I have to wait for Google to fix something. More posts on the old forum thread. I wonder if there's any support for this problem on paid Google Apps. Probably not since this is "beta". I did see a note on a Spanning Sync blog that they're seeing lots of bugs across multiple gCal APIs, so this looks like part of a bigger problem.

Update 4/27/09: I've tried every trick I know of, including disabling the iPhone sync service and moving the calendar from my personal account to a Google Apps domain calendar. The only difference is now when sync fails I get the "please connect to the internet" error message. If I purge the target calendar I get one good sync. I'm running out of ideas!

Update 4/27/09b: Ok, it's working again. That only took about a week to fix. Looks like another entry in my Synchronization is Hell catalog. Here's what I did in the end, with the key items in bold.
  1. On my iPhone turned off Google Exchange Calendar sync.
  2. On my PC turned off desktop Google Calendar Sync and deleted all data in \Local Settings\Application Data\Google\Google Calendar Sync\data_files.
  3. In my target Google Calendar deleted all entries.
  4. On my PC enabled Calendar archiving. I configured to archive all items > 6 months old and used File:archive to initiate a manual purge. I dropped the number of events from about 2,700 to about 600.
  5. On my PC re-enabled Google Calendar sync (1 way to GCal) and did a sync. I repeated the sync a few times to ensure it was working (see support thread for details on my initial results).
  6. Re-enabled iPhone Exchange calendar sync.
It's working. I'm guessing there's a practical upper limit of about 2,000 events for Google Calendar Sync.

Update 6/8/11: It worked pretty well for the past two years, but after a huge archiving of my Outlook calendar Google Calendar Sync choked again with 2016 and connect to the internet error messages. These messages simply mean it's not working. I repeated the steps form 4/27/-09 and it's good again. The sync mechanism breaks with large numbers of changes. Fortunately the "primary calendar" I sync with is in a special Google account -- deletion of a primary calendar is unthinkable for most users. Google Calendar Sync is abandonware; fortunately I expect not to need it much longer.

Monday, March 16, 2009

Process Explorer: What's sucking the life from my XP box?

My corporate XP box wanders off into the twilight zone several times a day.

Standard XP activity and performance monitoring tools like the System Monitor plug-in for Microsoft's Management Console tell me there's big time disk I/O going on, but not why. Suspects include antiviral software (which doesn't scale to modern TB drives), automated backup systems, corporate monitoring software, Windows Search, etc, etc.

An informed colleague tells me Microsoft's free Process Explorer is the key to digging deeper ...

Ever wondered which program has a particular file or directory open? Now you can find out. Process Explorer shows you information about which handles and DLLs processes have opened or loaded.

The Process Explorer display consists of two sub-windows. The top window always shows a list of the currently active processes, including the names of their owning accounts, whereas the information displayed in the bottom window depends on the mode that Process Explorer is in: if it is in handle mode you'll see the handles that the process selected in the top window has opened; if Process Explorer is in DLL mode you'll see the DLLs and memory-mapped files that the process has loaded. Process Explorer also has a powerful search capability that will quickly show you which processes have particular handles opened or DLLs loaded.

The unique capabilities of Process Explorer make it useful for tracking down DLL-version problems or handle leaks, and provide insight into the way Windows and applications work...

Friday, March 13, 2009

My Google Voice experience: mobile interface a bit raw

I've just made the transition to Google Voice. It's now bound to my personal gmail account.

Interestingly, on signup I was warned this cannot be changed. So my Google Voice number and my Gmail account are apparently inextricably linked to my Google ID [1].

A few observations
  1. I had to deposit $10 via Google checkout to enable international calling.
  2. All of my Google Contacts are now available in Google Voice
  3. GrandDialer doesn't work any more. (Sob. I expected that, but still. Alas, it's been discontinued.)
  4. Any groups you've defined in Google Contacts are now Groups in Voice and they can get custom greetings. (So what does the person who belongs to two Groups get?!)
  5. Calls to Canada are 1 cent/minute (they were free in beta testing!)
  6. There's a mobile web UI: www.google.com/voice/m
  7. You need to spend time with the somewhat hidden Settings menu.
  8. It's a very Gmail like interface and you get the usual Gmail-like app links at top.
The mobile web app is pretty darned crude, definitely not a custom iPhone app. You can use the mobile app to send an SMS message. When I tried the quick call feature from a secondary screen (not the primary screen) I got 404 not found!

No, I'm not kidding.

It worked from the main screen. The buttons were all very small, it's not iPhone optimized at all.

It worked however. So while I'm waiting for a Google iPhone app or a better web app I can live with this interface.

Or I could just do this "For free calls within the US and great rates on international calls, just call your own Google number and press 2 to connect. Once you get the dial tone, enter the number you would like to call. And remember to add 011 for international calls.". Really, that's probably faster.

Now I've another reason for me to reconcile my Google and iPhone/OS X contacts, something I've been mildly dreading.

[1] 113810027503326386174

Update: At least one iPhone app is on the way.

Update 3/20/09: The Google web app is really crummy -- and very slow to respond. Since I currently use Google Voice to call one number very often (parents in Montreal) I just press one button to connect to my GV number, then 2, then my parents number. I am looking forward to a better iPhone app.

Vocito - Google's GrandCentral client for OS X

Update: Never mind. It doesn't work with Google Voice.

Now that Google Voice has been announced I think I'll play with Google Vocito ...
Official Google Mac Blog: Vocito (Voe-kee-toe)*:

... For those of you who are lucky enough to be be part of the GrandCentral Beta Program, there's a new toy on the Google Mac Playground. Vocito* is a quick dialer that lets you dial your phone directly from your desktop.,,,

When Google doesn't respond - Google Reader broke the blogroll feature

Google Reader's Blogroll feature broke on March 11th. Our family newspaper shows the characteristic empty box.

Well, those things happen. That's not the problem. The problem is that there are 23 posts so far in the Google Help group, but no response of any sort from Google.

I wonder how often the Help groups get read. Even a post saying "Yeah, we know, we're working on it" would go a long way.

I'm disappointed. I thought of the Google Reader group as among Google's best.

Update 3/18/09: Turns out that the people who are supposed to monitor the help group were away at a conference -- could have been everyone really. I'm not sure if they just got back or (hah, hah) if someone read this post. Anyway, help is on the way.

Update 3/19/09: The fix only took a few hours once Google's engineers returned.