Pi’s Blog

My blog about Thunderbird and GSoC 2008

Blog Moved

Blog moved to http://www.pirules.org/blog

Old content will remain here for historical purposes.

May 6, 2011 Posted by | Uncategorized | Leave a comment

gContactSync Updates

Google Contacts API Update

Google announced a new version, 0.3, of their contacts data API yesterday.  It adds a significant amount of flexibility, several new fields, and enhances existing fields.  Some of the major changes include:

  • Structured Postal Addresses – It is now possible to keep the structured address fields that Thunderbird has without converting them.
  • A birthday field – I am currently working on enhancing the birthday field that will be present in Thunderbird 3, so the birthday values will be synchronized by default.  If you use Thunderbird 2 the values will still be stored and displayed once you upgraded to 3.
  • Website fields with various types (list)
  • More phone number types
  • A nickname field

It doesn’t look like all of the changes are available in Gmail yet, but you can see a few of them here.

Version 0.3

I am going to start working on Version 0.3 sometime this week which will use the new API and hopefully include some of the most frequently requested enhancements.  For those of you familiar with Bugzilla, I have a bug tracking my changes.  I am going to focus heavily on Thunderbird 3 starting with version 0.3 and may drop support for 2 with future versions.  If you are opposed to this please let me know and I will reconsider.

Here are some potential features.    Please keep in mind that I have a full time internship that involves programming and am starting an online class soon, so I may have to delay some of these.  The links are to bugs where I will track my progress.

  • Code refactoring.  This isn’t the most popular feature request, but I would like to like to reorganize the existing code with the new API and these enhancements in mind.
  • Contact photos.  I am working on contact photos in Thunderbird 3 and have a modified version of gContactSync 0.2.4 that will download photos from Google when adding contacts for the first time.  Due to time constraints, 0.3 may be limited to downloading photos only in TB 3.
  • Synchronizing all fields that only Thunderbird has and allow for customization of that data.
  • Adding a new ‘Relation’ field.  This describes the relationship between you and the contact (brother, sister, mother, father, child, coworker, etc.).  I haven’t found an existing request for Thunderbird in Bugzilla, so maybe I could add it in Thunderbird rather than just gContactSync.
  • Several more types of phone numbers. (list)
  • Website field types, and possibly more fields.
  • More advanced synchronization with a more intuitive wizard (pick an account, then all groups w/ mailing lists, one group, or no groups/all contacts, plus a few options).  Syncing individual groups with address books instead of mailing lists would prevent nearly all error reports that I get.
  • A button or context menu to synchronize only one directory.

Version 0.2

There have been a few new versions of gContactSync 0.2.  It is currently up to version 0.2.3 that handles mailing list bugs a bit more gracefully.  Download.

Since the development of 0.3 is going to take some time, I am going to slow down development of 0.2 and let it get translated to more languages.

Locales

  • ZaZy was kind enough to translate gContactSync to Italian (it).  Updates to the locale will be in 0.2.4
  • A Russian (ru-RU) translation is being worked on courtesy of Glk63 on BabelZilla.
  • A French (fr-FR) translation is in progress by afroxav.  Another translation was done by LaGrange.

Lessons Learned

  1. Mailing lists are evil.  Just kidding, but they can be broken easily rending them (and their parent address book) useless.  The cause of nearly every error report I have received so far is directly related to mailing lists.
  2. The nobody<id>@nowhere.invalid workaround helps but it is still possible to break mailing lists with this workaround.
  3. People would like to see gContactSync in their native language.
  4. People have good ideas and valuable suggestions.  I have received a lot of feedback and requests.  While I don’t have the time to implement every suggestion, I can at least try to add the more popular suggestions
  5. Creating a forum was a good idea.

Helping with Development

If you know a bit about JavaScript, XML, XUL, and/or CSS or even if you would like to learn I wouldn’t mind letting others fix bugs or enhance gContactSync.  The code has a decent amount of comments and I generated some JsDoc of 0.2.

Or if you are good with icons and could make at least a sync button image I’m sure everyone would appreciate it.

June 10, 2009 Posted by | GSOC, thunderbird | , , | 2 Comments

gContactSync 0.2.2 Released

Download

You can find the download on addons.mozilla.org (recommended) or mozdev.org.

