<?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>felipe's Blog</title>
	<atom:link href="http://felipe.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://felipe.wordpress.com</link>
	<description>felipc traveling through the blogosphere</description>
	<lastBuildDate>Tue, 03 Jan 2012 00:16:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='felipe.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>felipe's Blog</title>
		<link>http://felipe.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://felipe.wordpress.com/osd.xml" title="felipe&#039;s Blog" />
	<atom:link rel='hub' href='http://felipe.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Initial electrolysis patches for desktop Firefox now in mozilla-central</title>
		<link>http://felipe.wordpress.com/2011/07/20/initial-electrolysis-patches-for-desktop-firefox-now-in-mozilla-central/</link>
		<comments>http://felipe.wordpress.com/2011/07/20/initial-electrolysis-patches-for-desktop-firefox-now-in-mozilla-central/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 01:14:58 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=263</guid>
		<description><![CDATA[The last remaining patch to get Firefox to open and stand up with electrolysis enabled was landed late last week, and, after a few days baking, it has stuck! This means that anyone with a mozilla-central tree can now compile and test Firefox with the content running in a separated process, and start trying your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=263&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The last remaining patch to get Firefox to open and stand up with electrolysis enabled was landed late last week, and, after a few days baking, it has stuck! This means that anyone with a mozilla-central tree can now compile and test Firefox with the content running in a separated process, and start trying your own features and see how well they work or not (or if you can even get to them in the first place). To do this you just need to add one extra configure flag to your mozconfig:</p>
<p>ac_add_options ‐‐enable-e10s-compat</p>
<p>You&#8217;re now wondering why this is a compile-time flag and not a simple pref. This flag doesn&#8217;t do a whole lot, it mainly switches the main pref browser.tabs.remote to true, but it also switches off hardware acceleration and disables some code that partially break the UI with the pref on. The goal is to get rid of the flag relatively soon (and only use the pref), but for now it&#8217;s the easiest way to make sure everyone can focus on the important bits rather than having broken pieces getting in the way.</p>
<h3>Things to know after you get the build</h3>
<p>The first tab of each window is <em>not</em> remote. All the other tabs that you open are. Progress indicators, favicons, session history and titles don&#8217;t work yet (session history and titles are coming soon). Most input like mouse, mouse scroll, keyboard and focus works (although there are corner cases not covered yet). Ah, do not use it with your main profile! Results are unknown.</p>
<p>The content is hosted by the plugin-container process. You should be able to kill it and the content from the remote tabs will disappear (when Firefox is re-rendered, usually when you re-focus the window). You can then open new tabs and the process is recreated just fine.</p>
<p>With these patches in mozilla-central the goal is to make sure everyone can see the progress and test their new features with electrolysis on, and as importantly, do not break what currently already works.</p>
<p>The front-end tasks are being tracked by <a title="Electrolysis front-end tasks" href="https://bugzilla.mozilla.org/show_bug.cgi?id=fxe10s">bug 653064</a>, and platform bugs marked with <a title="Platform electrolysis work" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3Ae10s">[e10s]</a> in the whiteboard. Those lists are in no way comprehensive, so do file bugs or ask around with important things that you notice are not tracked yet.</p>
<h3>If you want to know more about the patches</h3>
<p>On the platform side, the patches that landed added support to input events and were done in <a title="Platform support for focus and key events" href="https://bugzilla.mozilla.org/show_bug.cgi?id=583976">bug 583976</a>. nsEventStateManager and nsFocusManager were made aware of the content separation, and when input/focus events are targeted at the content <em>area</em> (i.e. the &lt;browser&gt; element), they&#8217;re automatically forwarded (asynchronously) to the content process. On the front-end side, some code was changed to not assume that the content docShell exists, and messages are passed through the message manager when appropriate (e.g. loadURI). I&#8217;ll talk more about these details in other posts.</p>
<h3>Next steps</h3>
<p>Now that these base patches are in the tree, on the front-end side we&#8217;re working on making sure more operations work with electrolysis. Drew has got a neat logging for forbidden chrome-&gt;content operations in <a title="Dynamic analysis of chrome to content operations" href="https://bugzilla.mozilla.org/show_bug.cgi?id=666713">bug 666713</a>, and the goal is to reduce as much as possible these warning for basic navigation tasks in Firefox, so that the noise can be reduced and we can tackle more features more efficiently. I&#8217;ve got more code ready (and some already reviewed) but which I can&#8217;t land right now because they&#8217;re triggering other [un-]related bugs. I&#8217;m already filing these bugs and asking around about them but expect me to start pinging more frequently to ask for help in figuring out and fixing bugs on broader areas of the code.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=263&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2011/07/20/initial-electrolysis-patches-for-desktop-firefox-now-in-mozilla-central/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>New add-on: aaapptabs</title>
		<link>http://felipe.wordpress.com/2011/03/23/aaapptab/</link>
		<comments>http://felipe.wordpress.com/2011/03/23/aaapptab/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 08:23:19 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=257</guid>
		<description><![CDATA[I&#8217;ve been meaning to write a simple add-on for some time now, and today felt the perfect day to do it. I&#8217;ve noticed that all the sites that I use as app tabs are indeed web apps (or close enough); they manage their own navigation and URLs, such that I rarely need to use the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=257&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to write a simple add-on for some time now, and today felt the perfect day to do it. I&#8217;ve noticed that all the sites that I use as app tabs are indeed web apps (or close enough); they manage their own navigation and URLs, such that I rarely need to use the navigation bar on those sites. So why not get even more screen real estate for them?</p>
<p><a title="Aaaptabs" href="https://addons.mozilla.org/en-US/firefox/addon/aaapptabs/">Aaapptabs</a> does just that. Like the Add-ons manager, it hides the browser toolbars for all app tabs. The result is that, for Windows 7 with a maximized screen, the Firefox UI takes a grand total of 27 pixels in height. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/aaapptabs/"><img class="aligncenter" title="Aaapptabs" src="http://i.imgur.com/q4iwQ.png" alt="" width="617" height="222" /></a></p>
<p>Not unexpectedly, writing the add-on using the <del>Jetpack</del> <a title="Mozilla Add-on SDK" href="https://github.com/mozilla/addon-sdk">Add-on SDK</a> was a blast. The SDK is in 1.0 beta 4 and the existing APIs are really solid. The whole add-on code is less than 50 lines, it&#8217;s restartless, it deals correctly with being disabled/re-enabled. If you temporarily need to view the hidden toolbars, just go to the Add-ons manager and disable the add-on. Changes take effect instantly.</p>
<p><a title="Aaapptabs" href="https://addons.mozilla.org/en-US/firefox/addon/aaapptabs/">Install it from AMO</a> or <a title="Aaapptabs source on github" href="https://github.com/felipc/Aaapptabs/blob/master/lib/main.js">view the source</a>.</p>
<p>Hat tip: combine it with <a title="Easy App Tabs" href="https://addons.mozilla.org/en-US/firefox/addon/easy-app-tabs/">Easy app tabs</a> to toggle them with a double click</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=257&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2011/03/23/aaapptab/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>

		<media:content url="http://i.imgur.com/q4iwQ.png" medium="image">
			<media:title type="html">Aaapptabs</media:title>
		</media:content>
	</item>
		<item>
		<title>Animation FPS tests</title>
		<link>http://felipe.wordpress.com/2011/02/09/animation-fps-tests/</link>
		<comments>http://felipe.wordpress.com/2011/02/09/animation-fps-tests/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 20:18:48 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=248</guid>
		<description><![CDATA[Patrick Walton has been demonstrating how useful some of the new animation APIs are with his framerate monitor add-on, which has already helped to understand some of our performance characteristics and to find various possible improvements for opportunistic wins in our rendering speed. This got me thinking on how we could use this code to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=248&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Patrick Walton has been demonstrating how useful some of the new <a title="mozRequestAnimationFrame" href="https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame">animation</a> <a title="mozPaintCount" href="https://developer.mozilla.org/en/DOM/window.mozPaintCount">APIs</a> are with his <a title="Framerate Monitor" href="https://github.com/pcwalton/firefox-framerate-monitor">framerate monitor</a> add-on, which has already helped to understand some of our performance characteristics and to find <a title="bugs found with framerate monitor" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3Aframe-rate-monitor">various</a> possible improvements for opportunistic wins in our rendering speed.</p>
<p>This got me thinking on how we could use this code to create tests to measure animation speeds and make sure that they don&#8217;t regress. One important goal that we have coming soon is to ensure that our UI is always responsive and animations are smooth, and that will certainly need some kind of testing framework.</p>
<p>So I set out on a little weekend project to include the framerate monitor in our mochitest framework. The main goal was that it should be useful to measure both:</p>
<ul>
<li> stand-alone animations, like creating tests for various -moz-transition combinations and sequences;</li>
<li>animations in the UI itself, in a way that every time we add a new animated feature to the UI we should be able to write a test to trigger it and profile its FPS</li>
</ul>
<p>With that in mind, I went to the simple approach of including the monitor as part of  the SimpleTest, such that it can be used from mochitest-plain, mochitest-browser-chrome, etc.</p>
<p>I wrote two tests to begin with and see how it behaves. One is a simple test that triggers a bunch of -moz-transition properties on various elements. The other one came from an interesting observation that Patrick saw some weeks ago: one of the untold benefits of the new and gorgeous about:home is that it&#8217;s also faster to resize. Of course, we should never have an entry page that is slow to resize, so the test opens a new browser window and resizes it during some seconds. Currently, for simplicity&#8217;s sake, both tests get the average FPS during the process and fails if it was less than 30.</p>
<p>The <a title="Framerate tests" href="http://hg.mozilla.org/users/felipc_gmail.com/framerate-tests/file/7a29c9b2a068/fps">current patch</a> can be found in this <a title="Repo" href="http://hg.mozilla.org/users/felipc_gmail.com/framerate-tests/">hg queue</a>. Also, for those interested in this area, these problems are also being tackled from different angles too: for example, Ted is working on adding <a title="Add event loop responsiveness instrumentation" href="https://bugzilla.mozilla.org/show_bug.cgi?id=606574">event loop instrumentation</a>, and already has some patches for Linux and Win.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=248&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2011/02/09/animation-fps-tests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>First steps into an e10s Firefox</title>
		<link>http://felipe.wordpress.com/2010/12/16/first-steps-into-an-e10s-firefox/</link>
		<comments>http://felipe.wordpress.com/2010/12/16/first-steps-into-an-e10s-firefox/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 01:08:05 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=238</guid>
		<description><![CDATA[Last month we started working on a project to stand up a Firefox instance running e10s. Now we&#8217;ve got some first tryserver builds (links below) in which it&#8217;s possible to interact with the webpages, so if you&#8217;re interested I&#8217;m going to talk about how was the process to get to this point so far, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=238&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last month we started working on a project to stand up a Firefox instance running e10s. Now we&#8217;ve got some first tryserver builds (links below) in which it&#8217;s possible to interact with the webpages, so if you&#8217;re interested I&#8217;m going to talk about how was the process to get to this point so far, and what are the next steps to do.</p>
<p>First we started by using the <a href="http://mxr.mozilla.org/mozilla-central/source/dom/ipc/test.xul">test-ipc.xul</a> to check how the platform support for e10s was working. This is a simple XUL window with a  &lt;browser remote=&#8221;true&#8221;&gt; element and some test functions. Upon disabling hardware acceleration and making same-compartment checks non-fatal, the window stood up and displayed the webpage.</p>
<p>After that we went to get the regular Firefox browser window standing up. There were various points during the startup functions (BrowserStartup and delayedStartup) that threw exceptions and thus the functions never completed. Most of the cases are calls trying to access .contentDocument or .docShell properties, which won&#8217;t exist for content anymore and will have to be replaced for messages between the processes. After commenting out a few places and making small changes to others, those two functions completed and the UI began to work (for a very broad definition of work, of course).</p>
<p>The next major step was to set up a mechanism to pass events from chrome to content. After talking with smaug, we went for a mechanism tied to the EventStateManager that will automatically forward selected events to content if their target ends up being the  &lt;browser&gt; element, and one that is hopefully easy to extend for each new event that we want to add later. This just involves adding them to a whitelist and writing some simple code to {de}serialize them at the IPC level.</p>
<p>With this mechanism in place we already hooked up mouse, mouse scroll and basic keyboard events, plus a kinda-broken focus (and a simple plan to try to hook something to the focus manager)</p>
<p>At this point, we have a Firefox window starting up where you can load up tabs and interact with the pages at a basic level. There&#8217;s not progress indicators or tab titles yet, which makes it sometimes hard to tell if things are working or not. Also, focus get lost often, specially if you try to close tabs, which is not working either <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>In any case, a lot of people are curious to test it and to get a feeling of how things are working, so there are try builds available: <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/felipc@gmail.com-36daba26114d/">OS X</a>, <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/felipc@gmail.com-36daba26114d/">Linux</a>, and <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/felipc@gmail.com-d038ab34e069">Windows</a>.<br />
Remember that all of this is only planned for future versions of Firefox. Use the builds with a testing profile and expect things to break!</p>
<p><em>Update</em>: forgot to mention that you need to type full URLs, including the protocol:// part. Also, if you&#8217;re interested, <a href="http://hg.mozilla.org/try/pushloghtml?changeset=d038ab34e069">these are the changesets</a> pushed to this build, and I&#8217;m keeping the patches (plus some others) in a <a href="http://hg.mozilla.org/users/felipc_gmail.com/e10s-mq/">patch queue</a>.</p>
<p>In the next blog posts I&#8217;ll talk more about some of the specific fixes so far, the attempts to run tests on these builds, and some of the approaches that will be needed to adapt the front-end to e10s.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/238/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=238&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/12/16/first-steps-into-an-e10s-firefox/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>Multitouch in Firefox 4</title>
		<link>http://felipe.wordpress.com/2010/08/11/multitouch-in-firefox4/</link>
		<comments>http://felipe.wordpress.com/2010/08/11/multitouch-in-firefox4/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 18:41:23 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=212</guid>
		<description><![CDATA[The updated Firefox 4 Beta was released today, and one the new features in this beta is the multitouch API that we&#8217;ve been working on for the past months. This means that regular webpages are capable of using  multitouch input, allowing webdevelopers  to create new interactive experiences for their websites. You can read all about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=212&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>The updated <a title="Firefox 4 beta" href="http://firefox.com/beta">Firefox 4 Beta</a> was released today, and one the new features in this beta is the <a href="https://developer.mozilla.org/en/DOM/Touch_events">multitouch API</a> that we&#8217;ve been working on for the past months. This means that regular webpages are capable of using  multitouch input, allowing  webdevelopers  to create new interactive experiences for their  websites. You can read all about it and see a really cool demo of what&#8217;s possible in Paul  Rouget&#8217;s <a href="http://hacks.mozilla.org/2010/08/firefox4-beta3/">article on hacks.mozilla.org</a>.</div>
<div>On this post I&#8217;ll give a broader overview of the APIs, samples and development methods.</div>
</p>
<h3 id="magicdomid7">How to use the APIs</h3>
<div id="magicdomid9">The  multitouch API is very simple and meant to get web developers started  quickly. It works through the use of DOM Events, similarly to how other  kinds of input work (e.g. mouse, keyboard). It consists of three different events: <em>MozTouchDown</em>, <em>MozTouchMove</em>, <em>MozTouchUp</em>, which are very similar to the mouse events already familiar to web developers.</div>
<div>They  have all the common properties from mouse events, plus an extra field  called streamId, which is a random number that is an unique identifier  for each point of contact, and this number is kept constant while you  don&#8217;t lift that finger from the screen. It makes it possible to  accurately track the movement of each finger without mixing them.</div>
<p><pre class="brush: jscript;">
// Some simple usage example:
document.addEventListener(&quot;MozTouchDown&quot;, function(event) {
  trackedFingers[event.streamId] = {
    X: event.clientX,
    Y: event.clientY
  }
}, false);

document.addEventListener(&quot;MozTouchMove&quot;, function(event) {
  //update X/Y positions, do something interesting
}, false);

document.addEventListener(&quot;MozTouchUp&quot;, function(event) {
  delete trackedFingers[event.streamId];
}, false);
</pre></p>
<h4>Supporting API: .mozInputSource</h4>
<p id="magicdomid19">There  are two other supporting APIs. If you don&#8217;t need to deal with <em>multiple</em> input, but still want to handle touch or pen input  differently, you can access the .mozInputSource property of regular  mouse events. With this property,  you can tell if that event was generated by a mouse, by pen or by touch  input. This property is not only available on low-level mouse input  events, but also on <em>click</em>, <em>dblclick</em> and drag&amp;drop events.</p>
<p><pre class="brush: jscript;">document.addEventListener(&quot;click&quot;, function(event) {
alert(event.mozInputSource);
}, false);</pre></p>
<h4>Supporting API: CSS media query</h4>
<div id="magicdomid26">If you want to make style changes for your webpage when  being accessed using a touch-enabled device, you can use the  -moz-touch-enabled CSS media query and add your custom style inside that  selector</div>
<p><pre class="brush: css;">@media all and (-moz-touch-enabled) {
  /* touch specific css goes here */
}</pre></p>
<h3>Code snippets and examples in the wild</h3>
<p><a href="http://felipe.files.wordpress.com/2010/08/887168231d6840898b02aba761a05df1.png"><img class="aligncenter size-medium wp-image-227" title="Fingers tracking" src="http://felipe.files.wordpress.com/2010/08/887168231d6840898b02aba761a05df1.png?w=300&#038;h=239" alt="" width="300" height="239" /></a></p>
<div id="magicdomid34">While  the APIs were being developed, there was a handful of demos created to  test the implementation and to highlight some interesting use cases for  touch. You can see some of those demos here (<a href="http://vimeo.com/13992171">video</a> and <a href="http://www.malditocrc.com.ar/peregrino/lab/multitouch/demos/mt-demos.zip">source code</a>):</div>
<div><span style="text-align:center; display: block;"><a href="http://felipe.wordpress.com/2010/08/11/multitouch-in-firefox4/"><img src="http://img.youtube.com/vi/3uRAyHsC6nI/2.jpg" alt="" /></a></span></div>
<div>Other people have been trying the work in progress and built more examples. <a href="http://weblog.bocoup.com/multi-touch-screen-input-with-javascript">Al MacDonald</a> has a very nice <a href="http://vimeo.com/11346141">generative music mash-up</a> of multitouch with the experimental <a href="https://wiki.mozilla.org/Audio_Data_API">Audio data API</a>.</div>
</p>
<h3>How to get started on development</h3>
<div id="magicdomid39">There  are various ways to get started developing for multitouch, depending on  the equipment and OS that you use. At the moment, we support devices  that are compatible with the Windows 7 multitouch input, such as various  models of notebooks and touchscreen-monitors.</div>
<div id="magicdomid40">However,  it&#8217;s possible to get homemade devices that uses the TUIO protocol to  work, using projects such as <a href="http://multitouchvista.codeplex.com">MultitouchVista</a>. It features a set of  drivers that gets the input from various sources, such as homemade touch  tables, multiple mice, among others, and outputs data to the Windows&#8217;  standard APIs.</div>
<div id="magicdomid41">If  you have a spare webcam and a free weekend for a DIY project you might  be able to build one yourself following various good tutorials that  exist.</div>
</p>
<div id="magicdomid43">In  addition to that, <a href="http://twitter.com/peregrinogris">Hernán Colmeiro</a> has created a <a href="https://addons.mozilla.org/en-US/firefox/addon/214783/">multitouch simulator</a> for his Google Summer of Code project. This is a platform-independent  Firefox add-on that is able to replay multitouch input from hand-written  or recorded JSON files. This add-on is built using Jetpack, and you  don&#8217;t even need to restart Firefox to install it. You can use it to  develop and test a webpage for multitouch input and your code doesn&#8217;t  need any special handling for the add-on; it works as is. You can read  more about it, watch a screencast of how it works and see a standalone demo of its playback feature over at <a href="http://www.malditocrc.com.ar/peregrino/2010/08/new-recording-features-for-the-mt-simulator/">Hernan&#8217;s  blog</a>.</div>
</p>
<h3>Feedback</h3>
<div id="magicdomid47">We hope this API is useful to get this feature in the hands of web developers. We will soon be starting dicussions to see how to standardize these APIs at the W3C.  Seeing  what people will create with it and getting feedback will be invaluable  to make sure that the standard is useful for the web developers.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=212&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/08/11/multitouch-in-firefox4/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>

		<media:content url="http://felipe.files.wordpress.com/2010/08/887168231d6840898b02aba761a05df1.png?w=300" medium="image">
			<media:title type="html">Fingers tracking</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating my Jetpack dev environment</title>
		<link>http://felipe.wordpress.com/2010/04/14/creating-my-jetpack-dev-environment/</link>
		<comments>http://felipe.wordpress.com/2010/04/14/creating-my-jetpack-dev-environment/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 19:14:01 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=200</guid>
		<description><![CDATA[On the last couple of days I&#8217;ve started playing with the new Jetpack SDK, and I&#8217;m still working on understanding the main concepts of its development environment. I&#8217;m interested to find a good workflow while working on Jetpack (and to know how others are doing it), and since more people might be wondering the same, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=200&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On the last couple of days I&#8217;ve started playing with the new Jetpack SDK, and I&#8217;m still working on understanding the main concepts of its development environment. I&#8217;m interested to find a good workflow while working on Jetpack (and to know how others are doing it), and since more people might be wondering the same, I&#8217;ll blog here about the dev env that I started building for me.</p>
<p>By far, my favorite tool to work with JS is the <strong>extremely awesome</strong> (this is an understatement) <a href="http://www.squarefree.com/shell/">JS Shell</a> running from the <a href="https://addons.mozilla.org/en-US/firefox/addon/7434">Extension Developer</a> add-on. So, what I wanted was to be able to get Jetpack&#8217;s context inside the shell.</p>
<p>To do this, I first created a new Firefox profile (called <em>dev</em>) and installed said add-on on it. Now, we need to run Jetpack using that profile. To run Jetpack on Firefox, except when running it from the test harness, you need to run it from a package with a <code>main.js</code> module. So, I created a simple package from the <a href="https://jetpack.mozillalabs.com/sdk/0.2/docs/#guide/packaging">`cfx docs` tutorial</a> and added a main.js module. Now, we can load up our Firefox profile from this package:</p>
<p><code>(jetpack-sdk)felipe: my-first-package$ <strong>cfx run -a firefox -P path/to/dev/profile</strong></code></p>
<p>With Firefox loaded, Tools &gt; Extension Developer &gt; Javascript Shell gets our shell. Now, we need to get Jetpack&#8217;s context. For this, we have to import the Cuddlefish module that has the Loader, and then load both the jetpack-core and our package libs. The path to the resources depends on the package you&#8217;re running from, so considering our package is called &#8220;my-first-package&#8221;, we can do:</p>
<pre><span style="color:#0000ff;"><strong>var a = {};
Components.utils.import("resource://my-first-package-jetpack-core-lib/cuddlefish.js", a);</strong>
</span>[Object BackstagePass]
<span style="color:#0000ff;"><strong>var jetpack = a.Loader({rootPaths:
["resource://my-first-package-jetpack-core-lib",
"resource://my-first-package-my-first-package-lib/"]
});</strong></span></pre>
<p>Done. Now the <code>jetpack</code> object have jetpack&#8217;s main functionality, and you can now <code>require</code> your modules from it. Let&#8217;s see it using the example module from the tutorial, which have an add function:</p>
<pre><span style="color:#0000ff;"><strong>jetpack.console.log("Hello World"); //message was printed at the console
var mymodule = jetpack.require("my-module");
mymodule.add</strong>
</span>function add(a, b) {
  return a + b;
}
<span style="color:#0000ff;"><strong>mymodule.add(1, 2)</strong></span>
3</pre>
<p>And that&#8217;s it! Thanks to <a href="http://blog.mozilla.com/adw/">Drew</a> for giving the ideas on how to make this work.</p>
<p>While we&#8217;re at it, there&#8217;s another thing that I&#8217;m still trying to understand. It looks to me that there&#8217;s just a thin line between developing an &#8220;add-on using the jetpack sdk&#8221; and &#8220;new modules for the jetpack core sdk&#8221;. Is that true? My current plan for developing these modules goes like this: develop it into an indepedent package, (so I can <code>cfx run</code> from that package and have some dummy consumers on main.js to help development), and after it&#8217;s finished, I move the module-name.js and tests to jetpack-core and get rid of my original package. Does this sound about right?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=200&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/04/14/creating-my-jetpack-dev-environment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing async tests</title>
		<link>http://felipe.wordpress.com/2010/03/21/writing-async-tests/</link>
		<comments>http://felipe.wordpress.com/2010/03/21/writing-async-tests/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 06:00:27 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=191</guid>
		<description><![CDATA[I don&#8217;t know about you, but I&#8217;m always amazed every time I see some clever usage of generator functions (the yield keyword). From things like speeding up your UI, to implementing thread pools, or computing prime numbers and infinite sequences, they&#8217;re always interesting. Last week, Shawn showed me a cool async pattern using generators which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=191&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know about you, but I&#8217;m always amazed every time I see some clever usage of generator functions (the yield keyword). From things like <a href="http://mitcho.com/blog/projects/performance-vs-responsiveness/">speeding up your UI</a>, to <a href="http://www.neilmix.com/2007/02/07/threading-in-javascript-17/">implementing thread pools</a>, or <a href="http://linuxgazette.net/100/pramode.html">computing prime numbers and infinite sequences</a>, they&#8217;re always interesting. Last week, <a href="http://shawnwilsher.com/">Shawn</a> showed me a cool async pattern using generators which I really liked so I decided to blog about it.</p>
<p>Let&#8217;s start with the problem: I was writing some set of tests which were highly dependent on triggering actions and waiting events propagation to continue. This usually involves a lot of callbacks from short timeouts or event listeners, and you end up with code like this: [semi-pseudocode]</p>
<pre>function goOn() {
  doThing3();
  setTimeout(finishUp, 10);
}

function test() {
  doThing1();
  setTimeout(function() {
    addEventListener("interesting-event", goOn, false);
    doThing2();
  }, 10);
}</pre>
<p>Which is the modern day equivalent of spreading <code>goto</code>s everywhere on your code (<em>&#8220;oh, the horror!&#8221;</em>), and makes it very hard to follow the intended logic, specially if you didn&#8217;t aptly name your functions with numbers to help you out.</p>
<p>To improve that, we can avoid nesting all of the calls and write a sequential function, and use the yield keyword to exit the function at one point and then continue running it from that point on. It&#8217;s like a set of sleep/wakeUp calls, and all the wakeUp control won&#8217;t be so mixed with our logic. So we would write as follows: </p>
<pre>function wakeUp() {
  testGen.next();
}
function test() {
   doThing1();
   setTimeout(wakeUp, 10); yield;
   doThing2();
   addEventListener("interesting-event", wakeUp, false); yield;
   doThing3();
   setTimeout(wakeUp, 10); yield;
   finishUp();
}</pre>
<p>Cleaner, isn&#8217;t it?  Oh, and just a note, when you use this make sure you don&#8217;t end up subtly changing the logic of your calls, unlike &#8220;a friend of mine&#8221; who did this and broke the tests he had written. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=191&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/03/21/writing-async-tests/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>Status update on Multitouch</title>
		<link>http://felipe.wordpress.com/2010/03/01/status-update-on-multitouch/</link>
		<comments>http://felipe.wordpress.com/2010/03/01/status-update-on-multitouch/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 17:27:59 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=185</guid>
		<description><![CDATA[Here are this week&#8217;s news about our project to support multitouch screens. Besides moving forward on an events API, last week I filed some bugs that aim to improve the overall experience for touchscreens devices (single and multitouch) when surfing on the web. They are: Bug 547997 &#8211; Perform hit target detection/correction on tap clicks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=185&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here are this week&#8217;s news about our project to support multitouch screens. Besides moving forward on an events API, last week I filed some bugs that aim to improve the overall experience for touchscreens devices (single and multitouch) when surfing on the web. They are:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=547997">Bug 547997</a> &#8211; Perform hit target detection/correction on tap clicks</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=547996">Bug 547996</a> &#8211; Be able to tell when a click was generated by touch</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=548005">Bug 548005</a> &#8211; Browser zoom should stay centered when coordinates are available</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=548012">Bug 548012</a> &#8211; Browser zoom should be cancelable to be handled by webpage</li>
</ul>
<p>And there are some other already existing bugs so there&#8217;s now the meta <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=548100">bug 548100</a> to keep track of them all.</p>
<p>On the DOM Events API front, on the previous week I unbitrotted the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=508906">experimental patch</a> to apply to current trunk. And at the moment I&#8217;m investigating the Windows 7 API to understand how to deal with the limitation that you can either get raw touch input or touch gestures data, but not both at the same time.</p>
<p>My next goals is to work on the bugs to improve the user experience and to keep moving with the events api making sure to coordinate this work with mobile&#8217;s interests too.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=185&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/03/01/status-update-on-multitouch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessibility Usability</title>
		<link>http://felipe.wordpress.com/2010/01/15/accessibility-usability/</link>
		<comments>http://felipe.wordpress.com/2010/01/15/accessibility-usability/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 03:29:10 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=165</guid>
		<description><![CDATA[Last month, the recently opened brazilian W3C office made an interesting campaign on the UN International Day of Disabled Persons to generate awareness of the importance that is accessibility on the web. During that day, they modified their website in 3 different ways in order to try to simulate how people with certain accessibility needs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=165&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last month, the recently opened <a title="W3C.br" href="http://w3c.br">brazilian W3C office</a> made an <a title="Accessibility actions" href="http://www.w3c.br/3-dezembro/">interesting campaign</a> on the UN International Day of Disabled Persons to generate awareness of the importance that is accessibility on the web. During that day, they modified their website in 3 different ways in order to try to simulate how people with certain accessibility needs view and interact with the web.</p>
<p>On <a title="Zoomed page" href="http://www.w3c.br/index-3dez-3.htm">one version</a>, they increased the font-size of the whole page, similarly to how users with sight difficulties might increase the page zoom until they&#8217;re able to read the content. The <a title="Disabled mouse" href="http://www.w3c.br/index-3dez-2.htm">second style</a> featured the regular page but with mouse interactions disabled, so you can only navigate on the page using the arrows and the Tab key, as do users who are not able to handle the mouse cursor effectively. The <a title="Screen readers" href="http://www.w3c.br/index-3dez-1.htm">third one</a> featured a blacked out page where only one element is visible at a time, and again you navigate through the page using the Tab key. This experience relates to the interaction that screen readers&#8217; users are used to.</p>
<p>These pages, beyond being examples of the different interactions that users might face on the web, are a great incentive for web designers to start testing what the experience for such users are on their own sites. Usability has fortunately become a popular trend recently, where more designers and web developers are aware of its importance. A recent Jakob Nielsen&#8217;s article stated that <em><a title="Anybody can do usability by Jakob Nielsen" href="http://www.useit.com/alertbox/anybody-usability.html">Anybody can do Usability</a></em> <em>[tests]</em>, where he says that with simple tasks and minimal testing, many usability problems can be detected (and hopefully improved) on a web page. Here&#8217;s to hope that the same trend follows to accessibility.</p>
<p>I asked <a title="Willie Walker" href="http://blogs.sun.com/wwalker/">Willie Walker</a>, who I&#8217;ve met at <a title="Jornadas Regionales de Software Livre" href="http://www.jornadasregionales.org/">JRSL Chile</a> and works with Accessibility on Gnome, what he thought about this campaign, and he said it would be nice if there was some sort of tool that could help web developers to make these tests on their websites. This would indeed be cool. For the first example, you only need to hit Ctrl+<strong>+</strong> a few times and it&#8217;s done. For the other ones, you can work a few modifications to your webpage to get the desired effect, or&#8230; or you can have it all automatically done by these <a title="Accessibility bookmarklets" href="http://felipc.github.com/stuff/a11y.htm">two bookmarklets</a> that I prepared! Try it on your own page or your favorite page and see how well it fares. These bookmarklets are by no means perfect, but they should be a good starting point of inspiration. Some things to consider when doing these tests:</p>
<ul>
<li>Zoomed page: Hit Ctrl++ and see how well your layout stands. How many times can you zoom it without breaking everything? Try reducing the window size too.</li>
<li>Mouse disabled: How less obvious does your links and navigation become without any mouse hover? Does your CSS menus break? How is the order of navigation on your links via the Tab key? Hint: you can have a good ordering of elements  via a well-thought mark-up, but you can also explicit change them using the <em>tabindex</em> attribute.</li>
<li>Screen readers: How well is your content organized? Is the hierarchy too deep and confusing? Does the most important content on your page comes first?</li>
</ul>
<p><a style="font-size:large;" title="Accessibility bookmarklets" href="http://felipc.github.com/stuff/a11y.htm">Accessibility bookmarklets</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=165&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2010/01/15/accessibility-usability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
		<item>
		<title>All the open doors</title>
		<link>http://felipe.wordpress.com/2009/09/20/all-the-open-doors/</link>
		<comments>http://felipe.wordpress.com/2009/09/20/all-the-open-doors/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 07:29:24 +0000</pubDate>
		<dc:creator>felipe</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://felipe.wordpress.com/?p=151</guid>
		<description><![CDATA[Having noticed that Mozilla is at a moment where there are quite a number of different opportunities to contribute and get involved, for users with all kinds of skills and interests (app developers, web developers, artists, designers), I set out to compile a list for the Mozilla Brazil community. Alix pointed me to the contribute [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=151&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Having noticed that Mozilla is at a moment where there are quite a number of different opportunities to contribute and get involved, for users with all kinds of skills and interests (app developers, web developers, artists, designers), I set out to compile a list for the Mozilla Brazil community.</p>
<p><a href="http://blogmag.net/blog/alix">Alix</a> pointed me to the <a href="http://contribute.mozilla.org/Mozilla_Community">contribute page</a>, and there&#8217;s <a href="http://www.mozilla.com/about/get-involved">this page</a> from the mozilla.com website, but I also wanted to list the timely events going on, because they&#8217;re hard to keep track if you don&#8217;t follow all the news pretty closely, and my friend <a href="http://mgallibr.wordpress.com/">Marcio</a> commented that he believes that these kind of events have a great engaging component, which I absolutely agree: the challenge of a deadline together with a specific goal is a great motivation to get started.</p>
<p>So here&#8217;s a list of what I know is currently going on, bonus added: the target audience, which is useful in helping the new members themselves to find their way in the community and their interests.</p>
<ul>
<li><a href="http://labs.mozilla.com/contests/extendfirefox3.5/">Extend Firefox 3.5 Contest</a> (developers)<br />
             October 2nd</li>
<li><a href="http://labs.mozilla.com/blog/2009/08/announcing-the-jetpack-contest-and-a-pre-release/">Jetpack Contest</a> (web developers)<br />
October 15th</li>
<li><a href="http://starkravingfinkle.org/blog/2009/09/fennec-lets-build-some-add-ons/">Fennec call for addons</a> (developers)<br />Exciting times ahead for Fennec</li>
<li><a href="http://design-challenge.mozilla.com/fall09/">Fall Design Challenge</a> (power users, usability/ux students, infoviz lovers)<br />Last week of September</li>
<li><a href="http://creative.mozilla.org/challenges/1">Firefox Goes Mobile</a> (designers, artists)<br />September 30th</li>
<li><a href="http://mozillaservice.org/">Mozilla Service week</a> (everybody!)<br /><em>Do something today or tomorrow!</em></li>
<li><a href="http://commonspace.wordpress.com/2009/09/17/poster-picture-passiton/">Love the web? Show the love</a> and <a href="http://www.mozilla.org/causes/onewebday/">celebrate it</a> (everybody!)<br />September 22nd</li>
</ul>
<p>Some of these are close to their deadlines, but the list is not intended to be a final resource, just a beginning <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Listing all of these helps put on perspective how many cool and interesting things are going on.</p>
<p>There are other activities which are not time sensitive but are relatively new engaging points worth mentioning: Creating <a href="http://labs.mozilla.com/ubiquity/writing-commands">Ubiquity commands</a> or new <a href="http://getpersonas.com">Personas</a>, participating in the <a href="http://creative.mozilla.org/">Creative Collective</a> and the <a href="https://testpilot.mozillalabs.com/">Test Pilot</a>. (Or our great Nightly testers)</p>
<p>Hope this comes in handy the next time you want to help a new community member seeking advice on how to be part of the Mozilla world.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipe.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipe.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipe.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipe.wordpress.com&amp;blog=703&amp;post=151&amp;subd=felipe&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipe.wordpress.com/2009/09/20/all-the-open-doors/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/631699655df41814862fd2ab5cfba1a1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">felipe</media:title>
		</media:content>
	</item>
	</channel>
</rss>
