<?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>Xulforge Blog &#187; fire.fm</title>
	<atom:link href="http://xulforge.com/blog/tag/firefm/feed/" rel="self" type="application/rss+xml" />
	<link>http://xulforge.com/blog</link>
	<description>Xulforge projects, code, and more</description>
	<lastBuildDate>Fri, 03 Feb 2012 21:02:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Testing add-on startup performance</title>
		<link>http://xulforge.com/blog/2011/04/testing-add-on-startup-performance/</link>
		<comments>http://xulforge.com/blog/2011/04/testing-add-on-startup-performance/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 02:04:22 +0000</pubDate>
		<dc:creator>jorge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amo]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[fire.fm]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[remotexulmanager]]></category>

		<guid isPermaLink="false">http://xulforge.com/blog/?p=88</guid>
		<description><![CDATA[Our add-on performance initiative is getting lots of attention for, lets say, various reasons. There have been objections about transparency and our testing methods, so I decided to add something valuable to the discussion and document my own testing process. I revisited my old add-on performance article and noticed that the contents of the Measuring [...]]]></description>
			<content:encoded><![CDATA[<p>Our <a href="http://blog.mozilla.com/addons/2011/04/01/improving-add-on-performance/">add-on performance initiative</a> is getting lots of attention for, lets say, <em>various reasons</em>. There have been objections about transparency and our testing methods, so I decided to add something valuable to the discussion and document my own testing process.</p>
<p>I revisited my old <a href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">add-on performance article</a> and noticed that the contents of the <a href="https://wiki.mozilla.org/Firefox/Projects/StartupPerformance/MeasuringStartup">Measuring Startup</a> wiki page have changed substantially since I originally linked to it. It now recommends installing an add-on  to measure startup performance. I haven&#8217;t tried it, but there are a few reasons I can think this is not the best approach. (<strong>Update:</strong> I&#8217;ve been informed that the add-on is only a display for data that is gathered and stored locally. You can make test runs and <em>then</em> install the add-on to look at the data. That dispels my previous doubts about this approach.) Regardless, I&#8217;m documenting the old testing method here, because it is the one I have been using for a while and is also very similar to the one implemented on our automated <a href="https://wiki.mozilla.org/Buildbot/Talos">Talos</a> testing framework.</p>
<p>I have been doing lots of add-on startup testing recently, mainly to double check if the results of the Talos tests are sound. We also correlate them to <a href="http://blog.mozilla.com/addons/2011/02/10/add-on-metadata-start-up-time/">real world usage data</a> that we have been collecting since early versions of Firefox 4. This data, manual testing and source code review are the main backup sources that give us a good confidence level in the results we display on our infamous performance page (it has been linked enough).</p>
<p>Here&#8217;s what I do.</p>
<h2>Setup</h2>
<ol>
<li>Create a new profile dedicated for testing add-on performance (I called it <em>startuptest</em>).</li>
<li>Download <a href="http://people.mozilla.com/~vladimir/misc/startup.html">this HTML page</a> and save it somewhere convenient. The page is blank if you open it directly. All it does is run some JS that extracts a timestamp after the # character in the URL, compares it against the timestamp when the script is run, and shows the difference on the page.</li>
<li>Set up a console command that opens Firefox in your testing profile and opens the downloaded file, with the current timestamp embedded after the # character. On my system (Mac OS), this command is the following:</li>
</ol>
<pre style="padding-left: 30px;">/Applications/Firefox.app/Contents/MacOS/firefox-bin -P startuptest -no-remote file:///Users/jorge/startup.html#`python -c 'import time; print int(time.time() * 1000);'`</pre>
<p style="padding-left: 30px;">The <a href="https://wiki.mozilla.org/index.php?title=Firefox/Projects/StartupPerformance/MeasuringStartup&amp;oldid=232309">old version</a> of the Measuring Startup page explains how to set this up on Windows.</p>
<h2>Testing</h2>
<ol>
<li>Locate the testing profile folder and delete all files in it, if there are any.</li>
<li>Open Firefox on this profile. You can use the console command or any other shortcut if you prefer.</li>
<li>Copy and paste the add-on listing page URL on the new profile and open the page.</li>
<li>Install the add-on using the install button and restart if necessary.</li>
<li>Optionally, set up the add-on in a realistic way. For example, if this is a Facebook add-on, it may make sense to log in to a Facebook account since otherwise most of the add-on&#8217;s functionality would be inactive.</li>
<li>Quit Firefox.</li>
<li>Run Firefox using the console command.</li>
<li>Note the result in the startup page.</li>
<li>Quit Firefox. I prefer using the Quit key shortcut, to interact with Firefox as little as possible.</li>
<li>Repeat steps 7-9. I discard the 2 first runs, which are normally much slower than the rest, and measure the 10 runs after that.</li>
</ol>
<h2>Interpreting results</h2>
<p>For your results to make any sense, it&#8217;s also necessary to make a test run without any add-ons installed, and use that as your baseline. It&#8217;s also a good idea to run all the tests consecutively to have some certainty that they are all running under similar conditions. I record and compare my results on a spreadsheet, like <a href="https://spreadsheets.google.com/ccc?key=0AhYIQk822ZJkdGdTdW16MTUyQm42SFBTbE81TW9zR0E&amp;hl=en&amp;authkey=CKa668gJ">this one where I tested both my add-ons</a>.</p>
<p>Looking at the results, Fire.fm has a somewhat noticeable impact on startup. This is not surprising because it is a complex add-on with a very complex overlay and startup processes. I documented on improving startup code in <a href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">my old blog post</a>, and we&#8217;re planning on greatly simplifying its overlay soon(ish). I doubt we&#8217;ll make the coveted 5%, but we&#8217;ll see. Remote XUL Manager is clearly simpler, and it shows how the results should not be taken at face value. Since all it does in the overlay is add a menu item that opens a separate window, it&#8217;s understandable that its impact is negligible. But does it really improve startup? No, of course not. This just means that the error margin is larger than its real performance impact.</p>
<p>The key takeaway here is that the results of manual tests shouldn&#8217;t be taken literally, but they&#8217;re still a good indicator of the performance impact of an add-on. Even if the error margin is not ideal (or even measurable under these conditions), you can still get a good idea of who&#8217;s fast and who&#8217;s slow. They have been very valuable to us when comparing them against Talos results.</p>
<h2>How does this compare to Talos?</h2>
<p>On one hand, these tests are influenced by how the testing system is set up. I have several applications open at all times, and I don&#8217;t close them all for testing. I do take care in not running anything heavy simultaneously, like Time Machine or MobileMe Sync. And then there&#8217;s clearly the fact that I have to spend some time setting things up and running the tests. The longer the tests take, the more likely it is that some other process affects the results.</p>
<p>On the other hand, it&#8217;s easier for me to recognize errors during testing. Many of the complaints we&#8217;ve received about the testing system is that it makes silly mistakes like trying to install an add-on from an incorrect URL, or trying to install an add-on that is not compatible with the Firefox version being tested. These are things that one can clearly see when testing manually, but they weren&#8217;t obvious when running the tests automatically. Those add-ons have been getting very good performance rankings because  they&#8217;re not really being loaded, so those results are not reliable.</p>
<p>Luckily, the people complaining about our testing are also filing bugs and talking to us directly, so we&#8217;re looking into the issues and trying to get them resolved as soon as possible. Special thanks to Wladimir and Nils, who have been very helpful filing and categorizing bugs. More details coming up in the Add-ons Blog.</p>
<p>As always, the developer community proves itself as an invaluable asset for Mozilla (well, you <em>are</em> Mozilla). Even if our discussions can become harsh and are generally very public, the outcome is almost always a set of improvements both in our technical and communication fronts. Getting things right take a lot of work and a lot of patience, and I hope we can quickly get to a place where we&#8217;re all satisfied.</p>
]]></content:encoded>
			<wfw:commentRss>http://xulforge.com/blog/2011/04/testing-add-on-startup-performance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Projects update</title>
		<link>http://xulforge.com/blog/2011/03/projects-update/</link>
		<comments>http://xulforge.com/blog/2011/03/projects-update/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 01:24:17 +0000</pubDate>
		<dc:creator>jorge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[add-on]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[fire.fm]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[pneuma]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://xulforge.com/blog/?p=85</guid>
		<description><![CDATA[Since I haven&#8217;t blogged here for quite a while, I thought it&#8217;d be good to do the mandatory WordPress version update and then post a little update on the side projects I&#8217;m currently working on: Remote XUL Manager has taken most of my spare time. It&#8217;s been exciting just because it&#8217;s a fairly new project [...]]]></description>
			<content:encoded><![CDATA[<p>Since I haven&#8217;t blogged here for quite a while, I thought it&#8217;d be good to do the mandatory WordPress version update and then post a little update on the side projects I&#8217;m currently working on:</p>
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/remote-xul-manager/">Remote XUL Manager</a> has taken most of my spare time. It&#8217;s been exciting just because it&#8217;s a fairly new project and it had a pretty well-defined goal, which was reached only a few days ago. Version 1.0 was released on March 10th, and it does every I planned for this add-on to do. There are a couple of feature requests that I will consider in due time, but they&#8217;re pretty minor and I&#8217;m satisfied with the current state of this project.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/firefm/">Fire.fm</a> has taken the back seat. In the past few months all we&#8217;ve done is update locales, clean up some code, and push a few bug fixes (and then fixes on the fixes, and so on&#8230;). We have some plans for version 1.5, but it&#8217;s getting harder and harder to find the time for this. Specially because Last.fm keeps closing down their service and that has a very negative effect on my motivation. If it weren&#8217;t for the people that still use it &#8211; close to 200K &#8211; I would have abandoned this add-on a long time ago.</li>
<li>My <a href="http://xulforge.com/blog/2010/05/add-on-manifests-revisited-wiki/">Add-on Packaging Proposal</a> for the Google Summer of Code never gained any traction. Unfortunately the project was abandoned by the student assigned to it, so the whole idea stalled and was discarded. Now I&#8217;ve been approached by somebody who is interested in working on it. That&#8217;s very encouraging, but I need to give this some thought. I&#8217;ve been planning on reviewing the whole spec and giving it an overhaul based on all the stuff that has changed with Firefox 4 and the feedback I received. I&#8217;ll post here when (and if) I have an updated draft.</li>
<li>The band I help as Executive Producer, <a href="http://pneumametal.com/">Pneuma</a>, has had a great deal of success locally, and they&#8217;re getting ready to tour Mexico and Europe. It&#8217;s very exciting times for them and I&#8217;m glad to be a part of this.</li>
</ul>
<p>It&#8217;s been crazy times for me and the AMO Editor team. We had a very successful competition that yielded a incredible throughput and over 2500 reviews by the top 4 winners alone. And yet we&#8217;re still swamped with review submissions due to the upcoming Firefox 4 launch and the <a href="http://blog.mozilla.com/addons/2011/02/17/sandboxed-add-ons-disabled-next-week/">mass disabling of sandboxed add-ons</a>, which resulted in a great deal of new submissions of old add-ons.</p>
<p>I have a bunch of ideas for new add-ons that I wish I had the time to work on. For now, I just write them down on my Someday list and wait <img src='http://xulforge.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://xulforge.com/blog/2011/03/projects-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Extension update</title>
		<link>http://xulforge.com/blog/2009/07/extension-update/</link>
		<comments>http://xulforge.com/blog/2009/07/extension-update/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 21:27:41 +0000</pubDate>
		<dc:creator>jorge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[add-on]]></category>
		<category><![CDATA[amo]]></category>
		<category><![CDATA[donations]]></category>
		<category><![CDATA[extend firefox]]></category>
		<category><![CDATA[fire.fm]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://xulforge.com/blog/?p=13</guid>
		<description><![CDATA[Recently I&#8217;ve been occupying myself with several Firefox extension projects: Most of all, I&#8217;ve been contributing to the AMO editor team to keep the add-on review queues down to a manageable size. There&#8217;s a great deal of new submissions and updates due to the release of Firefox version 3.5. There are hundreds of updates that [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been occupying myself with several Firefox extension projects:</p>
<ol>
<li>Most of all, I&#8217;ve been contributing to the <a href="http://addons.mozilla.org">AMO</a> editor team to keep the add-on review queues down to a manageable size. There&#8217;s a great deal of new submissions and updates due to the release of Firefox version 3.5. There are hundreds of updates that are minimal to non existent compatibility changes, so I&#8217;ve been able to review close to 200 updates on this month alone. I enjoy my work with the editor team, specially because I&#8217;ve very fond of doing code review and being ruthlessly critical. It&#8217;s in my nature, what can I say&#8230; There are plans for <a href="http://blog.mozilla.com/addons/2009/07/01/removing-the-sandbox/">removing the AMO sandbox</a>, which I find intriguing, to say the least. I wonder how that will change the editor group and their work.</li>
<li>The <a href="http://labs.mozilla.com/contests/extendfirefox3.5/index.php">Extend Firefox 3.5</a> competition has been officially announced. With an October deadline, it includes several new interesting categories to compete in. Jose and I are already working on Fire.fm 1.3, which will be our entry for best extension update. There&#8217;s a great deal of new features we&#8217;ll be putting into it, which I think will greatly improve our user experience. We&#8217;re also working on a few ideas for new add-ons. I hope to be able to submit a couple of entries to increase our chances of winning.</li>
<li>Finally, the <a href="http://blog.mozilla.com/addons/2009/07/15/firefox-add-ons-contributions-pilot/">Add-ons Contributions pilot</a> was introduced to AMO. This enabled add-on authors to request donations for their project right on AMO, giving our donation links more exposure and possibly allowing a few authors to remove donation requests from their add-on UI, which is always a loss for user experience. We have activated contributions for Fire.fm, and so far the response has been pretty good. We&#8217;re very happy about it and hope people will continue helping us out.</li>
</ol>
<p>I still feel in &#8216;break mode&#8217;, and hope to start working in full gear soon. There&#8217;s so much I want to do, and I still need to get everything sorted out. More updates soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://xulforge.com/blog/2009/07/extension-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Regarding Fire.fm</title>
		<link>http://xulforge.com/blog/2009/05/regarding-firefm/</link>
		<comments>http://xulforge.com/blog/2009/05/regarding-firefm/#comments</comments>
		<pubDate>Thu, 28 May 2009 00:44:14 +0000</pubDate>
		<dc:creator>jorge</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[add-on]]></category>
		<category><![CDATA[fire.fm]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://xulforge.com/blog/?p=7</guid>
		<description><![CDATA[Fire.fm is a project that a friend and I began in order to compete in the Extend Firefox 3 competition, particularly to participate in the Best Music Add-on, which was being sponsored by Last.fm. I was a big fan of Last.fm at the time, given that it offered free online radio all around the world.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://addons.mozilla.org/en-US/firefox/addon/7684">Fire.fm</a> is a project that a friend and I began in order to compete in the Extend Firefox 3 competition, particularly to participate in the Best Music Add-on, which was being sponsored by <a href="http://last.fm/">Last.fm</a>. I was a big fan of Last.fm at the time, given that it offered free online radio all around the world.  Sadly, that <a href="http://blog.last.fm/2009/04/22/radio-subscriptions">ended somewhat abruptly</a>.</p>
<p>Anyway, at the time we were pretty excited about it, and we spent a great deal of time and effort making Fire.fm a sure winner. And <a title="Extend Firefox 3 Winners Announcement" href="http://blog.mozilla.com/extendfirefox/2008/08/21/extend-firefox-3-winners/">we won</a>! We won the Best Music Add-on category, and I think we weren&#8217;t allowed to win in others, because I think we should have won the general competition as well <img src='http://xulforge.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Needless to say, we were super happy with this, and we have been actively maintaining the add-on in our spare time.</p>
<p>Fire.fm is, in a nutshell, a Last.fm radio player. It used to be a very easy way to tune into Last.fm radio without having to be on top of the website all day long. Our users loved it, and shortly we were in the AMO Recommended List.</p>
<p>Sadly, Last.fm cut off their free radio service to most of the world shortly afterward, so at least I lost a lot of the motivation I initially had to continue making it grow. Still, I don&#8217;t want to abandon a project that still has much to be fixed, so I&#8217;ll certainly won&#8217;t quit until all the annoying bugs are solved. Most users have a very smooth experience with Fire.fm, but there are a few unlucky ones that have some serious problems, like not being able to listen to stations at all&#8230; New features in Fire.fm are probably going to be very rare from version 1.2.3 and later.</p>
<p>Xulforge was already in my mind when we began working on Fire.fm, so I always kinda saw it as a Xulforge project. Xulforge was put on hold until very recently, so it feels weird trying to associate the two. I&#8217;ll keep Fire.fm in my project list, though, because I it was one of my first independent projects, and also because it has been very successful and I&#8217;m very proud of it.</p>
<p>Fire.fm is open source, BSD-licensed (more on that in another post). So, if you want to take a look into our code, you&#8217;re more than welcome. See the <a href="https://sourceforge.net/projects/firefm/">Fire.fm Sourceforge Project Page</a> for more information.</p>
<div id="attachment_8" class="wp-caption aligncenter" style="width: 110px"><a href="https://sourceforge.net/projects/firefm/"><img class="size-full wp-image-8" title="Fire.fm Logo" src="http://xulforge.com/blog/wp-content/uploads/2009/05/logo100.png" alt="Fire.fm Logo" width="100" height="100" /></a><p class="wp-caption-text">Fire.fm Logo</p></div>
]]></content:encoded>
			<wfw:commentRss>http://xulforge.com/blog/2009/05/regarding-firefm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