Current Features

  • All the features of 0.1
    • Synchronizes an address book in Thunderbird with contacts from a Google Account (Gmail)
    • Customizable
    • Groups in Gmail are synchronized with mailing lists in Thunderbird
  • Duplicates (multiple contacts with the same e-mail address) are allowed
  • Much faster synchronization than 0.1
  • Only US English (en-US) for now, but more translations coming soon
  • Customization of how addresses are synchronized
  • Can synchronize just one group (My Contacts), all groups (including My Contacts, Family, Friends, & Coworkers), or all contacts and no groups
  • A new fetch-only mode where Thunderbird only receives updates and never sends updates to or deletes contacts from Google.

Changes since 0.2.0

  • Added some workarounds for mailing list bugs in Thunderbird (easily the number 1 cause of problems with gContactSync)
  • Added a FAQs page on the wiki and a link in the gContactSync menu
  • Improved logging (to help me with troubleshooting)
  • Fixed the Advanced tab of the Preferences dialog
  • Improved the first/last name parsing for contacts from Gmail

Where to look for help

You can use the following resources for help or suggestions for gContactSync:

JSDoc

I am working on improving the documentation for any interested developers.  You can find it here, and it will probably change and improve in the near future.  If you are interested in helping please let me know.  It is open source, so you are free to use it as long as you follow the license.

May 23, 2009 Posted by | GSOC, thunderbird | | Leave a comment

gContactSync 0.2.0 on AMO

I finally added gContactSync 0.2.0 to addons.mozilla.org.  I also placed it on BabelZilla so I should be able to add more locales (translations).  Since it is new and hasn’t been reviewed yet, it is still listed as “Experimental”.

Current Features

  • All the features of 0.1
    • Synchronizes an address book in Thunderbird with contacts from a Google Account (Gmail)
    • Customizable
    • Groups in Gmail are synchronized with mailing lists in Thunderbird
  • Duplicates (multiple contacts with the same e-mail address) are allowed
  • Much faster synchronization than 0.1
  • Only US English (en-US) until I finish adding features and strings
  • Customization of how addresses are synchronized
  • Can synchronize just one group (My Contacts), all groups (including My Contacts, Family, Friends, & Coworkers), or all contacts and no groups
  • A new fetch-only mode where Thunderbird only receives updates and never sends updates to or deletes contacts from Google.

Bugfixes & Enhancements since 0.1.x

Bugs in italics are new since 0.2.0b3

  • Bug 20925 Log the preferences
  • Bug 20907 onDrop needs to set dummy e-mails if the target is a mailing list
  • Bug 20681 Handle expired tokens
  • Bug 20655 Login dialogs should specify and validate an e-mail address
  • Bug 20549 Add a hidden preference to disable dummy e-mail address
  • Bug 20119 Improve the first login dialog
  • Bug 20891 gContactSync ignores the name in the first login dialog
  • Bug 20888 Change untyped phone number labels in the card view
  • Bug 20833 Add a preference to disable the new phone number labels in abResultsTreeCols
  • Bug 20865 Allow synchronizing only one group (My Contacts)
  • Bug 20864 The group XML feed is displayed in the verbose log twice
  • Bug 20771 Allow name parsing
  • Bug 20779 Add a preference to disable auto-delete
  • Bug 20853 Too much recursion when the log directory is deleted
  • Bug 20852 Illegal rel value due to dummy e-mail address
  • Bug 20658 Add version info to the log
  • Bug 20739 Add links to the support forum & wiki in the menu
  • Bug 20757 Allow read/fetch of Google Contacts only
  • Bug 20546 – Search is broken in gContactSync 0.2
  • Bug 20644 – Localize all strings in options.xul
  • Bug 20656 – Error: gAddressBookBundle is undefined
  • Bug 20527 – Avoid HTTP Request errors when the Address Book window is closed
  • Bug 20509 – Add Seamonkey support
  • Bug 20508 – Consider adding overlay.css to customizeToolbar.xul
  • Bug 20487 – Add shortcut to preferences in the Address Book
  • Bug 20486 – Improve Address Preferences
  • Bug 20352 – Update gContactSync to use Contacts Data API 2
  • Bug 20148 – Default groups dont appear in Thunderbird
  • Bug 19786 – Support for Google’s ‘Most Contacted’ & ‘Suggested Contacts’

