<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Frank Yan</title>
	<atom:link href="http://frankyan.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://frankyan.wordpress.com</link>
	<description>thoughts ported to a series of tubes</description>
	<lastBuildDate>Sun, 13 Nov 2011 09:59:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='frankyan.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Frank Yan</title>
		<link>http://frankyan.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://frankyan.wordpress.com/osd.xml" title="Frank Yan" />
	<atom:link rel='hub' href='http://frankyan.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Hacking the Firefox UI from the Web Console</title>
		<link>http://frankyan.wordpress.com/2011/07/19/hacking-firefox-ui-from-web-console/</link>
		<comments>http://frankyan.wordpress.com/2011/07/19/hacking-firefox-ui-from-web-console/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 05:42:47 +0000</pubDate>
		<dc:creator>frankyan</dc:creator>
				<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://frankyan.wordpress.com/?p=138</guid>
		<description><![CDATA[I am excited by the ongoing awesome work of our Developer Tools team and have been playing with Firefox&#8217;s new, rapidly improving Web Console. By default, commands typed into the console run in more or less the scope of the current content window, which is great for web development, but as a Firefox front-end engineer, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=138&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;">I am excited by the ongoing awesome work of our Developer Tools team and have been playing with Firefox&#8217;s new, rapidly improving <a href="http://blog.mozilla.com/devtools/2011/05/28/web-console-where-you-want-it-to-be-with-nicer-completion-and-more/" title="Web Console" target="external">Web Console</a>. By default, commands typed into the console run in more or less the scope of the current content window, which is great for web development, but as a Firefox front-end engineer, I often want to use it to hack on Firefox&#8217;s own UI. To make Web Console behave as if it were in the scope of the browser window, simply open <strong>about:</strong> in a new tab, open the Web Console <small>(ctrl/cmd+shift+k)</small>, and paste the following two lines:</p>
<pre style="font:12px/20px Consolas, Menlo, monospace;">Components.utils.import('resource://gre/modules/Services.jsm');
this.__proto__ = Services.wm.getMostRecentWindow('navigator:browser');</pre>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;">Then, <code style="font:12px Consolas, Menlo, monospace;">window</code> becomes a <code style="font:12px Consolas, Menlo, monospace;">ChromeWindow</code> that represents the current browser window, and autocompletion even works on its properties! For example, try typing the following: <br /><small>(Watch the tab bar when you press enter!)</small></p>
<pre style="font:12px/20px Consolas, Menlo, monospace;">gBrowser.selectedTab.style.cssText =
  '-moz-transition: .5s; -moz-transform: scaleX(-1);'</pre>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;">Happy hacking!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frankyan.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frankyan.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frankyan.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=138&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://frankyan.wordpress.com/2011/07/19/hacking-firefox-ui-from-web-console/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee287ff3bde2460aeb882f8e97f406f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">frankyan</media:title>
		</media:content>
	</item>
		<item>
		<title>Making tab closing as easy as click, click, click</title>
		<link>http://frankyan.wordpress.com/2010/07/30/making-tab-closing-easy/</link>
		<comments>http://frankyan.wordpress.com/2010/07/30/making-tab-closing-easy/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 07:04:14 +0000</pubDate>
		<dc:creator>frankyan</dc:creator>
				<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://frankyan.wordpress.com/?p=64</guid>
		<description><![CDATA[The best user interface anticipates actions that you want to perform and never gets in your way. When planning out the new tabbed browsing features for Firefox 4, this principle guided our focus. One of the things we think Google Chrome really nailed is its tab closing behavior: when you close a tab with the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=64&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">The best user interface anticipates actions that you want to perform and never gets in your way. When planning out the new tabbed browsing features for Firefox 4, this principle guided our focus. One of the things we think Google Chrome really nailed is its tab closing behavior: when you close a tab with the mouse, the remaining tabs shift or resize so that the next tab’s close tab button moves right under your cursor. This way, you can click the same spot to close the next tab.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Back in December, Basil Safwat wrote a <a href="http://www.theinvisibl.com/news/2009/12/08/a-piece-with-a-lot-of-screenshots-about-the-close-tab-behaviour-in-google-chrome/">fantastic piece</a>, full of screenshots, that details these behaviors.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">We&#8217;re working on implementing this in Firefox, so it will be super easy to close a whole row of tabs without moving your cursor a pixel:</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:center;"><span style="text-align:center; display: block;"><a href="http://frankyan.wordpress.com/2010/07/30/making-tab-closing-easy/"><img src="http://img.youtube.com/vi/bMYkzxWB_Rg/2.jpg" alt="" /></a></span></p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:center;"><a href="http://youtu.be/bMYkzxWB_Rg?html5=1" target="youtube">[ YouTube HTML5 (if available) ]</a></p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">We are also taking it a step further and including support for the tab overflow mode that Firefox has had for a while. No matter how your tabs scroll and move and resize, you can always count on the close button being in the right location when you need to close them:</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:center;"><span style="text-align:center; display: block;"><a href="http://frankyan.wordpress.com/2010/07/30/making-tab-closing-easy/"><img src="http://img.youtube.com/vi/tRlyMOkhu6c/2.jpg" alt="" /></a></span></p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:center;"><a href="http://youtu.be/tRlyMOkhu6c?html5=1" target="youtube">[ YouTube HTML5 (if available) ]</a></p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Finally, let&#8217;s talk about a design decision made in Firefox’s earlier days: we placed the tab close buttons on the right side of each tab for all platforms, including OS X. To some people, this seems to break with the design of Apple&#8217;s platform, since Safari and OS X windows have close buttons on the left side instead. (It&#8217;s also worth noting that several of Apple&#8217;s applications have the close button on the right too — iChat, Pages and Automator all do this in <a href="http://code.google.com/p/chromium/issues/detail?id=12035#c33">various parts</a> of their UI.)</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Now imagine if we put the close buttons on the left. With that configuration, when closing the rightmost tab, we would have to shift the remaining tabs to the right to move the next close button to the same place, leaving an awkward gap on the left side of the tab bar. Placing the close button on the right (for left-to-right locales) is the more intuitive choice.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Another important aspect we have found is that favicons on tabs are the primary way people identify and navigate tabs, so we give them prominent placement.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">This optimized close/resize behavior is just one of the many improvements to tabbed browsing we&#8217;re working on. Be sure to check out other new tabbed browsing features in upcoming Firefox 4 betas!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frankyan.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frankyan.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frankyan.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=64&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://frankyan.wordpress.com/2010/07/30/making-tab-closing-easy/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee287ff3bde2460aeb882f8e97f406f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">frankyan</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello, Mozilla; Goodbye, Paper Cuts!</title>
		<link>http://frankyan.wordpress.com/2010/07/24/hello-mozilla-goodbye-paper-cuts/</link>
		<comments>http://frankyan.wordpress.com/2010/07/24/hello-mozilla-goodbye-paper-cuts/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 21:41:06 +0000</pubDate>
		<dc:creator>frankyan</dc:creator>
				<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://frankyan.wordpress.com/?p=21</guid>
		<description><![CDATA[Hello, Planet Mozilla! I&#8217;m Frank Yan, and I&#8217;m working as a Firefox engineering intern. This means that I get to spend my summer making Firefox more awesome! As one of my side projects, I&#8217;ve been hacking on &#8220;paper cut&#8221; issues, which are small bugs that get in your way and little features that you wish [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=21&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Hello, Planet Mozilla! I&#8217;m Frank Yan, and I&#8217;m working as a Firefox engineering intern. This means that I get to spend my summer making Firefox more awesome! As one of my side projects, I&#8217;ve been hacking on &#8220;<a href="http://limi.net/articles/papercuts">paper cut</a>&#8221; issues, which are small bugs that get in your way and little features that you wish your browser had.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">The first <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=565783">paper cut</a> that I tackled finds its origins in 2006. That year, tabbed browsing was becoming all the rage, and Mozilla shipped Firefox 2 as its first release to handle tab overflow. Since most mouse wheels only supported vertical scrolling, we enabled the horizontal tab bar to be scrolled by vertical scroll events too. After laptops started rolling out with multi-touch trackpads, users could scroll in both axes simultaneously using two fingers. An unexpected side effect was that, when scrolling with the trackpad even slightly diagonally, the tab bar would sometimes try to scroll both left and right, resulting in sporadic bounces. The effect wasn&#8217;t exactly spectacular, so I added logic to scroll the bar only when scroll events are consistently along a particular axis. This will provide a smoother scrolling experience in Firefox 4.</p>
<p style="font:17px/24px Baskerville, Cambria, Times, 'Times New Roman', serif;text-align:justify;margin-right:-5px;">Stay tuned for more patched-up papercuts!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/frankyan.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/frankyan.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/frankyan.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=frankyan.wordpress.com&amp;blog=9379684&amp;post=21&amp;subd=frankyan&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://frankyan.wordpress.com/2010/07/24/hello-mozilla-goodbye-paper-cuts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee287ff3bde2460aeb882f8e97f406f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">frankyan</media:title>
		</media:content>
	</item>
	</channel>
</rss>
