<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for clarkbw</title>
    <link>http://www.advogato.org/person/clarkbw/</link>
    <description>Advogato blog for clarkbw</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 10 Feb 2012 17:06:35 GMT</pubDate>
    <item>
      <pubDate>Tue, 28 Dec 2010 23:06:13 GMT</pubDate>
      <title>Open Source Design: Versions and Forking</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=205</link>
      <guid>http://clarkbw.net/blog/2010/12/28/open-source-design-versions-and-forking/</guid>
      <description>&lt;p&gt;&lt;em&gt;It&amp;#8217;s almost the new year so I&amp;#8217;m getting started early in trying something new.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I moved to using only HTML/CSS for almost all of my mock-up purposes a while ago (see &lt;a href="http://37signals.com/svn/posts/1061-why-we-skip-photoshop" &gt;Why we skip Photoshop&lt;/a&gt;) .  It&amp;#8217;s just as fast, interactive, and removes much of the translation issues that that happen when an image is converted into HTML. &lt;/p&gt;
&lt;p&gt;While the switch to HTML mock-ups has been good, I&amp;#8217;ve continued to encounter the same issues I had with Photoshop images where I have to systematically save new versions of the original source and output.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Versions?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve had many different approaches in trying to version my files.&lt;/p&gt;
&lt;p&gt;No index file, just use the HTML list page the web server provides.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;version 1/&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;prototype.psd&lt;/li&gt;
&lt;li&gt;prototype.png&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;version 1.1/&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;prototype.psd&lt;/li&gt;
&lt;li&gt;prototype.png&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;version 2/&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;prototype.psd&lt;/li&gt;
&lt;li&gt;prototype.png&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;Or just appending the version numbers to each of the files as you save them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prototype-1.psd&lt;/li&gt;
&lt;li&gt;prototype-1.png&lt;/li&gt;
&lt;li&gt;prototype-1.1.psd&lt;/li&gt;
&lt;li&gt;prototype-1.1.png&lt;/li&gt;
&lt;li&gt;prototype-2.psd&lt;/li&gt;
&lt;li&gt;prototype-2.png&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Later I end up with a mess of files with version numbers and I don&amp;#8217;t really remember what happened changed in each of the versions.  This is both true for myself and for anyone else who browsed my designs later.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve also tried creating an &lt;code&gt;index.html&lt;/code&gt; file so I could link to all the different versions and describe them but that index file is hard to maintain; eventually getting old and out of date.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Forking?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oh so you want to participate in the design process?  A remix of my mock-up simply means you have to choose a version and then copy all the files onto your own web server and try to get my attention so we can discuss your changes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Active?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Am I still working on this mock-up or have I moved on?  You&amp;#8217;ll probably never really know because there&amp;#8217;s no easy way to tell.  If I have an &lt;code&gt;index.html&lt;/code&gt; file then hopefully I put the last active date on it or if I don&amp;#8217;t you could use the last modified time in the directory listing.&lt;/p&gt;
&lt;h2&gt;A New Way!&lt;/h2&gt;
&lt;p&gt;My new trick that I&amp;#8217;ve recently started trying is to use &lt;a href="http://pages.github.com/" &gt;GitHub Pages&lt;/a&gt; to host my HTML mock-ups.  So far it seems to fix my version and forking problems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Versions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m keeping a simple rule that each check-in must work (I can&amp;#8217;t break the whole thing) and I should describe the changes in my commit messages as much as possible so myself and others can understand why the mock-up might have changed drastically.&lt;/p&gt;
&lt;p&gt;There is no version numbering to deal with here since git does all the versioning.  The GitHub page only displays the latest version, which is a little bit of a setback, but anyone can clone the source and then checkout the older versions locally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Forking&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Not only does GitHub provide a super simple way for people to fork my mock-ups but it also allows me to see what those people are doing by keeping track of the forks and their progress.  I could actually incorporate changes from someone else into my mock-ups by merging them in.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Active&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s pretty easy to see from the source view the last time I was actively working on a mock-up.  And you could drop over to my profile view to see what other mock-ups I was more actively working on.e  Bonus!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m going to try to add some standard pieces to my pages so it&amp;#8217;s easy to find the source code and perhaps a &lt;code&gt;README&lt;/code&gt; page which quickly describes how to see the older versions of the mock-ups.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Any other ideas?&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 9 Dec 2010 21:10:35 GMT</pubDate>
      <title>yum update Minefield</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=204</link>
      <guid>http://clarkbw.net/blog/2010/12/09/yum-update-minefield/</guid>
      <description>&lt;p&gt;Very cool work from students at Seneca &amp;#8211; &lt;a href="http://armenzg.blogspot.com/2010/12/getting-firefox-nightly-updates-on.html" &gt;Getting Firefox nightly updates on Fedora through yum&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 9 Dec 2010 01:09:32 GMT</pubDate>
      <title>Thunderbird Conversations</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=203</link>
      <guid>http://clarkbw.net/blog/2010/12/08/thunderbird-conversations/</guid>
      <description>&lt;p&gt;&lt;a href="http://blog.xulforum.org/" &gt;Jonathan Protzenko&lt;/a&gt;, who worked with us over the summer, released &lt;a href="http://mozillalabs.com/messaging/2010/12/07/announcing-thunderbird-conversations/" &gt;Thunderbird Conversations&lt;/a&gt; the other day.&lt;/p&gt;
