{"id":2257,"date":"2012-05-01T15:26:30","date_gmt":"2012-05-01T20:26:30","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2257"},"modified":"2023-12-20T16:25:13","modified_gmt":"2023-12-20T21:25:13","slug":"hey-what-about-thunderbirds-new-address-book","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2012\/05\/01\/hey-what-about-thunderbirds-new-address-book\/","title":{"rendered":"Hey, what about Thunderbird&#8217;s new address book?"},"content":{"rendered":"<p><strong>UPDATE (May 7th, 2012):<\/strong> Some of the information in this post is now out of date \/ inaccurate.\u00a0 <a href=\"http:\/\/mikeconley.ca\/blog\/2012\/05\/07\/a-slight-redirection\/\">See this post for more information.<\/a><\/p>\n<p>This happens every couple of months &#8211; I go total heads down on a project, and I don&#8217;t blog. That&#8217;s no good for people who are interested in what I&#8217;m doing.<\/p>\n<h2>Filelink<\/h2>\n<p>So lately, I&#8217;ve been busy helping to get <a href=\"https:\/\/support.mozillamessaging.com\/en-US\/kb\/filelink-large-attachments?redirectlocale=en-US&amp;redirectslug=filelink\">Filelink<\/a> ready for its Thunderbird 13 debut. Filelink is a feature that allows users to upload attachments to Dropbox and YouSendIt (and more, soon), and then insert links into the emails instead of the whole attachments.<\/p>\n<p><a href=\"http:\/\/xkcd.com\/949\/\">That&#8217;s a good thing. Every time you send a large attachment through e-mail, Tim Berners-Lee cries.<\/a><\/p>\n<p>The Filelink work is almost done, which leads me to&#8230;<\/p>\n<h2>Address book<\/h2>\n<p>I went to some lengths last year to extend and improve the Thunderbird address book, and it&#8217;s still in pretty rough shape. For a while now, I&#8217;ve wanted to redesign it from the ground up &#8211; but some other project usually gets in the way before I can really tackle it.<\/p>\n<p>With Filelink out of the way, I think I might get some time to hack on this.<\/p>\n<p>But&#8230;I think I&#8217;m going to be taking a round-about route. Before I go into this, I&#8217;m going to need to mention The Kilimanjaro Event&#8230;<\/p>\n<h2>The Kilimanjaro Event<\/h2>\n<p>Damon Sicore is the VP of Engineering at Mozilla, and he recently posted about a new initiative at Mozilla, called <a href=\"https:\/\/groups.google.com\/forum\/#!topic\/mozilla.dev.planning\/Y9v46wFeejA\">The Kilimanjaro Event.<\/a><\/p>\n<p>Salient point:<\/p>\n<blockquote><p>The Kilimanjaro Event is the point in time (not a release) when we realize a tightly integrated set of products that enables users to use the ID of their choice to find and install Web apps from HTML5 App marketplaces&#8211;including one created by Mozilla&#8211;and have those apps and appropriate data synchronized amongst devices. \u00a0It is important to point out that the Kilimanjaro Event is not a single release. \u00a0It is an incremental effort where we deliver a series of releases and features to each of our products that result in and enable an end-to-end user experience across these efforts.<\/p><\/blockquote>\n<p>One of the key components involved in reaching The Kilimanjaro Event is the mobile operating system that Mozilla is working on, code-named <a href=\"http:\/\/www.mozilla.org\/en-US\/b2g\/\">Boot2Gecko (or B2G).<\/a><\/p>\n<h2>Boot2Gecko (B2G)<\/h2>\n<p>Put simply, B2G runs web apps. Period. The B2G dialer?\u00a0 Web app. The settings manager? Web app. The lock screen? Web app.<\/p>\n<p>The contacts manager?<\/p>\n<p>You guessed it.<\/p>\n<h3>The Contacts App<\/h3>\n<p>B2G will ship with <a href=\"http:\/\/joshcarpenter.ca\/Boot-to-Gecko\">a series of apps (Gaia)<\/a> &#8211; and among those will be an app for managing your contacts. <a href=\"https:\/\/wiki.mozilla.org\/Gaia\/Contacts#Team\">I&#8217;ve gotten myself involved there<\/a>, and have started getting my hands dirty in Gaia code.<\/p>\n<p>So what&#8217;s the plan? How does this affect Thunderbird?<\/p>\n<p>My idea is to work on this app for B2G, get it shipped, and then attempt to bring it over to Thunderbird, expanding it and specializing it where necessary.<\/p>\n<p>This offers a number of advantages:<\/p>\n<ol>\n<li>The Contacts app for B2G will be entirely HTML5\/JS\/CSS based, meaning a lower barrier to entry for hacking on<\/li>\n<li>The Contacts app makes use of <a href=\"https:\/\/wiki.mozilla.org\/WebAPI\/ContactsAPI\">the Contacts API<\/a>, which allows us to add an arbitrary number of email addresses, phone numbers, and all the other goodness that you&#8217;d normally expect from a modern address book<\/li>\n<li>Part of the Kilimanjaro Event is to have &#8220;apps and appropriate data synchronized amongst devices&#8221;. This includes contact data. This means that if we can get Firefox Sync brought over to Thunderbird, and rely on the Contacts API for contact storage, <em>we can likely get contact synchronization pretty cheaply<\/em>.\u00a0 That means that your Thunderbird contacts will be synchronized with your B2G phone (or whichever device is running the Contacts app).\u00a0 Not bad!<\/li>\n<li><em>Synchronizing<\/em> with services like Facebook, Google Contacts, LinkedIn, etc &#8211; this is something that&#8217;s on the eventual roadmap for the Contacts app.\u00a0 Thunderbird can ride that wave too.<\/li>\n<li><em>Importing<\/em> from services like those listed above are a pretty high priority, and will likely be supported sooner rather than later.<\/li>\n<\/ol>\n<p>Now, a couple of things that worry me a little:<\/p>\n<ol>\n<li>I don&#8217;t want to <em>fork<\/em> the Contacts app, meaning that I want the core to remain the same as it exists in Gaia. Instead, I want to layer more code on top of the app in order to make it make sense in the context of a desktop application. Possible? Sure. Tricky? Almost certainly.<\/li>\n<li>The Contacts API isn&#8217;t currently supported for desktop right now &#8211; the WebAPI team is working hard on getting it working right for mobile first.\u00a0 Desktop is a distant goal.<\/li>\n<li>Also, the Contacts API is defined as an interface for accessing the device address book.\u00a0 For a phone, it&#8217;s obvious what that is.\u00a0 For a desktop, it means the OS address book.\u00a0 This means that, unless I&#8217;m misunderstanding, TB contacts will be going directly into the OSX address book, Windows Contacts, what-have-you.\u00a0 If no such service exists in the OS, Gecko puts together a fallback database for you.<\/li>\n<\/ol>\n<h2>Papercuts<\/h2>\n<p>Along with this contacts work, there are a bunch of long-standing Thunderbird papercuts that I want to smash through. <a href=\"https:\/\/bugzilla.mozilla.org\/buglist.cgi?quicksearch=product%3Athunderbird%20whiteboard%3AUXPrio;list_id=3000647\">Here&#8217;s a partial list of them.<\/a><\/p>\n<p>I&#8217;m hoping to drop that list to close to zero for TB 15.\u00a0 Fingers crossed!<\/p>\n<p>Anyhow, this appears to be my current trajectory, until further notice.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UPDATE (May 7th, 2012): Some of the information in this post is now out of date \/ inaccurate.\u00a0 See this post for more information. This happens every couple of months &#8211; I go total heads down on a project, and I don&#8217;t blog. That&#8217;s no good for people who are interested in what I&#8217;m doing. [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[861,862],"tags":[934,1006,1005,935,1010,1009,1007,957,1011,1008,35,867],"class_list":["post-2257","post","type-post","status-publish","format-standard","hentry","category-mozilla-2","category-thunderbird","tag-address-book","tag-b2g","tag-boot2gecko","tag-contacts","tag-contactsapi","tag-device","tag-gaia","tag-google-contacts","tag-kilimanjaro","tag-mobile","tag-mozilla","tag-thunderbird-2"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-Ap","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=2257"}],"version-history":[{"count":9,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2257\/revisions"}],"predecessor-version":[{"id":3107,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2257\/revisions\/3107"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}