Feedback

I would love to hear your feedback, whether positive or negative (if polite ;)).  My new preferred method of feedback is through the forum, which will hopefully help me stop forgetting to reply to e-mail and let others add their opinions to feedback.  Please send logs with the error report form or via e-mail and do not put them on the forum.

I am working on updating the wiki with articles on how to use and troubleshoot gContactSync.

I will be adding some polls here and would appreciate any feedback.

Tutorials

Flash tutorials are coming soon…  I’ll write another blog post when they are ready.

May 9, 2009 Posted by | GSOC, thunderbird | , , , | Leave a comment

gContactSync 0.2.0b3 Released

I have released gContactSync 0.2.0b3, and you can download it here.  This version adds the ability to synchronize just the My Contacts group along with a few GUI and logging changes.

Current Features

  • All the features of 0.1
    • Synchronizes an address book in Thunderbird with contacts from a Google Account (Gmail)
    • Customizable
    • Groups in Gmail are synchronized with mailing lists in Thunderbird
  • Duplicates (multiple contacts with the same e-mail address) are allowed
  • Much faster synchronization than 0.1
  • Only US English (en-US) until I finish adding features and strings
  • Customization of how addresses are synchronized
  • Can synchronize just one group (My Contacts), all groups (including My Contacts, Family, Friends, & Coworkers), or all contacts and no groups
  • A new fetch-only mode where Thunderbird only receives updates and never sends updates to or deletes contacts from Google.

Synchronizing only My Contacts

Switching from synchronizing all contacts or all groups + all contacts to only one group (My Contacts by default) has a few steps and should be done through the Preferences dialog only to avoid a lot of complications.

When switching, the preferences dialog will:
– Remove all mailing lists from synchronized address books
– Remove all contact from synchronized address books
– Reset the last sync date to 0 for all synced address books

This should not delete anything from Google (but did once before I fixed a bug), but you really should backup all contacts before switching.

I did test this process several times, but there may be bugs, so please let me know if there are any problems, and backup your contacts first. I’ll open new bug reports and leave this closed.

What Features are left for 0.2.0?

I will release at least one more version, 0.2.0rc1, before 0.2.0 with some GUI changes and possibly some bug fixes.  At this point, I think all of the features that will be in 0.2.0 are present

Bugfixes & Enhancements since 0.1.x

Bugs in italics are new since 0.2.0b2r2

  • Bug 20891 gContactSync ignores the name in the first login dialog
  • Bug 20888 Change untyped phone number labels in the card view
  • Bug 20833 Add a preference to disable the new phone number labels in abResultsTreeCols
  • Bug 20865 Allow synchronizing only one group (My Contacts)
  • Bug 20864 The group XML feed is displayed in the verbose log twice
  • Bug 20771 Allow name parsing
  • Bug 20779 Add a preference to disable auto-delete
  • Bug 20853 Too much recursion when the log directory is deleted
  • Bug 20852 Illegal rel value due to dummy e-mail address
  • Bug 20658 Add version info to the log
  • Bug 20739 Add links to the support forum & wiki in the menu
  • Bug 20757 Allow read/fetch of Google Contacts only
  • Bug 20546 – Search is broken in gContactSync 0.2
  • Bug 20644 – Localize all strings in options.xul
  • Bug 20656 – Error: gAddressBookBundle is undefined
  • Bug 20527 – Avoid HTTP Request errors when the Address Book window is closed
  • Bug 20509 – Add Seamonkey support
  • Bug 20508 – Consider adding overlay.css to customizeToolbar.xul
  • Bug 20487 – Add shortcut to preferences in the Address Book
  • Bug 20486 – Improve Address Preferences
  • Bug 20352 – Update gContactSync to use Contacts Data API 2
  • Bug 20148 – Default groups dont appear in Thunderbird
  • Bug 19786 – Support for Google’s ‘Most Contacted’ & ‘Suggested Contacts’

Feedback

I would love to hear your feedback, whether positive or negative (if polite ;) ).  My new preferred method of feedback is through the forum, which will hopefully help me stop forgetting to reply to e-mail and let others add their opinions to feedback.  Please send logs with the error report form or via e-mail and do not put them on the forum.

