New Account Wizard

Version 0.4 will have a new account wizard to make setting up gContactSync for the first time and adding accounts easier.  The first page is for selecting an account to sync.  It finds IMAP and POP3 accounts in addition to existing gContactSync tokens so most users won’t even have to sign in.  The second page lets you choose an address book and the group(s) to sync.

Please let me know what you think, particularly whether I should include the synchronization direction (read-only, write-only, or bidirectional) and whether Google or TB has priority during conflicts.

, ,

3 Comments

Version 0.4.0b4 Released

Version 0.4.0b4

Version 0.4.0b4 was released today.

You can download it here.  Scroll to the bottom and expand Developer Channel.  If you already downloaded a development version it will automatically update.

Changes since version 0.3

Features

  • The first sync merges existing contacts and groups/mailing lists
  • Postal addresses are synchronized by default
  • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
  • Added Postbox 3 support
  • Minor Accounts dialog changes
  • Added an option to sync only the selected address book to the AB context menu
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Miscellaneous improvements to importing contacts
    • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names (or primary e-mail address for Plaxo).
    • Better UI for picking the destination address book
  • Removed the “Other” tab on the preferences dialog.  This just caused confusion and I don’t know of anyone who actually used it.  The feature is still there, but only customizable through the Config Editor.
  • Better handling and mitigation of 503 (Service Unavailable) errors.
  • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)
  • Uses the new chat fields in Thunderbird instead of adding new fields
  • Website types are now displayed in the contact view pane
  • Added a preference for a timeout for HTTP requests
  • Added a checkbox for the TB preference to show chrome errors in the error console

Bug Fixes

  • Treat infinite last modified dates as being older
  • Fixed a strict JavaScript warning (no functional change)
  • Support for empty extended property value names (Other tab of the Preferences dialog)
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.
  • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
  • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)
  • Last modified date not set at the correct time, potentially causing a conflict on the next sync after adding a contact
  • Fix for last modified date being updated when a contact is not successfully uploaded to Google

Future Changes in 0.4

  • Include number of errors in the summary

No Comments

Moving to github

gContactSync is moving to github.  You can find the source code and report issues/request enhancements here.  Thanks to everyone at mozdev.org for hosting gContactSync these last 4.5 years!

Note: This announcement is only relevant to developers and others who would like to look at gContactSync’s source code.  The add-on should still be downloaded from addons.mozilla.org and will still automatically update.

 

, ,

No Comments

403 Errors

Several people have reported 403 errors when trying to sync contacts.  Some are using two stage authentication, others aren’t.  Some use Windows 7, others 8.1.  I haven’t been able to recreate it myself.

If you see 403 errors please send me an e-mail with more details on your OS, Thunderbird and gContactSync version, as well as whether you are using a normal Gmail account or a Google Apps account.

Please go here: https://security.google.com/settings/security/activity and let me know if you see anything unusual.

The ClientLogin method gContactSync uses has been deprecated for a while (2012) but Google said they would support it until 2015.

No Comments

Version 0.4.0 beta 1

Version 0.4.0b1

Note: Version 0.4.0b2 was released today with two fixes for adding contacts.

I’ve released version 0.4.0b1 with full support for the latest versions of Thunderbird, including the nightlies.

If you try it please let me know, I’d like to get 0.4.0 out early in 2013.

You can download it here.  Scroll to the bottom and expand Developer Channel.  If you already downloaded a development version it will automatically update.

Changes since version 0.3

Features

  • The first sync merges existing contacts and groups/mailing lists
  • Postal addresses are synchronized by default
  • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
  • Added Postbox 3 support
  • Minor Accounts dialog changes
  • Added an option to sync only the selected address book to the AB context menu
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Miscellaneous improvements to importing contacts
    • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names (or primary e-mail address for Plaxo).
    • Better UI for picking the destination address book
  • Removed the “Other” tab on the preferences dialog.  This just caused confusion and I don’t know of anyone who actually used it.  The feature is still there, but only customizable through the Config Editor.
  • Better handling and mitigation of 503 (Service Unavailable) errors.
  • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)
  • Uses the new chat fields in Thunderbird instead of adding new fields

Bug Fixes

  • Treat infinite last modified dates as being older
  • Fixed a strict JavaScript warning (no functional change)
  • Support for empty extended property value names (Other tab of the Preferences dialog)
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.
  • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
  • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)
  • Version 0.4.0b2 – Two bug fixes for adding contacts

Changes since 0.4.0a4

Features

  •  Switched to using Thunderbird’s new native chat fields.  This requires a one-time upgrade when moving from a pre-0.4.0b1 version to a version after this change.
  • Added support for the new “App Menu” in Thunderbird (versus the traditional menu bar)
  • Removed the use of some deprecated functions
  • Supports the newest daily build of Thunderbird
  • Groups feeds from Google are backed up

