<?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, 22 May 2012 06:06:33 +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>Testing the Firefox browser on mobile websites: Are you game?</title>
		<link>http://hacks.mozilla.org/2012/05/testing-the-firefox-browser-on-mobile-websites-are-you-game/</link>
		<comments>http://hacks.mozilla.org/2012/05/testing-the-firefox-browser-on-mobile-websites-are-you-game/#comments</comments>
		<pubDate>Tue, 22 May 2012 06:06:33 +0000</pubDate>
		<dc:creator>Havi Hoffman</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Fennec]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13374</guid>
		<description><![CDATA[Friends and hackers, we have a challenge Are you a developer who&#8217;s passionate about Mozilla&#8217;s mission on the open Web? We need your help: We&#8217;re looking for someone to build a game to help keep the Web open as it goes mobile. There&#8217;s a Firefox mobile website testing app which we think would make a [...]]]></description>
			<content:encoded><![CDATA[<h3><em>Friends and hackers,</em> we have a challenge</h3>
<p></p>
<p>Are you a developer who&#8217;s passionate about Mozilla&#8217;s mission on the open Web? We need your help: We&#8217;re looking for someone to build a game to help keep the Web open as it goes mobile. There&#8217;s a <a href="http://mobile.aaronmt.com/topsites/_design/topsites/index.html">Firefox mobile website testing app</a> which we think would make a nice little HTML5 game &#8212; with scoring, achievement, levels, leaderboards &#8212; and we think you have the chops to make it fun. We&#8217;ve had some success making a game of the activity within our team, but we think you could do it better.</p>
<p>Here&#8217;s some context. We need lots of people looking at lots of frequently visited websites to see if they look good and work well on mobile. And if they don&#8217;t, we need to figure out how to make them better: by finding the bugs and fixing our browser or by working with the developer who built the site to make it work on the open Web. Testing <a href="https://wiki.mozilla.org/Mobile/Fennec/Android">Fennec</a> matters for the future of the open Web:</p>
<p><a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta">Fennec</a>, Mozilla&#8217;s mobile browser, just landed in Google Play (you may remember it as the Android Marketplace). Firefox Beta for Android is better than ever! You can <a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta&#038;feature"><strong>download it now</strong></a>, use it on your Android phone or tablet and share your feedback. If you get hooked on testing, you&#8217;ll want to <a href="https://bugzilla.mozilla.org/createaccount.cgi">create a bugzilla account</a> (if you don&#8217;t have one) and <a href="https://developer.mozilla.org/en/Bug_writing_guidelines">start filing bugs</a>. By </p>
<p>If you&#8217;d like to do a little more directed testing, check out <a href=" http://mobile.aaronmt.com/topsites/_design/topsites/index.html">Aaron Train&#8217;s most excellent testing app</a>, which sends you to some of the world&#8217;s leading websites to share your feedback. This is the app we&#8217;d like to <em>gamify</em>, to motivate more people in the Mozilla community to help us keep improving the Firefox mobile web experience for everyone. </p>
<h3>What matters is mobile</h3>
<p></p>
<p>It&#8217;s an interesting exercise to start viewing and interacting with the world&#8217;s most frequently used websites in a mobile browser. Any mobile browser. You realize the mobile Web has a ways to go. But there&#8217;s more to it than that. David Slater, who leads Product Marketing at Mozilla put it so well that I&#8217;m just going to share a note that he sent out internally earlier this week:</p>
<blockquote><p>The mobile Web is under threat. For 8 years Mozilla has fought to make the Web open on desktop &#8211; and won.  On mobile, it&#8217;s different &#8211; the battle is underway.  In order to win, we will have to make the Web on mobile devices as compelling for developers and users as native mobile apps are today. <a href="https://developer.mozilla.org/en-US/apps">Marketplace</a> is about doing that.  <a href="http://www.mozilla.org/en-US/b2g/">Boot-to-Gecko</a>, ultimately, is about doing that. But first, we have to break open the mobile web and expose the issues. </p>
<p>Today, Apple and Google &#8211; and therefore browsers based on Webkit &#8211; are dominating the mobile Web, and as a result developers are coding for a single rendering engine. Like we did with desktop, we have to ensure developers have access to truly open standards. And that means that we need to do whatever it takes to establish <a href="https://developer.mozilla.org/en/Gecko">Gecko</a>&#8216;s presence on mobile &#8211; and specifically, on the Android platform which is widely forecast to grow more than any other in the next 5 years.</p></blockquote>
<p>There are many ways you can join us in this battle, but if you&#8217;ve been wanting to test your skills by building a Web game, there&#8217;s never been a better time to try, and never for a better cause. And if you need a little help, there are many places you can ask, like our IRC channel, <a href="irc://irc.mozilla.org#devrel">#devrel</a>, the <a href="http://www.mozilla.org/about/forums/#engagement-developers">engagement-developers mailing list</a>, or simply <a href="http://twitter.com/mozhacks">@mozhacks</a> on Twitter. And, of course, if you do, we&#8217;ll make you MDN-famous, and treat you like a hero. <em>Thank you.</em> </p>
<p><a href="https://wiki.mozilla.org/Mobile/Testdrivers_Program"><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/7245675554_eaf51b2a53_z1.jpg" alt="Heroes Wanted " title="7245675554_eaf51b2a53_z" width="480" height="640" class="aligncenter size-full wp-image-13436" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/testing-the-firefox-browser-on-mobile-websites-are-you-game/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mozilla supports the Liberated Pixel Cup for open games</title>
		<link>http://hacks.mozilla.org/2012/05/mozilla-supports-the-liberated-pixel-cup-for-open-games/</link>
		<comments>http://hacks.mozilla.org/2012/05/mozilla-supports-the-liberated-pixel-cup-for-open-games/#comments</comments>
		<pubDate>Mon, 21 May 2012 10:00:30 +0000</pubDate>
		<dc:creator>Rob Hawkes</dc:creator>
				<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13398</guid>
		<description><![CDATA[We&#8217;re excited to announce that Mozilla is supporting the Liberated Pixel Cup, a fantastic competition aiming to spark the creation of artwork and code for games that are free and available for others to use. The Liberated Pixel Cup is the brainchild of OpenGameArt, a long-standing community of artists that provide graphics and sound effects [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re excited to announce that <a href="http://lpc.opengameart.org/content/mozilla-joins-as-a-sponsor-of-the-liberated-pixel-cup">Mozilla is supporting the Liberated Pixel Cup</a>, a fantastic competition aiming to spark the creation of artwork and code for games that are free and available for others to use.</p>
<p><img src="http://hacks.mozilla.org/wp-content/uploads/2012/05/LPC.jpg" alt="" title="Liberated Pixel Cup" width="500" height="265" class="alignnone size-full wp-image-13400" /></p>
<p>The <a href="http://lpc.opengameart.org">Liberated Pixel Cup</a> is the brainchild of <a href="http://opengameart.org">OpenGameArt</a>, a long-standing community of artists that provide graphics and sound effects for others to use in their games. Joining us in supporting the competition are the <a href="http://creativecommons.org/">Creative Commons</a>, <a href="http://fsf.org/">Free Software Foundation</a>, as well as the hundreds of everyday supporters who donated to the prize fund.</p>
<p>Getting involved with the Liberated Pixel Cup was an obvious choice for us. Over the past year we&#8217;ve vastly improved our performance for games in Firefox, we&#8217;ve <a href="https://wiki.mozilla.org/Platform/AreWeFunYet">added new features for games</a>, we&#8217;ve <a href="http://hacks.mozilla.org/2012/03/rounding-up-the-first-mozilla-html5-games-work-week/">hosted a work week to discuss the future of games</a>, we&#8217;ve attended and <a href="http://hacks.mozilla.org/2012/03/mozilla-at-game-developer-conference-2012-gdc/">represented the open Web at important game-related events like GDC</a>, as well as <a href="http://hacks.mozilla.org/category/gaming-2/">much, much more</a>. To put it simply, we think games are pretty darn important to the future of the Web!</p>
<p>As part of our involvement, we&#8217;ll be:</p>
<ul>
<li>Supporting the HTML5 category of the competition</li>
<li>Using our various spaces around the world to host Liberated Pixel Cup events</li>
<li>Donating funds to support the running of the competition</li>
</ul>
<p>The art side of the competition starts in June, with the code side starting in July; so mark those dates in your diary and get ready to create some game-related goodness!</p>
<p>Check out the <a href="http://lpc.opengameart.org/">Liberated Pixel Cup website</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://hacks.mozilla.org/2012/05/mozilla-supports-the-liberated-pixel-cup-for-open-games/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mozilla Hacks Weekly, May 17th 2012</title>
		<link>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-17th-2012/</link>
		<comments>http://hacks.mozilla.org/2012/05/mozilla-hacks-weekly-may-17th-2012/#comments</comments>
		<pubDate>Thu, 17 May 2012 08:53:37 +0000</pubDate>
		<dc:creator>Robert Nyman</dc:creator>
				<category><![CDATA[Mozilla Hacks Weekly]]></category>

		<guid isPermaLink="false">http://hacks.mozilla.org/?p=13368</guid>
		<description><![CDATA[It&#8217;s that time of the week &#8211; some great 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 [...]]]></description>
			<content:encoded><![CDATA[<p> It&#8217;s that time of the week &#8211; some great link suggestions from us in Mozilla&#8217;s Developer Engagement Team!</p>
<p><span id="more-13368"></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.netmagazine.com/opinions/separate-mobile-website-no-forking-way">A separate mobile website: no forking way</a> &#8211; by veteran interaction designer and content strategist Karen McGrane.</li>
<li><a href="http://www.technologyreview.com/business/40319/?p1=BI">Why Publishers Don&#8217;t Like Apps</a></li>
<li><a href="http://html9responsiveboilerstrapjs.com/">HTML9 Responsive Boilerstrap JS</a>: Funny ha ha, and potentially NSFW.</li>
<li>Did you ever need some <a href="http://anthonyterrien.com/knob/">knob controls in your tron-like layout</a>? Here you go!</li>
<li><a href="http://www.stubbornella.org/content/2012/05/02/cross-browser-debugging-css/">Cross-Browser Debugging CSS</a></li>
<li><a href="http://www.edankwan.com/lab/css3dEarth">LAB! &#8211; CSS 3D Earth</a></li>
<li><a href="http://arstechnica.com/apple/2012/05/ios-app-success-is-a-lottery-and-60-of-developers-dont-break-even/">iOS app success is a &#8220;lottery&#8221;</a>: 60% (or more) of developers don’t break even</li>
<li><a href="http://pivotallabs.com/users/jonathanpberger/blog/articles/2111-fowd-day-1-tapworthy-mobile-design-/">Agile Design &#8211; Tapworthy Mobile Design</a></li>
<li><a href="https://github.com/mroth/lolcommits">mroth/lolcommits</a>: Seeing is believing.</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-17th-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>4</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>15</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>44</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>11</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>2</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>
	</channel>
</rss>