I am working on updating the wiki with articles on how to use and troubleshoot gContactSync.

I will be adding some polls here and would appreciate any feedback.

Tutorials for 0.2.0

I will probably create some flash tutorials like the original one I had.  This time I will probably host them on YouTube to prevent my website from getting blasted again.

May 1, 2009 Posted by | GSOC, thunderbird | , , | 2 Comments

gContactSync 0.2.0b2r2 Released

I have released gContactSync 0.2.0b2r2, and you can download it here.  The only changes are a few bug fixes, some logging improvements, support for Thunderbird 3.1a1pre, and a new link to the error reporting form in the gContactSync menu.  I recommend upgrading if possible, but if you already have 0.2.0b2r1 it isn’t too urgent.

Current Features

  • All the features of 0.1
    • Synchronizes an address book in Thunderbird with contacts from a Google Account (Gmail)
    • Customizable
    • Groups in Gmail are synchronized with mailing lists in Thunderbird
  • Duplicates (multiple contacts with the same e-mail address) are allowed
  • Much faster synchronization than 0.1
  • Only US English (en-US) until I finish adding features and strings
  • Customization of how addresses are synchronized
  • Default groups are enabled (Family, Friends, Coworkers) as mailing lists in Thunderbird
  • A new fetch-only mode where Thunderbird only receives updates and never sends updates to or deletes contacts from Google.

What Features are left for 0.2.0?

0.2.0 will probably have an option to just synchronize the My Contacts group since it contains the most important contacts and is all some devices, like the iPhone/iPod touch, synchronize.  It will also help avoid the usual problems with mailing lists.  I may also make some UI changes before 0.2.0.

Bugfixes & Enhancements since 0.1.x

Bugs in italics are new since 0.2.0b2r1

  • Bug 20779 Add a preference to disable auto-delete
  • Bug 20853 Too much recursion when the log directory is deleted
  • Bug 20852 Illegal rel value due to dummy e-mail address
  • Bug 20658 Add version info to the log
  • Bug 20739 Add links to the support forum & wiki in the menu
  • Bug 20757 Allow read/fetch of Google Contacts only
  • Bug 20546 – Search is broken in gContactSync 0.2
  • Bug 20644 – Localize all strings in options.xul
  • Bug 20656 – Error: gAddressBookBundle is undefined
  • Bug 20527 – Avoid HTTP Request errors when the Address Book window is closed
  • Bug 20509 – Add Seamonkey support
  • Bug 20508 – Consider adding overlay.css to customizeToolbar.xul
  • Bug 20487 – Add shortcut to preferences in the Address Book
  • Bug 20486 – Improve Address Preferences
  • Bug 20352 – Update gContactSync to use Contacts Data API 2
  • Bug 20148 – Default groups dont appear in Thunderbird
  • Bug 19786 – Support for Google’s ‘Most Contacted’ & ‘Suggested Contacts’

Sync Button Details

Newest instructions.

Quite a few users have reporting seeing a strange and ugly icon for the Sync button:

Toolbar buttons

It should look like this for now:

abcard-large

If you still see the incorrect icons there is a workaround that should fix it:

  1. In the Address Book window, go to gContactSync -> Preferences
  2. Check Force the Sync toolbar button image.
  3. Click OK/Close
  4. Close the Address Book window and open it again.

If those instructions still do not work, please let me know.

Feedback

I would love to hear your feedback, whether positive or negative (if polite ;)).  My new preferred method of feedback is through the forum, which will hopefully help me stop forgetting to reply to e-mail and let others add their opinions to feedback.  Please send logs with the error report form or via e-mail and do not put them on the forum.

I am working on updating the wiki with articles on how to use and troubleshoot gContactSync.

I will be adding some polls here and would appreciate any feedback.

Tutorials for 0.2.0

I will probably create some flash tutorials like the original one I had.  This time I will probably host them on YouTube to prevent my website from getting blasted again.

April 24, 2009 Posted by | GSOC, thunderbird | , | Leave a comment

Duplicate contacts in Thunderbird 3

As the author of a synchronization extension for Thunderbird 2 and 3, I get a lot of questions about duplicate contacts.  Duplicates are more common than ever  with the explosive popularity of mobile devices.