&lt;div align="center"&gt;&lt;img alt="" src="http://mozillalabs.com/messaging/files/2010/12/51375.png" class="alignnone" width="468" height="371" /&gt;&lt;/div&gt;
&lt;p&gt;If you haven&amp;#8217;t tried it out already you really should.  We&amp;#8217;ve been demoing it on the road for quite a while and I&amp;#8217;ve been using it as my main way to interact with Thunderbird for weeks now.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="http://vimeo.com/17431719" &gt;TB Conversations Video&lt;/a&gt; for how it works.&lt;/p&gt;
&lt;p&gt;Note: &lt;strong&gt;&lt;a href="http://www.mozillamessaging.com/en-US/thunderbird/3.3a1/releasenotes/" &gt;Thunderbird 3.3&lt;/a&gt; is required for &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/54035/" &gt;Thunderbird Conversations&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;See the &lt;a href="http://mozillalabs.com/messaging/2010/12/07/announcing-thunderbird-conversations/" &gt;Thunderbird Conversations&lt;/a&gt; post on the Mozilla Labs site for all the details.&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 11 May 2010 00:05:28 GMT</pubDate>
      <title>Vancouver Go-Kart Spring GT</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=202</link>
      <guid>http://clarkbw.net/blog/2010/05/10/vancouver-go-kart-spring-gt/</guid>
      <description>&lt;p&gt;This &lt;a title="An event soon to be listed on Wikipedia" href="http://en.wikipedia.org/wiki/May_13" &gt;Thursday&lt;/a&gt; at 11am PST will mark the beginning the the Spring GT race season in Vancouver.  &lt;a href="http://www.mozillamessaging.com/" &gt;Mozilla Vancouver&lt;/a&gt; is set to take on a number of other local companies like &lt;a href="http://www.nitobi.com/" &gt;Nitobi&lt;/a&gt;, &lt;a href="http://www.mainsocial.com/" &gt;mainsocial&lt;/a&gt;, &lt;a href="http://www.krankycafe.ca/" &gt;KRANKY cafe&lt;/a&gt;, and others in several rounds of &lt;a href="http://en.wikipedia.org/wiki/Kart_racing" &gt;go-kart racing&lt;/a&gt;.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;a href="http://www.flickr.com/photos/racestarphotos/4017403819/" &gt;&lt;img alt="&amp;quot;Albury Wodonga Go Karts 27-09-2009 0016&amp;quot; by racestarphotos" src="http://farm3.static.flickr.com/2513/4017403819_a498da856e_d.jpg" width="500" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/racestarphotos/4017403819/" &gt;Albury Wodonga Go Karts 27-09-2009 0016&lt;/a&gt; by &lt;a href="http://www.flickr.com/photos/racestarphotos/" &gt;racestarphotos&lt;/a&gt; &lt;a href="http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en" &gt;cc:by-nc-nd&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If you&amp;#8217;re in the &lt;a href="http://en.wikipedia.org/wiki/Vancouver" &gt;Vancouver, BC&lt;/a&gt; area and want to participate just ping &lt;a href="http://twitter.com/clarkbw" &gt;@clarkbw&lt;/a&gt; or show up at the &lt;a href="http://www.richmondgokarts.com/" &gt;Richmond Go Kart Track&lt;/a&gt;; we have an open reservation.  We have local cafes, tech shops, and individuals racing; you&amp;#8217;ll fit right in.  If you can&amp;#8217;t make this weeks race, don&amp;#8217;t worry; we&amp;#8217;ll be scheduling other (weekly) races on different days and times to make sure everyone can at least participate in a few races.  &lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is an outdoor track, so dress appropriately. Oh yeah, and neither I nor my employer assume any responsibility for your ass during this activity.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 21 Apr 2010 19:05:24 GMT</pubDate>
      <title>Gathering Facebook Identities from Email</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=201</link>
      <guid>http://clarkbw.net/blog/2010/04/21/gathering-facebook-identities-from-email/</guid>
      <description>&lt;p&gt;Looking at the announcement of the &lt;a href="http://developers.facebook.com/docs/api" &gt;Facebook Graph API&lt;/a&gt; from &lt;a href="http://apps.facebook.com/feightlive/" &gt;Facebook F8&lt;/a&gt; it seems like it will be a little easier to work with the Facebook system.&lt;/p&gt;
