<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>mitcho.com &#187; Firefox</title>
	<atom:link href="http://mitcho.com/blog/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://mitcho.com</link>
	<description></description>
	<lastBuildDate>Fri, 10 Feb 2012 23:24:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>Checking mochitest test coverage</title>
		<link>http://mitcho.com/blog/projects/checking-mochitest-test-coverage/</link>
		<comments>http://mitcho.com/blog/projects/checking-mochitest-test-coverage/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 23:05:19 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[mochitest]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[Panorama]]></category>

		<guid isPermaLink="false">http://mitcho.com/?p=4253</guid>
		<description><![CDATA[One of the last bugs for Firefox Panorama was bug 625818: &#8220;Check Panorama mochitest test suite coverage&#8221;. Our automated tests ensure that we do not regress on existing functionality, but it&#8217;s only as good as its coverage: how much of the Panorama code base is actually being &#8220;hit&#8221; through the process of running the test [...]
Related posts:<ol>
<li><a href='http://mitcho.com/blog/projects/performance-vs-responsiveness/' rel='bookmark' title='Performance vs Responsiveness —or— How I Made the Parser Twice As Fast in One Day'>Performance vs Responsiveness —or— How I Made the Parser Twice As Fast in One Day</a></li>
<li><a href='http://mitcho.com/blog/how-to/develop-with-jetpack-sdk-0-2/' rel='bookmark' title='Beginning development with Jetpack SDK 0.2'>Beginning development with Jetpack SDK 0.2</a></li>
<li><a href='http://mitcho.com/blog/projects/keep-up-with-yet-another-related-posts-plugin-with-rss/' rel='bookmark' title='Keep up with Yet Another Related Posts Plugin with RSS!'>Keep up with Yet Another Related Posts Plugin with RSS!</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.org/firefox?WT.mc_id=aff_en08&amp;WT.mc_ev=click" style="float: right;margin-left:10px;"><img border="0" alt="Firefox Download Button" src="http://www.mozilla.org/contribute/buttons/120x240arrow_b.png"/></a>One of the last bugs for Firefox Panorama was <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=625818">bug 625818: &#8220;Check Panorama mochitest test suite coverage&#8221;</a>. Our automated tests ensure that we do not regress on existing functionality, but it&#8217;s only as good as its coverage: how much of the Panorama code base is actually being &#8220;hit&#8221; through the process of running the test suite.</p>

<p>Panorama went through a pretty rapid development cycle, making it into <a href="http://firefox.com">Firefox 4</a> which was <a href="http://blog.mozilla.com/blog/2011/03/22/mozilla-launches-firefox-4-and-delivers-a-fast-sleek-and-customizable-browsing-experience-to-more-than-400-million-users-worldwide-2/">released today</a> (yay!). Moreover, for a while we were developing outside of mozilla-central, without the regular &#8220;patches require tests&#8221; requirement. This makes checking its test coverage particularly important.</p>

<p>Check out the final result, the <a href="http://mitcho.com/code/panorama-coverage/">Panorama test coverage report</a>. The good news: our code coverage is 86%! (Some notes on what improvements can be made are in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=625818">the bug</a>.)</p>

<p><a href="http://mitcho.com/code/panorama-coverage/"><img src="http://mitcho.com/blog/wp-content/uploads/2011/03/Screen-shot-2011-03-22-at-6.59.26-PM.png" alt="code coverage report" border="0" width="600" height="260" /></a></p>

<p>PhiliKON had previously worked on hooking into the <a href="https://developer.mozilla.org/en/Code_snippets/JavaScript_Debugger_Service">JS Debugger service</a>&#8217;s <code>interruptHook</code> to test <a href="https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests"><code>xpcshell</code> tests</a>. I modified this code to run instead in the <a href="https://developer.mozilla.org/en/Browser_chrome_tests">Mochitest browser chrome tests</a>. This code can be found <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=625818">on the bug</a>.</p>

<p>With this patch applied, I invoked the test suite with the following code: <code>TEST_PATH=browser/base/content/tests/tabview COVERAGE_FILTER="*tabview*" COVERAGE=true make -C obj-ff-dbg mochitest-browser-chrome</code> . That&#8217;s a regular <code>mochitest-browser-chrome</code> invocation with the <code>COVERAGE=true</code> flag which turns on code coverage checking, and <code>COVERAGE_FILTER=*tabview*</code> which filters out results from files which don&#8217;t have &#8220;tabview&#8221; in their paths. This creates a file called <code>coverage.json</code> in the working directory <em>of the test suite</em>, meaning, for me, <code>obj-ff-dbg/_tests/testing/mochitest/</code>.</p>

<p>This JSON file is a multidimensional array, with file paths and then line numbers as keys. The file paths here, as best as possible, have been converted into local filesystem paths. PhiliKON built a script which produces beautiful reports based on this output.</p>

<p>A word of warning: running with this JSD <code>interruptHook</code> is ridiculously slow. A number of tests for Panorama are timing-dependent (drag-drop tests, for example), making some of them fail, but that&#8217;s okay&#8230; as long as it completed not via a timeout, it actually did run through all the code. In order to get this to run through everything with some degree of control, I split up the mochitest tabview suite in to a few chunks. I then took the multiple resulting <code>coverage.json</code> files and passed them into another script, in <code>tools/coverage/aggregate.py</code>, which takes multiple JSON results like this and puts them together into a single JSON file. I then passed this aggregate JSON file to PhiliKON&#8217;s wonderful report script and—voila—the <a href="http://mitcho.com/code/panorama-coverage/">Panorama test coverage report</a>! Easy as pie.</p>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/projects/performance-vs-responsiveness/' rel='bookmark' title='Performance vs Responsiveness —or— How I Made the Parser Twice As Fast in One Day'>Performance vs Responsiveness —or— How I Made the Parser Twice As Fast in One Day</a></li>
<li><a href='http://mitcho.com/blog/how-to/develop-with-jetpack-sdk-0-2/' rel='bookmark' title='Beginning development with Jetpack SDK 0.2'>Beginning development with Jetpack SDK 0.2</a></li>
<li><a href='http://mitcho.com/blog/projects/keep-up-with-yet-another-related-posts-plugin-with-rss/' rel='bookmark' title='Keep up with Yet Another Related Posts Plugin with RSS!'>Keep up with Yet Another Related Posts Plugin with RSS!</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/checking-mochitest-test-coverage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Happy Halloween!</title>
		<link>http://mitcho.com/blog/projects/happy-halloween/</link>
		<comments>http://mitcho.com/blog/projects/happy-halloween/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 20:22:51 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Halloween]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[Panorama]]></category>
		<category><![CDATA[Stata Center]]></category>

		<guid isPermaLink="false">http://mitcho.com/?p=4024</guid>
		<description><![CDATA[Happy Halloween from the Firefox Panorama team! We carved some pumpkins a couple days ago in my department. I carved the Panorama logo above, but also one of the Stata Center. More Jack-O-Lantern photos, including great ones of Chomsky and Norvin Richards, are up on Flickr. Related posts: Halloween Recap Lantern Festival Jetpack Ambassadors in [...]
Related posts:<ol>
<li><a href='http://mitcho.com/blog/uncategorized/halloween-recap/' rel='bookmark' title='Halloween Recap'>Halloween Recap</a></li>
<li><a href='http://mitcho.com/blog/life/lantern-festival/' rel='bookmark' title='Lantern Festival'>Lantern Festival</a></li>
<li><a href='http://mitcho.com/blog/projects/jetpack-ambassadors-in-mv/' rel='bookmark' title='Jetpack Ambassadors in MV'>Jetpack Ambassadors in MV</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Happy Halloween from the Firefox Panorama team!</p>

<p><a rel="lightbox[halloween]" class="images" style="height:240px;width:159px;" href="http://farm5.static.flickr.com/4010/5126512526_a133bd89a8_b.jpg"><img style="height:240px;width:159px;" src="http://farm5.static.flickr.com/4010/5126512526_a133bd89a8_m.jpg"/></a>
<a rel="lightbox[halloween]" class="images" href="http://farm2.static.flickr.com/1247/5126517016_51405f43ea_b.jpg"><img src="http://farm2.static.flickr.com/1247/5126517016_51405f43ea_m.jpg"/></a></p>

<p>We carved some pumpkins a couple days ago in my department. I carved the Panorama logo above, but also one of the <a href="http://mitcho.com/blog/tag/stata-center/">Stata Center</a>.</p>

<p><a rel="lightbox[halloween]" class="images" href="http://farm2.static.flickr.com/1054/5126516580_758677e4ab_b.jpg"><img src="http://farm2.static.flickr.com/1054/5126516580_758677e4ab_m.jpg"/></a></p>

<p>More Jack-O-Lantern photos, including great ones of Chomsky and Norvin Richards, are <a href="http://www.flickr.com/photos/themitcho/sets/72157625267289968/">up on Flickr</a>.</p>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/uncategorized/halloween-recap/' rel='bookmark' title='Halloween Recap'>Halloween Recap</a></li>
<li><a href='http://mitcho.com/blog/life/lantern-festival/' rel='bookmark' title='Lantern Festival'>Lantern Festival</a></li>
<li><a href='http://mitcho.com/blog/projects/jetpack-ambassadors-in-mv/' rel='bookmark' title='Jetpack Ambassadors in MV'>Jetpack Ambassadors in MV</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/happy-halloween/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After the Deadline for Firefox</title>
		<link>http://mitcho.com/blog/projects/after-the-deadline-for-firefox/</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='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='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='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://yarpp.org'>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>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/projects/mozilla-by-the-numbers/' rel='bookmark' title='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='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='Light of Firefox (tomoshibi 灯) from Mozilla Japan'>Light of Firefox (tomoshibi 灯) from Mozilla Japan</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/after-the-deadline-for-firefox/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Light of Firefox (tomoshibi 灯) from Mozilla Japan</title>
		<link>http://mitcho.com/blog/link/light-of-firefox-tomoshibi-%e7%81%af-from-mozilla-japan/</link>
		<comments>http://mitcho.com/blog/link/light-of-firefox-tomoshibi-%e7%81%af-from-mozilla-japan/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 14:58:54 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[link]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[fx35]]></category>
		<category><![CDATA[Japan]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Mozilla Japan]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2370</guid>
		<description><![CDATA[Here at Mozilla Japan Firefox 3.5 Headquarters,1 we just launched the new and improved Light of Firefox (in Japanese, tomoshibi (灯)) for Firefox 3.5. The Light of Firefox is a real-time, interactive website which shows sparks on a map of Japan for every manual download of the new Firefox from mozilla.jp. The name tomoshibi means [...]
Related posts:<ol>
<li><a href='http://mitcho.com/blog/link/the-shiretoko-revolution-begins-now/' rel='bookmark' title='The (Shiretoko) Revolution Begins Now'>The (Shiretoko) Revolution Begins Now</a></li>
<li><a href='http://mitcho.com/blog/life/report-from-mozilla-party-jp-10/' rel='bookmark' title='Report from Mozilla Party JP 10!'>Report from Mozilla Party JP 10!</a></li>
<li><a href='http://mitcho.com/blog/projects/talking-ubiquity-in-japan-%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%81%ab%e3%81%a6%e7%99%ba%e8%a1%a8/' rel='bookmark' title='Talking Ubiquity in Japan: 拡張機能勉強会にて発表'>Talking Ubiquity in Japan: 拡張機能勉強会にて発表</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Here at Mozilla Japan Firefox 3.5 Headquarters,<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> we just launched the new and improved <a href="http://tomoshibi.mozilla.jp">Light of Firefox</a> (in Japanese, <em>tomoshibi</em> (灯)) for Firefox 3.5. The Light of Firefox is a real-time, interactive website which shows sparks on a map of Japan for every manual download of the new Firefox from <a href="http://mozilla.jp">mozilla.jp</a>.</p>

<p><a rel='lightbox' href='http://mitcho.com/blog/wp-content/uploads/2009/06/tomoshibi-large.png'><img class='limages' src="http://mitcho.com/blog/wp-content/uploads/2009/06/tomoshibi-medium.png" alt="tomoshibi-medium.png" border="0" width="600" height="460" /></a></p>

<p>The name <em>tomoshibi</em> means &#8220;torch&#8221; in Japanese. As a new Firefox brings new technologies and possibilities to all corners of the web, so too will the <em>tomoshibi</em> light up the night in Japan!</p>

<p>The site was designed and coded by <a href="http://minism.jp/">Daisuke Akatsuka</a> of the <a href="http://www.xlab.sfc.keio.ac.jp/">Keio Kakehi Lab (xlab)</a>, the same fine folks who brought you <a href="http://interforest.org">interFORest</a>.</p>

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

<li id="fn:1">
<p><a href="http://mitcho.com/blog/wp-content/uploads/2009/06/thecountdown-large.jpg" rel='lightbox'/><img class='images' src="http://mitcho.com/blog/wp-content/uploads/2009/06/thecountdown-thumb.jpg" alt="thecountdown-thumb.jpg" border="0" width="300" height="225" /></a>&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/link/the-shiretoko-revolution-begins-now/' rel='bookmark' title='The (Shiretoko) Revolution Begins Now'>The (Shiretoko) Revolution Begins Now</a></li>
<li><a href='http://mitcho.com/blog/life/report-from-mozilla-party-jp-10/' rel='bookmark' title='Report from Mozilla Party JP 10!'>Report from Mozilla Party JP 10!</a></li>
<li><a href='http://mitcho.com/blog/projects/talking-ubiquity-in-japan-%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd%e5%8b%89%e5%bc%b7%e4%bc%9a%e3%81%ab%e3%81%a6%e7%99%ba%e8%a1%a8/' rel='bookmark' title='Talking Ubiquity in Japan: 拡張機能勉強会にて発表'>Talking Ubiquity in Japan: 拡張機能勉強会にて発表</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/link/light-of-firefox-tomoshibi-%e7%81%af-from-mozilla-japan/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ten Grand Is Buried There</title>
		<link>http://mitcho.com/blog/projects/ten-grand-is-buried-there/</link>
		<comments>http://mitcho.com/blog/projects/ten-grand-is-buried-there/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 18:58:07 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[link]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[Microsft]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=2260</guid>
		<description><![CDATA[By now many of you have probably seen this new Microsoft Australia campaign, &#8220;Ten Grand Is Buried Here.com,&#8221;1 which calls Firefox &#8220;old&#8221; and Safari &#8220;boring&#8221;: I&#8217;m not sure what this is saying about me, but my immediate reaction was to go check whether tengrandisburiedthere.com was available. To my surprise, Microsoft had yet to snatch it [...]
Related posts:<ol>
<li><a href='http://mitcho.com/blog/projects/count-command-for-ubiquity/' rel='bookmark' title='Count command for Ubiquity'>Count command for Ubiquity</a></li>
<li><a href='http://mitcho.com/blog/link/grand-unified-weekly/' rel='bookmark' title='Grand Unified Weekly'>Grand Unified Weekly</a></li>
<li><a href='http://mitcho.com/blog/projects/rolling-out-the-roles/' rel='bookmark' title='Rolling out the Roles'>Rolling out the Roles</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>By now many of you have probably seen this new Microsoft Australia campaign, <a href='http://www.microsoft.com/australia/ie8/competition/'>&#8220;Ten Grand Is Buried Here.com,&#8221;</a><sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> which calls Firefox &#8220;old&#8221; and Safari &#8220;boring&#8221;:</p>

<p><a href='http://www.microsoft.com/australia/ie8/competition/'><img src="http://mitcho.com/blog/wp-content/uploads/2009/06/microsoft.png" alt="microsoft.png" border="0" width="650" height="462" /></a></p>

<p>I&#8217;m not sure what this is saying about me, but my immediate reaction was to go check whether tengrandisburied<b>t</b>here.com was available. To my surprise, Microsoft had yet to snatch it up! A few hours later, here&#8217;s the result:</p>

<p><a href='http://tengrandisburiedthere.com'><img src="http://mitcho.com/blog/wp-content/uploads/2009/06/tengrand-firefox1.png" alt="tengrand-firefox.png" border="0" width="650" height="366" /></a></p>

<p>Go ahead, <a href='http://tengrandisburiedthere.com'>visit the site</a> and give it a try!</p>

<p><small><b>Note:</b> Not being a marketing guy, I just threw some text together to introduce Firefox. If someone has some better copy for this display, <a href='mailto:tengrand-NOSPAM@mitcho.com'>please let me know</a>.</small></p>

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

<li id="fn:1">
<p>As of this writing, this domain actually has yet to serve anything.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/projects/count-command-for-ubiquity/' rel='bookmark' title='Count command for Ubiquity'>Count command for Ubiquity</a></li>
<li><a href='http://mitcho.com/blog/link/grand-unified-weekly/' rel='bookmark' title='Grand Unified Weekly'>Grand Unified Weekly</a></li>
<li><a href='http://mitcho.com/blog/projects/rolling-out-the-roles/' rel='bookmark' title='Rolling out the Roles'>Rolling out the Roles</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/ten-grand-is-buried-there/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Ubiquity in Firefox: Focus on Japanese</title>
		<link>http://mitcho.com/blog/projects/ubiquity-in-firefox-japanese/</link>
		<comments>http://mitcho.com/blog/projects/ubiquity-in-firefox-japanese/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 11:08:14 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[argument structure]]></category>
		<category><![CDATA[arguments]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[Japanese language]]></category>
		<category><![CDATA[linguistics]]></category>
		<category><![CDATA[mockup]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[verbs]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=1466</guid>
		<description><![CDATA[One of the eventual goals of the Ubiquity project is to bring some of its functionality and ideas to Firefox proper. To this end, Aza has been exploring some possible options for what that would look like (round 1, round 2). All of his mockups, however, use English examples. I&#8217;m going to start exploring what [...]
Related posts:<ol>
<li><a href='http://mitcho.com/blog/projects/three-ways-to-argue-over-arguments/' rel='bookmark' title='Three ways to argue over arguments'>Three ways to argue over arguments</a></li>
<li><a href='http://mitcho.com/blog/projects/contribute-how-your-language-identifies-its-arguments/' rel='bookmark' title='Contribute: how your language identifies its arguments'>Contribute: how your language identifies its arguments</a></li>
<li><a href='http://mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/' rel='bookmark' title='How natural should a natural interface be?'>How natural should a natural interface be?</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>One of the eventual goals of the <a href="http://ubiquity.mozilla.com">Ubiquity project</a> is to bring some of its functionality and ideas to Firefox proper. To this end, <a href="http://azarask.in">Aza</a> has been exploring some possible options for what that would look like (<a href="http://www.azarask.in/blog/post/ubiquity-in-firefox-round-1/">round 1</a>, <a href="http://www.azarask.in/blog/post/ubiquity-in-the-firefox-round-2/">round 2</a>). All of his mockups, however, use English examples. I&#8217;m going to start exploring what Ubiquity in Firefox might look like in different kinds of languages. Let&#8217;s kick this off with my mother tongue, Japanese.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>

<p><em>今後多様な言語に対応したFirefox内のUbiquityを検討していきますが、その中でも今日は日本語をとりあげます。後日日本語で同じ内容を投稿するつもりです。^^</em> <strong>日本語でのコメントも大歓迎です！</strong></p>

<p><span id="more-1466"></span></p>

<h3>What commands look like in Japanese</h3>

<p>Japanese is not only just a verb-final language but it is strongly <a href="http://en.wikipedia.org/wiki/head-final">head-final</a>, meaning it has postpositions instead of prepositions, direct objects come before verbs, and adjectives precede nouns. In terms of <a href="http://mitcho.com/blog/projects/three-ways-to-argue-over-arguments/">how it identifies its arguments</a>, every argument has a postposition/case marker (called a <em>particle</em> in the Japanese literature) which marks its role in the sentence.</p>

<p>A couple common particles we&#8217;ll look at in this example include -を (<em>-o</em>) which marks the direct object (accusative case, you might say) and -に (<em>-ni</em>) which acts like English &#8220;to&#8221; (dative case). The example sentence we&#8217;ll look at today is:</p>

<table border='0'>
<tr><td>ケーキを</td><td>ブレアに</td><td>送って</td><td>(ください)</td></tr>
<tr><td><em>kēki-o</em></td><td><em>burea-ni</em></td><td><em>okuʔte</em></td><td><em>kudasai</em></td></tr>
<tr><td>cake.ACC</td><td>Blair.DAT</em></td><td>send.IMP</td><td>&#8220;please&#8221;</td></tr>
<tr><td colspan='4'>&#8220;Please send a cake to Blair.&#8221;</td></tr>
</table>

<p>(Note: ʔ is a <a href="http://en.wikipedia.org/wiki/glottal stop">glottal stop</a>. ACC=accusative, DAT=dative, and IMP=imperative form.)</p>

<p>That final ください is often dropped in very casual speech and, as it adds no new information, we&#8217;ll assume today that the user will not enter it. Finally, Japanese doesn&#8217;t use spaces in their orthography, so the actual input would be &#8220;ケーキをブレアに送って&#8221;.</p>

<h3>Mockup 1: Particle identification</h3>

<p>One of the major hurdles in working with Japanese is that there are no spaces between the words. The natural first step is to split the sentence up into words, but this is a very difficult problem in <a href="http://en.wikipedia.org/wiki/Natural Language Processing">NLP</a> which <a href="http://research.microsoft.com/en-us/projects/japanesenlp/default.aspx">big name research groups</a> actively work on.</p>

<p>Fortunately, however, in <a href="http://www.azarask.in/blog/post/solving-the-it-problem/">&#8220;Solving the &#8216;It&#8217; Problem&#8221;</a> Aza suggests that, when we encounter ambiguity in our input, we can <em>go ask the user</em>. Great minds think alike, and computer scientist <a href="http://en.wikipedia.org/wiki/Jean E. Sammet">Jean E. Sammet</a> suggested the same idea <a href="http://doi.acm.org/10.1145/365230.365274">way back in 1953</a>:</p>

<blockquote>
  <p>Using English [or any other natural language] definitely involves the requirement for the computer (or more accurately its programming system) to query the user about any possible ambiguity.</p>
</blockquote>

<p>Parsing a sentence into words, in the limited context of Ubiquity, is really about identifying the particles which mark the end of each argument. Here&#8217;s a mockup of an application of the Sammet-Raskin Method to this problem:</p>

<p><center><img src="http://mitcho.com/blog/wp-content/uploads/2009/02/particle-id.png" alt="particle-id.png" border="0" /></center></p>

<p><strong>Pros:</strong> This completely takes care of the word-breaking problem, with minimal arbitration from the user. The parser knows <em>exactly</em> what arguments it&#8217;s dealing with and the visual feedback means the user won&#8217;t be surprised by the parse.</p>

<p><strong>Cons:</strong> Most of the particles/postpositions we&#8217;d have to deal with are a single character, so they may show up pretty often within words, in which case it would be quite annoying to have to press escape after each one.</p>

<p>An even smarter system, when wanting to mark a character as a particle, would first check to see that the argument (before the particle) is a valid argument type for that particle. If the check fails, it doesn&#8217;t have to bother with suggesting that character as a particle. This may cut down on the false positives.</p>

<h3>Smart suggestions: what works, what doesn&#8217;t</h3>

<p>One of the key suggestions in Aza&#8217;s mockups include a way to choose the prepositions while entering your arguments, based on the current verb.</p>

<p>For example, here, the <code>translate</code> command accepts a direct object, a <em>to</em>-object, and a <em>from</em>-object, so little <code>to</code> and <code>from</code> markers magically show up on the right side, making the appropriate prepositions (and by extension the appropriate arguments) discoverable. I think this line of thinking is a really good one, at least for English.</p>

<p><center><a class='limages' rel='lightbox[verbfinal]' href='http://farm4.static.flickr.com/3359/3272673947_05b4a21881_o.jpg'><img src='http://farm4.static.flickr.com/3359/3272673947_14b59c2aa1.jpg'></a></center></p>

<p><strong>In a verb-final language, however, you enter the arguments first and then the verb, making this strategy of suggesting appropriate arguments impossible.</strong> Note that in the user-contributed spreadsheet of <a href="http://mitcho.com/blog/projects/contribute-how-your-language-identifies-its-arguments/">how languages identify their arguments</a> we see that about a quarter of the languages we looked at are verb-final—that is, with Subject-Object-Verb canonical word order.</p>

<p>Instead of seeing this as a disadvantage, however, let&#8217;s see what verb-final order <em>allows</em> us to do.</p>

<h3>Mockup 2: A different kind of suggestion</h3>

<p>Not all verbs allow for every different kind of particle. For example, it doesn&#8217;t make sense to have a -に (<em>-ni</em>, &#8220;to&#8221; or dative) argument for a verb like 検索して (<em>kensaku-shite</em>, &#8220;search for&#8221;). In English we used this to suggest different types of arguments given a specific verb. In a verb-final language, we could do this <em>backwards</em>.</p>

<p><center><img src="http://mitcho.com/blog/wp-content/uploads/2009/02/verb-suggestion.png" alt="verb-suggestion.png" border="0" /></center></p>

<p><strong>Pros:</strong> This makes verbs highly discoverable, given a certain argument structure. For example, if you enter a few arguments, like a direct object, a &#8220;to&#8221; argument, and a &#8220;from&#8221; argument, it&#8217;ll suggest verbs that will do something to an object from somewhere to somewhere else. This way, you can easily try out verbs you didn&#8217;t even know existed. It&#8217;ll only give you verbs appropriate for your arguments, reducing the chance of writing a an infelicitous command.</p>

<p><strong>Cons:</strong> Without knowing what kinds of actions are available, it may be difficult to know what kinds of arguments to enter in the first place. If you have a specific verb or service you want to use it may be counterintuitive or downright tricky to start by guessing the right set of arguments.</p>

<p>In addition, from a technical point of view, this requires much of the prediction algorithms in English Ubiquity to run backwards. Ideally, there would be a closed (predetermined) class of particles and a predefined set of noun types. Verbs would not be able to define their own modifiers and noun classes as easily or freely as they can now.</p>

<h3>Conclusion</h3>

<p>The properties and challenges of Japanese grammar require that we not try to outright copy the English behavior but to think about what really makes sense in that language and that may be an important lesson as we move toward designing a localizable Ubiquity. Please post your questions and criticisms of this design or post your own mockups!</p>

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

<li id="fn:1">
<p>Happy <a href="http://www.un.org/depts/dhl/language/index.html">International Mother Language Day</a>! ^^&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
</li>

</ol>
</div>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/projects/three-ways-to-argue-over-arguments/' rel='bookmark' title='Three ways to argue over arguments'>Three ways to argue over arguments</a></li>
<li><a href='http://mitcho.com/blog/projects/contribute-how-your-language-identifies-its-arguments/' rel='bookmark' title='Contribute: how your language identifies its arguments'>Contribute: how your language identifies its arguments</a></li>
<li><a href='http://mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/' rel='bookmark' title='How natural should a natural interface be?'>How natural should a natural interface be?</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/ubiquity-in-firefox-japanese/feed/</wfw:commentRss>
		<slash:comments>86</slash:comments>
		</item>
		<item>
		<title>selecting from Ubiquity</title>
		<link>http://mitcho.com/blog/projects/selecting-from-ubiquity/</link>
		<comments>http://mitcho.com/blog/projects/selecting-from-ubiquity/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 15:50:13 +0000</pubDate>
		<dc:creator>mitcho</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla Planet]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://mitcho.com/blog/?p=1251</guid>
		<description><![CDATA[I created a new Ubiquity command that gives you super fast access to your MySQL database&#8217;s data: select. select Command for Ubiquity from mitcho on Vimeo. Get the command and set it up here. Related posts: External orders in WordPress queries Related posts brought to you by Yet Another Related Posts Plugin.
Related posts:<ol>
<li><a href='http://mitcho.com/blog/how-to/external-orders-in-wordpress-queries/' rel='bookmark' title='External orders in WordPress queries'>External orders in WordPress queries</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I created a new <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> command that gives you super fast access to your MySQL database&#8217;s data: <code>select</code>.</p>

<p><object width="649" height="366"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2750320&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=2750320&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="366"></embed></object><br /><small><a href="http://vimeo.com/2750320">select Command for Ubiquity</a> from <a href="http://vimeo.com/user1125625">mitcho</a> on <a href="http://vimeo.com">Vimeo</a>.</small></p>

<p>Get the command and set it up <a href='/code/select'>here</a>.</p>
<p>Related posts:</p><ol>
<li><a href='http://mitcho.com/blog/how-to/external-orders-in-wordpress-queries/' rel='bookmark' title='External orders in WordPress queries'>External orders in WordPress queries</a></li>
</ol>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://mitcho.com/blog/projects/selecting-from-ubiquity/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