There is a fairly popular Duplicate Contact Manager Extension on AMO, but it hasn’t been updated recently, won’t work in Thunderbird 3, and comments mention some bugs, possibly including one that was present in gContactSync 0.2.0a1.

I have not found a way to contact the author, Marian Steinbach, to offer my assistance with updating it for Thunderbird 3.  It looks like the Google Group doesn’t have much activity.

I can reuse a good chunk of code from gContactSync which would allow it to work in Thunderbird 2 or 3, but I would most likely package it as a new extension to not force everyone to install gContactSync just to remove duplicate contacts.  I had some primitive duplicate detection code in 0.1.x, but it was inefficient and only checked e-mail addresses since that’s what Google used to identify duplicates.

So, I have three questions.

  1. Would there be enough interest to warrant new duplicate contacts extension?
  2. Would anyone else like to work with me to develop one?  I already have plenty of code for working with contacts and the address book; it would just need an intuitive, customizable front-end and an efficient way to find duplicates.  I’m just a bit busy with work, gContactSync, online classes, and a possibly emerging social life.
  3. Does anyone have a way of contacting the original developer?

April 6, 2009 Posted by | GSOC, thunderbird | , , | 8 Comments

gContactSync 0.2.0b2 Released

I have released gContactSync 0.2.0b2, and you can download it here.

Current Features

  • All the features of 0.1
    • Synchronizes an address book in Thunderbird with contacts from a Google Account (Gmail)
    • Customizable
    • Groups in Gmail are synchronized with mailing lists in Thunderbird
  • Duplicates (multiple contacts with the same e-mail address) are allowed
  • Much faster synchronization than 0.1
  • Only US English (en-US) until I finish adding features and strings
  • Customization of how addresses are synchronized
  • Default groups are enabled (Family, Friends, Coworkers) as mailing lists in Thunderbird
  • A new fetch-only mode where Thunderbird only receives updates and never sends updates to or deletes contacts from Google.

What’s New?

The Sync button should work in a few more cases, and I added a possible workaround (see the end of this post for details) that should force the correct image to appear, although it will use the same icon whether you have large or small icons.  If you use small icons with the workaround the sync image will be cropped to fit.

It also adds a few links to my new forum and wiki in the gContactSync menu and preferences window.

I made some logging improvements which should help me get all the information I need to help.   I am working on a bug reporting form before I release 0.2.0 on addons.mozilla.org.

Bugfixes & Enhancements since 0.1.x

Bugs in italics are new since 0.2.0b1

  • Bug 20658 Add version info to the log
  • Bug 20739 Add links to the support forum & wiki in the menu
  • Bug 20757 Allow read/fetch of Google Contacts only
  • Bug 20546 – Search is broken in gContactSync 0.2
  • Bug 20644 – Localize all strings in options.xul
  • Bug 20656 – Error: gAddressBookBundle is undefined
  • Bug 20527 – Avoid HTTP Request errors when the Address Book window is closed
  • Bug 20509 – Add Seamonkey support
  • Bug 20508 – Consider adding overlay.css to customizeToolbar.xul
  • Bug 20487 – Add shortcut to preferences in the Address Book
  • Bug 20486 – Improve Address Preferences
  • Bug 20352 – Update gContactSync to use Contacts Data API 2
  • Bug 20148 – Default groups dont appear in Thunderbird
  • Bug 19786 – Support for Google’s ‘Most Contacted’ & ‘Suggested Contacts’

Sync Button Details

Newest instructions.

Quite a few users have reporting seeing a strange and ugly icon for the Sync button:

Toolbar buttons

It should look like this for now:

abcard-large

If you still see the incorrect icons there is a workaround that should fix it:

  1. In the Address Book window, go to gContactSync -> Preferences
  2. Check Force the Sync toolbar button image.
  3. Click OK/Close
  4. Close the Address Book window and open it again.

If those instructions still do not work, please let me know.

Feedback

I would love to hear your feedback, whether positive or negative (if polite ;)).  My new preferred method of feedback is through the forum, which will hopefully help me stop forgetting to reply to e-mail and let others add their opinions to feedback.  I recently was blasted w/ new spammers on the forum and added some safeguards so if your account is tagged as spam and deleted I apologize.  Just send me an e-mail (joshgeenen <at> gmail [dot] c o  m).

