<?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>Mozilla Hacks - the Web developer blog</title>
	<atom:link href="http://hacks.mozilla.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://hacks.mozilla.org</link>
	<description>hacks.mozilla.org</description>
	<lastBuildDate>Tue, 15 May 2012 07:13:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>The Web Developer Toolbox: Raphaël</title>
		<link>http://hacks.mozilla.org/2012/05/the-web-developer-toolbox-raphael/</link>
		<comments>http://hacks.mozilla.org/2012/05/the-web-developer-toolbox-raphael/#comments</comments>
		<pubDate>Tue, 15 May 2012 07:13:21 +0000</pubDate>
		<dc:creator>Jeremie Patonnier</dc:creator>
				<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Web Developers]]></category>
		<category><![CDATA[toolbox]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13186</guid>
		<description><![CDATA[This is the first of a series of articles dedicated to the useful libraries that all web developers should have in their toolbox. My intent is to show you what those libraries can do and help you to use them at their best. This first article is dedicated to the Raphaël library. Introduction Raphaël is [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first of a series of articles dedicated to the useful libraries that all web developers should have in their toolbox. My intent is to show you what those libraries can do and help you to use them at their best. This first article is dedicated to the <a href="http://raphaeljs.com/">Raphaël</a> library.</p>
<h2>Introduction</h2>
<p>Raphaël is a library originally written by <a href="http://dmitry.baranovskiy.com/">Dmitry Baranovskiy</a> and is now part of <a href="http://www.senchalabs.org/">Sencha Labs</a>.</p>
<p>The goal of this library is to simplify work with vector graphics on the Web. Raphaël relies on the <a href="http://www.w3.org/TR/SVG11/">SVG W3C Recommendation</a> (which is well supported in all modern browsers) and falls back to the Micrsoft VML language in order to address legacy versions of Internet Explorer. It also tries to harmonize some working issues across SVG implementations such as the SVG Animations. As a consequence, Raphaël is a very nice wrapper to produce consistent kick-ass graphics all over the Web.</p>
<h2>Basic usage</h2>
<p>The library has <a href="http://raphaeljs.com/reference.html">very good documentation</a> with many examples. Do not hesitate to use it extensively.</p>
<p>The following example will draw a simple red circle inside an HTML element with the id &#8220;myPaper&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// the following example creates a drawing zone</span>
<span style="color: #006600; font-style: italic;">// that is 100px wide by 100px high.</span>
<span style="color: #006600; font-style: italic;">// This drawing zone is created at the top left corner</span>
<span style="color: #006600; font-style: italic;">// of the #myPaper element (or its top right corner in</span>
<span style="color: #006600; font-style: italic;">// dir=&quot;rtl&quot; elements)</span>
<span style="color: #003366; font-weight: bold;">var</span> paper <span style="color: #339933;">=</span> Raphael<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;myPaper&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #006600; font-style: italic;">// The circle will have a radius of 40</span>
<span style="color: #006600; font-style: italic;">// and its center will be at coordinate 50,50</span>
<span style="color: #003366; font-weight: bold;">var</span> c <span style="color: #339933;">=</span> paper.<span style="color: #660066;">circle</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">50</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #006600; font-style: italic;">// The circle will be filled with red</span>
<span style="color: #006600; font-style: italic;">// Note that the name of each element property</span>
<span style="color: #006600; font-style: italic;">// follow the SVG recommendation</span>
c.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
    fill<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;#900&quot;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h2>Advanced usage</h2>
<p>Despite the fact that Raphaël reduces the possibilities offered by SVG (mainly because of the VML fallback) it allows one to perform very advanced stuff:</p>
<ul>
<li>Advance Matrix transformation</li>
<li>Advance event handler</li>
<li>Cross browser animations</li>
<li>Easy drag system</li>
<li>Path intersection detection</li>
</ul>
<p>Raphaël is also extensible through an extension system that allows you to build custom functions.</p>
<p>For example, here&#8217;s an extension to draw pie charts:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/**
 * Pie method
 *
 * cx: x position of the rotating center of the pie
 * cy: y position of the rotating center of the pie
 * r : radius of the pie 
 * a1: angle expressed in degrees where the pie start
 * a2: angle expressed in degrees where the pie end
 */</span>
Raphael.<span style="color: #660066;">fn</span>.<span style="color: #660066;">pie</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>cx<span style="color: #339933;">,</span> cy<span style="color: #339933;">,</span> r<span style="color: #339933;">,</span> a1<span style="color: #339933;">,</span> a2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> d<span style="color: #339933;">,</span>
        flag <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>a2 <span style="color: #339933;">-</span> a1<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #CC0000;">180</span><span style="color: #339933;">;</span> 
&nbsp;
    a1 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>a1 <span style="color: #339933;">%</span> <span style="color: #CC0000;">360</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> Math.<span style="color: #660066;">PI</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">180</span><span style="color: #339933;">;</span>
    a2 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>a2 <span style="color: #339933;">%</span> <span style="color: #CC0000;">360</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> Math.<span style="color: #660066;">PI</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">180</span><span style="color: #339933;">;</span> 
&nbsp;
    d <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
        <span style="color: #006600; font-style: italic;">// Setting the rotating axe of the pie</span>
        <span style="color: #3366CC;">&quot;M&quot;</span><span style="color: #339933;">,</span> cx<span style="color: #339933;">,</span> cy<span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">// Go to the start of the curve</span>
        <span style="color: #3366CC;">&quot;l&quot;</span><span style="color: #339933;">,</span> r <span style="color: #339933;">*</span> Math.<span style="color: #660066;">cos</span><span style="color: #009900;">&#40;</span>a1<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> r <span style="color: #339933;">*</span> Math.<span style="color: #660066;">sin</span><span style="color: #009900;">&#40;</span>a1<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">// Drawing the curve to its end</span>
        <span style="color: #3366CC;">&quot;A&quot;</span><span style="color: #339933;">,</span> r<span style="color: #339933;">,</span> r<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;0&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">+</span>flag<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #339933;">,</span>
        cx <span style="color: #339933;">+</span> r <span style="color: #339933;">*</span> Math.<span style="color: #660066;">cos</span><span style="color: #009900;">&#40;</span>a2<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> cy <span style="color: #339933;">+</span> r <span style="color: #339933;">*</span> Math.<span style="color: #660066;">sin</span><span style="color: #009900;">&#40;</span>a2<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">// Closing the path</span>
        <span style="color: #3366CC;">&quot;z&quot;</span>
    <span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">path</span><span style="color: #009900;">&#40;</span>d.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Note: In the example above, you have to be familiar with the SVG path syntax (Raphaël will convert it to the VML syntax under the hood), but once it&#8217;s done you can reuse it as any other Raphaël primitive. Look at this extension working to draw <a href="http://jsfiddle.net/5t93R/">a color wheel on jsFiddle</a>.</p>
<p><iframe style="width: 100%; height: 430px" src="http://jsfiddle.net/5t93R/embedded/result,js,css,html" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<h2>Limits and precaution</h2>
<p>If you are not familiar with SVG and/or want to support legacy MS Internet Explorer browsers, this tool is made for you. However, it&#8217;s a JavaScript library, which means that you have to know JavaScript to use it. You cannot use SVG and ask Raphaël to parse it and interpret it (to do that, it exists other libraries).</p>
<p>In terms of browser support, Raphaël gives you a large base. Raphaël currently supports Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ and Internet Explorer 6.0+.</p>
<p>In fact, the only browser that can not take advantage of Raphaël is the native browser for Android 1.x and 2.x (and obviously many feature phone browsers). This is due to the fact that those browsers do not support any vector language. Android starts (partially) supporting SVG with Android 3.0 so take care if you want to work with all mobile devices.</p>
<h2>Conclusion</h2>
<p>Raphaël was the first library to allow web designers and web developers to use SVG in the wild. If you want to write some nice applications without the need of the full SVG DOM API or if you have to support legacy browsers, this library will give you some power.</p>
<p>In conclusion, here are some cool usages of Raphaël:</p>
<ul>
<li><a href="http://vlog.it/">http://vlog.it/</a></li>
<li><a href="http://type.method.ac/">http://type.method.ac/</a></li>
<li><a href="http://shape.method.ac/">http://shape.method.ac/</a></li>
<li><a href="http://www.nissanusa.com/leaf-electric-car/index">http://www.nissanusa.com/leaf-electric-car/index</a></li>
<li><a href="http://ilovedemocracy.arte.tv/fr/">http://ilovedemocracy.arte.tv/fr/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/the-web-developer-toolbox-raphael/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desktop Apps with HTML5 and the Mozilla Web Runtime</title>
		<link>http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/</link>
		<comments>http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/#comments</comments>
		<pubDate>Mon, 14 May 2012 19:16:14 +0000</pubDate>
		<dc:creator>Joe Stagner</dc:creator>
				<category><![CDATA[Apps]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13196</guid>
		<description><![CDATA[Desktop Apps with HTML5 One of the best things about HTML is that it&#8217;s never &#8220;done&#8221;.  HTML has been with us longer than most of the development technologies that we consider commonplace. (.NET, ASP, Java, PHP, etc.) The latest incarnation of HTML, HTML5 has been the source of a great deal of buzz in the [...]]]></description>
			<content:encoded><![CDATA[<h1>Desktop Apps with HTML5</h1>
<p>One of the best things about HTML is that it&#8217;s never &#8220;done&#8221;.  HTML has been with us longer than most of the development technologies that we consider commonplace. (.NET, ASP, Java, PHP, etc.)</p>
<p>The latest incarnation of HTML, HTML5 has been the source of a great deal of buzz in the software and information industries. When we say &#8220;HTML5&#8243;, we&#8217;re implicitly referring to the &#8220;stack&#8221; of  HTML/CSS/JavaScript.</p>
<p>At Mozilla we often refer to this collectively as the &#8220;Web Run-Time&#8221; or WebRT for short. <a href="https://developer.mozilla.org/en/Apps" title="Mozilla App Documentation" target="_blank">Mozilla&#8217;s apps initiative, including the Web Runtime is documented here</a>. </p>
<p>Skeptics like to say &#8220;HTML5 is not ready&#8221;. This week I saw an article declaring HTML5 won&#8217;t be &#8220;ready&#8221; for another 10 years. To which I ask &#8220;ready for what?&#8221; Of course there are many APIs that are still under development, but for many scenarios HTML5 is ready now. For many other scenarios its ready for development now and will be ready for general public use in the near future.</p>
<p>Recently the Mozilla Apps Native Install Experience was introduced to the <a href="http://nightly.mozilla.org/" title="Firefox Nightly" target="_blank">Firefox Nightly Channel</a>. (<a href="http://hacks.mozilla.org/2012/05/firefox-and-the-release-channels/" title="Firefox Release Channels" target="_blank">Read here for more information about the Firefox release channels.</a>)</p>
<p>This functionality lets us install an HTML5 application with a native launching experience on Windows or Mac (Linux and Android coming).</p>
<p>One great way to do this is to simply list your app in the <a href="http://hacks.mozilla.org/2012/05/firefox-and-the-release-channels/" title="The Mozilla Marketplace" target="_blank">Mozilla Marketplace</a>. The Marketplace will be open to the general public soon and developers can submit their app now at the<a href="https://marketplace.mozilla.org/en-US/ecosystem/" title="Mozilla Marketplace Developer Submission" target="_blank"> Marketplace Ecosystem Portal</a>. All you need besides an app to submit is a set of <a href="https://browserid.org/" title="Get BrowserID" target="_blank">BrowserID </a>credentials.</p>
<p>An HTML5 App that targets the Mozilla Web Runtime includes a manifest file.</p>
<p>The manifest is simply a JSON file that declares certain data about the application.</p>
<p>Here is the manifest file from a sample app. <a href="https://developer.mozilla.org/en/Apps/Manifest" title="Mozilla Apps Manifest" target="_blank">You can read more about the Mozilla App Manifest here.</a></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    <span style="color: #009900;">&#123;</span>  
      <span style="color: #3366CC;">&quot;version&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;1.0&quot;</span><span style="color: #339933;">,</span>  
      <span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;KO Round Timer&quot;</span><span style="color: #339933;">,</span>  
      <span style="color: #3366CC;">&quot;description&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;A Workout Timer for Fighting Athletes!&quot;</span><span style="color: #339933;">,</span>  
      <span style="color: #3366CC;">&quot;icons&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>   
        <span style="color: #3366CC;">&quot;128&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;/images/icon-128.png&quot;</span>  
      <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>    
      <span style="color: #3366CC;">&quot;developer&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>  
        <span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Joe Stagner&quot;</span><span style="color: #339933;">,</span>  
        <span style="color: #3366CC;">&quot;url&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://koscience.com&quot;</span>  
      <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>  
      <span style="color: #3366CC;">&quot;installs_allowed_from&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>  
        <span style="color: #3366CC;">&quot;http://timer.koscience.com&quot;</span><span style="color: #339933;">,</span> 
	<span style="color: #3366CC;">&quot;https://marketplace.mozilla.org&quot;</span>   
      <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>    
      <span style="color: #3366CC;">&quot;default_locale&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;en&quot;</span>  
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>JSON does not need to be formatted with CRLFs. The above JSON is only formatted to simplify display. </p>
<p>Note line #12 above which specifies where the app can be installed from. </p>
<p>The Mozilla Web Runtime includes an apps object (<a href="https://developer.mozilla.org/en/DOM/window.navigator.mozApps" title="window.navigator.mozApps" target="_blank">winbow.navigator.mozApps</a>) The mozApps object (currently implemented in Firefox Nightly on Windows and Mac) has a method to install an application. We&#8217;ll look at code that uses that API in a minute. </p>
<p>If you want your app to install from the Mozilla Marketplace you don&#8217;t need to write any install code. When you list your app in the marketplace, the marketplace creates a listing page for your app and that page includes an install button.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-6-11-00-pm/" rel="attachment wp-att-13208"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-6-11-00-PM.png" alt="Mozilla Marketplace App Listing Page" title="Mozilla Marketplace App Listing Page" width="500" height="305" class="alignnone size-full wp-image-13208" /></a></p>
<p>The generated code that is invoked when the Install button is clicked tells the Runtime to install the app. The Runtime then fetches the manifest for the app and, among other things, checks to see it the app allows installation from whatever domain is requesting the install. </p>
<p>As you can see in the manifest listing above, line 14 specifies that the app may be installed from &#8220;https://marketplace.mozilla.org&#8221;.</p>
<p>But you might want to let users install your application from other domains, for example your own web site.</p>
<p>You can see line 13 in our sample manifest, listed above, that &#8220;http://timer.koscience.com&#8221; is also specified as a valid &#8220;install from&#8221; location. I can specify as many domains as I like to be authorized to install the application from and wildcards are supported.</p>
<p>If we want to install the app from our own web site however, we need to implement the install logic ourselves. </p>
<p>We could create a page similar to the app listing page on the Mozilla Marketplace, or could make the app &#8220;self installing&#8221; meaning that we could implement installation logic in the app itself.</p>
<p>Take, for example, the Workout Timer app shown below.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-6-26-57-pm/" rel="attachment wp-att-13221"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-6-26-57-PM.png" alt="K.O. Timer Screen Shot" title="K.O. Timer Screen Shot" width="500" height="274" class="alignnone size-full wp-image-13221" /></a></p>
<p>Notice the row of navigation buttons at the bottom of the timer. </p>
<p>The last one to the right says &#8220;Install Me&#8221;.</p>
<p>The install button should only appear if the app is running in an environment that supports the mozApps runtime. Since this app (K.O. Timer) is an HTML5 app it can run in any HTML5 compliant browser but will only be &#8220;installable&#8221; if it is running in a browser / runtime with mozApps support. </p>
<p>We also don&#8217;t want the install button to appear if the app is already installed. </p>
<p>Here is a JavaScript method to test both runtime support and install state. </p>
<p>If runtime support is present and the app is not install then an install button is displayed. </p>
<p>In some scenarios you might choose to forgo the display of an optional install button and simply start the installer when the app is not already installed.</p>
<p>(This code is using jQuery)</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> TestAppInstalled<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>navigator.<span style="color: #660066;">mozApps</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>navigator.<span style="color: #660066;">mozApps</span>.<span style="color: #660066;">getSelf</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">/*-----------------------------------------------------------+
        || Test to see if the Mozilla Apps Web Runtime is supported
        || HACK: Testing for either mozApps OR mozApps.getSelf is a 
        || hack. 
        || This is needed because some pre-beta versions of Firefox 
        || have the object present but nit fully implemented.
        || TODO: Update when Firefox Desktop &amp; Mobile are complete.
        ------------------------------------------------------------*/</span>
        <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> MyAppSelf <span style="color: #339933;">=</span> navigator.<span style="color: #660066;">mozApps</span>.<span style="color: #660066;">getSelf</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    MyAppSelf.<span style="color: #660066;">onsuccess</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">result</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #006600; font-style: italic;">// Application is not &quot;installed&quot;</span>
            $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#InstallButton'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
             <span style="color: #006600; font-style: italic;">// This &quot;MozApp&quot; is already installed.</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    MyAppSelf.<span style="color: #000066;">onerror</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Error checking installation status: '</span> <span style="color: #339933;">+</span> 
               <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">error</span>.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>When the user clicks on the install button the following code is called.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#InstallButton'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> installation <span style="color: #339933;">=</span> navigator.<span style="color: #660066;">mozApps</span>.<span style="color: #660066;">install</span><span style="color: #009900;">&#40;</span>
                <span style="color: #3366CC;">&quot;http://timer.koscience.com/kotimer.webapp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    installation.<span style="color: #660066;">onsuccess</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#InstallButton'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;K.O. Timer has been successfully installed.....&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    installation.<span style="color: #000066;">onerror</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;APP: The installation FAILED : &quot;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">error</span>.<span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>So when the user navigates to the K.O. Timer app (timer.koscience.com) in a browser that supports mozApps (currently Firefox Nightly) and the user clicks on the &#8220;Install Me&#8221; button the mozApps runtime starts the installer.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-6-50-05-pm/" rel="attachment wp-att-13246"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-6-50-05-PM.png" alt="KOTimer at Install Click" title="KOTimer at Install Click" width="500" height="281" class="alignnone size-full wp-image-13246" /></a></p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-6-51-43-pm/" rel="attachment wp-att-13247"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-6-51-43-PM.png" alt="KOTimer at Install Click Closeup" title="KOTimer at Install Click Closeup" width="433" height="144" class="alignnone size-full wp-image-13247" /></a></p>
<p>After the user clicks &#8220;install&#8221; button in the dialog pictured above, the installer is called and, when completed, the user has a native launching experience. </p>
<p>On Windows you get a desktop shortcut.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-6-59-15-pm/" rel="attachment wp-att-13252"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-6-59-15-PM.png" alt="Native Shortcut for HTML5 App" title="Native Shortcut for HTML5 App" width="248" height="466" class="alignnone size-full wp-image-13252" /></a></p>
<p>As well as a Start Menu item.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-7-02-47-pm/" rel="attachment wp-att-13253"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-7-02-47-PM.png" alt="HTML5 app in the Windows Start Menu" title="HTML5 app in the Windows Start Menu" width="412" height="323" class="alignnone size-full wp-image-13253" /></a></p>
<p>And, of course the app is now in the user&#8217;s Mozilla MyApps collection.</p>
<p><a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/5-9-2012-7-07-49-pm/" rel="attachment wp-att-13258"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/5-9-2012-7-07-49-PM.png" alt="Mozilla MyApps Collection" title="Mozilla MyApps Collection" width="500" height="291" class="alignnone size-full wp-image-13258" /></a></p>
<p>It&#8217;s important to remember that, while these launchers have been created on the user&#8217;s system the application itself still exists in the cloud. A developer can choose to add &#8220;off line&#8221; functionality to their application by other HTML5 features like <a href="https://developer.mozilla.org/en/Using_Application_Cache" title="HTML5 App Cache" target="_blank">AppCache</a>, <a href="https://developer.mozilla.org/en/DOM/Storage" title="DOM Storage" target="_blank">LocalStorage </a>or <a href="https://developer.mozilla.org/en/IndexedDB" title="IndexedDB" target="_blank">IndexedDB</a>. </p>
<p>The ability to provide native launchers for HTML5 apps, coupled with the huge HTML5 apps distribution mechanism that will be available when the Mozilla Marketplace become available to the general public (in the near future), creates great opportunity for developers building standards based apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>MDN hack day tomorrow in the #mozldn space in London, England</title>
		<link>http://hacks.mozilla.org/2012/05/mdn-hack-day-tomorrow-in-the-mozldn-space-in-london-england/</link>
		<comments>http://hacks.mozilla.org/2012/05/mdn-hack-day-tomorrow-in-the-mozldn-space-in-london-england/#comments</comments>
		<pubDate>Fri, 11 May 2012 11:37:43 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[hackdays]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mdnhackday]]></category>
		<category><![CDATA[mozldn]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13331</guid>
		<description><![CDATA[We cleared the aftermath of yesterday&#8217;s epic Geek Quiz (photo proof here) but there is no rest for the wicked in the London Mozilla Space. Tomorrow (yes, that day after this one) we&#8217;ll run an MDN hack day here in 101 St. Martin&#8217;s Lane, London (5 minute footwalk from Leicester Square or 10 from Charing [...]]]></description>
			<content:encoded><![CDATA[<p>We cleared the aftermath of yesterday&#8217;s epic <a href="http://lanyrd.com/2012/geekquiz-fueled-by-mozilla/">Geek Quiz</a> (<a href="http://www.flickr.com/photos/paul_clarke/sets/72157629667510952/with/7172675670/">photo proof here</a>) but there is no rest for the wicked in the London Mozilla Space. Tomorrow (yes, that day after this one) we&#8217;ll run an MDN hack day here in 101 St. Martin&#8217;s Lane, London (5 minute footwalk from Leicester Square or 10 from Charing Cross). </p>
<p>If you have no idea what hack day in MDN means, check out <a href="http://blog.mozilla.org/beyond-the-code/2012/05/11/mozilla-hack-day-in-london/">Tristan Nitot&#8217;s introductory post</a>.</p>
<p><a href="http://mdn-hackday-london.eventbrite.com/"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/04/7011145323_ed06c10daa_z-1-500x375.jpg" alt="MDN hack day"></a></p>
<p>There are still tickets available, so go to <a href="http://mdn-hackday-london.eventbrite.com/">http://mdn-hackday-london.eventbrite.com/</a> and sign up if you haven&#8217;t yet. </p>
<p>There&#8217;ll be food (well, Pizza, we thought Fondue would be too much of a mess) and drink (the non-fermented and fermented kind, we don&#8217;t discriminate), lots of experts from Mozilla to pester about your wishes for our products and to learn all about what we are doing in London, a few Boot to Gecko phones to play with and quite a few talks to give you inspiration to hack:</p>
<p>Schedule (subject to change slightly but you get the idea of who is speaking): </p>
<p>8:30 Registration &#038; Light Breakfast<br />
9:00 Welcome Remarks Christian Heilmann<br />
9:15 Christian Heilmann &#8211; The New Web Challenge<br />
9:45 Rob Hawkes &#8211; B2G<br />
10:15 Chloe Varelidi &#8211; Catch Them Young &#8211; Meet the Web Arcade<br />
10:45 Brad Lassey &#8211; Fennec Goes Native<br />
11:15 Break<br />
11:30 Heather Arthur &#8211; Firefox DevTools<br />
12:00 Jean Yves Perrier &#8211; BrowserID<br />
12:30 Rob Hawkes &#8211; Games<br />
1:00 Paul Lewis &#8211; WebGL Live Demos<br />
1:30 Lunch (Lightening Talk/Discussion Group Sign Up)<br />
2:30 Hacking<br />
5:15 Presentations and Lightning Talks<br />
5:30 Refreshments</p>
<p>The hashtag to use is #mdnhackday, the wireless is open, the Fox is out there, let&#8217;s do this!</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mdn-hack-day-tomorrow-in-the-mozldn-space-in-london-england/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting snappy &#8211; performance optimizations in Firefox 13</title>
		<link>http://hacks.mozilla.org/2012/05/getting-snappy-performance-optimisations-in-firefox-13/</link>
		<comments>http://hacks.mozilla.org/2012/05/getting-snappy-performance-optimisations-in-firefox-13/#comments</comments>
		<pubDate>Fri, 11 May 2012 09:02:40 +0000</pubDate>
		<dc:creator>Lawrence Mandel</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[snappy]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13325</guid>
		<description><![CDATA[Back in the fall of 2011, we took a targeted look at Firefox responsiveness issues. We identified a number of short term projects that together could achieve significant responsiveness improvements in day-to-day Firefox usage. Project Snappy kicked off at the end of the year with the goal of improving Firefox responsiveness. Although Snappy first contributed [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the fall of 2011, we took a targeted look at Firefox responsiveness issues. We identified a number of short term projects that together could achieve significant responsiveness improvements in day-to-day Firefox usage. Project Snappy kicked off at the end of the year with the goal of improving Firefox responsiveness.</p>
<p>Although Snappy first contributed fixes to Firefox 11, Snappy’s most noticeable contributions to date are landing with Firefox 13. <a href="http://www.mozilla.org/beta">Currently in beta</a>, this release includes a number of responsiveness related fixes, most notably tabs-on-demand, cycle collector improvements, and start-up optimization.</p>
<h2>Tabs -on-Demand</h2>
<p>Tabs-on-demand is a feature that reduces start-up time for Firefox windows with many tabs. In Firefox 12, all tabs are loaded on start-up. For windows with many tabs this may cause a delay before you can interact with Firefox as each tab must load its content. In Firefox 13, only the active tab will load. Loading of background tabs is deferred until a tab is selected. This results in Firefox starting faster as tabs-on-demand reduces processing requirements, network usage, and memory consumption.</p>
<h2>Cycle Collector</h2>
<p>As you interact with the browser and Web content, memory is allocated as needed. The Firefox cycle collector works to automatically free some of this memory when it is no longer needed. This action reduces Firefox’s memory usage. In Firefox 13, the cycle collector is more efficient, spending less time examining memory that is still in use, which results in less pauses as you use Firefox.</p>
<h2>Start-up</h2>
<p>Firefox start-up time is visible to all users. Our investigation into start-up has identified a number of unoptimized routines in the code that executes before what we call “first paint”. “First paint” signifies when the Firefox user interface is first visible on your screen. In Firefox 13 we have optimized file calls, audio sessions, drag and drop, and overall IO, just to name a few. We are continuing to profile the Firefox start-up sequence to identify further optimizations that can be made in future releases.</p>
<p>There are numerous other Snappy fixes in Firefox 13 including significant improvements to IO contention, font enumeration, and livemark overhead. All of these fixes contribute to a more responsive experience. We are already working on further responsiveness fixes for future Firefox releases. You can expect to see Snappy improvements in upcoming releases in areas such as memory usage, shutdown time, network cache and connections, menus, and graphics.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/getting-snappy-performance-optimisations-in-firefox-13/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>DOM MutationObserver &#8211; reacting to DOM changes without killing browser performance.</title>
		<link>http://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/</link>
		<comments>http://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/#comments</comments>
		<pubDate>Thu, 10 May 2012 23:12:10 +0000</pubDate>
		<dc:creator>Jeff Griffiths</dc:creator>
				<category><![CDATA[Add-ons]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Nightly]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12914</guid>
		<description><![CDATA[DOM Mutation Events seemed like a great idea at the time &#8211; as web developers create a more dynamic web it seems natural that we would welcome the ability to listen for changes in the DOM and react to them. In practice however DOM Mutation Events were a major performance and stability issue and have [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="https://developer.mozilla.org/en/DOM/Mutation_events">DOM Mutation Events</a> seemed like a great idea at the time &#8211; as web developers create a more dynamic web it seems natural that we would welcome the ability to listen for changes in the DOM and react to them. In practice however DOM Mutation Events were a major performance and stability issue and have been deprecated for over a year.</p>
<p>The original idea behind DOM Mutation Events is still appealing, however, and so in September 2011 a group of Google and Mozilla engineers announced <a target="_blank" href="http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html">a new proposal</a> that would offer similar functionality with improved performance: <a target="_blank" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-observers">DOM MutationObserver</a>. This new DOM Api is available in Firefox and Webkit nightly builds, as well as Chrome 18.</p>
<p>At it&#8217;s simplest, a MutationObserver implementation looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// select the target node</span>
<span style="color: #003366; font-weight: bold;">var</span> target <span style="color: #339933;">=</span> document.<span style="color: #660066;">querySelector</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#some-id'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// create an observer instance</span>
<span style="color: #003366; font-weight: bold;">var</span> observer <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> MutationObserver<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>mutations<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    mutations.<span style="color: #660066;">forEach</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>mutation<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span>mutation.<span style="color: #660066;">type</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// configuration of the observer:</span>
<span style="color: #003366; font-weight: bold;">var</span> config <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> attributes<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> childList<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> characterData<span style="color: #339933;">:</span> 	<span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// pass in the target node, as well as the observer options</span>
observer.<span style="color: #660066;">observe</span><span style="color: #009900;">&#40;</span>target<span style="color: #339933;">,</span> config<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// later, you can stop observing</span>
observer.<span style="color: #660066;">disconnect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The key advantage to this new specification over the deprecated DOM Mutation Events spec is one of efficiency. If you are observing a node for changes, your callback will not be fired until the DOM has finished changing. When the callback is triggered, it is supplied a list of the changes to the DOM, which you can then loop through and choose to react to.</p>
<p>This also means that any code you write will need to process the observer results in order to react to the changes you are looking for. Here is a compact example of an observer that listens for changes in an editable ordered list:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE html&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ol</span> contenteditable <span style="color: #000066;">oninput</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Press enter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/li<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ol<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  var list = document.querySelector('ol');
&nbsp;
  var observer = new MutationObserver(function(mutations) {  
    mutations.forEach(function(mutation) {
      if (mutation.type === 'childList') {
        var list_values = [].slice.call(list.children)
            .map( function(node) { return node.innerHTML; })
            .filter( function(s) {
              if (s === '<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>') {
                return false;
              }
              else {
                return true;
              }
        });
        console.log(list_values);
      }
    });
  });
&nbsp;
  observer.observe(list, {
  	attributes: true, 
  	childList: true, 
  	characterData: true
  });
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>If you want to see this code running, I&#8217;ve put it up on jsbin here:</p>
<p><a target="_blank" href="http://jsbin.com/ivamoh/53/edit">http://jsbin.com/ivamoh/53/edit</a></p>
<p>If you play with the live example, you&#8217;ll notice some quirks in behaviour, in particular that the callback is triggered when you press enter in each li, in particular when the user action results in a node being added or removed from the DOM. This is an important distinction to be made from other techniques such as binding events to key presses or more common events like &#8216;click&#8217;. MutationObservers work differently from these techniques because they are triggered by changes in the DOM itself, not by events generated either via JS or user interaction.</p>
<h3>So what are these good for?</h3>
<p>I don&#8217;t expect most JS hackers are going to run out right now and start adding mutation observers to their code. Probably the biggest audience for this new api are the people that write JS frameworks, mainly to solve problems and create interactions they could not have done previously, or at least not with reasonable performance. Another use case would be situations where you are using frameworks that manipulate the DOM and need to react to these modifications efficiently ( and without setTimeout hacks! ).</p>
<p>Another common use of the Dom Mutation Events api is in browser extensions, and in the next week or so I&#8217;m going to publish a follow-up post on how MutationObservers are particularly useful when interacting with web content in a Firefox Add-on.</p>
<h3>Resources</h3>
<ul>
<li><a target="_blank" href="http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html">Original Proposal</a></li>
<li><a target="_blank" href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-observers">W3C Spec</a></li>
<li><a target="_blank" href="http://www.youtube.com/watch?feature=player_embedded&#038;v=eRZ4pO0gVWw">Screencast</a> by Rafael Weinstein</li>
<li><a target="_blank" href="https://code.google.com/p/mutation-summary/">Mutation Summary</a>, a JS library that simplifies MutationObserver usage.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mozilla Hacks Weekly, May 10th 2012</title>
		<link>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-10th-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-10th-2012/#comments</comments>
		<pubDate>Thu, 10 May 2012 07:22:08 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Mozilla Hacks Weekly]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13272</guid>
		<description><![CDATA[Thursday again, dear readers, and time for more link suggestions from us in Mozilla&#8217;s Developer Engagement Team! At the end of this blog post, you also have all the Developer Engagement team members and what they work on. If you are interested in discussing more, contributing or taking part of our work, don&#8217;t hesitate to [...]]]></description>
			<content:encoded><![CDATA[<p> Thursday again, dear readers, and time for more link suggestions from us in Mozilla&#8217;s Developer Engagement Team!</p>
<p><span id="more-13272"></span></p>
<p>At the end of this blog post, you also have all the <a href="https://wiki.mozilla.org/index.php?title=Engagement/Developer_Engagement">Developer Engagement team</a> members and what they work on. If you are interested in discussing more, contributing or taking part of our work, don&#8217;t hesitate to contact us or follow us on Twitter!</p>
<h2>Weekly links</h2>
<p>If there is anything you think we should read or know about, don&#8217;t hesitate to post a comment, contact us on Twitter or through any other means.<br />
The picks this week are:</p>
<ul>
<li><a href="http://www.html5rocks.com/en/tutorials/webgl/webgl_transforms/">WebGL Transforms</a></li>
<li><a href="http://updates.html5rocks.com/2012/04/Processing-XHR2-file-uploads-in-PHP">Processing XHR2 file uploads in PHP</a></li>
<li><a href="http://jeditoolkit.com/2012/04/26/code-logic-not-mechanics.html">Promises and timing in JS: &#8220;Write logic, not mechanics&#8221;</a></li>
<li><a href="http://blogs.atlassian.com/2012/04/how-gliffy-is-managing-the-risk-of-re-writing-their-product-in-html5">How Gliffy is managing the risk of rewriting their product in HTML5</a></li>
<li><a href="http://camanjs.com/">CamanJS &#8211; Image Manipulation in Javascript</a></li>
<li><a href="http://www.marcozehe.de/2012/04/24/hiding-content-untangled-hiding-vs-moving-out-of-the-visible-viewport/">Hiding content untangled: Hiding vs. moving out of the visible viewport</a>. (We don&#8217;t always do this right on Mozilla sites, but we&#8217;re working on making them better.)</li>
<li>Great video that shows how to get started with Canvas really quickly: <a href="http://vimeo.com/36278748">CreativeJS for non-coders on Vimeo</a></li>
<li><a href="http://www.files.croar.net/chromapad/">ChromaPad</a></li>
<li><a href="http://www.elevation.com/downloads/Tech_Investing_10_Hypotheses_v8.6b.pdf">How to revive the Web: 10 Hypotheses (PDF)</a></li>
</ul>
<h2>The Developer Engagement team</h2>
<p>Mozilla&#8217;s Developer Engagement team work with writing articles, documentation &#8211; such as <a href="https://developer.mozilla.org/">MDN (Mozilla Developer Network)</a> &#8211; public speaking and generally helping and informing about open technologies and Mozilla products. If you are interested in following our work, here are the team members:</p>
<section class="hw-team">
<div class="hw-team-member">
<h3>Christian Heilmann</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/chris-heilmann.jpg" alt=""> Christian is Mozilla&#8217;s Principal Evangelist and is working with HTML5, Open Web, <a href="https://browserid.org/">BrowserID</a> and <a href="https://wiki.mozilla.org/DevTools">Developer Tools in Firefox</a>. He is also maintaining the <a href="https://twitter.com/mozhacks">@mozhacks</a> account together with Robert Nyman.</p>
<p>        Blog: <a href="http://christianheilmann.com/">http://christianheilmann.com/</a><br />
        Twitter: <a href="http://twitter.com/codepo8">@codepo8</a>
    </div>
<div class="hw-team-member">
<h3>Eric &#8220;Sheppy&#8221; Shepherd</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/09/eric-shepherd.jpg" alt=""> Eric is the Developer Documentation Lead for the MDN documentation and everything surrounding it. </p>
<p>        Blog: <a href="http://www.bitstampede.com/">http://www.bitstampede.com/</a><br />
        Twitter: <a href="http://twitter.com/sheppy">@sheppy</a>
    </div>
<div class="hw-team-member">
<h3>Havi Hoffman</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/havi-hoffman.jpg" alt=""> Havi works with <a href="http://mozillalabs.com/">Mozilla Labs</a> and <a href="https://webfwd.org/">WebFWD</a>, and maintains the <a href="http://twitter.com/mozlabs">@mozlabs</a> account.</p>
<p>        Twitter: <a href="http://twitter.com/freshelectrons">@freshelectrons</a>.
    </div>
<div class="hw-team-member">
<h3>Janet Swisher</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/janet-swisher.jpeg" alt=""> Janet is working on MDN documentation and is organizing doc sprints to ensure we have premium quality on MDN.</p>
<p>        Blog: <a href="http://www.janetswisher.com/">http://www.janetswisher.com/</a><br />
        Twitter: <a href="http://twitter.com/jmswisher">@jmswisher</a>.
    </div>
<div class="hw-team-member">
<h3>Jean-Yves Perrier</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/12/Jean-yves-perrier.png" alt=""> Jean-Yves is another one of our technical writers working on MDN documentation.</p>
<p>        Twitter: <a href="http://twitter.com/@teoli2003">@teoli2003</a>.
    </div>
<div class="hw-team-member">
<h3>Jeff Griffiths</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/11/jeff-griffiths.jpg" alt=""> Jeff is working with the <a href="https://wiki.mozilla.org/Jetpack">Add-ons SDK (Jetpack)</a>.</p>
<p>        Blog: <a href="http://canuckistani.ca/">http://canuckistani.ca/</a><br />
        Twitter: <a href="http://twitter.com/canuckistani">@canuckistani</a>
    </div>
<div class="hw-team-member">
<h3>Joe Stagner</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/09/joe-stagner-cartoon.gif" alt=""> Joe is working with <a href="https://apps.mozillalabs.com/">Web Apps</a> Developer Ecosystem &amp; Partner Engagement, HTML5 and the Open Web.</p>
<p>        Blog: <a href="http://www.misfitgeek.com/">http://www.misfitgeek.com/</a><br />
        Twitter: <a href="http://twitter.com/MisfitGeek">@MisfitGeek</a>
    </div>
<div class="hw-team-member">
<h3>John Karahalis</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/john-karahalis.jpg" alt=""> John is working on <a href="https://developer.mozilla.org/demos/devderby">Dev Derby</a>.</p>
<p>        Twitter: <a href="http://twitter.com/openjck">@openjck</a>
    </div>
<div class="hw-team-member">
<h3>Rob Hawkes</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/rob-hawkes.jpg" alt=""> Rob is working on <a href="https://wiki.mozilla.org/HTML5_Games">HTML5 games</a> and the Open Web.</p>
<p>        Blog: <a href="http://rawkes.com/">http://rawkes.com/</a><br />
        Twitter: <a href="http://twitter.com/robhawkes">@robhawkes</a>
    </div>
<div class="hw-team-member">
<h3>Robert Nyman</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/robert-nyman.jpg" alt=""> Robert is working with HTML5, Open Web, <a href="http://www.mozilla.com/firefox/">Firefox</a>, <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> and maintains the <a href="https://twitter.com/mozhacks">@mozhacks</a> account.</p>
<p>        Blog: <a href="http://robertnyman.com">http://robertnyman.com</a><br />
        Twitter: <a href="http://twitter.com/robertnyman">@robertnyman</a>
    </div>
<div class="hw-team-member">
<h3>Shezmeen Prasad</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2012/02/shez.jpg" alt=""> Shezmeen is working on everything regarding events, organization and connecting conferences with Mozilla speakers.
    </div>
<div class="hw-team-member">
<h3>Stormy Peters</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/stormy-peters.jpg" alt=""> Stormy is the Team Lead for the Developer Engagement team. managing it and evaluating our objectives.</p>
<p>        Blog: <a href="http://stormyscorner.com/">http://stormyscorner.com/</a><br />
        Twitter: <a href="http://twitter.com/storming">@storming</a>
    </div>
<div class="hw-team-member">
<h3>Tristan Nitot</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/tristan-nitot.jpg" alt=""> Tristan is our <a href="http://hacks.mozilla.org/category/missionmozilla/">Mission Evangelist</a> and is focusing on the bigger picture of Mozilla.</p>
<p>        Blog: <a href="http://standblog.org/blog/en">http://standblog.org/blog/en</a><br />
        Twitter: <a href="http://twitter.com/nitot">@nitot</a>
    </div>
<div class="hw-team-member">
<h3>Will Bamberg</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/will-bamberg.jpg" alt="A picture of Will Bamberg"> Will is working on documentation for the <a href="https://wiki.mozilla.org/Jetpack">Add-ons SDK (Jetpack)</a>.
    </div>
</section>
<style>
    .hw-team {overflow: hidden;}
    .hw-team-member { float: right; width: 45%; overflow: hidden; margin-bottom: 15px; }
    .hw-team-member:nth-child(odd) { float: left; clear: both;}
    .hw-team-member img { display: block; margin-bottom: 10px; }
</style>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-10th-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State of the Docs, May 9th, 2012</title>
		<link>http://hacks.mozilla.org/2012/05/state-of-the-docs-may-9th-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/state-of-the-docs-may-9th-2012/#comments</comments>
		<pubDate>Wed, 09 May 2012 23:31:39 +0000</pubDate>
		<dc:creator>Janet Swisher</dc:creator>
				<category><![CDATA[Docs]]></category>
		<category><![CDATA[MDN]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13224</guid>
		<description><![CDATA[By rights, today&#8217;s edition of &#8220;State of the Docs&#8221; should be a little light, since it has been only a week and a half since a very productive documentation sprint. But our amazing documentation contributors collectively do not rest, and so there is still lots to mention. Outside the usual categories of docs, Tom Lowenthal [...]]]></description>
			<content:encoded><![CDATA[<p>By rights, today&#8217;s edition of &#8220;State of the Docs&#8221; should be a little light, since it has been only a week and a half since <a href="http://hacks.mozilla.org/2012/04/doc-sprint-in-insert-california-cliche/">a very productive documentation sprint</a>. But our amazing documentation contributors collectively do not rest, and so there is still lots to mention.</p>
<p>Outside the usual categories of docs, <strong>Tom Lowenthal</strong> created a page of <a href="https://developer.mozilla.org/en/Privacy_policies">privacy policy guidelines</a>, with help from <strong>Jishnu Menon</strong>, along with a <a href="https://github.com/flamsmark/privacy-policy-template">privacy policy template</a> that you can fork on Github. If you missed the earlier <a href="http://hacks.mozilla.org/2012/05/privacy-policy-guidelines-and-template-for-web-apps/">Hacks post about privacy guidelines</a>, check it out. </p>
<h2>Help needed</h2>
<p><strong>Fbender</strong> added a note to the Talk page for JavaScript <a href="https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope">Functions and function scope</a> that &#8220;conditionally defining a function throws an error in at least ES5 strict, possibly non-strict (at least soon), too, see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=609832">Bug 609832</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=585536">Bug 585536</a>. The section <a href="https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope#Conditionally_defining_a_function">Conditionally defining a function</a> should be updated to reflect those changes.&#8221; Want to make that change? Go for it!</p>
<h2>Web standards docs</h2>
<ul>
<li><strong>Airportyh</strong> added compatibility info to <a href="https://developer.mozilla.org/en/DOM/event.defaultPrevented">event.defaultPrevented</a>.
</li>
<li><strong>Will Bamberg</strong> updated <a href="https://developer.mozilla.org/en/Browser_detection_using_the_user_agent">Browser detection using the user agent</a>.
</li>
<li><strong>Ethertank</strong> created or updated translations on a bunch of Japanese pages.
</li>
<li><strong>Fusionchess</strong> continued to be prolific:
<ul>
<li>Added an example of using a Blob object to <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest">Using XMLHttpRequest</a>.
</li>
<li>Added an example of the constructor to <a href="https://developer.mozilla.org/en/DOM/Blob">Blob</a>.
</li>
<li>Updated and expanded <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty">Object defineProperty</a>.
</li>
<li>Modified the example for using &#8216;apply&#8217; to chain constructors in <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply">Function apply</a>.
</li>
<li>Created a page for <a href="https://developer.mozilla.org/en/JXON">JXON</a>.
</li>
<li>Made <a href="https://developer.mozilla.org/en/JSON">JSON</a> consistent with other technology landing pages.
</li>
<li>Added a code example and cross-references to <a href="https://developer.mozilla.org/en/How_to_create_a_DOM_tree">How to create a DOM tree</a>.
</li>
</ul>
</li>
<li>Fusionchess and <strong>Hitautodestruct</strong> both expanded the information on ternary evaluation <a href="https://developer.mozilla.org/en/JavaScript/Reference/Operators/Conditional_Operator">Conditional operator</a>.
</li>
<li><strong>Bertrand Malet</strong> added code examples to <a href="https://developer.mozilla.org/en/DOM/element.onmouseout">element.onmouseout</a> and <a href="https://developer.mozilla.org/en/DOM/element.onmouseover">element.onmouseover</a>.
<li><strong>Masayuki</strong> updated <a href="https://developer.mozilla.org/en/DOM/KeyboardEvent">KeyboardEvent</a> and added &#8216;getModifierState&#8217; to <a href="https://developer.mozilla.org/en/DOM/MouseEvent">MouseEvent</a>.
</li>
<li><strong>Timoté Neullas</strong> translated <a href="https://developer.mozilla.org/fr/WebGL/Ajouter_du_contenu_%C3%A0_WebGL">Adding 2D content to a WebGL context</a> into French.
</li>
<li><strong>OoOoOoOo</strong> created <a href="https://developer.mozilla.org/en/CSS/border-image-slice">border-image-slice</a>.
</li>
<li><strong>Jeremie Patonnier</strong> created pages for the SVG attributes <a href="https://developer.mozilla.org/en/SVG/Attribute/color">color</a> and <a href="https://developer.mozilla.org/en/SVG/Attribute/color-profile">color-profile</a>.
</li>
<li><strong>Thierry Régagnon</strong> added browser compatibility info to <a href="https://developer.mozilla.org/en/CSS/transition-duration">transition-duration</a> and translated several other pages into French.
</li>
<li><strong>Eric Shepherd</strong> added a list of status codes to the WebSockets <a href="https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent">CloseEvent</a> reference page.
</li>
<li><strong>Masataka Yakura</strong> updated compatibility and added external references to <a href="https://developer.mozilla.org/en/DOM/console.dir">console.dir</a>, <a href="https://developer.mozilla.org/en/DOM/console.log">console.log</a>, <a href="https://developer.mozilla.org/en/DOM/console.error">console.error</a>, <a href="https://developer.mozilla.org/en/DOM/console.info">console.info</a>, <a href="https://developer.mozilla.org/en/DOM/console.warn">console.warn</a>, <a href="https://developer.mozilla.org/en/DOM/Blob">Blob</a> and <a href="https://developer.mozilla.org/en/DOM/BlobBuilder">BlobBuilder</a>.
</li>
<li><strong>Ziyunfei</strong> translated or updated translations on a bunch of Chinese pages. Really, really a lot of Chinese pages.
</li>
</ul>
<h2>Mozilla technology docs</h2>
<ul>
<li><strong>Malina Das</strong> created a page on <a href="https://developer.mozilla.org/en/Marionette/Marionette_Python_Tests/Emulator_Integrated_Tests">Emulator integrated tests</a> for Marionette and updated <a href="https://developer.mozilla.org/en/Marionette/Marionette_Python_Tests">Marionette Python tests</a>.
</li>
<li><strong>Greg Koberger</strong> added info on serving manifests from Apache to <a href="https://developer.mozilla.org/en/Apps/Manifest">Apps Manifest</a>
</li>
<li><strong>Nickolay Ponomarev</strong> added a section on instructions supported in bootstrapped extensions to <a href="https://developer.mozilla.org/en/Chrome_Registration">Chrome registration</a>, updated and corrected <a href="https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions">Bootstrapped extensions</a>, and updated <a href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIComponentManager">nsIComponentManager</a>.
</li>
<li><strong>Eric Shepherd</strong> created a page to document <a href="https://developer.mozilla.org/en/Tools/Using_the_Source_Editor">Using the source editor</a> in Firefox developer tools.
</li>
<li><strong>Till Schneidereit</strong> created <a href="https://developer.mozilla.org/en/SpiderMonkey/Setting_up_CDT_to_work_on_SpiderMonkey">Setting up CDT to work on SpiderMonkey</a>.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/state-of-the-docs-may-9th-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A look into a Firefox work week</title>
		<link>http://hacks.mozilla.org/2012/05/a-look-into-a-firefox-work-week/</link>
		<comments>http://hacks.mozilla.org/2012/05/a-look-into-a-firefox-work-week/#comments</comments>
		<pubDate>Wed, 09 May 2012 13:04:25 +0000</pubDate>
		<dc:creator>Johnathan Nightingale</dc:creator>
				<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13175</guid>
		<description><![CDATA[This post was originally published as A Compendium of Awesome, and is a short summary of a Firefox work week. Posted here to give an overview, with focus on some details, about things happening with Firefox developement. Two weeks ago, the Firefox team got together for a work week in Toronto. It was amazing. Walking [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post was originally published as <a href="http://blog.johnath.com/2012/05/08/awesome-a-compendium/">A Compendium of Awesome</a>, and is a short summary of a Firefox work week. Posted here to give an overview, with focus on some details, about things happening with Firefox developement.</em></p>
<p><a title="Team Firefox 2012 by robceemoz, on Flickr" href="http://www.flickr.com/photos/robceemoz/7113855919/"><img class="alignright" src="http://farm8.staticflickr.com/7110/7113855919_19c678433b_m.jpg" alt="Team Firefox 2012" width="240" height="180" /></a>Two weeks ago, the Firefox team got together for a work week in Toronto. It was amazing. Walking through a room with that many excellent people doing excellent things was inspiringhumblingunbelievable and the hits kept on rolling.</p>
<p>The combined mobile and graphics teams <strong>cut the beta blocker list for Fennec Native in half</strong>. The desktop team banged together <strong><a href="https://hg.mozilla.org/users/poshannessy_mozilla.com/signin/">a working prototype of sign in to the browser</a></strong>. The firefox tech leads worked with product and project management to <strong>nail down the kilimanjaro bug list</strong> for desktop. Madhava gave a great talk about <a href="http://madhava.com/egotism/archive/005060.html"><strong>the future of Firefox UX</strong></a>. I would have scored it as a strong success based on those outcomes alone.</p>
<p>And then <em>this</em> happened:</p>
<h2>Hacking</h2>
<ul>
<li><a href="https://github.com/campd/scratchpad-gist/">Scratchpad backending to github gists</a></li>
<li><a href="https://github.com/Gozala/scratch-kit/">Jetpacks in scratchpad</a></li>
<li><a href="http://msujaws.wordpress.com/2012/05/01/task-specific-icons-for-windows-7-jumplists/">Task-specific icons</a> in Windows 7 jumplists</li>
<li>Finalized <a href="https://etherpad.mozilla.org/panel-based-download-manager">interactions and designs for the new downloads manager</a></li>
<li><a href="https://etherpad.mozilla.org/signIntoBrowserServices">Sync meet-up and discussion</a> to evaluate how to move forward with a smaller core, by moving data handling to components and allowing the Sync team to concentrate on the real Sync functionality</li>
<li>Session Store meet-up and discussion on how to move forward with “Speedy Session Restore” as well as SS2 (rewriting SS).</li>
<li>Initial <a href="https://wiki.mozilla.org/Fennec/NativeUI/UserExperience/ReaderMode">explorations of a Fennec reading mode</a> (post-1.0)</li>
<li>Implemented <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=747784">Windows 8 appbar</a></li>
<li><a href="https://twitter.com/#%21/jorendorff/status/199888130965381120">Roll your own one-off, bespoke debuggers in the scratchpad</a>.</li>
<li><a href="http://www.youtube.com/watch?v=oz9tdV6WH2s&amp;list=UUbd7RPnAunIVDjGtpuod0Qw&amp;index=1&amp;feature=plcp">Responsive Design tool for web developers</a></li>
</ul>
<h2>Lightning Talks</h2>
<ul>
<li>Honza made Firebug’s HTTP Monitor <a href="http://www.softwareishard.com/blog/planet-mozilla/http-monitor/">a standalone component, and it can now remote-monitor fennec, too</a></li>
<li>Gavin gave a <a href="http://www.gavinsharp.com/blog/2012/05/03/code-review-lightning-talk/">great talk about code review</a></li>
<li>Tim Abraldes demoed the <a href="https://blog.mozilla.org/tabraldes/2012/05/04/mozilla-appswebapprt-lightning-talk-at-firefox-work-week/">Web App runtime</a></li>
<li>Margaret walked us through <a href="http://blog.margaretleibovic.com/post/22055279828/fennec-native-ui">Hacking Fennec</a></li>
<li>Brian Bondy updated the status of our <a href="http://www.brianbondy.com/blog/id/137/">Windows 8</a> work</li>
<li>Felipe <a href="http://felipe.wordpress.com/2012/04/30/using-aboutcc/">found and fixed memory leaks with about:cc</a></li>
<li>Dietrich walked through the <a href="http://people.mozilla.com/%7Edietrich/fxbc">state of the browser components team</a></li>
<li>David Dahl went meta, and talked about <a href="https://twitter.com/#%21/deezthugs/status/197350580568596480">giving Firefox talks in our community</a></li>
</ul>
<p>I know I’ve missed things. I know some of it is still being written up. In fact, I’m not even the first to write a round up post. Here’s <a href="http://starkravingfinkle.org/blog/2012/04/firefox-for-android-fx-mobile-work-week/">Finkle</a> doing the same, and <a href="http://campd.wordpress.com/2012/05/03/developer-tools-at-the-firefox-work-week/">dcamp</a>, and <a href="http://chrislord.net/blog/Software/Mozilla/mobile-platform-at-fxto2012.enlighten">cwiiis</a>.</p>
<p>FX-Team is big enough these days that it’s quite an undertaking to get us all together in one place. But man, it’s phenomenal when we do.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/a-look-into-a-firefox-work-week/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly HTML5 Apps Developer Resources, May 8th 2012</title>
		<link>http://hacks.mozilla.org/2012/05/apps-developer-resources-may-8th-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/apps-developer-resources-may-8th-2012/#comments</comments>
		<pubDate>Wed, 09 May 2012 12:28:54 +0000</pubDate>
		<dc:creator>Joe Stagner</dc:creator>
				<category><![CDATA[Apps]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13129</guid>
		<description><![CDATA[Weekly Resources for HTML5 Apps Developers Articles Financial Times passes 2m users for its HTML5 web app Coding the future: HTML5 takes the internet by storm Utilize JavaScript messaging with postal.js Open Source Metro style theme for jQuery Mobile JavaScript Style Guides And Beautifiers Spine.js vs Backbone.js HTML5 &#8211; You’ll never believe how LinkedIn built [...]]]></description>
			<content:encoded><![CDATA[<h2>Weekly Resources for HTML5 Apps Developers</h2>
<p></p>
<h4>Articles</h4>
<p></p>
<ul>
<li><a href="http://www.guardian.co.uk/media/appsblog/2012/apr/24/financial-times-web-app-2m" target="_blank">Financial Times passes 2m users for its HTML5 web app</a></li>
<li><a href="http://www.bbc.co.uk/news/business-17931814" target="_blank">Coding the future: HTML5 takes the internet by storm</a></li>
<li><a href="http://www.techrepublic.com/blog/programming-and-development/utilize-javascript-messaging-with-postaljs/5321" target="_blank">Utilize JavaScript messaging with postal.js</a></li>
<li><a href="http://blogs.msdn.com/b/interoperability/archive/2012/04/26/more-news-from-ms-open-tech-announcing-the-open-source-metro-style-theme.aspx" target="_blank">Open Source Metro style theme for jQuery Mobile</a></li>
<li><a href="http://addyosmani.com/blog/javascript-style-guides-and-beautifiers/" target="_blank">JavaScript Style Guides And Beautifiers</a></li>
<li><a href="http://hjortureh.tumblr.com/post/22117245794/spine-js-vs-backbone-js" target="_blank">Spine.js vs Backbone.js</a></li>
<li><a href="http://venturebeat.com/2012/05/02/linkedin-ipad-app-engineering/" target="_blank">HTML5 &#8211; You’ll never believe how LinkedIn built its new iPad app</a></li>
</ul>
<p></p>
<h4>Resources</h4>
<p></p>
<ul>
<li><a href="http://www.techrepublic.com/blog/smbit/10-useful-libraries-for-javascript-developers/215" target="_blank">10 useful libraries for JavaScript developers</a></li>
<li><a href="http://platform.html5.org/" target="_blank">HTML5.org &#8211; The Web platform: Browser technologies index</a></li>
<li><a href="http://www.adobe.com/devnet/html5/articles/unit-test-javascript-applications-with-jasmine.html" target="_blank">The Jasmine Unit testing framework for JavaScript applications</a>
<li><a href="https://github.com/sindresorhus/screenfull.js" target="_blank">Screenful.js &#8211; Simple wrapper for cross-browser usage of the JavaScript Fullscreen API</a>
<li><a href="http://fixiejs.com/" target="_blank">Fixie.js &#8211; JavaScript tool to automatically add filler content to HTML documents</a>
<li><a href="https://github.com/Prinzhorn/skrollr" target="_blank">skrollr &#8211; A JavaScript library to animate any CSS property of any element based on the horizontal scrollbar position</a>
<li><a href="https://github.com/ScottHamper/Cookies" target="_blank">Cookies &#8211; Client-Side Cookie Manipulation API</a>
<li><a href="http://www.jscheck.org/" target="_blank">JSCheck &#8211; a testing tool for JavaScript</a>
</li>
</ul>
<p></p>
<h4>Bonus Link</h4>
<p></p>
<ul>
<li><a href="http://www.youtube.com/watch?v=yluchvyUzvU" target="_blank">DevCon5 Video Presentation &#8211; Node.js in Context with Jason Hoffman of Joyent</a></li>
</ul>
<p>If you find a link that you think should be included, please feel free to forward it to JStagner at Mozilla.com</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/apps-developer-resources-may-8th-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>May Dev Derby: Show us what you can do with Websockets</title>
		<link>http://hacks.mozilla.org/2012/05/may-dev-derby-show-us-what-you-can-do-with-websockets/</link>
		<comments>http://hacks.mozilla.org/2012/05/may-dev-derby-show-us-what-you-can-do-with-websockets/#comments</comments>
		<pubDate>Wed, 09 May 2012 02:49:57 +0000</pubDate>
		<dc:creator>John Karahalis</dc:creator>
				<category><![CDATA[Dev Derby]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13107</guid>
		<description><![CDATA[The May Dev Derby is underway. A monthly contest hosted by the Mozilla Developer Network, the Dev Derby gives you the chance to apply the technology you read about on this blog, push the web forward, and compete for fame, glory, and prizes. This month, we are excited to see what you can do with [...]]]></description>
			<content:encoded><![CDATA[<p>The May <a href="https://developer.mozilla.org/demos/devderby">Dev Derby</a> is underway. A monthly contest hosted by the <a href="https://developer.mozilla.org/">Mozilla Developer Network</a>, the Dev Derby gives you the chance to apply the technology you read about on this blog, push the web forward, and compete for fame, glory, and prizes.</p>
<p><img class="aligncenter size-full wp-image-8841" src="http://hacks.mozilla.org/wp-content/uploads/2011/07/logo-devderby.png" alt="" width="335" height="96" /></p>
<p>This month, we are excited to see what you can do with <a href="https://developer.mozilla.org/en/WebSockets">Websockets</a>. Websockets allow you to send messages to a server and receive event-driven responses in real time, without server polling. But this is about more than just sending messages. Websockets have been used in <a href="https://hacks.mozilla.org/2012/03/browserquest/">BrowserQuest</a>, <a href="http://rawkets.com/">Rawkets</a>, and many other highly interactive applications.</p>
<p>Setting up a Websockets demo is more involved than setting up a static demo, but we know you can do it. As long as you keep these three simple rules in mind, everything should work flawlessly.<br />
<a id='may-derby-setup'></a></p>
<ol>
<li>To use Websockets, you need a server to communicate with. Thankfully, free services like <a href="http://www.heroku.com/">Heroku</a> and <a href="http://nodejitsu.com/#/">Nodejitsu</a> provide just that.</li>
<li>You do not need to use Heroku or Nodejitsu. If you use a different server, however, you must ensure that it has a signed SSL certificate.</li>
<li>When building your demo, be sure to use the wss:// prefix (not the ws:// prefix) to specify the address of your server.</li>
</ol>
<p>If you have any questions about setup, please let us know in the comments. We will work with you to resolve any issues you encounter. Otherwise, good luck and have fun!</p>
<p><em>Want to get a head start on a future Derby? We are also accepting entries related to the <a href="https://developer.mozilla.org/en/WebGL">WebGL</a> (June Derby) and demos that push the limits of the web without using JavaScript (July Derby).</em></p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/may-dev-derby-show-us-what-you-can-do-with-websockets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox and the release channels</title>
		<link>http://hacks.mozilla.org/2012/05/firefox-and-the-release-channels/</link>
		<comments>http://hacks.mozilla.org/2012/05/firefox-and-the-release-channels/#comments</comments>
		<pubDate>Tue, 08 May 2012 10:13:44 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Aurora]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13115</guid>
		<description><![CDATA[When we meet and talk to people, there are often questions about Firefox, how the release shedule works and what different channels we have for testing. Therefore, I&#8217;d like to introduce you to/remind you about them and also let you know where the most important testing is, both for you and for us. Firefox release [...]]]></description>
			<content:encoded><![CDATA[<p>When we meet and talk to people, there are often questions about Firefox, how the release shedule works and what different channels we have for testing. Therefore, I&#8217;d like to introduce you to/remind you about them and also let you know where the most important testing is, both for you and for us.</p>
<h2>Firefox release channels</h2>
<p>Basically, we have four different Firefox release channels:</p>
<dl>
<dt><a href="http://www.mozilla.org/firefox/">Firefox Release</a></dt>
<dd>The official release of Firefox.</dd>
<dt><a href="http://www.mozilla.org/firefox/beta/">Firefox Beta</a></dt>
<dd>Testing the next version of Firefox befire it becomes the official release.</dd>
<dt><a href="http://www.mozilla.org/firefox/aurora/">Firefox Aurora</a></dt>
<dd>For web/platform developers and early adopters.</dd>
<dt><a href="http://nightly.mozilla.org/">Firefox Nightly</a></dt>
<dd>Nightly releases that contains experimental features. (covered regularly on Twitter from <a href="https://twitter.com/firefoxnightly">@firefoxnightly</a>)</dd>
</dl>
<p><a href="http://hacks.mozilla.org/wp-content/uploads/2012/05/firefox-releases.jpg"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/firefox-releases-500.jpg"></a></p>
<h2>Firefox release timeline</h2>
<p>Firefox is released on a six week schedule, meaning that every sixth week there will be new versions of Firefox Release, Firefox Beta and Firefox Aurora. Nightly is, naturally, released every night.</p>
<p><a href="http://hacks.mozilla.org/wp-content/uploads/2012/05/rapid-release.jpg"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/rapid-release-500.jpg"></a></p>
<h2>Running multiple versions of Firefox at the same time</h2>
<p>There are many different ways of running multiple versions of Firefox at the same time. What it all comes down to is setting up different profiles that you have per each web browser instance. The easiest way is most likely to use the <a href="https://developer.mozilla.org/en/Profile_Manager">Profile Manager, as described on MDN</a>.</p>
<p>If you are on Mac OS X, it&#8217;s easy to use the <a href="http://gkoberger.net/n/firefoxes">automated version of setting up multiple profiles of Firefox</a>.</p>
<p>Another option, in plain code and as outlined in <a href="http://www.callum-macdonald.com/about/faq/multiple-firefox-instances/">Multiple Firefox Instances</a>, is to just launch the Profile manager directly:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"># On Windows click Start &gt; Run then:
&quot;C:\Program Files\Mozilla Firefox\firefox.exe&quot; -no-remote -ProfileManager
&nbsp;
# Mac OS X and Linux, in Terminal
firefox -ProfileManager
&nbsp;
# Depending on system/setup, you might need to do this from the directory
./firefox -ProfileManager</pre></div></div>

<h2>Testing Firefox Aurora</h2>
<p>The version of Firefox that is the best version to test for web developers is <a href="http://www.mozilla.org/firefox/aurora/">Firefox Aurora</a>. It is in a stable enough condition to use, but also has features at their latest stage before they become approved. Therefore, your chance to affect implementations, find bugs, improve features is when it has become Firefox Aurora &#8211; likewise, it gives us a better chance to ensure that when Firefox is officially released, all the things are in place in the best possible manner.</p>
<p>Therefore, please take the time to test out Firefox Aurora and new features, so we can together help Firefox and the web better!</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/firefox-and-the-release-channels/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>MDN Hack Day Tour would like to thank&#8230;</title>
		<link>http://hacks.mozilla.org/2012/05/mdn-hack-day-tour-would-like-to-thank/</link>
		<comments>http://hacks.mozilla.org/2012/05/mdn-hack-day-tour-would-like-to-thank/#comments</comments>
		<pubDate>Tue, 08 May 2012 01:35:22 +0000</pubDate>
		<dc:creator>Havi Hoffman</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[hackdays]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13011</guid>
		<description><![CDATA[Attention UK hackers: MDN Hack Day London takes place this Saturday May 12, at the newest Mozilla Space, on lovely St. Martin&#8217;s Lane. Designers, developers, and friends are all invited to register. Hacky goodness guaranteed. Many Thanks Yous, One Mozilla It was a whirlwind week and a half for the crew of the Mozilla MDN [...]]]></description>
			<content:encoded><![CDATA[<p><em>Attention UK hackers: <a href="http://mdn-hackday-london-es1.eventbrite.com/">MDN Hack Day London</a> takes place this Saturday May 12, at the newest Mozilla Space, on lovely St. Martin&#8217;s Lane. Designers, developers, and friends are all invited to <a href="http://mdn-hackday-london-es1.eventbrite.com">register</a>. Hacky goodness guaranteed. </em></p>
<p><strong>Many Thanks Yous, One Mozilla</strong></p>
<p>It was a whirlwind week and a half for the crew of the <a href="http://hacks.mozilla.org/2012/04/mozilla-hack-day-on-tour-heading-south/">Mozilla MDN Hack Day Tour in Latin America</a>. Over the course of 10 days we visited four cities in four countries in the Conosur, the southern part of South America. We met hundreds of developers in Buenos Aires, Argentina; Montevideo, Uruguay; Sao Paulo, Brazil; and Santiago, Chile. <strong>Thanks to everyone who took the time to listen, to talk with us, and make us feel welcome.<br />
</strong><br />
Our message was well-received: The Web is the platform and it&#8217;s built from open technologies. On this trip, we were eager to introduce some of the new projects Mozilla is working on now to keep the Web open as more of the world goes mobile. As a non-profit committed to promoting openness, innovation and opportunity on the Web, Mozilla works best with inputs and participation from communities everywhere.</p>
<p><a href="http://www.flickr.com/photos/freshelectrons/7140352351/"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/7140352351_c871180109_z-500x375.jpg" alt="Boot to Gecko Demo by Hernan Colmeiro" title="Boot to Gecko Demo by Hernan Colmeiro" width="500" height="375" class="aligncenter size-large wp-image-13059" /></a></p>
<p>In South America, we were a small team, carrying passports from Argentina, Canada, Sweden, Venezuela and the U.S. We spoke in a mix of Spanish and English. Personally I wish more of us had spoken Spanish, but because of my own language limitations, I was extra happy to listen to Spanish-speaking presenters at each of our events.</p>
<p>We talked about HTML5 &#038; friends and <a href="http://www.slideshare.net/robnyman/javascript-apis-the-web-is-the-platform-mdn-hack-day-santiago-chile">new Javascript APIs</a>. We introduced exciting new Mozilla open source projects like <a href="http://www.mozilla.org/en-US/b2g/">Boot-to-Gecko (B2G)</a>, our open web phone project that’s just getting started; the soon-to-be-launched <a href="https://marketplace.mozilla.org/en-US/ecosystem/">Mozilla Marketplace for HTML 5 apps</a> (presented by Mozilla Labs&#8217; <a href="http://twitter.com/mixedpuppy">Shane Caraveo</a>), and <a href="http://www.mozilla.org/en-US/persona/">Mozilla Persona</a>, a new identity system for the Web (presented in Spanish by <a href="http://www.twitter.com/thunder">Dan Mills</a>).</p>
<p>In Argentina and Uruguay, Telefonica’s <a href="http://twitter.com/davilagrau">Andres Leonardo Martinez Ortiz</a> introduced <a href="https://bluevia.com/">BlueVia</a>, the developer program and platform from Telefonica, <a href="http://blog.mozilla.org/blog/2012/02/27/mozilla-in-mobile-the-web-is-the-platform/">Mozilla partner</a> and MDN Hack Day sponsor. In Buenos Aires, <a href="https://twitter.com/#!/dangoor">Kevin Dangoor</a> spoke about <a href="http://www.blueskyonmars.com/2012/03/29/thinking-about-the-developer-experience/">the developer tools Mozilla is building</a> and Buenos Aires-based add-ons developer and evangelist <a href="http://www.twitter.com/peregrinogris">Hernan Colmeiro</a> spoke about the beauty of add-ons. In Santiago, Chile, Hernan wowed developers with <a href="http://www.flickr.com/photos/freshelectrons/7153363713/">a Boot-to-Gecko demo</a>.</p>
<p>There were dozens and dozens of individuals who helped make our tour a success, including Mozillians I work with every day and people I’d never met till we arrived in their country. The big risk in writing long thank-yous is that I will unintentionally to forget to mention someone essential, so please accept my apology in advance and don&#8217;t hesitate to use the comments.</p>
<p><strong>Buenos Aires</strong></p>
<p>We came to Buenos Aires for <a href="https://wiki.mozilla.org/MozCampLATAM2012">MozCamp LATAM</a>, Mozilla’s first community gathering held in Latin America, co-hosted by the amazing, multi-national Mozilla Hispano community and their Portuguese-speaking neighbors from Mozilla Brazil.</p>
<p><a href="http://www.flickr.com/photos/thunder/6964542800/in/photostream/"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/6964542800_008442f7fb_z1-500x500.jpg" alt="Mozilla Hispano Community Day" title="Mozilla Hispano Community Day" width="500" height="500" class="aligncenter size-large wp-image-13080" /></a></p>
<p>On the Friday before MozCamp we organized a day-long <a href="https://eventos.mozilla-hispano.org/13/mozilla-mdn-hack-day-en-buenos-aires-2012/">Hack Day for developers from Buenos Aires</a>. Over 150 developers attended a morning of talks and demos, followed by an afternoon of project hacking. After lunch, a lively group gathered around Add-ons developer Jorge Villalobos, while other attendees were riveted by <a href="https://twitter.com/#!/philikon">Philikon</a>’s demo of the Boot-2-Gecko phone. </p>
<p>MDN Hack Day would not have succeeded without the outreach, organizational support and hospitality of <a href="http://www.twitter.com/felipelerena">Felipe Lerena</a>, <a href="https://twitter.com/#!/deimidis">Guillermo Movia</a>, and <a href="https://twitter.com/#!/santihollmann">Santiago Hollman</a> of the <a href="http://www.mozilla-hispano.org/">Moz Hispano community</a>. And I&#8217;ll add a special shout-out to the Mozcamp LATAM planning committee: Mary Colvig, Chris Hofmann, Santiago Hollmann, Gloria Meneses, Ruben Martin, Reuben Morais, Guillermo Movia, and the unflappable Katherine Naszradi. This couldn’t have happened without your support!</p>
<p><a href="http://www.flickr.com/photos/prima_limon/6983711394/"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/6983711394_871e8c651b_z.jpg" alt="MozCamp Latam" title="MozCamp Latam" width="480" height="640" class="aligncenter size-full wp-image-13076" /></a></p>
<p><strong>Montevideo</strong></p>
<p>The crew left Buenos Aires on a sunny Monday afternoon, and crossed the Rio de la Plata by Buquebus ferry, arriving in Montevideo at nightfall, after a choppy 3-hour crossing.</p>
<p>The next morning I met up with old friend and colleague <a href="http://www.linkedin.com/in/rabble">Evan Henshaw Plath</a>, and new friends <a href="http://www.linkedin.com/in/oboxodo">Diego Algorta</a>, Elena Vilar and the <a href="http://cuboxlabs.com/">Cubox Labs</a> team who’d been helping us organize, promote and host MDN Hack Day in Montevideo. They work together in a classic 1920s home converted to a co-working space in a leafy residential neighborhood. I met our evening’s speakers, along with Frenchman <a href="http://massonn.com/">Jean-Paul Massonnier</a>, an awesome designer, who&#8217;d created a poster that was pure Mozilla.  I drank delicious coffee and chatted with developers in the kitchen overlooking a garden where coders kicked a football around in the sunshine.</p>
<p><a href="http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012-2/"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/7140205365_9cea879b20.jpg" alt="MDN Hack Day 2012 - Montevideo Poster" title="MDN Hack Day 2012 - Montevideo Poster" width="375" height="500" class="aligncenter size-full wp-image-13020" /></a></p>
<p>We headed over to <a href="http://ladiaria.com.uy/comunidad/cafe/?m=comunidad">Cafe La Diaria</a>. La Diaria is a subscription-based independent newspaper that is now the 2nd most widely read paper in Uruguay. It is run cooperatively and distributed by employees, with a commitment to the highest journalistic standards. Cafe La Diaria is a venue and community space in the old downtown of the city. Here we met our hosts Damian and Antonieta, who cooked up delicious pizza at the break.  Cubox’s Nicolas Barrera gave an entertaining and enlightening talk about <a href="http://mcdlr.com/rwd/">responsive design</a>, and Fernando Briano, Cuboxer and noted tech blogger served up a presentation on <a href="http://mdn-2012.heroku.com/">the web as a tool for Social Change</a>.</p>
<p><a href="http://www.flickr.com/photos/freshelectrons/7140212777"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/7140212777_94bd8d03e7_z.jpg" alt="" title="Support All the Resolutions! " width="480" height="640" class="aligncenter size-full wp-image-13041" /></a></p>
<p>In addition, there were two lightning talks: On his last night in Montevideo before moving to Berlin, MDN demo contributor and Developer Derby winner <a href="https://developer.mozilla.org/en-US/profiles/tuxie/">Alvaro Mourino</a> (aka Tuxie) stopped by to talk about our <a href="https://developer.mozilla.org/en-US/demos/devderby">Dev Derby</a> and encourage people to participate. Dario Clavijo, <a href="http://dclavijo.blogspot.com/2012/04/mozilla-developer-network-hack-day.html">a tech blogger</a> and IT professional in Montevideo, spoke passionately about the importance of free and open software. It was his first ever lightning talk and we were honored to hear from him!</p>
<p><strong>Sao Paulo</strong></p>
<p><a href="https://twitter.com/#!/robertnyman">Robert Nyman</a>, <em>El Sueco</em>, made the trip to Brazil by himself, since the rest of us <em>yanquis</em> were lacking visas. Here’s his report:</p>
<blockquote><p>&#8220;The next leg of the tour, helpfully organized by local company <a href="http://www.caelum.com.br/">Caelum</a>, [was] a Mozilla one-man show from me giving two talks in Sao Paulo:</p>
<ul>
<li>HTML5, the Open Web and what it means to you</li>
<li>JavaScript APIs &#8211; The web is the platform</li>
</ul>
<p>In addition to that, local developer <a href="https://twitter.com/#!/gabriel_o">Gabriel Oliveira</a> spoke about CSS3, and from what I could understand, he showed some really interesting things!</p>
<p>There were about 40+ attendees this very rainy night in Sao Paulo, and while there weren&#8217;t many people, I was really happy to see the nods of approval in the audience during my talk, when I expressed Mozilla&#8217;s values and approach to the web and moving forward. After my presentations, we stood around for a long time discussing the web, -webkit prefixes, H.264 support and more. People seemed to be understanding and pragmatic, and I believe there were some really talented people there.</p>
<p>Additionally, I got to spend some time being guided around by local community members <a href="https://twitter.com/#!/fabiomagnoni">Fábio Magnoni</a> and <a href="https://twitter.com/#!/clauberhalic">Clauber Stipkovic</a>, who I got to know in person at MozCamp in Buenos Aires, and had interesting discussions!”</p></blockquote>
<p><strong>Santiago, Chile</strong></p>
<p>Our final Hack Day of the LATAM tour took place in Santiago, Chile on an overcast Saturday evening. We met in a comfortable classroom at the University of Chile’s Escuela de Economía y Negocios. <a href="https://twitter.com/#!/janogonzalez">Jano Gonzalez</a>, a Ruby blogger and all around nice guy made the arrangements. His friends Paulina and Rodrigo took some of the team on a tour of the city. </p>
<p>More than 50 attendees came out to hear from us. Pizza Hut (!) delivered pizza during the break. Hernan Colmeiro came out from Buenos Aires to introduce Add-ons and to demo Boot-to-Gecko. And <a href="https://twitter.com/#!/sxd">Jonathan Gonzalez</a>, no relation to Jano, introduced the <a href="http://monkey-project.com/">Monkey Project</a>, a fast and scalable web server for Linux.</p>
<p><a href="http://hacks.mozilla.org/2012/05/mdn-hack-day-tour-would-like-to-thank/6994147166_e0a344e8ce_z/" rel="attachment wp-att-13044"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/6994147166_e0a344e8ce_z-500x375.jpg" alt="Monkey Project, presented by Zeus" title="Monkey Project, presented by Zeus" width="500" height="375" class="aligncenter size-large wp-image-13044" /></a></p>
<p>We had a strong showing of lightning talks: including presentations delivered in English, with slides in Spanish; presentations in Spanish, with slides in English; a compelling pitch by Ricardo about why you should overcome your shyness and get up at events to give talks about the stuff you know; a hilarious parody of a framework that was probably NSFW, but I didn&#8217;t understand enough of the Chilean slang so I can&#8217;t be sure; and an introduction to <a href="http://poderopedia.com/">Poderopedia</a>, a database that aims to map the relationships between political and financial power in Chile. We also met some entrepreneurs from the <a href="http://startupchile.org/">Startup Chile</a> accelerator, and on Monday a couple of us had a chance to visit their lively space.</p>
<p><strong>In conclusion</strong></p>
<p>Huge thanks to the rest of the team &#8211; everyone was upbeat, professional, collaborative, and more fun than a barrel of monkeys: Shane Caraveo, Hernan Colmeiro, Dan Mills, Robert Nyman, and a special shout-out to <a href="http://www.twitter.com/shezprasad">Shezmeen Prasad</a>, event organizer extraordinaire, who invited me along. Props also to Jeff Griffiths, who put it all together behind the scenes, from somewhere in <a href="https://twitter.com/#!/canuckistani">Canuckistan</a>. <em>Gracias!</em></p>
<p><em>Photo credits: <a href="http://www.flickr.com/photos/prima_limon/6983711394/">Prima Limon</a>, <a href="http://www.flickr.com/photos/thunder/6964542800/in/photostream/">thunder</a>, and <a href="http://www.flickr.com/photos/freshelectrons/sets/72157629959712419/">freshelectrons</a>. </em></p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mdn-hack-day-tour-would-like-to-thank/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MDN downtime on May 8th, 2012</title>
		<link>http://hacks.mozilla.org/2012/05/mdn-downtime-on-may-8th-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/mdn-downtime-on-may-8th-2012/#comments</comments>
		<pubDate>Mon, 07 May 2012 18:57:26 +0000</pubDate>
		<dc:creator>Janet Swisher</dc:creator>
				<category><![CDATA[Demo Studio]]></category>
		<category><![CDATA[Dev Derby]]></category>
		<category><![CDATA[Docs]]></category>
		<category><![CDATA[MDN]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13017</guid>
		<description><![CDATA[Update 2012-05-08: Thanks to last-minute magic by Mozilla IT, MDN won&#8217;t be completely unavailable after all. However, it will be running on a single virtual machine rather than three physical servers, so expect worse than usual performance during the time frame described below. Mozilla Developer Network will be down for maintenance and completely unavailable for [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>Update 2012-05-08:</strong> Thanks to last-minute magic by Mozilla IT, MDN won&#8217;t be completely unavailable after all. However, it will be running on a single virtual machine rather than three physical servers, so expect worse than usual performance during the time frame described below.</p></blockquote>
<p><a href="https://developer.mozilla.org">Mozilla Developer Network</a> will be down for maintenance and completely unavailable for approximate eight hours on Tuesday, May 8th, 2012, starting at 15:00 UTC (Tue 17:00 CET, Tue 11:00 US-EDT, Tue 8:00 US-PDT). It should be back online by 00:00 UTC on Wednesday May 9th (Wed 02:00 CET, Tue 20:00 US-EDT, Tue 17:00 US-PDT). </p>
<p>During this time, the site will not be available for viewing or editing, so please make sure to save all your edits and be prepared in advance &mdash; maybe go outside and get some fresh air &mdash; MDN will be back before you know it.</p>
<p>Meanwhile, here are some alternative resources:</p>
<p>Open Web standards:</p>
<ul>
<li><a href="http://dochub.io">DocHub</a> mirrors content from MDN and other sources</li>
<li><a href="http://dev.opera.com/web">Dev.Opera</a> has lots of Web technology articles</li>
<li><a href="http://www.w3.org/standards/webdesign/">W3C Web Design and Applications</a> is a landing page for Web standards</li>
<li><a href="https://developer.apple.com/library/safari/navigation/index.html">Safari Developer Library</a> has many articles on Web development</li>
</ul>
<p>Mozilla stuff:</p>
<ul>
<li><a href="https://wiki.mozilla.org">Mozilla wiki</a> has all kinds of information related to the Mozilla project</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mdn-downtime-on-may-8th-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Privacy policy guidelines and Template for web apps</title>
		<link>http://hacks.mozilla.org/2012/05/privacy-policy-guidelines-and-template-for-web-apps/</link>
		<comments>http://hacks.mozilla.org/2012/05/privacy-policy-guidelines-and-template-for-web-apps/#comments</comments>
		<pubDate>Thu, 03 May 2012 09:52:17 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Featured Article]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12966</guid>
		<description><![CDATA[Releasing an app is much more than just coding it. You are providing a service to people and they trust you with their data. With the amount of reports of apps &#8220;calling home&#8221; and storing and sending your data to third parties without your consent rising it is important to make it plain and obvious [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/pong/2404940312/" title="Privacy by rpongsaj, on Flickr"><img src="http://farm3.staticflickr.com/2052/2404940312_e759c4030d_m.jpg" width="180" height="240" alt="Privacy" style="float:left;margin:0 5px 5px 0"></a> Releasing an app is much more than just coding it. You are providing a service to people and they trust you with their data. With the amount of reports of apps &#8220;calling home&#8221; and storing and sending your data to third parties without your consent rising it is important to make it plain and obvious what you do. An easy to understand and plain Privacy Policy is not only a good service but it can make it easier for investors and users to choose your product over another. </p>
<p>Ramping up developers to submit and publish their apps to the <a href="https://marketplace.mozilla.org/en-US/">Mozilla Marketplace</a> we just released a few simple to understand <a href="https://developer.mozilla.org/en/Privacy_policies">Privacy policy guidelines</a> complete with an HTML/CSS/RSS <a href="https://github.com/flamsmark/privacy-policy-template">Privacy Policy Template</a> on GitHub. </p>
<p>Whilst the guidelines are not a substitute for a real lawyer and don&#8217;t provide legal advice they have some very simple and powerful tips to get you going:</p>
<ul>
<li>Design your app or add-on so that what you actually do with user data is what users think you are doing with it.</li>
<li>Try to give the user as much control over their data as you can, such as giving them the choice to opt-in to or opt-out of data collection whenever possible.</li>
<li>Try to limit your data collection and use to only the data that you need.</li>
<li>Design your app and service to protect the security of your user&#8217;s data in its collection, storage, and use.</li>
<li>Respond to user questions and concerns about your privacy practices.</li>
<li>Avoid &#8216;secret&#8217; updates.</li>
<li>Make your use of social features transparent, so that users are aware of when they&#8217;re sharing data socially.</li>
<li>Give people a way to turn off automatic sharing or make more granular choices about sharing data.</li>
<li>Obtain consent from users when necessary, especially for location and other sensitive information.</li>
<li>Put a link to your privacy policy and, if you have them, your &#8220;terms of use&#8221; somewhere in your app.</li>
</ul>
<p>Avoid confusion and problems in the future by getting the basics right &#8211; and that very much includes privacy concerns in your app.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/privacy-policy-guidelines-and-template-for-web-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mozilla Hacks Weekly, May 3rd 2012</title>
		<link>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-3rd-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-3rd-2012/#comments</comments>
		<pubDate>Thu, 03 May 2012 08:56:18 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Mozilla Hacks Weekly]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12962</guid>
		<description><![CDATA[Last week we took a little break from Mozilla Hacks Weekly since a number of us were traveling South America for our MDN tour. Now we&#8217;re back, though, so here are more link suggestions from us in Mozilla&#8217;s Developer Engagement Team! At the end of this blog post, you also have all the Developer Engagement [...]]]></description>
			<content:encoded><![CDATA[<p>Last week we took a little break from Mozilla Hacks Weekly since a number of us were <a href="http://hacks.mozilla.org/2012/04/mozilla-hack-day-on-tour-heading-south/">traveling South America for our MDN tour</a>. Now we&#8217;re back, though, so here are more link suggestions from us in Mozilla&#8217;s Developer Engagement Team!</p>
<p><span id="more-12962"></span></p>
<p>At the end of this blog post, you also have all the <a href="https://wiki.mozilla.org/index.php?title=Engagement/Developer_Engagement">Developer Engagement team</a> members and what they work on. If you are interested in discussing more, contributing or taking part of our work, don&#8217;t hesitate to contact us or follow us on Twitter!</p>
<h2>Weekly links</h2>
<p>If there is anything you think we should read or know about, don&#8217;t hesitate to post a comment, contact us on Twitter or through any other means.<br />
The picks this week are:</p>
<ul>
<li><a href="http://alligator.github.com/lake.js/">lake.js</a> &#8211;  Takes an img element and inserts a canvas element displaying the image and its flipped reflection directly after the img element</li>
<li>Great rant on when to <a href="http://www.garann.com/dev/2012/a-retirement-fund-for-your-javascript/">take your legacy code out back with a shotgun</a></li>
<li>WebSockets: <a href="http://buildnewgames.com/websockets/">A Guide &#8211; Build New Games</a></li>
<li>The <a href="http://highscalability.com/blog/2012/4/9/the-instagram-architecture-facebook-bought-for-a-cool-billio.html">Instagram Architecture</a> Facebook Bought for a Cool Billion Dollars</li>
<li><a href="http://www.stevesouders.com/blog/2012/04/10/dont-docwrite-scripts/">Don’t docwrite scripts</a></li>
<li><a href="http://www.callum-macdonald.com/about/faq/multiple-firefox-instances/">Multiple Firefox Instances</a></li>
<li>The <a href="http://johnkpaul.tumblr.com/post/20720951024/javascript-only-three-bad-parts">three &#8220;bad&#8221; parts in JS</a> aren&#8217;t so bad, just mind-bending and worth reviewing occasionally</li>
<li><a href="http://mattgemmell.com/2012/04/13/augmented-paper/">Augmented Paper</a></li>
<li><a href="http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/">Light Table</a> &#8211; a new IDE concept</li>
</ul>
<h2>The Developer Engagement team</h2>
<p>Mozilla&#8217;s Developer Engagement team work with writing articles, documentation &#8211; such as <a href="https://developer.mozilla.org/">MDN (Mozilla Developer Network)</a> &#8211; public speaking and generally helping and informing about open technologies and Mozilla products. If you are interested in following our work, here are the team members:</p>
<section class="hw-team">
<div class="hw-team-member">
<h3>Christian Heilmann</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/chris-heilmann.jpg" alt=""> Christian is Mozilla&#8217;s Principal Evangelist and is working with HTML5, Open Web, <a href="https://browserid.org/">BrowserID</a> and <a href="https://wiki.mozilla.org/DevTools">Developer Tools in Firefox</a>. He is also maintaining the <a href="https://twitter.com/mozhacks">@mozhacks</a> account together with Robert Nyman.</p>
<p>        Blog: <a href="http://christianheilmann.com/">http://christianheilmann.com/</a><br />
        Twitter: <a href="http://twitter.com/codepo8">@codepo8</a>
    </div>
<div class="hw-team-member">
<h3>Eric &#8220;Sheppy&#8221; Shepherd</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/09/eric-shepherd.jpg" alt=""> Eric is the Developer Documentation Lead for the MDN documentation and everything surrounding it. </p>
<p>        Blog: <a href="http://www.bitstampede.com/">http://www.bitstampede.com/</a><br />
        Twitter: <a href="http://twitter.com/sheppy">@sheppy</a>
    </div>
<div class="hw-team-member">
<h3>Havi Hoffman</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/havi-hoffman.jpg" alt=""> Havi works with <a href="http://mozillalabs.com/">Mozilla Labs</a> and <a href="https://webfwd.org/">WebFWD</a>, and maintains the <a href="http://twitter.com/mozlabs">@mozlabs</a> account.</p>
<p>        Twitter: <a href="http://twitter.com/freshelectrons">@freshelectrons</a>.
    </div>
<div class="hw-team-member">
<h3>Janet Swisher</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/janet-swisher.jpeg" alt=""> Janet is working on MDN documentation and is organizing doc sprints to ensure we have premium quality on MDN.</p>
<p>        Blog: <a href="http://www.janetswisher.com/">http://www.janetswisher.com/</a><br />
        Twitter: <a href="http://twitter.com/jmswisher">@jmswisher</a>.
    </div>
<div class="hw-team-member">
<h3>Jean-Yves Perrier</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/12/Jean-yves-perrier.png" alt=""> Jean-Yves is another one of our technical writers working on MDN documentation.</p>
<p>        Twitter: <a href="http://twitter.com/@teoli2003">@teoli2003</a>.
    </div>
<div class="hw-team-member">
<h3>Jeff Griffiths</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/11/jeff-griffiths.jpg" alt=""> Jeff is working with the <a href="https://wiki.mozilla.org/Jetpack">Add-ons SDK (Jetpack)</a>.</p>
<p>        Blog: <a href="http://canuckistani.ca/">http://canuckistani.ca/</a><br />
        Twitter: <a href="http://twitter.com/canuckistani">@canuckistani</a>
    </div>
<div class="hw-team-member">
<h3>Joe Stagner</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/09/joe-stagner-cartoon.gif" alt=""> Joe is working with <a href="https://apps.mozillalabs.com/">Web Apps</a> Developer Ecosystem &amp; Partner Engagement, HTML5 and the Open Web.</p>
<p>        Blog: <a href="http://www.misfitgeek.com/">http://www.misfitgeek.com/</a><br />
        Twitter: <a href="http://twitter.com/MisfitGeek">@MisfitGeek</a>
    </div>
<div class="hw-team-member">
<h3>John Karahalis</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/john-karahalis.jpg" alt=""> John is working on <a href="https://developer.mozilla.org/demos/devderby">Dev Derby</a>.</p>
<p>        Twitter: <a href="http://twitter.com/openjck">@openjck</a>
    </div>
<div class="hw-team-member">
<h3>Rob Hawkes</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/rob-hawkes.jpg" alt=""> Rob is working on <a href="https://wiki.mozilla.org/HTML5_Games">HTML5 games</a> and the Open Web.</p>
<p>        Blog: <a href="http://rawkes.com/">http://rawkes.com/</a><br />
        Twitter: <a href="http://twitter.com/robhawkes">@robhawkes</a>
    </div>
<div class="hw-team-member">
<h3>Robert Nyman</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/robert-nyman.jpg" alt=""> Robert is working with HTML5, Open Web, <a href="http://www.mozilla.com/firefox/">Firefox</a>, <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> and maintains the <a href="https://twitter.com/mozhacks">@mozhacks</a> account.</p>
<p>        Blog: <a href="http://robertnyman.com">http://robertnyman.com</a><br />
        Twitter: <a href="http://twitter.com/robertnyman">@robertnyman</a>
    </div>
<div class="hw-team-member">
<h3>Shezmeen Prasad</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2012/02/shez.jpg" alt=""> Shezmeen is working on everything regarding events, organization and connecting conferences with Mozilla speakers.
    </div>
<div class="hw-team-member">
<h3>Stormy Peters</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/stormy-peters.jpg" alt=""> Stormy is the Team Lead for the Developer Engagement team. managing it and evaluating our objectives.</p>
<p>        Blog: <a href="http://stormyscorner.com/">http://stormyscorner.com/</a><br />
        Twitter: <a href="http://twitter.com/storming">@storming</a>
    </div>
<div class="hw-team-member">
<h3>Tristan Nitot</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/08/tristan-nitot.jpg" alt=""> Tristan is our <a href="http://hacks.mozilla.org/category/missionmozilla/">Mission Evangelist</a> and is focusing on the bigger picture of Mozilla.</p>
<p>        Blog: <a href="http://standblog.org/blog/en">http://standblog.org/blog/en</a><br />
        Twitter: <a href="http://twitter.com/nitot">@nitot</a>
    </div>
<div class="hw-team-member">
<h3>Will Bamberg</h3>
<p>        <img src="http://hacks.mozilla.org/wp-content/uploads/2011/07/will-bamberg.jpg" alt="A picture of Will Bamberg"> Will is working on documentation for the <a href="https://wiki.mozilla.org/Jetpack">Add-ons SDK (Jetpack)</a>.
    </div>
</section>
<style>
    .hw-team {overflow: hidden;}
    .hw-team-member { float: right; width: 45%; overflow: hidden; margin-bottom: 15px; }
    .hw-team-member:nth-child(odd) { float: left; clear: both;}
    .hw-team-member img { display: block; margin-bottom: 10px; }
</style>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-3rd-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MDN First steps</title>
		<link>http://hacks.mozilla.org/2012/05/mdn-first-steps/</link>
		<comments>http://hacks.mozilla.org/2012/05/mdn-first-steps/#comments</comments>
		<pubDate>Tue, 01 May 2012 21:44:32 +0000</pubDate>
		<dc:creator>Janet Swisher</dc:creator>
				<category><![CDATA[Docs]]></category>
		<category><![CDATA[MDN]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12931</guid>
		<description><![CDATA[This is a guest post by J&#233;r&#233;mie Patonnier. This article was originally published in French. For two years now, J&#233;r&#233;mie has been an active contributor to MDN. He organizes short doc sprints each Wednesday evening at the Mozilla Paris office. During those events, people ask a lot of questions about MDN and how to contribute. [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a guest post by J&eacute;r&eacute;mie Patonnier. This article was <a href="http://jeremie.patonnier.net/post/2012/04/24/Bien-demarrer-avec-MDN">originally published in French</a>. For two years now, J&eacute;r&eacute;mie has been an active contributor to MDN. He organizes short doc sprints each Wednesday evening at the Mozilla Paris office. During those events, people ask a lot of questions about MDN and how to contribute. Here are the most common questions with the hope that they will help you to understand how to get involved with MDN.</em></p>
<h2>What is MDN?</h2>
<p>Please, don&#8217;t laugh, you have no idea how many times I have heard this.</p>
<p>To get straight to the point, MDN is the <a href="https://developer.mozilla.org">Mozilla Developer Network</a>. It&#8217;s a web site centralizing almost all the documentation about Mozilla products. Basically this site hosts three kind of resources:</p>
<ul>
<li>Articles and links to external resources to learn how to use web technologies</li>
<li>Demos of cutting edge Web technologies available in modern Web browsers (Those demos come from the monthly <a href="https://developer.mozilla.org/en-US/demos/devderby">Dev Derby</a> contest organized by John Karahalis)</li>
<li>Reference documentation (API, elements, attributes, properties) for Mozilla technologies and more important, reference documentation for all open Web technologies (<a href="https://developer.mozilla.org/en/HTML">HTML</a>, <a href="https://developer.mozilla.org/en/CSS">CSS</a>, <a href="https://developer.mozilla.org/en/JavaScript">JavaScript</a>, <a href="https://developer.mozilla.org/en/SVG">SVG</a>, <a href="https://developer.mozilla.org/en/WebGL">WebGL</a>, etc.)</li>
</ul>
<p>The last part, the open Web documentation, is the most important (in terms of volume as well as quality) and the one where Mozilla currently puts its biggest effort. One thing to mention is the fact that this documentation is browser agnostic, with compatibility tables and implementation notes for all browsers, not just Firefox.</p>
<p>Even if this documentation can be considered as one of the best currently available on the Web, it&#8217;s far from complete, and you are more than welcome to help with filling the gaps ;)</p>
<h2>Is it difficult to contribute?</h2>
<p>Not at all, on the contrary, it&#8217;s amazingly simple. I even think it is the easiest way to contribute to Mozilla (there is no need to deal with Bugzilla :-P)</p>
<p>Actually, to contribute to MDN, you need two things:</p>
<ul>
<li>The will to contribute</li>
<li>A user account on MDN</li>
</ul>
<p>And that&#8217;s all.</p>
<p>The hardest things to do is to find the &#8220;Sign in&#8221; button in the upper right corner of the site, stuck between the search field and the ugly white Mozilla tab‚ &mdash; yeah, yeah, yeah not really the best place. Once you click it, you are prompted for an e-mail address and a password (MDN uses Mozilla <a href="https://developer.mozilla.org/en/BrowserID">Persona/BrowserID</a>). After that, on the next page, you just have to provide a &#8220;user name&#8221; to identify your contributions on MDN and voil&agrave;, you are ready to contribute.</p>
<p>For its part, contributing is also really simple. Basically, MDN is 80% a wiki. So, on each page of the wiki, you&#8217;ll find an &#8220;Edit&#8221; button (in the upper right corner). Click it to load the page content into a WYSIWYG editor (don&#8217;t worry, if you want to be hardcore, you can switch to raw HTML editing). Make all the changes you want and save them (by clicking on the &#8220;Save&#8221; button on the upper left corner). Congratulations, you&#8217;ve made your first contribution to MDN and Mozilla: no stupid publication process, no delay, no review (of course, you can ask for it, but it&#8217;s not required) &mdash; too easy :)</p>
<h2>What can I do, where do I start?</h2>
<p>The short answer is &#8220;whatever and wherever you want&#8221;. Unfortunately, experience has shown me that it&#8217;s not the answer expected by newcomers.</p>
<p>Basically, you can do two things on MDN:</p>
<ul>
<li>Submit demos to the <a href="https://developer.mozilla.org/en-US/demos/devderby">Dev Derby</a> demos monthly contest, which is pretty cool if you are a developer.</li>
<li>Contribute to the documentation if you feel you have the heart of a writer.</li>
</ul>
<p>Contributing to the documentation can be done in several ways, depending on the time and the will you have to get involved:</p>
<ul>
<li><strong>Writing new articles</strong><br />
	It&#8217;s the most time consuming contribution. However, it&#8217;s also the most useful to the most people.</li>
<li><strong>Localizing content</strong><br />
	If you are familiar with a language other than English it is a good idea to translate existing material into that language. Not everybody uses English all around the world and it&#8217;s important to make the Web accessible to anyone.</li>
<li><strong>Writing code samples</strong><br />
	Explanations are good, but examples are better. Many times, a good example can make things much more understandable than five paragraphs of rubbish text. So writing code samples is one of the most useful contributions and MDN really needs more.</li>
<li><strong>Reviewing content</strong><br />
	As I said before, the review process on MDN is really limited but contributors can explicitly ask for review (through a tagging system). These can be editorial reviews as well as technical reviews. (Look for <code>NeedsTechnicalReview</code> or <code>NeedsEditorialReview</code> tags on pages; remove the tag if the page is OK.) If you have a small amount of time, it&#8217;s the perfect contribution that will help a lot of people.</li>
<li><strong>Updating compatibility tables</strong><br />
 	MDN&#8217;s open Web documentation is becoming more browser agnostic. To achieve that goal, there are many pages on MDN with browser compatibility tables. They allow users to know which API, element, attribute, or property is available for each browser. This is amazingly useful and it only take five minutes to add some compatibility data. Without a doubt, it is the easiest and fastest way to contribute to MDN.</li>
</ul>
<p>One last tip. Documenting the open Web is a huge task that no one can perform alone. As a consequence, it&#8217;s a good idea to focus yourself on the topics you are interested in personally. If you want to work on a specific subject, know that MDN has &#8220;<a href="https://developer.mozilla.org/Project:en/Topic_drivers">Topic Drivers</a>&#8221; that can help you; feel free to contact them. They will be more than happy to assist you.</p>
<p>To complete this, there two introductory pages on MDN that can be quite helpful:</p>
<ul>
<li><a href="https://developer.mozilla.org/Project:en/Getting_started">Getting started</a></li>
<li><a href="https://developer.mozilla.org/Project:en/To-do_list">To-do list</a></li>
</ul>
<h2>Conclusion</h2>
<p>As you can see, contributing to MDN is quite simple. If you want to know more feel free to ask your question on IRC at irc.mozilla.org on the #devmo channel or through our <a href="https://lists.mozilla.org/listinfo/dev-mdc">mailing list</a>/<a href="https://groups.google.com/forum/?fromgroups#!forum/mozilla.dev.mdc">Google group</a> <strong>dev-mdc</strong>. If you want to speak to someone, the best entry points are Eric Shepherd (aka Sheppy), Janet Swisher and Jean-Yves Perrier (Teoli). Those three people are Mozilla employes dedicated to MDN so don&#8217;t worry about contacting them; they signed up for it :-P</p>
<p>Long live the documentation :)</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mdn-first-steps/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>State of the browser in London, England</title>
		<link>http://hacks.mozilla.org/2012/04/state-of-the-browser-in-london-england/</link>
		<comments>http://hacks.mozilla.org/2012/04/state-of-the-browser-in-london-england/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 15:11:47 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12905</guid>
		<description><![CDATA[Last Saturday in London, England the State of the browser conference brought together developer advocates from almost all browser vendors to give the audience an overview of what is going on in the world of browsers. Browser panel with Bruce Lawson (Opera), Chris Heilmann (Mozilla), Martin Beeby (Microsoft) and Paul Kinlan (Google) My involvement was [...]]]></description>
			<content:encoded><![CDATA[<p>Last Saturday in London, England the <a href="http://browser.londonwebstandards.org/">State of the browser</a> conference brought together developer advocates from almost all browser vendors to give the audience an overview of what is going on in the world of browsers. </p>
<figure><img src="http://hacks.mozilla.org/wp-content/uploads/2012/04/sotb-1.jpg" alt="Browser panel"></p>
<figcaption>Browser panel with <a href="http://twitter.com/brucel">Bruce Lawson (Opera)</a>, <a href="http://twitter.com/codepo8">Chris Heilmann (Mozilla)</a>, <a href="http://twitter.com/thebeebs">Martin Beeby (Microsoft)</a> and <a href="http://twitter.com/paul_kinlan">Paul Kinlan (Google)</a></figcaption>
</figure>
<p>My involvement was to talk about the state of HTML5 when seen from a native market&#8217;s perspective, show some cool new technologies that need our input and take part in the browser panel to discuss current issues. Here are the talks and screencasts. Videos recorded by the organisers should follow soon.</p>
<h2>Talk &#8220;Broken HTML5 promises &#8211; are we &#8216;appy?&#8221;</h2>
<p>The main Mozilla presentation was about feedback on HTML5 we got at Mobile World Congress from mobile developers, how we as an HTML5 community fail to answer their questions and get tangled up in petty bickering over details instead and what Mozilla does to make HTML5 work across the board. </p>
<p>The <a href="http://icant.co.uk/talks/sotb2/">slides with notes are available here</a> and the <a href="http://vid.ly/0l4v5g">screencast (with bad audio, sorry) is on vid.ly</a>.</p>
<p><video controls width="100%" controls preload="none" poster="http://cf.cdn.vid.ly/0l4v5g/poster.jpg"><source src="http://cf.cdn.vid.ly/0l4v5g/mp4.mp4" type="video/mp4"><source src="http://cf.cdn.vid.ly/0l4v5g/webm.webm" type="video/webm"><source src="http://cf.cdn.vid.ly/0l4v5g/ogv.ogv" type="video/ogg"><a target="_blank" href="http://vid.ly/0l4v5g"><img src="http://cf.cdn.vid.ly/0l4v5g/poster.jpg" width="500"></a></video> </p>
<h2>Breakout session: &#8220;The bleeding edge of HTML needs blood donors&#8221;</h2>
<p>The breakout session (which was repeated twice) was much less of a &#8220;talk&#8221; but more of a show and tell in a smaller room. Therefore the screencast is a bit more raw but shows what you can do right now. </p>
<p>The <a href="http://icant.co.uk/talks/sotb2breakout/">slides with notes are available here</a> and the <a href="http://vid.ly/8k2n2c">screencast is on vid.ly</a>.</p>
<p><video controls width="100%" controls preload="none" poster="http://cf.cdn.vid.ly/8k2n2c/poster.jpg"><source src="http://cf.cdn.vid.ly/8k2n2c/mp4.mp4" type="video/mp4"><source src="http://cf.cdn.vid.ly/8k2n2c/webm.webm" type="video/webm"><source src="http://cf.cdn.vid.ly/8k2n2c/ogv.ogv" type="video/ogg"><a target="_blank" href="http://vid.ly/8k2n2c"><img src="http://cf.cdn.vid.ly/8k2n2c/poster.jpg" width="500"></a></video> </p>
<h2>The conference</h2>
<p>All in all the conference was great value for money. All the speakers had great information to give and there was no &#8220;marketing talk&#8221; promising things that don&#8217;t work outside lab environments. </p>
<ul>
<li>Michael Mahemoff did a great job introducing the day with a &#8220;native vs. web knockout&#8221; talk.</li>
<li>Paul Kinlan showed what is coming in Chrome and how <a href="http://webintents.org">Web Intents</a> can change the way we solve app communication over the web</li>
<li>Martin Beeby gave a glimpse of how the web can merge with newer devices and UX needs of users</li>
</ul>
<p><a href="http://twitter.com/seb_ly">Seb Lee-Delisle</a> took all the browsers to the performance test to end all performance tests by animating millions of 3D particles and seeing which browser would be the one that can show the most without slowing down. In the end Firefox was the winner with 3695244 particles at 10FPS. Of course this is not a real measure (especially seeing IE10 was run in a VM) but it is always fun to see Seb code live.<br />
<img src="http://hacks.mozilla.org/wp-content/uploads/2012/04/particles.jpg" alt="Particles competition results"></p>
<p>I guess my favourite piece about the conference was that the browser panel was very much about answering people&#8217;s questions instead of trying to beat each other in being the browser that people should use. British understatement at its best. </p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/04/state-of-the-browser-in-london-england/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://cf.cdn.vid.ly/0l4v5g/mp4.mp4" length="103887993" type="video/mp4" />
<enclosure url="http://cf.cdn.vid.ly/0l4v5g/webm.webm" length="115000581" type="video/webm" />
<enclosure url="http://cf.cdn.vid.ly/0l4v5g/ogv.ogv" length="98611881" type="video/ogg" />
<enclosure url="http://cf.cdn.vid.ly/8k2n2c/mp4.mp4" length="215684816" type="video/mp4" />
<enclosure url="http://cf.cdn.vid.ly/8k2n2c/webm.webm" length="229924783" type="video/webm" />
<enclosure url="http://cf.cdn.vid.ly/8k2n2c/ogv.ogv" length="193419865" type="video/ogg" />
		</item>
		<item>
		<title>Doc sprint in [insert California cliché]</title>
		<link>http://hacks.mozilla.org/2012/04/doc-sprint-in-insert-california-cliche/</link>
		<comments>http://hacks.mozilla.org/2012/04/doc-sprint-in-insert-california-cliche/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 00:12:16 +0000</pubDate>
		<dc:creator>Janet Swisher</dc:creator>
				<category><![CDATA[Docs]]></category>
		<category><![CDATA[MDN]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12878</guid>
		<description><![CDATA[The last weekend in April saw yet another amazingly productive documentation sprint for MDN. A group of community members gathered at the Mozilla spaces in California, while others contributed remotely. The in-person group worked on Friday in Mozilla&#8217;s Mountain View headquarters, then spent Saturday and Sunday at the Mozilla space in San Francisco. Here is [...]]]></description>
			<content:encoded><![CDATA[<p>The last weekend in April saw yet another amazingly productive documentation sprint for MDN. A group of community members gathered at the Mozilla spaces in California, while others contributed remotely. The in-person group worked on Friday in Mozilla&#8217;s Mountain View headquarters, then spent Saturday and Sunday at the Mozilla space in San Francisco.</p>
<p>Here is the obligatory &#8220;OMG! Awesome view!&#8221; photo from the roof deck in San Francisco, showing just some of the doc sprinters getting in the way of the view:<br />
<a href="http://hacks.mozilla.org/2012/04/doc-sprint-in-insert-california-cliche/april2012docsprinters/" rel="attachment wp-att-12895"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/04/April2012docsprinters.jpg" alt="April 2012 doc sprinters" title="April 2012 doc sprinters" width="500" class="alignleft size-full wp-image-12895" /></a></p>
<p>Here are only some of the things that happened in MDN docs as a result of this weekend:</p>
<ul>
<li><strong>Will Bamberg</strong> researched and revamped the wiki page for <a href="https://developer.mozilla.org/En/Mobile">Web development for mobile devices</a>.
</li>
<li><strong>Michael Beckwith</strong>:
<ul>
<li>made clarifying edits on a bunch of Web development articles</li>
<li>added some suggestions to <a href="https://developer.mozilla.org/en/HTML/Tips_for_authoring_fast-loading_HTML_pages">Tips for authoring fast-loading HTML pages</a></li>
<li>added browser compatibility info to <a href="https://developer.mozilla.org/en/DOM/HTMLCanvasElement">HTMLCanvasElement</a></li>
<li>added code examples to <a href="https://developer.mozilla.org/En/CSS/:enabled">::enabled</a>, and <a href="https://developer.mozilla.org/en/BrowserID/Remote_Verification_API">BrowserID remote verification API</a></li>
<li>documented why and how a developer might want to run <a href="https://developer.mozilla.org/en/Mozilla/Multiple_Firefox_Profiles">multiple Firefox profiles</a></li>
<li>added descriptions to tools listed on the <a href="https://developer.mozilla.org/en/Tools">Development tools</a> page.</li>
</ul>
</li>
<li><strong>Frederic Bourgeon</strong> documented the Flexible Box Layout Model, including <a href="https://developer.mozilla.org/en/CSS/Using_CSS_flexible_boxes">Using CSS flexibile boxes</a> and reference pages for:
<ul>
<li><a href="https://developer.mozilla.org/en/CSS/flex>flex</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-align">flex-align</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-direction">flex-direction</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-flow">flex-flow</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-item-align">flex-item-align</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-line-pack">flex-line-pack</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-order">flex-order</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-pack">flex-pack</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/flex-wrap">flex-wrap</a></li>
</ul>
</li>
<li><strong>David Bruant</strong> wrote <a href="https://developer.mozilla.org/en/JavaScript/Data_structures">JavaScript data structures</a>, and cleaned up <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty">defineProperty</a>, moving non-reference examples to an <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty/Additional_examples">additional examples</a> page, and made improvements to the main <a href="https://developer.mozilla.org/en/JavaScript">JavaScript</a> page.
</li>
<li><strong>Anastasia Cheetham</strong> organized the <a href="https://developer.mozilla.org/en/Accessibility/ARIA">ARIA documentation</a>, added techniques for using about a dozen ARIA attributes, updated <a href="https://developer.mozilla.org/en/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role">Using the slider role</a>, and retired a bunch of pages on CodeTalks.org that are now superceded by MDN pages.
</li>
<li><strong>Cory Gackenheimer</strong> made <a href="https://developer.mozilla.org/En/HTTP_access_control">HTTP access control (CORS)</a> browser-agnostic and added a compatibility table; split <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest">Using XMLHttpRequest</a> into smaller chunks (including <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Synchronous_and_Asynchronous_Requests">synchronous and asynchronous requests</a> and <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data">sending and receiving binary data</a>), made it more browser-agnostic, and added code examples; created <a href="https://developer.mozilla.org/en/BrowserID/Why_BrowserID">Why BrowserID</a> from various sources, and updated the NodeJS example in the BrowserID <a href="https://developer.mozilla.org/en/BrowserID/Remote_Verification_API">Remote verification API</a>.
</li>
<li><strong>Mark Giffin</strong> met with some of the Apps developers, researched app secrets, and updated <a href="https://developer.mozilla.org/en/Apps/In-app_payments">In-app payments</a>.
</li>
<li><strong>Kevin Lim</strong> improved <a href="https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API">Using the Page Visibility API</a>.
</li>
<li><strong>David Mandelin</strong> drafted an article on <a href="https://developer.mozilla.org/En/SpiderMonkey/Internals/GC">SpiderMonkey GC</a>.
</li>
<li><strong>Jeremie Patonnier</strong> translated his blog post about <a href="http://jeremie.patonnier.net/post/2012/04/24/Bien-demarrer-avec-MDN">getting started with MDN</a> from French into English. Look for it soon on Hacks! He also documented SVG <a href="https://developer.mozilla.org/en/SVG/Attribute/word-spacing">word-spacing</a> and <a href="https://developer.mozilla.org/en/SVG/Attribute/kerning">kerning</a>.
</li>
<li><strong>Jean-Yves Perrier</strong> hit all the CSS reference pages with the consistency stick, from <a href="https://developer.mozilla.org/en/CSS/animation">animation</a> to <a href="https://developer.mozilla.org/en/CSS/z-index">z-index</a>. He also documented <a href="https://developer.mozilla.org/en/CSS/overflow-y">overflow-y</a>.
</li>
<li><strong>Florian Scholz</strong> updated <a href="https://developer.mozilla.org/en/DOM/DOMException">DOMException</a> and <a href="https://developer.mozilla.org/en/DOM/DOMError">DOMError</a>, and researched and documented the <a href="https://developer.mozilla.org/en/API/WebSMS">WebSMS API</a>, including all the interfaces.
</li>
<li><strong>Eric Shepherd</strong> finished documenting the <a href="https://developer.mozilla.org/en/DOM/TelephonyCall">Telephony API</a>, set versions and priorities for bugs that need docs, and made updates for about twenty fixed bugs, and documented <a href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIPlacesImportExportService">nsIPlacesImportExportService</a>.
</li>
<li><strong>Christian Sonne</strong> worked on speeding up the compatibilityTableAggregatorNoCache template, by making these fixes:
<ul>
<li>Guides and tutorials are no longer included in the compatibility table if they don&#8217;t contain one themselves</li>
<li>Fixed syntax of several compatibility tables</li>
<li>Fixed typo in template called from :invalid compatibility table</li>
<li>Introduced caches to individual content pages, meaning that the compatibility aggregator will have less work to do on a second run, if the first times out.</li>
</ul>
</li>
<li><strong>Jeff Walden</strong> created a release notes page for (future) <a href="https://developer.mozilla.org/en/SpiderMonkey/1.8.8">SpiderMonkey 1.8.8</a>, and reviewed and made lots of small updates in the <a href="https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference">JSAPI reference</a>.
</li>
<li><strong>Kathy Walrath</strong> improved <a href="https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D">CanvasRenderingContext2D</a>.
</li>
<li><strong>Jonathan Wilsson</strong> added compatibility tables to CSS <a href="https://developer.mozilla.org/en/CSS/visibility">visibility</a>, <a href="https://developer.mozilla.org/en/DOM/element.getBoundingClientRect">element.getBoundingClientRect</a> and <a href="https://developer.mozilla.org/en/DOM/window.setInterval">window.setInterval</a>.
</li>
</ul>
<p><strong>Addendum</strong> (2012-05-02): <strong>Vikash Agrawal</strong> created a code example for the <code>contextmenu</code> attribute; it&#8217;s not on MDN yet, but you can <a href="https://github.com/ivikash/Examples-for-the-web/blob/master/src/ContextMenu.html">see it on  github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/04/doc-sprint-in-insert-california-cliche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aurora 14 is out! What&#8217;s new in it?</title>
		<link>http://hacks.mozilla.org/2012/04/aurora-14-is-out-whats-new-in-it/</link>
		<comments>http://hacks.mozilla.org/2012/04/aurora-14-is-out-whats-new-in-it/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 22:16:56 +0000</pubDate>
		<dc:creator>Jean-Yves Perrier</dc:creator>
				<category><![CDATA[Aurora]]></category>
		<category><![CDATA[Featured Article]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12626</guid>
		<description><![CDATA[We have just released Firefox Aurora 14, which includes a number of improvements. If all goes well, these features should be released in 12 weeks as part of Firefox 14. Highlights There are a few of things we&#8217;d like to shine some extra light on here: Native Fullscreen Support in Mac OS X 10.7 &#8220;Lion&#8221;: [...]]]></description>
			<content:encoded><![CDATA[<p>We have just released Firefox Aurora 14, which includes a number of improvements. If all goes well, these features should be released in 12 weeks as part of Firefox 14.</p>
<h2>Highlights</h2>
<p>There are a few of things we&#8217;d like to shine some extra light on here:</p>
<ul>
<li><a title="Native Fullscreen in MacOS Lion" href="http://www.apple.com/macosx/whats-new/full-screen.html">Native Fullscreen Support</a> in Mac OS X 10.7 &#8220;Lion&#8221;: Firefox can now use the native full-screen mode and button. It animates and behaves properly in that <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=639705">mode</a>, like any other well-integrated application.</li>
<li>Great news for gamers! The <a title="The Pointer Lock API reference" href="https://developer.mozilla.org/en/API/Pointer_Lock_API">Pointer Lock API</a>, sometimes called the Mouse Lock API, lets games better control the mouse, by removing the pointer and letting the application capture and handle the mouse move coordinates directly.</li>
<li>The four default ways to search &#8212; using the search bar, the address bar, the contextual menu, or the home page, now all use the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=633773">Google https search service</a> in Aurora. This increase the security of your searches.</li>
<li>The dev tools now allow easily inspecting pseudo-classes states: when hovering over an element with the dev tools activated, the contextual menu now lists the different states of the element, like :hover, :active, and :focus. When selecting one of these items, the element is <em>locked </em>in the associated state and can be inspected. That feature was <a title="Video of the pseudo-class state inspector in Aurora 13" href="http://www.youtube.com/watch?feature=player_embedded&amp;v=wuZB6JA4dCU">already there in Aurora 13</a>, but the interface to access it is now very convenient!<br />
<img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-26-14.18.15-220x125.png" alt="The menu allowing the pseudo-class state to be locked on an element" class="alignnone  wp-image-12833" width="220" height="125"/><br />
<img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-26-14.18.352-220x125.png" alt="The element with the :hover pseudo-class locked" class="alignnone  wp-image-12836" />
</li>
</ul>
<h2>List of improvements</h2>
<p>Here is a (more or less) complete list of the improvements.</p>
<h3>DevTools</h3>
<ul>
<li>New keyboard shortcuts have been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=729960">added</a> to the <a href="https://developer.mozilla.org/en/JavaScript_code_modules/source-editor.jsm">Source Editor JS module</a> (used by the Scratchpad or the Style Editor) to quickly jump to the code block start and end.</li>
<li>Still in the <a href="https://developer.mozilla.org/en/JavaScript_code_modules/source-editor.jsm">Source Editor module</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=739192">it is now possible</a> to add or remove a comment on a line or the current selection with one keystroke.</li>
<li>Beside the new pseudo-class inspector, several improvements <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=717916">have been made</a> to the infobar which has now an inspect button to the left and a node menu to the right (for example, it may be used to set the pseudo-class state on the node!)</li>
</ul>
<h3>DOM</h3>
<ul>
<li>The <a title="The Pointer Lock API reference" href="https://developer.mozilla.org/en/API/Pointer_Lock_API">Pointer Lock API</a> has been implemented.</li>
<li>A proposal for the replacement of <a href="http://www.w3.org/TR/DOM-Level-3-Events/#events-MutationEvent">MutationEvents</a>, introduced in DOM Level 2 but deprecated in DOM Events Level 3, has <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=641821">landed</a>, prefixed: instead of events, an <a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#mutation-observers">API allowing callbacks to be registered</a> has been crafted.</li>
<li>New, with added performance, <a href="http://jstenback.wordpress.com/2012/04/11/new-dom-bindings/">DOM bindings</a> for non-list objects have <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=740069">landed</a>. Currently <a title="XMLHttpRequest reference" href="https://developer.mozilla.org/en/DOM/XMLHttpRequest">XMLHttpRequest</a> is the only non-list object using them. These bindings are often called the &#8220;Paris DOM bindings&#8221; as they were designed in that city.</li>
<li>The <code><a title="SVGSVGElement DOM Element" href="https://developer.mozilla.org/en/DOM/SVGSVGElement">SVGSVGElement</a></code> has been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=740811">fixed</a> to be a DOM <a title="Reference of the DOM Element object" href="https://developer.mozilla.org/en/DOM/element">Element</a>.</li>
<li><code>HTMLProgressElement</code>, the DOM object associated with the <code><a href="https://developer.mozilla.org/en/HTML/Element/progress">&lt;progress&gt;</a></code> HTML element, was a <code><a href="https://developer.mozilla.org/en/DOM/HTMLFormElement">HTMLFormElement</a></code>. This was incorrect and has been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=686913">fixed</a>. It is a simple <code><a href="https://developer.mozilla.org/en/DOM/HTMLElement">HTMLElement</a></code> now.</li>
</ul>
<h3>Plugins</h3>
<ul>
<li title="Site-specific permissions for opt-in plugins">Optionally, if the <code>plugins.click_to_play</code> preference is enabled in <code>about:config</code>, <a title="What are plugins?" href="https://developer.mozilla.org/En/Plugins">plugins</a> will require an extra click to activate and start &#8220;playing&#8221; content. <a title="Click-to-play plugins in Firefox!" href="http://msujaws.wordpress.com/2012/04/11/opting-in-to-plugins-in-firefox/">This mode improves the security of the browser</a> and may be extended in the future to be activated by default in some cases. When on, <a title="Site-specific permissions for opt-in plugins" href="http://msujaws.wordpress.com/2012/04/20/site-specific-permissions-for-firefox-opt-in-plugins/">site-specific permissions can be set.</a></li>
</ul>
<h3>Layout</h3>
<ul>
<li><a title="The CSS text-transform property" href="https://developer.mozilla.org/en/CSS/text-transform">CSS <code>text-transform</code></a> and <a title="The CSS font-variant property" href="font-variant"><code>font-variant</code></a> properties have been updated to match the spec and now handle <a title="CSS text-transform updated for the Dutch digraph" href="http://firefoxnightly.tumblr.com/post/20267585898/css-text-transform-updated-for-the-dutch-language">the Dutch IJ digraph</a>, the Turkic <a href="http://en.wikipedia.org/wiki/Dotted_and_dotless_I">dotless and dotted i</a>, and <a title="Greek sygma lowercases characters fixed in CSS text-transform" href="http://firefoxnightly.tumblr.com/post/21224535375/css-text-transform-updated-for-a-weird-greek-case">the Greek sigma lowercase characters</a> correctly. This is big improvement for writing on the Web in these languages!</li>
<li>Related to <a title="CSS Transforms reference" href="https://developer.mozilla.org/En/CSS/Using_CSS_transforms">CSS transforms</a>, the <code>skew()</code> function has been removed from the spec, so support has been removed from Firefox as well. It wasn&#8217;t a real skew function which designs the linear <a title="Shear mapping in Wikipedia" href="http://en.wikipedia.org/wiki/Shear_mapping">shear mapping</a> transform and its effect is still achievable using <a title="The matrix() function among the CSS transform functions" href="https://developer.mozilla.org/en/CSS/transform-function#matrix%28%29">the <code>matrix()</code> function</a>.</li>
<li>Directly viewed images now have a textured background.</li>
<li>The character maps (cmap) have been optimized. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=710727">Fonts with identical character coverage now share them</a>. This lets Firefox use less memory, about 0.5 MB on a desktop system with few fonts, and up to 1.8MB or more on systems with a lot of fonts. The more fonts that are installed, the greater the savings. This was done as a part of the <a href="https://wiki.mozilla.org/Performance/MemShrink">MemShrink</a> project.</li>
<li><a href="https://developer.mozilla.org/en/SVG">SVG</a> performance has been significantly <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=734079">improved</a>.</li>
</ul>
<h3>User Interface</h3>
<ul>
<li>The popup bubble containing a link URL that appears on the bottom of the page when hovering over a link <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=632634">is now longer</a> when the URL doesn&#8217;t fit in it.</li>
<li>As part of the <a href="http://people.mozilla.com/~shorlander/ux-presentation/ux-presentation.html">Australis theme evolution project</a>, the navigation bar buttons have been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=734373">modified</a> (on Windows only).</li>
<li>The identity block has been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742419">redesigned</a>. The favicon has been changed to show an icon describing the connection used:</li>
<ul>
<li>The page is served unencrypted (http).<br/><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-22-11.49.121.png" alt="Nav bar with http (unencrypted)" class="alignnone" /></li>
<li>The page is served encrypted (via https) but some of its content comes from unencrypted servers. <br/><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-22-11.50.191.png" alt="Nav bar with https (and unencrypted content)" class="alignnone"/>
</li>
<li>The page and its content is served encrypted (and the server uses a CV certificate).<br/><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-22-11.51.591.png" alt="Nav bar with https and CV certificate" class="alignnone size-medium wp-image-12714"/></li>
<li>The page and its content is served encrypted (and the server uses an EV certificate).<br/><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/Screencap-2012-04-22-11.52.201.png" alt="Nav bar with https and EV certificate" class="alignnone size-medium wp-image-12714" />
</li>
</ul>
</ul>
<h3>Network</h3>
<ul>
<li>At launch, tabs are no longer loaded in the background. Instead, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=711193">they are now loaded when first selected</a>, which improves response during the start-up of Firefox. This has been done as a part of the <a href="https://wiki.mozilla.org/Performance/Snappy">Snappy</a> project.</li>
</ul>
<h3>Others</h3>
<ul>
<li>Both the <a title="The new IE Profile Migrator in JS" href="https://bugzilla.mozilla.org/show_bug.cgi?id=710895">Internet Explorer</a> and <a title="The new Safari Profile Migrator in JS" href="https://bugzilla.mozilla.org/show_bug.cgi?id=710259">Safari migrators</a> have been rewritten in JavaScript. Using asynchronous I/O, they don&#8217;t block the browser when they run and it improves their maintainability. This has been done as part of the <a href="https://wiki.mozilla.org/Performance/Snappy">Snappy</a> project.</li>
<li>On Linux, the <a title="To find dictionaries, $LANG is now followed if needed" href="https://bugzilla.mozilla.org/show_bug.cgi?id=746148">$LANG system variable</a> is now used when not able to locate a given dictionary in another way. Useful for system-wide installed dictionaries.</li>
<li>For add-ons writers, the <a title="The ultimate js-ctypes resource" href="https://developer.mozilla.org/en/Mozilla/js-ctypes">js-ctypes</a> library has been extended. <em>Variadic ctypes functions</em> &#8212; that is, support for functions with a variable number of arguments &#8212; have been <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=554790">added</a>.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=680721">Several bugs</a> in our WebGL implementation have been fixed (and workarounds for some common driver bugs added). We are close to WebGL 1.0.1 conformance, but <a href="http://blog.mozilla.org/bjacob/2012/04/21/webgl-1-0-1-conformance-testing-part-2/">your help is still needed</a>.</li>
<li>Extra flexibility has been added to the <a href="http://en.wikipedia.org/wiki/Garbage_collector_%28computing%29">Garbage Collector</a> (GC): it could previously be applied on a single compartment or on all compartments. Now <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=716142">it can also be applied on a set of compartments</a>. This will let it be launched in more cases in the future, leading to a finer control of memory and of GC pauses.</li>
</ul>
<p>Note: <a title="What is pdf.js?" href="http://blog.mozilla.org/labs/2011/10/video-what-is-pdf-js/">pdf.js</a> and the <a title="Screenshots of the new panel-based Download Manager" href="http://firefoxnightly.tumblr.com/post/21343114308/the-new-download-manager-panel-is-there-at">new panel-based Download Manager</a>, though they landed on Nightly, have not been lifted to Aurora 14 as they need further polishing. Similarly, support of <a href="http://gstreamer.freedesktop.org/">GStreamer</a> for videos, though it landed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=422540">last week</a>, has not been activated yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/04/aurora-14-is-out-whats-new-in-it/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>State of the Docs, April 24, 2012</title>
		<link>http://hacks.mozilla.org/2012/04/state-of-the-docs-april-24-2012/</link>
		<comments>http://hacks.mozilla.org/2012/04/state-of-the-docs-april-24-2012/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 22:38:19 +0000</pubDate>
		<dc:creator>Janet Swisher</dc:creator>
				<category><![CDATA[Docs]]></category>
		<category><![CDATA[MDN]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=12828</guid>
		<description><![CDATA[The following is a sample of the changes to the documentation on MDN in the past four weeks. We expect a large flurry of activity during the Documentation sprint this weekend. If you&#8217;re in the Bay Area, you&#8217;re welcome to join in person for any part of the sprint, or join remotely if you&#8217;re elsewhere. [...]]]></description>
			<content:encoded><![CDATA[<p>The following is a sample of the changes to the documentation on MDN in the past four weeks. We expect a large flurry of activity during the <a href="https://wiki.mozilla.org/MDN/Doc_Sprints/2012April">Documentation sprint</a> this weekend.  If you&#8217;re in the Bay Area, you&#8217;re welcome to join in person for any part of the sprint, or join remotely if you&#8217;re elsewhere.
</p>
<h2>Help needed</h2>
<p>A reader provided feedback that they don&#8217;t understand the domQuery example in the <a href="http://developer.mozilla.org/Talk:en/JavaScript/Reference/Global_Objects/Function">global Function object</a>. It needs to be more clearly explained.
</p>
<h2>Web standards docs</h2>
<ul>
<li><strong>Vikash Agrawal</strong> added a code example to <a href="https://developer.mozilla.org/en/CSS/%3Aonly-child">:only-child</a>. Vikash is starting a Google Summer of Code project to add code examples for HTML and CSS reference pages. Good luck, Vikash!
</li>
<li><strong>&#8220;aHref&#8221;</strong> created CSS <a href="https://developer.mozilla.org/en/CSS/border-image-outset">border-image-outset</a>.
</li>
<li><strong>Eric Bidelman</strong> updated the compatibility info in <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind">Function bind()</a>.
</li>
<li><strong>Frédéric Bourgeon</strong> updated the spec table for <a href="https://developer.mozilla.org/en/CSS/%3Ainvalid">:invalid</a> and added a French translation.
</li>
<li><strong>David Bruant</strong> wrote an article on <a href="https://developer.mozilla.org/en/JavaScript/Memory_Management">JavaScript memory management</a>.
</li>
<li><strong>Giles Burdett</strong> updated <a href="https://developer.mozilla.org/en/WebSockets/Writing_WebSocket_client_applications">Writing Websocket client applications</a>.
</li>
<li><strong>Dan Callahan</strong> added <code>privacyURL</code> and <code>toURL</code> to <a href="https://developer.mozilla.org/en/DOM/navigator.id.get">navigator.id.get</a>.
</li>
<li><strong>Simon Chan</strong> added IE compatibility to <a href="https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history">Manipulating the browser history</a>.
</li>
<li><strong>Pamela Fox</strong> added the &#8216;download&#8217; attribute to the <a href="https://developer.mozilla.org/en/HTML/Element/a">&lt;a&gt; element</a>.
</li>
<li><strong>Fusionchess</strong> has been very active, including:
<ul>
<li>adding a section on embedded workers and a code example to <a href="https://developer.mozilla.org/En/DOM/Using_web_workers">Using Web workers</a></li>
<li>adding code examples to <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties">defineProperties</a>, <a href="https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators">Bitwise operators</a>, <a href="https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm">the structured clone algorithm</a>, <a href="https://developer.mozilla.org/en/DOM/Blob">Blob</a>, and <a href="https://developer.mozilla.org/en/DOM/window.location">window.location</a></li>
<li>creating pages for <a href="https://developer.mozilla.org/en/DOM/window.onbeforeprint">window.onbeforeprint</a> and <a href="https://developer.mozilla.org/en/DOM/window.onafterprint">window.onafterprint</a></li>
<li>adding information on sending a Blob object to <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest">Using HMLttpRequest</a></li>
</ul>
</li>
<li><strong>David Humphrey</strong> updated the text and examples of <a href="https://developer.mozilla.org/en/API/Pointer_Lock_API">Pointer lock API</a>.
</li>
<li><strong>Husky</strong> add info about calling history.pushState to <a href="https://developer.mozilla.org/en/DOM/window.onpopstate">window.onpopstate</a>.
</li>
<li><strong>Kenan</strong> added IE Mobile compatibility info to <a href="https://developer.mozilla.org/en/DOM/window.btoa">window.btoa</a> and <a href="https://developer.mozilla.org/en/DOM/window.atob">window.atob</a>.
</li>
<li><strong>Jesper Kristensen</strong> updated <a href="https://developer.mozilla.org/en/Fixing_common_validation_problems">Fixing common validation problems</a>, including changing the examples to HTML5, and updated <a href="https://developer.mozilla.org/en/XHTML">XHTML</a>.
</li>
<li><strong>Gijs Kruitbosch</strong> added compatibility info to <a href="http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON">JSON</a>.
</li>
<li><strong>Jeremie Patonnier</strong> created pages for the SVG attributes <a href="https://developer.mozilla.org/en/SVG/Attribute/opacity">opacity</a>, <a href="https://developer.mozilla.org/en/SVG/Attribute/color-interpolation">color-interpolation</a>, <a href="https://developer.mozilla.org/en/SVG/Attribute/color-interpolation-filters">color-interpolation-filters</a>, and <a href="https://developer.mozilla.org/en/SVG/Attribute/color-rendering">color-rendering</a>.
</li>
<li><strong>Jean-Yves Perrier</strong> created an article on <a href="https://developer.mozilla.org/en/CSS/CSS_Reference/Webkit_Extensions">CSS WebKit extensions</a>, added Greek alphabet examples to <a href="https://developer.mozilla.org/en/CSS/text-transform">CSS text-transform<a>, added browser compatibility table and info to <a href="https://developer.mozilla.org/en/CSS/text-indent">text-indent</a>, and created a page for <a href="https://developer.mozilla.org/en/CSS/-webkit-box-reflect">-webkit-box-reflect</a>.
</li>
<li><strong>Nickolay Ponomarev</strong> created <a href="https://developer.mozilla.org/en/DOM/Mutation_events">Mutation events</a>, and expanded and clarified <a href="https://developer.mozilla.org/en/DOM/DOM_event_reference/error">error</a> in the DOM event reference.
</li>
<li><strong>Florian Scholz</strong> created a page for <a href="https://developer.mozilla.org/en/DOM/window.navigator.connection">window.navigator.connection</a>, added compatibility tables to MathML <a href="https://developer.mozilla.org/en/MathML/Element/mfrac">mfrac</a>, <a href="https://developer.mozilla.org/en/MathML/Element/mfenced">mfenced</a>, and <a href="https://developer.mozilla.org/en/MathML/Element/mglyph">mglyph</a>, and updated vendor neutrality and browser compatibility on 17 MathML elements.
</li>
<li><strong>Eric Shepherd</strong> created a page for <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequestEventTarget">XMLHttpRequestEventTarget</a>, added a section on convenience functions to <a href="https://developer.mozilla.org/en/DOM/Touch_events">Touch events</a>, and added an example of using a timeout to <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest">Using HTMLHttpRequest</a>.
</li>
<li><strong>Caesar Shinas</strong> added IE compatibility to <a href="https://developer.mozilla.org/en/CSS/Using_media_queries_from_code">Using media queries from code<a> and <a href="https://developer.mozilla.org/en/DOM/MediaQueryList">MediaQueryList</a>.
</li>
<li><strong>Wes</strong> expanded <a href="https://developer.mozilla.org/en/DOM/Touch_events">Touch events</a> to cover handling clicks and second touches.
</li>
<li><strong>Ziyunfei</strong> translated or updated translations for something like a bazillion Chinese pages.
</li>
</ul>
<h2>Mozilla technology docs</h2>
<ul>
<li>A number of people contributed to <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Building_B2G_for_Samsung_Galaxy_S2">Building B2G for Samsung Galaxy S2</a>, including <strong>Ben Adida</strong>, <strong>Dietrich Ayala</strong>, <strong>John Hammink</strong>, <strong>Tobias Renz</strong>, <strong>Philipp von Weitershausen</strong>, and <strong>Zbigniew Braniecki</strong>.
</li>
<li><strong>Will Bamberg</strong> created <a href="https://developer.mozilla.org/en/BrowserID/Bootstrapping_BrowserID">Bootstrapping BrowserID</a>.
</li>
<li><strong>Ian Bicking</strong> documented the &#8216;install&#8217; and &#8216;uninstall&#8217; events in<br />
<a href="https://developer.mozilla.org/en/Apps/Apps_JavaScript_API/navigator.mozApps.mgmt.addEventListener">navigator.mozApps.mgmt.addEventListener</a> and added a code example to <a href="https://developer.mozilla.org/en/Apps/Apps_JavaScript_API/navigator.mozApps.mgmt.removeEventListener">navigator.mozApps.mgmt.removeEventListener</a>.
</li>
<li><strong>Dan Callahan</strong> created a <a href="https://developer.mozilla.org/en/BrowserID/Glossary">BrowserID Glossary</a>, revamped the main <a href="https://developer.mozilla.org/en/BrowserID">BrowserID</a> page, and updated the <a href="https://developer.mozilla.org/en/BrowserID/FAQ">BrowserID FAQ</a>.
</li>
<li><strong>Luke Crouch</strong> started documenting Kuma, the new wiki platform that MDN will be moving to soon: <a href="https://developer.mozilla.org/Project:en/Getting_started_with_Kuma">Getting started with Kuma</a> and <a href="https://developer.mozilla.org/Project:en/Introduction_to_KumaScript">Introduction to KumaScript</a>.
</li>
<li><strong>Malini Das</strong> added several function definitions to <a href="https://developer.mozilla.org/en/Marionette/Marionette">Marionette</a> and added a section on running tests via make to Marionette <a href="https://developer.mozilla.org/en/Marionette/Running_Tests">Running tests</a>.
</li>
<li><strong>Fabrice Desré</strong> and <strong>Reuben Morais</strong> updated the code examples in<br />
<a href="https://developer.mozilla.org/en/Apps/Getting_Started">Getting started with apps</a>.
</li>
<li><strong>Mike Conley</strong> documented how to use <a href="https://developer.mozilla.org/en/Thunderbird/Filelink_Providers">Thunderbird Filelink providers</a>.
</li>
<li><strong>Mark Giffin</strong> updated <a href="https://developer.mozilla.org/en/Apps/Manifest">Apps manifest</a> and the <a href="https://developer.mozilla.org/en/Apps/Apps_JavaScript_API">Apps JavaScript API</a>.
</li>
<li><strong>Jeff Griffiths</strong> revamped the <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko">Boot to Gecko</a> landing page and created <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Running_Gaia_using_Firefox_Nightly">Using Gaia using Firefox Nightly</a>.
</li>
<li><strong>Joliclic</strong> added a section on returned values to <a href="https://developer.mozilla.org/en/Mozilla/js-ctypes/Using_js-ctypes/Declaring_and_calling_functions">Declaring and calling functions</a> in <a href="https://developer.mozilla.org/en/Mozilla/js-ctypes/Using_js-ctypes">Using js-ctypes</a>.
</li>
<li><strong>Geoff Lankow </strong> updated <a href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIFile">nsIFile</a> based on its merger with <a href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsILocalFile">nsILocalFile</a> in Gecko 14.
</li>
<li><strong>Philipp von Weitershausen</strong> created <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Writing_a_web_app">Writing a web app</a> for Boot to Gecko, <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Building_B2G_for_Samsung_Nexus_S"><br />
Building B2G for Samsung Nexus S</a> and updated <a href="https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Setting_Up_Boot_to_Gecko_Build_Environment">Setting up the Boot to Gecko build environment</a>.
</li>
</ul>
<h2>Mozilla project docs</h2>
<ul>
<li><strong>Joel Maher</strong> added a section on Mochitest-Robocop to <a href="https://developer.mozilla.org/en/Mozilla_automated_testing">Mozilla automated testing</a>.
</li>
<li><strong>Pc.wit.tt</strong> created <a href="https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation/Rebranding_SpiderMonkey_(1.8.5)">Rebranding SpiderMonkey (1.8.5)<a/>.
</li>
<li><strong>Hassadee Pimsuwan</strong> added Thai to the list of <a href="https://developer.mozilla.org/Project:en/Localization_Projects"> MDN translations<a/>.<br />
Translators are also needed for Spanish, German, Greek, Russion, traditional Chinese, Hebrew, and Romanian.
</li>
<li><strong>Thierry Régagnon</strong> improved a number of the MDN templates for the French translation.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/04/state-of-the-docs-april-24-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