&lt;p&gt;In &lt;a href="http://mozillalabs.com/raindrop/" &gt;Raindrop&lt;/a&gt; we already have some integration with Facebook in order to identify emails coming from the Facebook system and help you filter them out.  But there is a lot more that can be done to help keep your email, Facebook, and other contacts in a cohesive form.&lt;/p&gt;
&lt;p&gt;So here&amp;#8217;s a quick code example written in Python to grab Facebook identities from emails sent by Facebook.  This could be used to gather Facebook identities and then possibly merge those with twitter and email contacts.&lt;/p&gt;
&lt;p&gt;First we need to import a couple things.&lt;/p&gt;
&lt;pre&gt;import email, json, urllib2&lt;/pre&gt;
&lt;p&gt;Then we&amp;#8217;ll need to grab an email message.&#xA0; I used Thunderbird to save a Facebook notification email message as an EML file locally, I called that file &amp;#8216;facebook.eml&amp;#8217; as you can see below.&lt;/p&gt;
&lt;pre&gt;msg = email.message_from_file(open('facebook.eml'))&lt;/pre&gt;
&lt;p&gt;Now  we have a parsed email message &lt;code&gt;msg&lt;/code&gt; object and we want to look for the &lt;code&gt;X-Facebook-Notify&lt;/code&gt; header in the email so we can extract what happened.&lt;/p&gt;
&lt;pre&gt;fb_notifiy = [tuple(t.strip().split("=")) for t in \
              msg.get('X-Facebook-Notify').split(";")]&lt;/pre&gt;
&lt;p&gt;The object &lt;code&gt;fb_notify&lt;/code&gt; contains tuples of information about the type of notification.&#xA0; Here is an example of an object you might see.&lt;/p&gt;
&lt;pre&gt;[('event_wall',),
 ('eid', '14102494623'),
 ('from', '21602578'),
 ('mailid', '12bf28cG149a112G63016bG21') ]&lt;/pre&gt;
&lt;p&gt;Using &lt;code&gt;fb_notify&lt;/code&gt; we&amp;#8217;ll do a really simple grab of the &lt;code&gt;from&lt;/code&gt; attribute because that is what is going to be publicly available from the &lt;a href="http://graph.facebook.com/" &gt;Facebook Graph&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;from_identity = json.load(urllib2.urlopen("http://graph.facebook.com/%s" % fb_notify[2][1]))&lt;/pre&gt;
&lt;p&gt;Here&amp;#8217;s an example &lt;code&gt;from_identity&lt;/code&gt; object:&lt;/p&gt;
&lt;pre&gt;{u'first_name': u'Bryan',
 u'last_name': u'Clark',
 u'id': u'21602578',
 u'name': u'Bryan Clark' }&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;from_identity&lt;/code&gt; can be used to more clearly identify who Facebook is sending this notification on behalf of and we could try merging this Facebook identity with other identities we already have in our contacts.&lt;/p&gt;
