Integrating and Optimizing Thunderbird for Google Mail


Let’s admit it, gMail is awesome (some of you would beg to differ), especially when you use gApps like I do. But I’ve always had a few requirements:

  • being able to access my most recent e-mail offline
  • without using a browser
  • large mailboxes (4+ GB)
  • use of certificates to sign or encrypt e-mail
  • integrated calendar, tasks, contacts
  • multiple e-mail account support
  • and recently, synchronize all this with my Android phone

My former method was to use Microsoft Outlook, but that program is riddled with problems and cumbersome. It also doesn’t seem to alert you when you have new mail if you use IMAP. Synchronizing Calendar and Contacts with my phone required a 3rd party program, which would be limited to just 1 calendar in Outlook and often create duplicate Contacts. On one occasion, the program got stuck with corrupted information and about half of the ~75 contacts in my list had about 25 copies each. (I fixed this shutting off Outlook & the sync program, exporting all my contacts to a Google CSV, and removing the duplicates offline.)

So in my quest for a more seamless & less troublesome e-mail client, the only VIABLE non-browser e-mail client turns out to be Mozilla’s Thunderbird. However, integration with Google Mail isn’t seamless or without quirks.

Read more

Android Market 2.3 Force Close / Crash


I was stumped by this issue for a long time and was only recently able to find the solution using the Android SDK’s “adb logcat” function to reveal the system logs.

Essentially, you try to install or update an app from the Android market, and it crashes with a force close message. Reading around on the forums over at xda-developers.com and other places suggest the following:

Proposed Solution #1
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Uninstall” to uninstall updates, essentially roll back the version to the one that came with your ROM.

Proposed Solution #2
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Clear Data” and “Clear Cache”

Proposed Solution #3 (mailny for cyanogenmod or ROMs that don’t come with the Google apps installed)
Boot into recovery and reinstall the gapps zip file.

Proposed Solution #4
Search for the Market app’s apk file and install it using “adb install -r appname.apk”. Make sure you have Settings -> Applications -> Install from Unknown Sources enabled.

Proposed Solution #5
Wipe all data / factory reset. Obviously #sadface. Or #angryface.

I tried all of the suggested solutions above, except the full reset. Obviously should be something that doesn’t require that drastic of a change… but none of the other solutions worked. So I turned on usb debugging, ran “adb logcat”, and then reproduced the market force close / crash. Deep in the hundreds of lines of code, I found this:

E/AndroidRuntime( 2975): FATAL EXCEPTION: Download Service
E/AndroidRuntime( 2975): java.lang.SecurityException: Requires VIBRATE permission

What the hell? Yes, I thought the same thing… Why does the market place require vibrate permissions? For notifications maybe… but even more interesting is the fact that the vibrate permissions are required for com.android.media (the music player), which force closes before the market app.

The solution? I had a profile that turned vibrations off for the default “Media” apps group (be default it only has the Music app in it). Switching it to “No override” fixed the crashing / force close issue in a jiffy.

What’s up with this funky fix? And why does the Android Market need to call the Music app with vibrate permissions? Beats me… too bad Google’s apps are closed source.

EDIT: Known affected Market versions (by me), as of writing: 2.3.2, 2.3.3, 2.3.4.

Fix Your Google Voice Voicemail


I ran into a problem recently with my Google Voice’s voicemail – it no longer picked up my missed calls! Instead, it redirected to one of my other phone’s voicemail.

Frustrated with this new phenomenon, I went searching for a solution, but again, didn’t find a clear answer. So I tried reducing the voicemail delay on my mobile phone (which forwards calls to GV), hoping it would pick up the call before my other phones.

Read more