Bug fixes

  • Fixed a bug where IM addresses without a protocol or custom label would cause an error. (version 0.4.0a5)

Future Changes in 0.4

  • Include number of errors in the summary

2 Comments

gContactSync Version 0.4.0 Alpha 4

Version 0.4.0a4

I’ve released version 0.4.0a4 that adds contact merging during imports.  You can now import your Facebook friends into the address book you sync with Google to get their photos and let gContactSync merge your contacts.  The Facebook API doesn’t expose phone numbers or e-mail addresses, however.

If you try it please let me know.  I have a few more changes to make before releasing the beta.

You can download it here.  Scroll to the bottom and expand Developer Channel.  If you already downloaded a development version it will automatically update.

Changes since version 0.3

Features

  • The first sync merges existing contacts and groups/mailing lists
  • Postal addresses are synchronized by default
  • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
  • Added Postbox 3 support
  • Minor Accounts dialog changes
  • Added an option to sync only the selected address book to the AB context menu
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Miscellaneous improvements to importing contacts
  • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names (or primary e-mail address for Plaxo).
  • Better UI for picking the destination address book
  • Removed the “Other” tab on the preferences dialog.  This just caused confusion and I don’t know of anyone who actually used it.  The feature is still there, but only customizable through the Config Editor.
  • Better handling and mitigation of 503 (Service Unavailable) errors.
  • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)
  • Bug Fixes

    • Treat infinite last modified dates as being older
    • Fixed a strict JavaScript warning (no functional change)
    • Support for empty extended property value names (Other tab of the Preferences dialog)
    • Prevents a duplicate master password prompt when Thunderbird is started
    • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.
    • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
    • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)

    Changes since 0.4.0a1

    Features

    • Miscellaneous improvements to importing contacts
      • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names (or primary e-mail address for Plaxo).
      • Better UI for picking the destination address book
    • Added an option to sync only the selected address book to the AB context menu
    • Better handling and mitigation of 503 (Service Unavailable) errors.
    • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)

    Bug fixes

    • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
    • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)

    Future Changes in 0.4

    • Include number of errors in the summary
    • New first sign in dialog (this is probably going to pushed out to v0.5)
    • Minor Accounts dialog improvements

    1 Comment

    Version 0.4.0 Alpha 1 Released

    Version 0.4.0 Alpha 1 has been released.  If you’re already using a pre-release of 0.4.0 it should automatically update, everyone else can get it here (go down to Development Channel at the bottom).  This is an alpha release, meaning it doesn’t have all the features that 0.4.0 will have, and hasn’t been as thoroughly tested as the latest stable version, version 0.3.4.

    Changes since version 0.3

    Features

    • The first sync merges existing contacts and groups/mailing lists
    • Postal addresses are synchronized by default
    • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
    • Added Postbox 3 support
    • Minor Accounts dialog changes
    • Prevents a duplicate master password prompt when Thunderbird is started

    Bug Fixes

    • Treat infinite last modified dates as being older
    • Fixed a strict JavaScript warning (no functional change)
    • Support for empty extended property value names (Other tab of the Preferences dialog)
    • Prevents a duplicate master password prompt when Thunderbird is started
    • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.

    Changes since 0.4.0a1pre2

    Features

    • Cleaned up contact merging during the first sync
    • Added group/mailing list merging during the first sync
    • Moved the disable synchronization checkbox to the basic settings section of the Accounts dialog
    • Added Postbox 3 support

    Bug fixes

    • Treat infinite last modified dates as being older
    • Fixed a strict JavaScript warning (no functional change)
    • Support for empty extended property value names (Other tab of the Preferences dialog)

    No Comments

    Version 0.3 Feedback, Version 0.4

    Version 0.3 and Duplicates

    Version 0.3 is getting a bad reputation for creating duplicates.  I haven’t heard from any of these people–please send me an e-mail at least explaining any problems you may have instead of just posting a review without enough details for me to help you.  Feel free to post reviews but please let me help you or at least others by giving me some details.

    I believe that at least one of those problems may be due to syncing the same address book with the same account using two add-ons.  This is a bad idea; don’t try it.  Other than that I think people are importing their contacts from Google into TB either manually or with Google’s CSV export then synchronizing those contacts (or switching synchronization add-ons and reusing their old address book without deleting contacts).  gContactSync 0.3 expects an empty address book and treats any contacts in it as brand new, so it adds Thunderbird’s contacts to Google and adds Google’s contacts to Thunderbird during the first sync without attempting to merge contacts. You should start with a new address book when synchronizing contacts.  One exception to this is if you’ve already sync’ed that AB with gContactSync in which case it will recognize contacts it synchronized in the past.

    I plan on addressing this in 0.4 by, during the first sync only, getting all Google contacts and checking each TB contact to see if any names or e-mail addresses match.  If so it’ll pretend that contact was already synchronized a very long time ago.  It’s going to be a very dumb/simplistic merge, and during the actual first sync those contacts in TB will be updated from their Google contact.  This will probably be in 0.4.0a1, release date TBA.

    Resetting Address Books

    There was some confusion over what exactly “resetting” an address book does in gContactSync which resulted in a 1 star review.  There are two types of resets in gContactSync:

    • Reset (replace from server) – this is also what the button in the Advanced preferences tab does and what happens if your mailing lists break.

    This deletes the local copy of all contacts and mailing lists from Thunderbird only.  Your Google contacts are not deleted and gContactSync backs up your address book first.  Due to multiple bugs in Thunderbird with mailing lists and deleting address books you must restart Thunderbird after choosing this reset option.  After you restart Thunderbird and sync, gContactSync will pull in your contacts and groups from Google then sync like normal.

    • Replace to server

    This option tells gContactSync to push all your local Thunderbird contacts to Google.  No contacts are deleted in either location.

    Fake e-mail Addresses (nobody…@nowhere.invalid)

    I’ve also received several e-mails and forum posts, along with some bad reviews, about the fake e-mail addresses that gContactSync adds to some contacts.  Thunderbird does not allow contacts without e-mail addresses in mailing lists, so in order to sync groups with mailing lists, gContactSync adds a fake e-mail address to that contact in Thunderbird only. These fake e-mail addresses will never be added to Google. I know it is ugly, but the alternative is having a broken, unsynchronizable address book.  I often refer to these as dummy e-mail addresses.

    Postal Addresses

    Google is now converting postal addresses between their structured (separate fields for street address/city/state/zip/country) and formatted (one field for everything) flavors.  When I created version 0.3 Google had said they would do this, but didn’t implement it yet so I turned off postal address synchronization by default and left in the new formatted address fields that gContactSync 0.2.0 added.  It should be safe to turn it on now, but you still do so at your own risk.  See this for instructions – http://pirules.org/addons/gcontactsync/faq.php#addresses

    Version 0.4

    I’m starting to work on version 0.4, which will turn on postal address synchronization by default.  It also removes the formatted address fields that gContactSync 0.2 and 0.3 added since they are no longer needed.  I will put development versions of 0.4 on addons.mozilla.org (look at the bottom of the page under Development Channel).

    I’d like to make it more difficult for people to get duplicates, so I will push back my plans to sync with other sources to version 0.5.

    I don’t know when I’ll get the basic merging done.  I’m going to be an uncle any day now and I will be spending some time with my family next weekend.

    Roadmap

    0.4.0a1pre has been released on AMO (under Development Channel) with postal address synchronization enabled.  It also removes formatted address fields.

    0.4.0a1 – Basic merging during first sync

    0.4.0a2 – Basic merging during imports

    , , , , ,

    1 Comment

    Progress Update

    Just thought I ought to give a progress update since I’ve been quiet for a while now…

    I have just graduated from Michigan Tech with a BS in Computer Engineering (a mix of Computer Science [software] and Electrical Engineering [hardware]) and I start working full-time on May 16th as a Firmware Engineer.

    I am now recovering from “video-assisted thoracoscopy” which I got a week ago to prevent further lung collapses.  My lung decided to collapse for the third time at the end of 2010 so I decided to get the problem fixed before I work full-time.  I’m doing pretty well now and glad that I won’t really have to worry about this in the future. :)

    gContactSync – Thunderbird

    Now that I’m less busy I should be able to release 0.3.3 with some new locales soon and possibly a bugfix or two.  I haven’t started on 0.4 but I hope to at least figure out what it will do soon.

    I requested that gContactSync get reviewed by the addons.mozilla.org team last year and still haven’t heard anything.  That would get rid of it’s “Experimental” tag, allow it to update automatically, and would allow contributions (donations) again through addons.mozilla.org.

    Android

    I got an Android phone to play around with while in the hospital and now that I can tolerate coding for a fair amount of time, I decided to see what I do with it today.  I noticed that the Contacts app only shows and syncs contacts in your “My Contacts” system group, but my contacts are nicely organized in various groups.  I made a quick app as a proof-of-concept that will get all your groups for the selected Google Account on your phone then gets the contacts in the selected group.  It doesn’t do much right now, but remember this was done in a few hours and I’ve never developed anything or really researched developing on the Android yet:

    The first or second screen.  First it will ask you which linked account you wish to get contacts for if you have more than one Google Account linked with your device.  This is only shown once, and you can switch accounts easily later.

    Once the account is selected Android will ask you if you want to allow gContactSync to access your contacts.  This is only shown once if you click Allow.

    Request to give gContactSync access to your contacts

    Once you allow gContactSync to access your contacts it will get a list of your groups, plus an entry to show all contacts.  Right now you have to long-press a group to show contacts in that group.

    A list of contact groups

    A list of contact groups

    After selecting a group gContactSync will fetch and display the contacts in that group.  The back button will bring you back to the list of groups.

    Right now contact data isn’t displayed, but it is stored (except for the photo at the moment).  I just have to figure out how to best display the data.

    A list of contacts in the selected groups

     

    ,

    No Comments

    Phone Numbers

    First of all, happy holidays to everyone!  I may edit this article in the near future with more screenshots to hopefully make things a bit more clear.

    I have received quite a few questions about phone numbers in gContactSync so I’m hoping this can help explain what it does and why I chose to do things this way.

    Address Book Window Terms

    There are a few terms I use when talking about the address book:

    Directory Tree (Address Books list)

    This is where all your address books and mailing lists appear on the left side of the window.

    AB Results Tree (Contacts list)

    This is the list of contacts in the selected address book or mailing list.  This is on the top right part of the window.

    Contact View Pane

    The contact view pane is at the bottom right of the window with the details of the selected contact or mailing list.

    Phone Number Types

    Google allows multiple phone numbers and has a “type” for each phone number (Mobile, Home, Work, Pager, etc.) while Thunderbird by itself only has 5 fields, each with a predetermined type.  I personally like Google’s approach more as it is more flexible.  Some people may have multiple phones of the same type (like me since my phone I have for home doesn’t work where I go to college, and that phone has poor reception at home) and I don’t know a whole lot of people with a pager.

    So, I decided to add phone number types to Thunderbird and added two phone number fields to get the total to 7.  I felt this was a reasonable limit to the number of phone numbers that might be associated with one individual, and it fit in the new/edit contact dialog well at the time.  I changed the labels to ordinal numbers (First, Second, Third, etc.)

    So synchronization of phone numbers is done in the order in which they appear in Gmail.  The first goes into the top field in TB, which used to be the work number, and the type is set to whatever it was in Gmail.  This seems to work well, but, as many people have noticed, it doesn’t work as well for the phone number columns.

    Quite a few people have asked me to leave the phone numbers alone, so I added a preference that will have gContactSync not use phone number types and synchronize the phone number fields as they are.  If you have more than one phone number of a given type that TB supports than only the first is synchronized.  This preference is especially useful if you use other synchronization applications in which case they probably use Thunderbird’s phone number fields the way they were intended to be used.

    In 0.3 this preference is found under:

    gContactSync -> Preferences -> Main -> Add phone number type fields (ignore existing field names)

    You can also just edit the preference:

    extensions.gContactSync.phoneTypes

    Once you do this I highly recommend resetting all synchronized address books:

    gContactSync -> Preferences -> Advanced -> Reset All Synced ABs

    With phone types

    Without phone types

    Notice the numbers are not in the same order, and that not all numbers are shown in Thunderbird.

    Phone Number Columns

    Thunderbird has a list of contacts when you click on an address book or mailing list.  You can add or remove columns easily and sort by one of them.  When Thunderbird didn’t have phone number types one could sort by work or home phone numbers, for example, and easily see the home phone number for a given contact, for example.  Now that there are types, one must select the contact and look at the contact view pane to see which phone number is which.

    To make the column labels more consistent, gContactSync renames them to First Number, Second Number, etc.  If you don’t like this then uncheck:

    gContactSync -> Preferences -> Interface -> Rename the phone column labels

    or edit:

    extensions.gContactSync.phoneColLabels

    Mobile and Pager Numbers

    There is one more issue related to phone number types and synchronizing based on index.  When the new/edit contact dialog was reworked the pager and mobile numbers were swapped relative to Thunderbird 2.  Now there is an inconsistent ordering of phone numbers as shown in this picture below:

    Before:

    gContactSync swaps the mobile and pager number fields if and only if phone types are enabled to make it more consistent with the old dialog and the contact view pane.  To disable this swap, manually edit the preference extensions.gContactSync.swapMobilePager to false.  This preference was added after gContactSync was translated so it isn’t in the preferences dialog.

    After:

    gContactSync 0.3 Progress Update

    I’m still working on gContactSync 0.3.  I had to prioritize work, job hunting, and college over gContactSync for a while.  I was the project leader and developer for two software teams for college so I was pretty busy.  I apologize for the lack of progress and responsiveness to questions and problems.  Please resend your question if I missed you.  The good news is I only have one semester left.

    3 Comments