{"id":2182,"date":"2011-08-25T15:32:40","date_gmt":"2011-08-25T20:32:40","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2182"},"modified":"2023-12-20T16:25:13","modified_gmt":"2023-12-20T21:25:13","slug":"fidding-with-designs-for-a-future-thunderbird-address-book","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/","title":{"rendered":"Fiddling with designs for a future Thunderbird address book"},"content":{"rendered":"<h3>State of the current Thunderbird address book<\/h3>\n<p>While I was hacking away on my <a href=\"http:\/\/mikeconley.ca\/blog\/2011\/08\/03\/introducing-eds-contacts-integration-for-thunderbird-or-coming-up-for-air\/\">EDS Contacts Integration add-on<\/a>, I got pretty familiar with the Thunderbird address book.<\/p>\n<p>And as it stands, it&#8217;s adequate &#8211; but adequate like a pickle is adequate for dinner if it&#8217;s the only thing left in the fridge.<\/p>\n<p>The address book interface hasn&#8217;t even really changed that much since it was part of Netscape Communicator.\u00a0 Check it out:<\/p>\n<p>Before:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2183\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/netscape-address-directory\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory.png\" data-orig-size=\"805,513\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"netscape-address-directory\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory-300x191.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory.png\" class=\"alignnone size-medium wp-image-2183\" title=\"netscape-address-directory\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory-300x191.png\" alt=\"Here's a screenshot of the address book from Netscape Communicator\" width=\"300\" height=\"191\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory-300x191.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/netscape-address-directory.png 805w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>After:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2184\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/thunderbird-address-book\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book.png\" data-orig-size=\"951,462\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"thunderbird-address-book\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book-300x145.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book.png\" class=\"alignnone size-medium wp-image-2184\" title=\"thunderbird-address-book\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book-300x145.png\" alt=\"Here's a shot of the Thunderbird address book on Ubuntu Oneiric\" width=\"300\" height=\"145\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book-300x145.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/thunderbird-address-book.png 951w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Verdict: the Thunderbird address book is still stuck in the 90&#8217;s.\u00a0 It still assumes that your contacts only have one or two email addresses.\u00a0 It doesn&#8217;t have any notion of Twitter accounts, Facebook accounts, LinkedIn Profiles, or anything that we would associate with a modern online contact identity.\u00a0 It&#8217;s not flexible in the type and quantity of fields that can be associated with a contact.<\/p>\n<p>We can do better.<\/p>\n<h3>Some designs I&#8217;ve been fiddling with<\/h3>\n<p>I should start by saying that the following are just ideas that I&#8217;ve been tossing around, and it&#8217;s still very very early in the design process.\u00a0 This is just a starting point. Feedback is encouraged!<\/p>\n<p>Ok, enough disclaimer.\u00a0 Here we go:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2186\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/none-selected\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected.png\" data-orig-size=\"943,585\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"New Thunderbird address book\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected-300x186.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected.png\" class=\"alignnone size-medium wp-image-2186\" title=\"New Thunderbird address book\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected-300x186.png\" alt=\"\" width=\"300\" height=\"186\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected-300x186.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/none-selected.png 943w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>The first thing to notice is that the address book is now contained in a tab, as opposed to a separate pop-up window.<\/p>\n<p>Next, notice that he tree of &#8220;address books&#8221; on the left is now gone.\u00a0 I always found it strange to open up the Thunderbird address book, and see that there were&#8230;address books inside of the address book.\u00a0 What I imagine instead is that the Thunderbird address book will know about &#8220;contact providers&#8221;, like Google Contacts, the OSX address book, the Evolution Data Server contacts database, etc.\u00a0 Thunderbird will copy all of those contacts locally for fast searching and processing, and synchronize changes both ways. \u00a0It&#8217;ll also <em>merge <\/em>contacts that it realizes are the same person. (that&#8217;s a ton of work already&#8230;).<\/p>\n<p>&#8220;But wait!&#8221;, I hear you cry.\u00a0 &#8220;I don&#8217;t want my Google Contacts to be mixed with the contacts from my OSX address book!&#8221;.<\/p>\n<p>No problem &#8211; the new address book could have a notion of <em>contact groups<\/em>.\u00a0 Contacts imported from the OSX address book will belong to the OSX address book.\u00a0 Contacts imported from Google Contacts will belong to the Google Contacts group.<\/p>\n<p>And contacts that were common between the two contact providers, and merged, will belong to <em>both groups.<\/em>\u00a0 Think of it like Google Plus&#8217;s Circles &#8211; a user can belong to one-or-several contact groups.<\/p>\n<p>And if you want to view the contacts in a particular group, you could just choose that group from the contact group dropdown:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2189\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/group-selector\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector.png\" data-orig-size=\"939,587\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"group-selector\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector-300x187.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector.png\" class=\"alignnone size-medium wp-image-2189\" title=\"group-selector\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector-300x187.png\" alt=\"\" width=\"300\" height=\"187\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector-300x187.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/group-selector.png 939w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>If we select a contact, we could view it like so:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2191\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/single-selection\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection.png\" data-orig-size=\"951,590\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"single-selection\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection-300x186.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection.png\" class=\"alignnone size-medium wp-image-2191\" title=\"single-selection\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection-300x186.png\" alt=\"\" width=\"300\" height=\"186\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection-300x186.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/single-selection.png 951w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>And then we could edit it by clicking the &#8220;Edit&#8221; button towards the top right:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2192\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/editing-contact\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact.png\" data-orig-size=\"936,577\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"editing-contact\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact-300x184.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact.png\" class=\"alignnone size-medium wp-image-2192\" title=\"editing-contact\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact-300x184.png\" alt=\"\" width=\"300\" height=\"184\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact-300x184.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/editing-contact.png 936w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>When we&#8217;re editing a contact, the contact list slides away, and we get the full space of the address book to edit the contact.\u00a0 I haven&#8217;t exactly figured out what the various editing tools will look like on a contact (especially considering a merged contact where some elements of the contact exist in one contact provider, but cannot exist in another&#8230;ugh).<\/p>\n<p>So one thing that we&#8217;re missing in that last screenshot is a &#8220;Cancel&#8221; button.\u00a0 Notice that we have those back\/forward navigation buttons in the top left.\u00a0 I&#8217;m not sure if those are sufficient \/ clear enough for the job&#8230;but suppose the user could just click &#8220;back&#8221; to return to viewing the contact without having saved it.<\/p>\n<p>But what about selecting multiple contacts within the contact list?\u00a0 That might look like this:<\/p>\n<p><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2193\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2011\/08\/25\/fidding-with-designs-for-a-future-thunderbird-address-book\/multiple-selection\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection.png\" data-orig-size=\"938,578\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"multiple-selection\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection-300x184.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection.png\" class=\"alignnone size-medium wp-image-2193\" title=\"multiple-selection\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection-300x184.png\" alt=\"\" width=\"300\" height=\"184\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection-300x184.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2011\/08\/multiple-selection.png 938w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>So I&#8217;ve selected a few contacts here, and I can do various things with this selection &#8211; like removing the contacts from my address book, or printing them, etc.\u00a0 I can also assign these contacts to contact groups en masse.<\/p>\n<p>Highlighting Barry Addison, Bruce Botrill and Phil Cassidy, I can see that all three belong to my &#8220;Friends&#8221; and &#8220;Clients&#8221; groups.\u00a0 Notice that the &#8220;Baseball Team&#8221; group checkbox looks a bit funny &#8211; it&#8217;s half filled in, which means that only some of my selection belongs to this group.<\/p>\n<p>From here, I can just click on the various groups I want to assign these three contacts to.\u00a0 If I click on &#8220;Baseball Team&#8221;, the half-filled checkbox turns into a check &#8211; meaning that <em>all <\/em>of the contacts I&#8217;ve selected will be assigned to that group.\u00a0 Clicking it again would clear the check, meaning that <em>all<\/em> of the contacts I&#8217;ve selected will not be assigned to that group (and will be un-assigned if that already were assigned).\u00a0 And if I were to click that checkbox one more time, then it&#8217;d go back to it&#8217;s half-filled state, meaning that I&#8217;ll just keep the contacts that are assigned to &#8220;Baseball Team&#8221; where they are, and won&#8217;t add or remove any contacts from that group.\u00a0 It&#8217;s a tri-state checkbox.\u00a0 Kinda funky, but it&#8217;s my current solution.<\/p>\n<p>Some other ideas worth mentioning:<\/p>\n<h4>Asynchronous<\/h4>\n<p>Currently, many operations conducted by the address book are synchronous, meaning that the user interface can feel sluggish while it&#8217;s waiting for certain events to occur (like writing contact data to a database).\u00a0 These events should really happen in the background so that the address book stays nice and snappy, and the user can go about their work.<\/p>\n<h4>Undo \/ Redo<\/h4>\n<p>This is a big one &#8211; <strong>any edit or delete events should be un-doable and re-doable.<\/strong>\u00a0 No exceptions.<\/p>\n<p>So that&#8217;s what I&#8217;ve been thinking about.<\/p>\n<p>Feedback?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>State of the current Thunderbird address book While I was hacking away on my EDS Contacts Integration add-on, I got pretty familiar with the Thunderbird address book. And as it stands, it&#8217;s adequate &#8211; but adequate like a pickle is adequate for dinner if it&#8217;s the only thing left in the fridge. The address book [&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,79,862],"tags":[934,981,935,983,980,791,35,982,867,790],"class_list":["post-2182","post","type-post","status-publish","format-standard","hentry","category-mozilla-2","category-technology","category-thunderbird","tag-address-book","tag-cards","tag-contacts","tag-design","tag-grouping","tag-mockups","tag-mozilla","tag-netscape","tag-thunderbird-2","tag-ui"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-zc","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2182","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=2182"}],"version-history":[{"count":9,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2182\/revisions"}],"predecessor-version":[{"id":3114,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2182\/revisions\/3114"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}