I am working on updating the wiki with articles on how to use and troubleshoot gContactSync.

I will be adding some polls here and would appreciate any feedback.

Tutorials for 0.2.0

I would like to record tutorials again for gContactSync 0.2.0 since the original was nearly too popular (almost brought my site down).  I used a free trial of Camtasia Studio 5, and it looks like it is up to version 6 now.

I’m fairly certain I have the full version of Camtasia Studio 3 in some Windows installation on one of my computers from some promotion a year or so ago.  So it looks like I’ll use that, the 30-day trial of v6 and maybe buy an upgrade for $150, or use gtk-recordMyDesktop which would let me use Gentoo (my favorite OS) and is free.  I think I’ll record a demo in Camtasia Studio and gtk-recordMyDesktop and post links here to see what everyone thinks.  I will admit that I prefer using text on the screencast (which Camtasia makes easy) instead of recording my monotonous voice.  This time around I”ll put the videos on YouTube and embed them somewhere on my website.

April 5, 2009 Posted by | GSOC | 1 Comment

Quick Progress Update

This is just a quick progress update; I don’t have a new version yet.  My family is coming to visit me (they should arrive in a few minutes) and we are going to visit my sister & brother-in-law so I won’t be able to reply until at least Sunday night.  It looks like I’m going to have plans for part of next weekend as well.

0.1

I will not release another version of 0.1.x unless any major bugs are discovered.

0.2

With gContactSync I plan on releasing another beta with a few UI updates within the next few weeks.  I’d like to finally fix the toolbar button for everybody and make that 0.2.0rc1, after which I will not change any features or the UI.

I’d like to submit it to Babelzilla and get more locales so more people can use it.  Once 0.2.0 is out (full support for Thunderbird 2 and 3.0 & Seamonkey 2) and I get some feedback & translations I’ll submit it to addons.mozilla.org.

0.3

I haven’t fully decided what to include in 0.3 and didn’t start working on it yet.  I’d like to look into supporting contact photos and more advanced custom properties allowing all data from a contact to be synchronized.

March 27, 2009 Posted by | GSOC | Leave a comment

Happy Pi Day – New Website and openCRX extension

New Website

I have decided to make a new website where I can combine my blog, old websites (pirules.com and pirules.net), some content from my mozdev projects.  This may come as a shock after reading my previous domain names, but my new domain is pirules.org.

It will probably contain the content from my old websites, including computer tutorials and tweaks, the programs I wrote in high school, extension info, etc.; my new blog; support forums for my extensions; and a wiki.

It is hosted by HostGator since I’m always on the move (home, internship, college) and my ISPs would probably not like me if I hosted everthing.  To my surprise, I was able to setup my account and get a jailshell today (Pi day/Saturday) and they were very quick.  Ironically, I used to setup and support cPanel users.

My old host, 1&1 was good for the price, but I wanted access to more and larger databases, PHP 5, SSH, etc.

New links

I would appreciate it if everyone would change all links to point to the my new website soon.  I have not nearly finished bringing everything up to date yet.

I have imported all of my blog posts to my new blog, and will probably write new posts in both locations until this one stops getting so many hits.  I have not decided what to do with my old websites since they are both getting a steady flow of hits.  pirules.com is hosted for free and remains to be the site with the most hits if you exclude my blog.

openCRX

A long time ago, in a galaxy far, far away, I was asked to write an extension that would import contacts from and export contacts to openCRX.  It is an open source (BSD-style license) Customer Relationship Management (CRM) solution with a lot of Groupware features

It shares a lot of code with gContactSync with a few less Address Book modifications, although I have not merged some recent v0.2 changes in yet.  It is fully compatible with gContactSync, but does not require it.

Links

Pi Day

Today is ‘Pi Day’ in the US (March 14th is represented as 3/14 in our stange date format).  I noticed mozdev.org has “3.14159265358979323846264338327950288419716939937510…” in their header, which is correct if you don’t want to round the last 0 to a 1 (the next digit is 5).  I decided not to memorize 64 more digits (to bring me from 250 to 314) at the moment but there is always next year.

Edit: Almost forgot to mention that the House of Representatives ‘supports’ the designation of March 14th as Pi Day.

March 14, 2009 Posted by | GSOC | , , , , , | 3 Comments