&lt;p&gt;I saved all this code into this &lt;a href="https://gist.github.com/84e062e131c51647d63b" &gt;gist&lt;/a&gt; if you want to take a look at it in code only form with syntax highlighting.&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Sat, 3 Apr 2010 03:07:32 GMT</pubDate>
      <title>Quick Filtering in Thunderbird</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=200</link>
      <guid>http://clarkbw.net/blog/2010/04/02/quick-filtering-in-thunderbird/</guid>
      <description>&lt;p&gt;Today we&amp;#8217;ve released a new add-on the &lt;a href="http://www.mozillamessaging.com/" &gt;Mozilla Messaging&lt;/a&gt; team has been working on for a little while, the &lt;a href="https://addons.mozilla.org/en-US/thunderbird/addon/77714" &gt;&lt;strong&gt;Quick Filter&lt;/strong&gt;&lt;/a&gt;.&#xA0; A new single folder search and filter system  that will work alongside our previously released Thunderbird global search.&lt;/p&gt;
&lt;p&gt;The Quick Filter add-on is reminiscent of the old quick search system of Thunderbird 2.0&#xA0; but we&amp;#8217;ve improved it in a number of areas.&#xA0; Here&amp;#8217;s how it&amp;#8217;s changed from the 2.0 days:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #514f42;"&gt;&lt;strong&gt;Search Message Types&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-items.png" &gt;&lt;img class="size-medium wp-image-757 alignnone" title="Quick Filter Items" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-items-300x19.png" alt="" width="300" height="19" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Unread, Starred, Contact, Tags, Attachments are all types of searches you can toggle to turn on.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-items.png" &gt;&lt;/a&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-items-selected.png" &gt;&lt;img class="size-medium wp-image-758 alignnone" title="quick-filter-items-selected" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-items-selected-300x19.png" alt="" width="300" height="19" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;A Tag search presents the array of possible tags to help you filter down even more.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-tags.png" &gt;&lt;img class="size-medium wp-image-761 alignnone" title="Quick Filter Tags" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-tags-300x27.png" alt="" width="300" height="27" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;
&lt;p&gt;&lt;span style="color: #514f42;"&gt;&lt;strong&gt;Filter Results Count&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;If your search returns a lot of results we let you know the search bar will let you know how many messages match.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;img class="alignnone size-full wp-image-755" title="Quick Filter with results" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-120-messages.png" alt="" width="269" height="32" /&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;And if even if the search query is too strict and there are no results the Quick Filter will display this inline.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;img class="alignnone size-full wp-image-759" title="quick-filter-no-results" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-no-results.png" alt="" width="324" height="32" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #514f42;"&gt;&lt;strong&gt;Better Search Type Options&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;The old quick search tended confuse people because the search type settings were hidden in this popup menu:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;img class="alignnone size-full wp-image-762" title="thunderbird-2-quick-search-options" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/thunderbird-2-quick-search-options.png" alt="" width="244" height="164" /&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;In the new Quick Filter we&amp;#8217;ve brought those options out every time you focus on the search entry so you always know what kind of search you are performing.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;img class="alignnone size-full wp-image-760" title="quick-filter-search-options" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-search-options.png" alt="" width="423" height="58" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #514f42;"&gt;&lt;strong&gt;Space Saving Options&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Last but not least we&amp;#8217;ve worked hard to make sure that if you are using the Quick Filter on a smaller screen it converts down to icons only mode automatically.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-icons-only.png" &gt;&lt;img class="alignnone size-medium wp-image-756" title="quick-filter-icons-only" src="http://clarkbw.net/blog/wp-content/uploads/2010/04/quick-filter-icons-only-300x13.png" alt="" width="300" height="13" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;Note for Techies&lt;/em&gt;: This change was made possible by the &lt;a href="https://developer.mozilla.org/en/CSS/@media" &gt;CSS&#xA0; @media&lt;/a&gt; rule&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Try it out!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You&amp;#8217;ll need to be running Thunderbird 3 and then from the Add-on Manager (Tools -&amp;gt; Add-on)&#xA0; search for &amp;#8220;quick filter&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Give Feedback!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#8217;re looking for feedback before this lands in Thunderbird as a core feature so any praise and/or comments you have would be greatly appreciated.&#xA0; Leave your comments in the &lt;a href="https://addons.mozilla.org/en-US/thunderbird/reviews/display/77714" &gt;Quick Filter add-on reviews&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Something you might have already noticed is that this is a separate toolbar just for quick filtering but you can show or hide it as you need it.&#xA0; Try out the keyboard shortcut and see how it feels.&lt;/p&gt;
&lt;p&gt;Thanks for taking a look!&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 25 Nov 2009 23:09:11 GMT</pubDate>
      <title>Try other web apps in Thunderbird tabs</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=199</link>
      <guid>http://clarkbw.net/blog/2009/11/25/try-other-web-apps-in-thunderbird-tabs/</guid>
      <description>&lt;p&gt;&lt;a href="http://cad.cx/" &gt;Colin Dean&lt;/a&gt; converted the &lt;a href="http://hg.mozilla.org/users/clarkbw_gnome.org/googlecalendartab/" &gt;code&lt;/a&gt; from my post on &lt;a href="http://clarkbw.net/blog/2009/11/23/google-calendar-in-thunderbird-tabs/" &gt;Google Calendar in Thunderbird tabs&lt;/a&gt; and created a &lt;a href="https://code.edge.launchpad.net/~colindean/+junk/gmailtab" &gt;GMail tab for Thunderbird&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested in trying what  a web application would look like running inside a Thunderbird tab without modifying an extension use the following code snippet.&lt;/p&gt;
