<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>mitcho.com</title>
	
	<link>http://mitcho.com/blog</link>
	<description />
	<lastBuildDate>Tue, 09 Feb 2010 06:12:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1-beta1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mitcho" /><feedburner:info uri="mitcho" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><feedburner:emailServiceId>mitcho</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>After the Deadline for Firefox</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/vxfd1KOOkwc/</link>
		<comments>http://mitcho.com/blog/projects/after-the-deadline-for-firefox/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 01:02:54 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[proofreading]]></category>
		<category><![CDATA[spelling]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3321</guid>
		<description><![CDATA[After the Deadline is a powerful and intelligent proofreading tool which checks for spelling errors, misused words, some grammatical gaffes, and even some stylistic issues. For the past month, I&#8217;ve been working for Automattic, the company behind AtD and the makers of WordPress.com, to create a Firefox add-on which enables this superior technology everywhere on [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/mozilla-by-the-numbers/' rel='bookmark' title='Permanent Link: Mozilla By The Numbers'>Mozilla By The Numbers</a></li>
<li><a href='http://mitcho.com/blog/projects/ubiquity-in-firefox-japanese/' rel='bookmark' title='Permanent Link: Ubiquity in Firefox: Focus on Japanese'>Ubiquity in Firefox: Focus on Japanese</a></li>
<li><a href='http://mitcho.com/blog/link/light-of-firefox-tomoshibi-%e7%81%af-from-mozilla-japan/' rel='bookmark' title='Permanent Link: Light of Firefox (tomoshibi 灯) from Mozilla Japan'>Light of Firefox (tomoshibi 灯) from Mozilla Japan</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://afterthedeadline.com">After the Deadline</a> is a powerful and intelligent proofreading tool which checks for spelling errors, misused words, some grammatical gaffes, and even some stylistic issues. For the past month, I&#8217;ve been working for <a href="http://automattic.com">Automattic</a>, the company behind AtD and the makers of <a href="http://wordpress.com">WordPress.com</a>, to create a Firefox add-on which enables this superior technology everywhere on the web. Words can&#8217;t do justice to the magic that is AtD, so here&#8217;s a video we put together:</p>

<p><embed src="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.15" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true" flashvars="guid=n3dZCS7D&amp;width=640&amp;height=360&amp;qc_publisherId=p-18-mFEk4J448M" title="Firefox: Check Spelling, Style, and Grammar"></embed></p>

<p>I invite you all to give it a spin:</p>

<p style='text-align:center'><a title="Add After the Deadline to Firefox" class="button positive significant" href="https://addons.mozilla.org/downloads/latest/58947/addon-58947-latest.xpi?src=external-mitcho"><img src="http://mitcho.com/blog/wp-content/uploads/2010/02/add-add-on.png" alt="add-add-on.png" border="0" width="263" height="36" /></a></p>

<p>Working on After the Deadline for Firefox gave me my first experience creating an add-on from the ground up and I&#8217;ve learned a lot. After working on Ubiquity and dabbling with Jetpack, it&#8217;s given me another perspective on extensibility on the web and I look forward to thinking and writing more about these experiences in the near future.</p>

<p>In the mean time, happy proofreading! <img src='http://mitcho.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/vxfd1KOOkwc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/after-the-deadline-for-firefox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/after-the-deadline-for-firefox/</feedburner:origLink></item>
		<item>
		<title>WordCamp Boston 2010</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/hf9kcqXm6QQ/</link>
		<comments>http://mitcho.com/blog/life/wordcamp-boston-2010/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 02:02:01 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[Boston]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3298</guid>
		<description><![CDATA[

This past weekend I gave a couple talks at the inaugural WordCamp Boston. WordCamps are local, community-organized events for WordPress users and enthusiasts. We had about 400 people at the Microsoft Cambridge campus.







Related posts:<ol><li><a href='http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/' rel='bookmark' title='Permanent Link: Extending WordPress talk at the Boston WordPress Meetup'>Extending WordPress talk at the Boston WordPress Meetup</a></li>
<li><a href='http://mitcho.com/blog/projects/presenting-in-boston-at-sigir-workshop/' rel='bookmark' title='Permanent Link: Presenting in Boston at SIGIR Workshop'>Presenting in Boston at SIGIR Workshop</a></li>
<li><a href='http://mitcho.com/blog/projects/yarpp-3-templates/' rel='bookmark' title='Permanent Link: Using Templates with YARPP 3'>Using Templates with YARPP 3</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><img src="http://mitcho.com/blog/wp-content/uploads/2010/01/4096077627_c6d3035124_o.jpg" alt="4096077627_c6d3035124_o.jpg" border="0" width="470" height="246" /></p>

<p>This past weekend I gave a couple talks at the inaugural <a href="http://wordcampboston.com/">WordCamp Boston</a>. <a href="http://central.wordcamp.org/">WordCamps</a> are local, community-organized events for <a href="http://wordpress.org">WordPress</a> users and enthusiasts. We had about 400 people at the Microsoft Cambridge campus.</p>

<p><zp :boston/wordcamp/wordcamp28.jpg></zp><zp :boston/wordcamp/wordcamp31.jpg></zp><zp :boston/wordcamp/wordcamp35.jpg></p>

<p><a href="http://mitcho.com/blog/life/wordcamp-boston-2010/#more-3298" class="more-link">(more&#8230;)</a></zp></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/hf9kcqXm6QQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/life/wordcamp-boston-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/life/wordcamp-boston-2010/</feedburner:origLink></item>
		<item>
		<title>Creating an image-sized iframe overlay with Shadowbox</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/L7IYjib_zDw/</link>
		<comments>http://mitcho.com/blog/how-to/creating-an-image-sized-iframe-overlay-with-shadowbox/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 05:33:50 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[shadowbox]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3293</guid>
		<description><![CDATA[I recently have been working with the Shadowbox JavaScript library for an upcoming revision to the MIT Edgerton Digital Collections website. Shadowbox is a nice lightbox library designed to work with various JavaScript libraries like jQuery, prototype, and mootools with a nice modular design.

Shadowbox is organized around different &#8220;players&#8221;—one for each kind of media that [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/life/im-seriously-dreaming-of-a-white-christmas/' rel='bookmark' title='Permanent Link: I&#8217;m Seriously Dreaming of a White Christmas'>I&#8217;m Seriously Dreaming of a White Christmas</a></li>
<li><a href='http://mitcho.com/blog/life/atayal-cultural-festival/' rel='bookmark' title='Permanent Link: Atayal cultural festival'>Atayal cultural festival</a></li>
<li><a href='http://mitcho.com/blog/life/the-gift-that-keeps-on-giving/' rel='bookmark' title='Permanent Link: The Gift That Keeps On Giving'>The Gift That Keeps On Giving</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I recently have been working with the <a href="http://www.shadowbox-js.com/">Shadowbox</a> JavaScript library for an upcoming revision to the MIT <a href="http://edgerton-digital-collections.org">Edgerton Digital Collections</a> website. Shadowbox is a nice <a href="http://en.wikipedia.org/wiki/Lightbox (JavaScript)">lightbox</a> library designed to work with various JavaScript libraries like jQuery, prototype, and mootools with a nice modular design.</p>

<p>Shadowbox is organized around different &#8220;players&#8221;—one for each kind of media that will be displayed. The library by default comes with players for Flash, HTML fragments, <code>iframe</code>s, QuickTime, and Windows Media. Some of these players, like those for images and video, automatically recognize the media size and adjust the lightbox accordingly, while others such as the <code>iframe</code> player can use a set size or can fill the screen. For the Edgerton site, though, we had a need for displaying an <code>iframe</code> but in the dimensions of a set image, so that we could display the image with an overlay. Here are some notes on how to implement a custom player for Shadowbox.</p>

<p><a href="http://mitcho.com/blog/how-to/creating-an-image-sized-iframe-overlay-with-shadowbox/#more-3293" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/L7IYjib_zDw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/how-to/creating-an-image-sized-iframe-overlay-with-shadowbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/how-to/creating-an-image-sized-iframe-overlay-with-shadowbox/</feedburner:origLink></item>
		<item>
		<title>Disgusting Word-formatted HTML and how to fix it</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/JtShd6hTPTo/</link>
		<comments>http://mitcho.com/blog/projects/disgusting-word-formatted-html-and-how-to-fix-it/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 21:29:44 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[observation]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mitwpl]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[word]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3287</guid>
		<description><![CDATA[In working on a new website for the MIT Working Papers in Linguistics, I recently inherited a collection of HTML files with all of our books&#8217; abstracts. To my dismay (but not surprise) the markup in these files were horrendous. Here are some of the cardinal sins of markup that I saw committed in these [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/markdown-for-wordpress-and-bbpress/' rel='bookmark' title='Permanent Link: Markdown for WordPress and bbPress'>Markdown for WordPress and bbPress</a></li>
<li><a href='http://mitcho.com/blog/life/the-most-beautiful-word/' rel='bookmark' title='Permanent Link: The Most Beautiful Word'>The Most Beautiful Word</a></li>
<li><a href='http://mitcho.com/blog/observation/%e5%8f%8e%e9%9b%86-vs-%e5%9b%9e%e5%8f%8e-and-better-word-meanings-through-usage/' rel='bookmark' title='Permanent Link: 回収 vs. 収集 and Better Word Meanings Through Usage'>回収 vs. 収集 and Better Word Meanings Through Usage</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>In working on a new website for the MIT Working Papers in Linguistics, I recently inherited a collection of HTML files with all of our books&#8217; abstracts. To my dismay (but not surprise) the markup in these files were horrendous. Here are some of the cardinal sins of markup that I saw committed in these files:</p>

<ol>
<li><strong>Confusing <code>id</code>s and <code>class</code>es.</strong> <code>id</code>s should be unique on the page&#8230; but here&#8217;s an instance of using multiple instances of the same <code>id</code> in order to format them together.<br/></li>
</ol>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;indent&quot;&gt; &lt;div id=&quot;number&quot;&gt;4.2.1&lt;/div&gt; &lt;div id=&quot;page&quot;&gt;161&lt;/div&gt; &lt;div id=&quot;section&quot;&gt;Old French (Adams 1987)&lt;/div&gt;
&lt;/div&gt; &lt;div id=&quot;indent&quot;&gt; &lt;div id=&quot;number&quot;&gt;4.2.2&lt;/div&gt; &lt;div id=&quot;page&quot;&gt;164&lt;/div&gt; &lt;div id=&quot;section&quot;&gt;The evolution of the dialects of northern Italy&lt;/div&gt;</pre></div></div>


<ol>
<li><strong>Putting a class on every instance of something.</strong> Everything paragraph should be formatted equivalently. We get the point.<br/></li>
</ol>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;p class=MsoNormal&gt;&lt;b&gt;The English Noun Phrase in Its Sentential Aspect&lt;/b&gt;&lt;/p&gt;
&lt;p class=MsoNormal&gt;Steven Paul Abney&lt;/p&gt;
&lt;p class=MsoNormal&gt;May 1987&lt;/p&gt;</pre></div></div>


<ol>
<li><strong>Using blank space for formatting.</strong>  <br/></li>
</ol>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;</pre></div></div>


<ol>
<li><strong>CSS styles that don&#8217;t exist.</strong> Browsers just ignore these anyway&#8230; <br/></li>
</ol>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;p class=MsoNormal&gt;One factor in determining which worlds a modal quantifies
over is the temporal argument of the modal’s accessibility relation.&lt;span
style='mso-spacerun:yes'&gt;  &lt;/span&gt;It is well-known that a higher tense affects
the accessibility relation of modals.&lt;span style='mso-spacerun:yes'&gt; 
&lt;/span&gt;What is not well-known is that there are aspectual operators high enough
to affect the accessibility relation of modals.&lt;span style='mso-spacerun:yes'&gt; 
&lt;/span&amp;gt</pre></div></div>


<h3>The solution</h3>

<p>My solution was to write a perl script which takes care of a number of these issues. It&#8217;s not foolproof and doesn&#8217;t involve any voodoo—for example, it can&#8217;t retypeset things which were formatted using whitespace—but it does a good job as a first pass.</p>

<div class="files">
<div class="file">
<a href="http://mitcho.com/blog/wp-content/uploads/2009/12/cleanwordhtml.pl_.txt">cleanwordhtml.pl</a><br/>
<span class="specs">perl</span>
</div>
</div>

<p>You can run the script by making it executable (<code>chmod +x cleanwordhtml.pl</code>) then specifying a target filename as an argument. For example,</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>cleanwordhtml.pl source.html <span style="color: #000000; font-weight: bold;">&gt;</span> clean.html</pre></div></div>


<p>I used this with a simple bash for loop to run over all my files:</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> f <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">*/*</span>.html; <span style="color: #000000; font-weight: bold;">do</span> .<span style="color: #000000; font-weight: bold;">/</span>cleanwordhtml.pl <span style="color: #007800;">$f</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #800000;">${f%.html}</span>-clean.html; <span style="color: #000000; font-weight: bold;">done</span>;</pre></div></div>


<p>Hopefully someone else can benefit from my experience.</p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/JtShd6hTPTo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/disgusting-word-formatted-html-and-how-to-fix-it/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/disgusting-word-formatted-html-and-how-to-fix-it/</feedburner:origLink></item>
		<item>
		<title>Mashing up the browser in Maine</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/Yz8qB6jco_4/</link>
		<comments>http://mitcho.com/blog/projects/mashing-up-the-browser-in-maine/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 19:00:32 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[travelogue]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Maine]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[ubiquity]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3233</guid>
		<description><![CDATA[Last week I was invited to give a talk at the TechMaine annual conference in Portland, Maine.

Being a longer time slot than I previously have used to talk about Ubiquity, I decided to dedicate a good portion of the talk to Jetpack. Being outside of Mozilla for the past few months, this gave me an [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/' rel='bookmark' title='Permanent Link: Extending WordPress talk at the Boston WordPress Meetup'>Extending WordPress talk at the Boston WordPress Meetup</a></li>
<li><a href='http://mitcho.com/blog/projects/lets-talk-about-how-cool-our-localizers-are/' rel='bookmark' title='Permanent Link: Let&#8217;s talk about how cool our localizers are'>Let&#8217;s talk about how cool our localizers are</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Last week I was invited to give a talk at the <a href="http://www.techmaine.com/ac2009">TechMaine annual conference</a> in Portland, Maine.</p>

<p>Being a longer time slot than I previously have used to talk about Ubiquity, I decided to dedicate a good portion of the talk to <a href="http://jetpack.mozillalabs.com">Jetpack</a>. Being outside of Mozilla for the past few months, this gave me an opportunity to get reacquainted with the Jetpack APIs. I myself was impressed by how easy it was to develop a quick Jetpack. I ended up preparing two to live-code during the talk: one called <a href="http://jetpackgallery.mozillalabs.com/jetpacks/207">Helvetica</a> which, with one click, replaces all fonts on the current page with Helvetica; and <a href="http://jetpackgallery.mozillalabs.com/jetpacks/208">You Are Here</a> which uses an open API from <a href="http://ipinfodb.com/">IPinfoDB</a> to display the physical location of the domain you are currently visiting in the status bar. Both are now on the <a href="http://jetpackgallery.mozillalabs.com/">Jetpack Gallery</a>.</p>

<p><a rel='lightbox' href="http://mitcho.com/blog/wp-content/uploads/2009/12/youarehere.png"><img src="http://mitcho.com/blog/wp-content/uploads/2009/12/youarehere-inset.png" alt="" title="You Are Here" width="464" height="112" class="alignnone size-full wp-image-3237" /></a></p>

<p>Unfortunately there was a bit of a snowstorm leading up to the event, but there was still a nice turnout and I got to meet some fantastic people there. Ken Shoemake of <a href="http://en.wikipedia.org/wiki/slerp">slerp</a> and <a href="http://en.wikipedia.org/wiki/quaternion">quaternion</a> fame came up to me after my talk and said &#8220;the Ubiquity parser reminded me of the dancing bear&#8230; it&#8217;s less surprising that it works well as that it works at all.&#8221; <img src='http://mitcho.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I also enjoyed the other great presentations in the technology track, covering the <a href="http://www.nofluffjuststuff.com/conference/speaker/brian_sletten">virtues of REST</a> and basic iPhone development.</p>

<p><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/mitcho/mashup-the-browser-with-ubiquity-and-jetpack" title="Mashup the Browser with Ubiquity and Jetpack">Mashup the Browser with Ubiquity and Jetpack</a><object style="margin:0px" width="600" height="501"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=techmaine-091210174736-phpapp01&#038;stripped_title=mashup-the-browser-with-ubiquity-and-jetpack" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=techmaine-091210174736-phpapp01&#038;stripped_title=mashup-the-browser-with-ubiquity-and-jetpack" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="501"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/Yz8qB6jco_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/mashing-up-the-browser-in-maine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/mashing-up-the-browser-in-maine/</feedburner:origLink></item>
		<item>
		<title>My friend Evan bought an iPhone</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/8dfqGiVE76Y/</link>
		<comments>http://mitcho.com/blog/observation/my-friend-evan-bought-an-iphone/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 20:51:16 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[observation]]></category>
		<category><![CDATA[Evan]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=3206</guid>
		<description><![CDATA[



Related posts:<ol><li><a href='http://mitcho.com/blog/life/oh-evan/' rel='bookmark' title='Permanent Link: Oh Evan'>Oh Evan</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://mitcho.com/blog/wp-content/uploads/2009/12/tweeting-3.png" alt="tweeting-3.png" border="0" width="324" height="352" /></center></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/8dfqGiVE76Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/observation/my-friend-evan-bought-an-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/observation/my-friend-evan-bought-an-iphone/</feedburner:origLink></item>
		<item>
		<title>Extending WordPress talk at the Boston WordPress Meetup</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/KarSvz4uaYA/</link>
		<comments>http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:40:19 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[hookpress]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Planet]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2959</guid>
		<description><![CDATA[Yesterday I gave a talk at the Boston WordPress Meetup. The Boston WordPress Meetup meets monthly at the Microsoft Cambridge Research Center which is a fantastic venue right on the Charles river. Last night we got to be up on the 10th floor which has a great view of Boston right over the river. There [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/life/wordcamp-boston-2010/' rel='bookmark' title='Permanent Link: WordCamp Boston 2010'>WordCamp Boston 2010</a></li>
<li><a href='http://mitcho.com/blog/projects/hookpress-webhooks-for-wordpress/' rel='bookmark' title='Permanent Link: HookPress: Webhooks for WordPress'>HookPress: Webhooks for WordPress</a></li>
<li><a href='http://mitcho.com/blog/projects/modifiying-wordpress-plugin-activation-behavior/' rel='bookmark' title='Permanent Link: Modifiying WordPress plugin activation behavior'>Modifiying WordPress plugin activation behavior</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Yesterday I <a href="http://www.meetup.com/boston-wordpress-meetup/calendar/11378229/">gave a talk</a> at the <a href="http://www.meetup.com/boston-wordpress-meetup/">Boston WordPress Meetup</a>. The Boston WordPress Meetup meets monthly at the Microsoft Cambridge Research Center which is a fantastic venue right on the Charles river. Last night we got to be up on the 10th floor which has a great view of Boston right over the river. There was pretty good turnout, with about thirty or fourty people there.</p>

<p>My talk was a general introduction to WordPress plugin development, beginning with the concepts of <a href="http://codex.wordpress.org/Plugin_API/Action_Reference">actions</a> and <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference">filters</a>, and concluding with a description of <a href="http://mitcho.com/code/hookpress/">HookPress</a>, my new plugin which enables <a href="http://webhooks.org">webhooks</a> in WordPress. Here are the slides:</p>

<p><a href="http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/#more-2959" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/KarSvz4uaYA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/extending-wordpress-talk-at-the-boston-wordpress-meetup/</feedburner:origLink></item>
		<item>
		<title>Living in the Stata Center</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/tm62KNFcpj0/</link>
		<comments>http://mitcho.com/blog/life/living-in-the-stata-center/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 18:49:22 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[linguistics]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[stata center]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2914</guid>
		<description><![CDATA[We&#8217;re now three weeks into the semester at MIT where I just started a PhD program in linguistics. The Linguistics and Philosophy department is housed in The Ray and Maria Stata Center, also known as building 32. It&#8217;s a Frank Gehry building and thus crazy looking.1










It also apparently has some structural problems; most notably leaks.&#160;&#8617;







Related posts:<ol><li><a href='http://mitcho.com/blog/observation/im-busy-to-die/' rel='bookmark' title='Permanent Link: I&#8217;m Busy to Die'>I&#8217;m Busy to Die</a></li>
<li><a href='http://mitcho.com/blog/life/dinner-with-barack-and-hillary/' rel='bookmark' title='Permanent Link: Dinner with Barack and Hillary'>Dinner with Barack and Hillary</a></li>
<li><a href='http://mitcho.com/blog/life/travel/linguistics-in-%e5%98%89%e7%be%a9/' rel='bookmark' title='Permanent Link: Linguistics in 嘉義'>Linguistics in 嘉義</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re now three weeks into the semester at MIT where I just started a PhD program in <a href="http://web.mit.edu/linguistics/">linguistics</a>. The Linguistics and Philosophy department is housed in The Ray and Maria <a href="http://en.wikipedia.org/wiki/Stata Center">Stata Center</a>, also known as building 32. It&#8217;s a <a href="http://en.wikipedia.org/wiki/Frank Gehry">Frank Gehry</a> building and thus crazy looking.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>

<p><zp :boston/statacenter/statacenter02.jpg></zp><zp :boston/statacenter/statacenter09.jpg></p>

<p><a href="http://mitcho.com/blog/life/living-in-the-stata-center/#more-2914" class="more-link">(more&#8230;)</a></zp></p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>It also apparently has some structural problems; most notably <a href="http://tig.csail.mit.edu/leaks.pdf">leaks</a>.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/tm62KNFcpj0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/life/living-in-the-stata-center/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/life/living-in-the-stata-center/</feedburner:origLink></item>
		<item>
		<title>91 Hours in Japan</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/Ok1t20Eb45o/</link>
		<comments>http://mitcho.com/blog/life/travel/91-hours-in-japan/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 17:32:54 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[travelogue]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Japanese culture]]></category>
		<category><![CDATA[Kamakura]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[train]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2886</guid>
		<description><![CDATA[I just spent 91 hours in Japan. This is what it looked like.








































Related posts:<ol><li><a href='http://mitcho.com/blog/link/light-of-firefox-tomoshibi-%e7%81%af-from-mozilla-japan/' rel='bookmark' title='Permanent Link: Light of Firefox (tomoshibi 灯) from Mozilla Japan'>Light of Firefox (tomoshibi 灯) from Mozilla Japan</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I just spent 91 hours in Japan. This is what it looked like.</p>

<p><a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours01.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours01.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours02.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours02.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours03.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours03.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours04.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours04.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours05.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours05.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours06.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours06.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours07.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours07.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours08.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours08.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours09.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours09.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours10.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours10.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours11.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours11.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours12.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours12.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours13.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours13.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours14.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours14.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours15.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours15.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours15.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours15.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours16.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours16.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours17.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours17.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours18.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours18.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours19.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours19.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours20.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours20.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours21.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours21.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours22.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours22.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours23.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours23.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours24.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours24.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours25.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours25.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours26.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours26.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours27.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours27.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours28.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours28.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours29.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours29.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours30.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours30.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours31.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours31.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours32.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours32.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours33.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours33.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours34.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours34.jpg' /></a>
<a rel='lightbox[91-hours-in-japan]' href='http://mitcho.com/photos/nihon/91hours/image/600/91hours35.jpg' alt='zenphoto image'><img class='images' src='http://mitcho.com/photos/nihon/91hours/image/thumb/91hours35.jpg' /></a></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/Ok1t20Eb45o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/life/travel/91-hours-in-japan/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/life/travel/91-hours-in-japan/</feedburner:origLink></item>
		<item>
		<title>Mozilla By The Numbers</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/Z-pUiYOD9Mw/</link>
		<comments>http://mitcho.com/blog/projects/mozilla-by-the-numbers/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 04:26:54 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[observation]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[ubiquity]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2844</guid>
		<description><![CDATA[About six months ago I started working for Mozilla Labs full-time, focusing on Ubiquity, the multilingual natural language interface for the browser. This week marked my last week on contract as I go back to grad school next week. While the work will go on and I hope to continue to stay involved as time [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/life/report-from-mozilla-party-jp-10/' rel='bookmark' title='Permanent Link: Report from Mozilla Party JP 10!'>Report from Mozilla Party JP 10!</a></li>
<li><a href='http://mitcho.com/blog/projects/this-week-on-ubiquity-parser-the-next-generation/' rel='bookmark' title='Permanent Link: This week on Ubiquity Parser: The Next Generation'>This week on Ubiquity Parser: The Next Generation</a></li>
<li><a href='http://mitcho.com/blog/life/notes-from-barcamp-tokyo-2009/' rel='bookmark' title='Permanent Link: Notes from BarCamp Tokyo 2009'>Notes from BarCamp Tokyo 2009</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>About six months ago <a href="http://mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/">I started working</a> for Mozilla Labs full-time, focusing on <a href="http://ubiquity.mozilla.com">Ubiquity</a>, the multilingual natural language interface for the browser. This week marked my last week on contract as I go back to <a href="http://web.mit.edu/linguistics/">grad school</a> next week. While the work will go on and I hope to continue to stay involved as time allows, here&#8217;s a quick bird&#8217;s eye view of my activities in my Mozilla tenure:</p>

<hr/>

<p>Time working for Mozilla: 6.5 months</p>

<p>Mozilla-related blog posts written: <a href="http://mitcho.com/blog/tag/mozilla-planet">69</a></p>

<p>Academic papers written on Ubiquity: <a href="http://mitcho.com/academic/erlewine-sigir.pdf">1</a></p>

<p>Ubiquity presentations given: <a href="http://www.slideshare.net/mitcho">5</a></p>

<p>Screencasts made: <a href="http://vimeo.com/mitchoyoshitaka/videos">8</a></p>

<p>Most popular video on Vimeo: <a href="http://vimeo.com/5420966">Ubiquity 0.5 日本語紹介ビデオ</a>, the Japanese Ubiquity 0.5 introduction video: 2252 views</p>

<p>Languages Ubiquity commands and parser now support: 6</p>

<p>Commits to the <a href="https://ubiquity.mozilla.com/hg/ubiquity-firefox/">Ubiquity repository</a>: 492</p>

<p>Other web projects started during this period: 2+ (<a href="http://tengrandisburiedthere.com">Ten Grand Is Buried There</a>, <a href="http://mitcho.com/code/hookpress/">HookPress</a>)</p>

<p>TechCrunch references: 2 (<a href="http://www.techcrunch.com/2009/06/10/geeksonaplane-meet-tokyo-20-learn-about-the-relation-between-the-web-language/">1</a>, <a href="http://www.techcrunch.com/2009/06/18/mozilla-shows-microsoft-where-10000-is-buried/">2</a>)</p>

<p>Countries worked in: 2</p>

<p>Mythical Kiwis worked with: <a href="http://theunfocused.net/">1</a></p>

<p>References to bugs I introduced as &#8220;glitcho&#8221;s: <a href="https://ubiquity.mozilla.com/hg/ubiquity-firefox/rev/79d40b35ea2b">1</a></p>

<p>Extremely disturbing homages to me and <a href="http://dl-client.getdropbox.com/u/10320/django/wallpaper/magic-pony-django-wallpaper.png">Django</a>: <a href="http://users.skumleren.net/cers/mitchopony.png">1</a></p>

<p>Friends made; experience gained; lessons on Open-ness learned; personal growth: <strike>priceless</strike> enumerable</p>

<hr/>

<p>Thanks to all who made this experience amazing, beginning with Aza, Jono, Atul, Blair and the rest of the Labs team; intern extraordinaire Brandon; the always thoughtful and friendly <a href="http://mozilla.jp">Mozilla Japan team</a>; and of course the <a href="http://groups.google.com/group/ubiquity-firefox">fantastic Ubiquity community</a>! Please visit me in Boston—I should be around for a while. <img src='http://mitcho.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/Z-pUiYOD9Mw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/mozilla-by-the-numbers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/mozilla-by-the-numbers/</feedburner:origLink></item>
		<item>
		<title>The Aliens Aliases Have Landed</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/OmEManoVpbU/</link>
		<comments>http://mitcho.com/blog/projects/the-aliens-aliases-have-landed/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 00:46:56 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[arguments]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[verb]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2841</guid>
		<description><![CDATA[

This week I implemented a new way to customize and extend Ubiquity commands: CmdUtils.CreateAlias.

The use case for and importance of CreateAlias

CreateAlias lets you easily create a special-case alias of another, more generic verb. Ubiquity comes bundled with useful verbs like translate and search which can be used for a number of different uses based on [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/rolling-out-the-roles/' rel='bookmark' title='Permanent Link: Rolling out the Roles'>Rolling out the Roles</a></li>
<li><a href='http://mitcho.com/blog/projects/ubiquity-i18n-questions-to-ask/' rel='bookmark' title='Permanent Link: Ubiquity i18n: questions to ask'>Ubiquity i18n: questions to ask</a></li>
<li><a href='http://mitcho.com/blog/link/ubiquity-in-italian/' rel='bookmark' title='Permanent Link: Ubiquity in Italian'>Ubiquity in Italian</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><img src="http://mitcho.com/blog/wp-content/uploads/2009/09/close-encounters.jpg" alt="close-encounters.jpg" border="0" width="640" height="300" /></p>

<p>This week <a href="http://ubiquity.mozilla.com/trac/ticket/201">I implemented</a> a new way to customize and extend Ubiquity commands: <code>CmdUtils.CreateAlias</code>.</p>

<h3>The use case for and importance of <code>CreateAlias</code></h3>

<p><code>CreateAlias</code> lets you easily create a special-case alias of another, more generic verb. Ubiquity comes bundled with useful verbs like <code>translate</code> and <code>search</code> which can be used for a number of different uses based on their arguments. In some cases, and in some languages, though, typing out <code>translate to English</code> or <code>search with Google</code> is <a href="http://mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/">unnatural</a>, though, as there is a more succinct and direct way to make that request. For example, in English one could say &#8220;anglicize&#8221; or &#8220;google&#8221;, respectively, for the verbs and arguments above. Indeed, in order to support both <code>search with Google</code> and <code>google</code>, Ubiquity traditionally has implemented two different verbs, <code>search</code> and <code>google</code>, which duplicate functionality and code.</p>

<p><code>CreateAlias</code> lets us create such natural aliases <a href="http://en.wikipedia.org/wiki/Don&#8217;t_repeat_yourself">without repeating ourselves</a>. We can easily create an <code>anglicize</code> verb which, in one word, does the work of <code>translate to English</code>, or <code>google</code> which is semantically equivalent to <code>search with Google</code>.</p>

<p>These sorts of aliases become particularly important in our perpetual quest to internationalize Ubiquity. One discussion that came up early on on our <a href="http://groups.google.com/group/ubiquity-i18n">Ubiquity-i18n</a> list is the fact that not all languages have the verb &#8220;Google&#8221;: in many languages it is necessary to explicitly say &#8220;search with Google&#8221;. Moreover, other languages may have other domain-specific verbs which English doesn&#8217;t have either. Maybe some language has a special verb for &#8220;email with Hotmail&#8221; or &#8220;map Denmark&#8221;. Who knows? With <code>CreateAlias</code> we can easily enable such localizations based on the more generic commands bundled with Ubiquity.</p>

<h3>Creating an alias</h3>

<p><code>CreateAlias</code> was designed to be incredibly simple to use. Here&#8217;s an example that will be bundled (but not installed by default) in Ubiquity:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">CmdUtils.<span style="color: #660066;">CreateAlias</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
  names<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;anglicize&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
  verb<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;translate&quot;</span><span style="color: #339933;">,</span>
  givenArgs<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span> goal<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;English&quot;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<p>As you see, this syntax is incredibly straightforward. There are two required properties, <code>names</code>, an array of names for the alias, and <code>verb</code>, a reference to the target verb that this alias should use.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>

<p>The alias can also have a <code>givenArgs</code> property which is a hash of pre-specified arguments with their <a href="https://wiki.mozilla.org/Labs/Ubiquity/Parser_2/Semantic_Roles">semantic roles</a>. Because <code>translate</code> takes three arguments (an <code>object</code> text, a <code>goal</code> language, and a <code>source</code> language) but we have pre-specified a <code>goal</code> in the <code>givenArgs</code>, the new <code>anglicize</code> command will only take two arguments: the <code>object</code> text and a <code>source</code> language. Of course, if you specify no <code>givenArgs</code>, you&#8217;ll get a simple synonym without having access to the original verb&#8217;s code.</p>

<p><img src="http://mitcho.com/blog/wp-content/uploads/2009/09/anglicize1.png" alt="anglicize.png" border="0" width="650" height="152" /></p>

<p>As you see, the preview of this command is simply the preview of the <code>translate</code> verb. Its preview and execution is just as if you had entered <code>translate こんにちは to English</code>.</p>

<p>Just like other commands created with <code>CreateCommand</code>, the object specifying the alias can also have properties like <code>help</code>, <code>description</code>, <code>author</code> information, and so on. I used the <code>icon</code> property to add a <a href="http://en.wikipedia.org/wiki/Union Jack">Union Jack</a> to it so that it was easily identifiable.</p>

<h3>Bonus: using <code>CmdUtils.previewCommand</code> and <code>CmdUtils.executeCommand</code></h3>

<p>On the road to implementing <code>CreateAlias</code>, I also implemented the <code>CmdUtils.previewCommand</code> and <code>CmdUtils.executeCommand</code> functions. The majority of this code comes from previous work by <a href="http://groups.google.com/group/ubiquity-firefox/browse_thread/thread/993411167fc6f165">Louis-Rémi Babé</a>, though I adapted it to the modern Ubiquity system. Using <code>previewCommand</code> and <code>executeCommand</code> you can take advantage of the preview or execute functionality of another command. In the new <a href="https://ubiquity.mozilla.com/hg/ubiquity-firefox/raw-file/tip/ubiquity/standard-feeds/alias-commands.js">alias-commands</a> feed I included a command called <code>germanize</code> which essentially is a straightforward analogy to <code>anglicize</code>, seen above, but using these functions within a <code>CreateCommand</code>. While <code>CreateAlias</code> is much more straightforward for simple aliases, for more complex subcommands where you would like to adapt another verb&#8217;s execution or preview, or only take one of those but re-implement the other part, <code>previewCommand</code> and <code>executeCommand</code> are the way to go.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>The <code>verb</code> reference can be the canonical or <em>reference name</em> of a command, which is the first name in the <code>names</code> of a command (also the name listed in the command list when Ubiquity is running in English) or the actual internal ID of the command, which looks like <code>resource://ubiquity/standard-feeds/general.html#translate</code>.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/OmEManoVpbU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/the-aliens-aliases-have-landed/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/the-aliens-aliases-have-landed/</feedburner:origLink></item>
		<item>
		<title>Exploring Command Chaining in Ubiquity: Part 2</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/FvUSBQPmf6s/</link>
		<comments>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 23:14:07 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Japanese language]]></category>
		<category><![CDATA[Mandarin]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[natural syntax]]></category>
		<category><![CDATA[serial verb construction]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[ubiquity]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2799</guid>
		<description><![CDATA[Introduction

I recently have begun giving serious thought to what command chaining might look like in Ubiquity and the various considerations which must be made to make it happen. The &#8220;command chaining,&#8221; or &#8220;piping,&#8221; described here always involves (at least) two verbs acting sequentially on a passed target—that is, the first command performs some action or [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/' rel='bookmark' title='Permanent Link: Exploring Command Chaining in Ubiquity: Part 1'>Exploring Command Chaining in Ubiquity: Part 1</a></li>
<li><a href='http://mitcho.com/blog/link/command-chaining-with-oni/' rel='bookmark' title='Permanent Link: Command Chaining with Oni?'>Command Chaining with Oni?</a></li>
<li><a href='http://mitcho.com/blog/link/ubiquity-in-italian/' rel='bookmark' title='Permanent Link: Ubiquity in Italian'>Ubiquity in Italian</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>

<p>I recently have begun giving serious thought to what <strong>command chaining</strong> might look like in Ubiquity and the various considerations which must be made to make it happen. The &#8220;command chaining,&#8221; or &#8220;piping,&#8221; described here always involves (at least) two verbs acting sequentially on a passed target—that is, the first command performs some action or lookup and the second command acts on the first command&#8217;s output.</p>

<p>A few days ago I penned some initial <a href="http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/">technical considerations regarding command chaining</a>. In this post I&#8217;ll be point out some linguistic considerations involved in supporting a <a href="http://mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/">natural syntax</a> for chaining.</p>

<p><a href="http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/#more-2799" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/FvUSBQPmf6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/</feedburner:origLink></item>
		<item>
		<title>The Ubiquity Persistence Project: exploring a persistent Ubiquity in the toolbar</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/s5FaWFXBbBI/</link>
		<comments>http://mitcho.com/blog/projects/the-ubiquity-persistence-project/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 19:50:13 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[participate]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2781</guid>
		<description><![CDATA[It&#8217;s often hard to remember Ubiquity&#8217;s presence and keystroke without a visual reminder—even I often forget that I could use Ubiquity and end up going to a search engine or using the search bar for some quick lookup task. What if the Ubiquity input were in the toolbar and always visible? How would that affect [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/' rel='bookmark' title='Permanent Link: Exploring Command Chaining in Ubiquity: Part 2'>Exploring Command Chaining in Ubiquity: Part 2</a></li>
<li><a href='http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/' rel='bookmark' title='Permanent Link: Exploring Command Chaining in Ubiquity: Part 1'>Exploring Command Chaining in Ubiquity: Part 1</a></li>
<li><a href='http://mitcho.com/blog/projects/count-command-for-ubiquity/' rel='bookmark' title='Permanent Link: Count command for Ubiquity'>Count command for Ubiquity</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s often hard to remember Ubiquity&#8217;s presence and keystroke without a visual reminder—even I often forget that I could use Ubiquity and end up going to a search engine or using the search bar for some quick lookup task. <strong>What if the Ubiquity input were in the toolbar and always visible?</strong> How would that affect people&#8217;s use of Ubiquity? And what could we make that look like and how would it behave? Today we&#8217;re kicking off the Ubiquity Persistence Project, a new Ubiquity initiative to explore what a persistent Ubiquity might look like in the Firefox toolbar.</p>

<p><a rel='lightbox' href="http://mitcho.com/blog/wp-content/uploads/2009/08/Screen-shot-2009-08-20-at-12.48.43-PM.png" alt="The Persistence tool"><img src="http://mitcho.com/blog/wp-content/uploads/2009/08/persistence-small.png" alt="persistence-small.png" border="0" width="650" height="484" /></a></p>

<p>In order to facilitate this discussion, we created the Persistence tool. With the Persistence tool you can quickly try out new design and interaction ideas, mocking things up with some simple <a href="http://jquery.com">jQuery</a>-powered JavaScript and CSS and see your changes live. The Persistence tool is bundled with our <a href="http://ubiquity.mozilla.com/xpi/ubiquity-latest-beta.xpi">latest Ubiquity beta</a> (install link).</p>

<p><object width="649" height="365"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6197526&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6197526&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="649" height="365"></embed></object></p>

<p><a href="http://vimeo.com/6197526">The Ubiquity Persistence Project: exploring a persistent Ubiquity in the toolbar</a> from <a href="http://vimeo.com/mitchoyoshitaka">mitcho</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>I just put together a screencast introducing the initiative, demoing the Persistence tool, as well as talking about this project&#8217;s relation to the ongoing work on <a href="http://wiki.mozilla.org/Taskfox">Taskfox</a>. We&#8217;ll look forward to your comments and designs! <img src='http://mitcho.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/s5FaWFXBbBI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/the-ubiquity-persistence-project/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/the-ubiquity-persistence-project/</feedburner:origLink></item>
		<item>
		<title>Exploring Command Chaining in Ubiquity: Part 1</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/DlqsKxt7tqA/</link>
		<comments>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 20:35:37 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[asynchronous]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[nountypes]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[verbs]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2760</guid>
		<description><![CDATA[Since the dawn of time people have been asking about command chaining in Ubiquity. If you have a translate command and an email command, it would be great to be able to, for example, translate hello to Spanish and email to Juanito. This is what we call command chaining or piping: in a single complex [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-2/' rel='bookmark' title='Permanent Link: Exploring Command Chaining in Ubiquity: Part 2'>Exploring Command Chaining in Ubiquity: Part 2</a></li>
<li><a href='http://mitcho.com/blog/link/command-chaining-with-oni/' rel='bookmark' title='Permanent Link: Command Chaining with Oni?'>Command Chaining with Oni?</a></li>
<li><a href='http://mitcho.com/blog/projects/ubiquity-commands-by-the-numbers/' rel='bookmark' title='Permanent Link: Ubiquity Commands by The Numbers'>Ubiquity Commands by The Numbers</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Since the <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/">dawn of time</a> people have been asking about command chaining in Ubiquity. If you have a <code>translate</code> command and an <code>email</code> command, it would be great to be able to, for example, <code>translate hello to Spanish and email to Juanito</code>. This is what we call <strong>command chaining</strong> or <strong><a href="http://en.wikipedia.org/wiki/Pipeline_(Unix)">piping</a></strong>: in a single complex query, specifying multiple (probably two) actions and using the first&#8217;s output as the second&#8217;s input.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>

<p>Today I hope to cover some of the technical considerations required in implementing command chaining in Ubiquity, and I will follow up soon with a blog post on the linguistic considerations required as well.</p>

<p><a href="http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/#more-2760" class="more-link">(more&#8230;)</a></p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>We&#8217;re going to limit our discussion here to this restriction that the two verbs are not simply two simultaneous commands, but two commands which operate successively on an input, i.e., that it is true piping. This for example rules out input such as <code>google dogs and translate cat to Spanish</code>, as the second command&#8217;s execution does not semantically depend on the first&#8217;s execution. This (hopefully uncontroversial) decision also affects the linguistic considerations to be made in my next post.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/DlqsKxt7tqA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/exploring-command-chaining-in-ubiquity-part-1/</feedburner:origLink></item>
		<item>
		<title>Performance vs Responsiveness —or— How I Made the Parser Twice As Fast in One Day</title>
		<link>http://feedproxy.google.com/~r/mitcho/~3/-ahVkg7GYf4/</link>
		<comments>http://mitcho.com/blog/projects/performance-vs-responsiveness/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 06:16:54 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[response]]></category>
		<category><![CDATA[responsiveness]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2712</guid>
		<description><![CDATA[Since we launched Ubiquity 0.5, the issue of Parser 2 performance has been brought up over and over within the community. By virtue of having a more flexible and localizable design, Parser 2 was expected to be slower than our original parser, but its current implementation felt noticeably—perhaps unnecessarily—slow compared to Parser 1. Parser 2 [...]


Related posts:<ol><li><a href='http://mitcho.com/blog/projects/ubiquity-parser-the-next-generation-demo/' rel='bookmark' title='Permanent Link: Ubiquity Parser: The Next Generation Demo'>Ubiquity Parser: The Next Generation Demo</a></li>
<li><a href='http://mitcho.com/blog/projects/this-week-on-ubiquity-parser-the-next-generation/' rel='bookmark' title='Permanent Link: This week on Ubiquity Parser: The Next Generation'>This week on Ubiquity Parser: The Next Generation</a></li>
<li><a href='http://mitcho.com/blog/projects/changes-to-ubiquity-parser-2-and-the-playpen/' rel='bookmark' title='Permanent Link: Changes to Ubiquity Parser 2 and the Playpen'>Changes to Ubiquity Parser 2 and the Playpen</a></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Since we <a href="http://labs.mozilla.com/2009/07/ubiquity-0-5/">launched Ubiquity 0.5</a>, the issue of Parser 2 performance has been brought up <a href="http://groups.google.com/group/ubiquity-firefox/browse_thread/thread/b0dfa649dda77a2c#">over</a> and <a href="http://groups.google.com/group/ubiquity-firefox/browse_thread/thread/13bc9ade35c8b708#">over</a> within the community. By virtue of having a <a href="https://wiki.mozilla.org/Labs/Ubiquity/Parser_2">more flexible and localizable design</a>, Parser 2 was expected to be slower than our original parser, but its current implementation felt noticeably—perhaps unnecessarily—slow compared to Parser 1. Parser 2 performance has been identified as <a href="https://wiki.mozilla.org/Labs/Ubiquity/Meetings/2009-08-05_Weekly_Meeting#Notes">one of the blockers</a> for pushing Ubiquity 0.5+ to all of our 0.1.x users, and has thus been one of my recent foci.</p>

<h3>The short story:</h3>

<p>Inspired by some comments by <a href="http://theunfocused.net">Blair</a>, yesterday I was able to make significant (roughly 100%) performance gains in Parser 2, resulting in 40-60% faster parses, depending on the query. This change <a href="https://ubiquity.mozilla.com/hg/ubiquity-firefox/rev/77156d689b26">has been committed</a> and will be released as part of our forthcoming minor update, Ubiquity 0.5.4. Yay!</p>

<p><a href="http://mitcho.com/blog/projects/performance-vs-responsiveness/#more-2712" class="more-link">(more&#8230;)</a></p>
<img src="http://feeds.feedburner.com/~r/mitcho/~4/-ahVkg7GYf4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/performance-vs-responsiveness/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://mitcho.com/blog/projects/performance-vs-responsiveness/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 4.077 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-09 01:12:50 -->