&lt;p&gt;Open the Error Console from the Tools Menu&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img class="aligncenter size-medium wp-image-741" title="tools-error-console" src="http://clarkbw.net/blog/wp-content/uploads/2009/11/tools-error-console-290x300.png" alt="tools-error-console" width="290" height="300" /&gt;&lt;/p&gt;
&lt;p&gt;Copy &amp;amp; Paste this code into the input entry at the top:&lt;/p&gt;
&lt;pre&gt;Components.classes['@mozilla.org/appshell/window-mediator;1']
          .getService(Components.interfaces.nsIWindowMediator)
          .getMostRecentWindow("mail:3pane")
          .document.getElementById("tabmail")
          .openTab("contentTab",{contentPage:"http://tinyvid.tv/show/2h9led44g152z"})&lt;/pre&gt;
&lt;p&gt;Change the provided link ( &lt;a href="http://tinyvid.tv/show/2h9led44g152z" &gt;http://tinyvid.tv/show/2h9led44g152z&lt;/a&gt; ) at the end to the web application you&amp;#8217;d like to try, like &lt;a href="http://twitter.com" &gt;http://twitter.com&lt;/a&gt; for example.&#xA0; Click the &lt;strong&gt;( Evaluate )&lt;/strong&gt; button.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2009/11/error-console.png" &gt;&lt;img class="size-medium wp-image-739  aligncenter" title="error-console" src="http://clarkbw.net/blog/wp-content/uploads/2009/11/error-console-300x214.png" alt="error-console" width="300" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;It&amp;#8217;s Party Time!&lt;/span&gt; ( if you didn&amp;#8217;t change the link,&#xA0; &lt;a href="http://tinyvid.tv/show/2h9led44g152z" &gt;http://tinyvid.tv/show/2h9led44g152z&lt;/a&gt; )&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2009/11/its-party-time-in-a-thunderbird-tab.png" &gt;&lt;img class="size-medium wp-image-740  aligncenter" title="its-party-time-in-a-thunderbird-tab" src="http://clarkbw.net/blog/wp-content/uploads/2009/11/its-party-time-in-a-thunderbird-tab-300x293.png" alt="its-party-time-in-a-thunderbird-tab" width="300" height="293" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can continue to iterate the tab application by creating a new &lt;a href="https://developer.mozilla.org/en/Thunderbird/Content_Tabs#Handling_clicks" &gt;click handler&lt;/a&gt;, however at that point it might be worthwhile to start with the extension code instead of working in the error console.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jetpack for Thunderbird&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the hopefully not too distant future Thunderbird will gain &lt;a href="https://jetpack.mozillalabs.com/" &gt;Jetpack&lt;/a&gt; as it&amp;#8217;s new extension model and it will be no longer necessary for add-ons like this these be created but instead a simple Jetpack which can do the same things without restarts or complicated installs.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested in this take a look at Andrew&amp;#8217;s recent &lt;a href="http://www.visophyte.org/blog/2009/11/22/thunderbird-jetpack-teasers-words-per-minute-in-compose/" &gt;Jetpack in Thunderbird&lt;/a&gt; post.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Above code snippet courtesy of Magnus in &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=519041#c7" &gt;bug 519041&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 24 Nov 2009 02:11:05 GMT</pubDate>
      <title>Google Calendar in Thunderbird tabs</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=198</link>
      <guid>http://clarkbw.net/blog/2009/11/23/google-calendar-in-thunderbird-tabs/</guid>
      <description>&lt;p&gt;If you&amp;#8217;re a &lt;a href="http://calendar.google.com/" &gt;Google Calendar&lt;/a&gt; user like myself you might want to check out this really simple add-on for &lt;a href="http://www.mozillamessaging.com/thunderbird/" &gt;Thunderbird&lt;/a&gt;, which should be available as an official add-on for the coming Thunderbird 3 release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Google Calendar Tab&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As simple as it sounds, this adds the Google Calendar web interface as a new tab directly into Thunderbird.&#xA0; Creating and viewing events works just as it would in a browser like Firefox. &lt;img src='http://clarkbw.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://clarkbw.net/blog/wp-content/uploads/2009/11/Google-Calendar-Tab.png" &gt;&lt;img class="size-medium wp-image-726  aligncenter" title="Google Calendar Tab" src="http://clarkbw.net/blog/wp-content/uploads/2009/11/Google-Calendar-Tab-300x226.png" alt="Google Calendar Tab" width="300" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If your calendar is setup to show popup alerts you&amp;#8217;ll continue to see them from the calendar tab while in other, mail, tabs.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;Here&amp;#8217;s my family &lt;a href="http://en.wikipedia.org/wiki/Pinochle" &gt;Pinochle&lt;/a&gt; game reminder alert showing.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img class="size-full wp-image-725  aligncenter" title="Google Calendar Alerts" src="http://clarkbw.net/blog/wp-content/uploads/2009/11/Google-Calendar-Alerts.png" alt="Google Calendar Alerts" width="491" height="164" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;
&lt;p style="text-align: left;"&gt;There is no official release of this extension yet, however you could grab the &lt;a href="http://hg.mozilla.org/users/clarkbw_gnome.org/googlecalendartab/raw-file/tip/release/googlecalendartab.xpi" &gt;latest XPI&lt;/a&gt;, download and install it into the latest (at least rc1) Shredder release.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;More Extensions&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;It&amp;#8217;s easy to get started integrating a web application like Twitter, Remember the Milk, and other sites into Thunderbird.&#xA0; Once you get the initial pieces  you can start working on better integration into your email conversations.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;If you&amp;#8217;re interested in creating an extension similar to this one, here are a couple links you probably want to  check out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://hg.mozilla.org/users/clarkbw_gnome.org/googlecalendartab/" &gt;Google Calendar Tab source code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=516776" &gt;bug 516776 &amp;#8211; Make it possible for browser elements to navigate through links/pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/En/Thunderbird_3_for_developers#Content_Browsing" &gt;Thunderbird 3 for Developers &amp;#8211; Content Browsing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en/Thunderbird/Content_Tabs" &gt;Thunderbird Content Tabs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Lightning&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This calendar extension only handles a single url for Google Calendar.&#xA0; If you&amp;#8217;re looking for actual calendar integration with different calendars, including google calendar, you&amp;#8217;ll want to check out the &lt;a href="http://www.mozilla.org/projects/calendar/" &gt;Lightning Calendar extension&lt;/a&gt; which also runs inside Thunderbird tabs.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;
</description>
    </item>
    <item>
      <pubDate>Sat, 21 Nov 2009 02:07:39 GMT</pubDate>
      <title>Raindrop </title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=197</link>
      <guid>http://clarkbw.net/blog/2009/11/20/raindrop-jetpack/</guid>
      <description>&lt;p&gt;The other day I did a quick hack using &lt;a href="https://mozillalabs.com/raindrop" &gt;Raindrop&lt;/a&gt; &amp;amp; &lt;a href="https://jetpack.mozillalabs.com/" &gt;Jetpack&lt;/a&gt; to get new mail notifications from Raindrop.&#xA0; In total it took me less than an hour.&#xA0; It&amp;#8217;s no &lt;a href="http://bit.ly/kJtF7" &gt;Joe Shaw hack&lt;/a&gt;, so I don&amp;#8217;t expect to get in the paper for this but I figured I&amp;#8217;d share anyway. &lt;img src='http://clarkbw.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;This Jetpack checks Raindrop to see if there are new messages and bubbles them up as notifications if there are.&#xA0; Here&amp;#8217;s the source code:&lt;/p&gt;
&lt;pre&gt;var messages = {}; 

function checkMail() {
 var api=&lt;a href="http://localhost:5984/raindrop/_api/inflow/conversations/home?limit=10" &gt;"http://localhost:5984/raindrop/_api/inflow/conversations/home?limit=10"&lt;/a&gt;;
 jQuery.getJSON(api,
               function(data, textStatus){
                 jQuery.each(data, function(i,item){
                   if (item.unread) {
                     if (!messages[item.id] || messages[item.id] != item.messages.length) {
                       var n={title: item.subject,
                              body : item.messages[0].schemas["rd.msg.body"]["body_preview"],
                              icon : '&lt;a href="http://localhost:5984/raindrop/inflow/i/logo.png" &gt;http://localhost:5984/raindrop/inflow/i/logo.png&lt;/a&gt;'};
                       jetpack.notifications.show(n);
                     }
                     messages[item.id] = item.messages.length;
                   }
               });
 });
}
setInterval(checkMail, 10000);&lt;/pre&gt;
&lt;p&gt;To try this out you&amp;#8217;ll need Raindrop installed and &lt;span style="text-decoration: underline;"&gt;running&lt;/span&gt; and Jetpack installed in Firefox.&lt;/p&gt;
&lt;p&gt;Go to &lt;span style="text-decoration: underline;"&gt;about:jetpack&lt;/span&gt; and copy the above code into the Develop tab, then click the &lt;span style="text-decoration: underline;"&gt;try out this code&lt;/span&gt; link just below the Bespin editor.&lt;/p&gt;
&lt;p&gt;If you don&amp;#8217;t want to do all that you can just watch the &lt;a href="http://vimeo.com/7733464" &gt;video below&lt;/a&gt; (no sound, so you might want to play some music)&lt;/p&gt;
&lt;p&gt;&lt;span id="more-706"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;object width='650px' height='304px'&gt;&lt;param name='allowfullscreen' value='true' /&gt;&lt;param name='allowscriptaccess' value='always' /&gt;&lt;param name='movie' value='http://vimeo.com/moogaloop.swf?clip_id=7733464&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1' /&gt;&lt;embed src='http://vimeo.com/moogaloop.swf?clip_id=7733464&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1' type='application/x-shockwave-flash' allowfullscreen='true' allowscriptaccess='always' width='650px' height='304px'&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="" 'http://vimeo.com/7733464'&gt;View on Vimeo&lt;/a&gt;.
</description>
    </item>
    <item>
      <pubDate>Thu, 22 Oct 2009 22:07:10 GMT</pubDate>
      <title>Raindrop</title>
      <link>http://www.advogato.org/person/clarkbw/diary.html?start=196</link>
      <guid>http://clarkbw.net/blog/2009/10/22/raindrop/</guid>
      <description>&lt;p style="text-align: center;"&gt;&lt;img class="size-full wp-image-694  aligncenter" title="Raindrop Shadow Logo" src="http://clarkbw.net/blog/wp-content/uploads/2009/10/logo_shadow.png" alt="Raindrop Shadow Logo" width="350" height="247" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;Today &lt;a href="http://www.mozillamessaging.com/" &gt;Mozilla Messaging&lt;/a&gt; released the &lt;a href="http://labs.mozilla.com/raindrop/" &gt;Raindrop&lt;/a&gt; project&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;Raindrop &lt;/strong&gt;is an experiment in the &lt;span style="text-decoration: underline;"&gt;design&lt;/span&gt; of a new messaging platform in the &lt;span style="text-decoration: underline;"&gt;open&lt;/span&gt;.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;What I like most about Raindrop is our &lt;strong&gt;process&lt;/strong&gt;.&#xA0; We started with some simple designs, created a couple iterations and now we&amp;#8217;ve opened up the whole process to share.&#xA0; This isn&amp;#8217;t another email client or a twitter client, we have been designing for &lt;span style="text-decoration: underline;"&gt;the way people communicate on the web today&lt;/span&gt;.&#xA0; And we&amp;#8217;re looking to make it awesome.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;If you&amp;#8217;re a developer or just have lots of patience you could grab the source code, follow the instructions and get raindrop up and running.&#xA0; But that&amp;#8217;s not what we&amp;#8217;re launching, we&amp;#8217;re launching the next version, the one that we design and develop in the open.&#xA0; Read that again, there is &lt;span style="text-decoration: underline;"&gt;no download&lt;/span&gt;. &lt;img src='http://clarkbw.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Starting today, new raindrop designs will be uploaded into the &lt;a href="http://www.flickr.com/groups/raindropdesign/" &gt;Raindrop Design flickr group&lt;/a&gt; for discussion and review.&#xA0; As designs are ready to be implemented we&amp;#8217;ll be blogging about them in the &lt;a href="http://blogs.mozillamessaging.com/raindropdesign/" &gt;Raindrop Design Blog&lt;/a&gt;.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;Develop&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Discussion of &lt;a href="http://hg.mozilla.org/labs/raindrop" &gt;code&lt;/a&gt; and extension development takes place on the &lt;a href="http://groups.google.com/group/raindrop" &gt;Raindrop Development Google Group&lt;/a&gt;.&#xA0; We&amp;#8217;re currently built on &lt;a href="http://couchdb.apache.org/" &gt;CouchDB&lt;/a&gt;, &lt;a href="http://www.python.org/" &gt;Python&lt;/a&gt;, and &lt;a href="https://developer.mozilla.org/En/JavaScript" &gt;JavaScript&lt;/a&gt;.&#xA0; &lt;span style="color: #808080;"&gt;(if you&amp;#8217;re trying to get raindrop up and running make sure you read the &lt;a href="http://hg.mozilla.org/labs/raindrop/file/tip/docs/INSTALL" &gt;INSTALL&lt;/a&gt; doc carefully)&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;strong&gt;Extend&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;From the ground up Raindrop was built as a set of extensions on top of extensions.&#xA0; This &lt;a href="https://wiki.mozilla.org/Raindrop/SoftwareArchitecture" &gt;architecture&lt;/a&gt; was a design choice so that others could easily continue extend on top of our work.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;There are places to add &lt;span style="text-decoration: underline;"&gt;Data Miners&lt;/span&gt; which can search messages for regular expressions and &lt;span style="text-decoration: underline;"&gt;User Interface Extensions&lt;/span&gt; which can modify the layout and design of messages presented.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;Check out James&amp;#8217; video on &lt;a href="http://vimeo.com/7155471" &gt;Raindrop Software Components&lt;/a&gt; for more on the extensions system.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>

