<?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 Web Development &#187; Blogroll</title>
	<atom:link href="http://blog.mozilla.com/webdev/category/blogroll/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/webdev</link>
	<description>Everybody Likes Ninjas</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:41:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>What happens when you click the Firefox download button?</title>
		<link>http://blog.mozilla.com/webdev/2010/05/07/what-happens-when-you-click-the-firefox-download-button/</link>
		<comments>http://blog.mozilla.com/webdev/2010/05/07/what-happens-when-you-click-the-firefox-download-button/#comments</comments>
		<pubDate>Fri, 07 May 2010 14:06:45 +0000</pubDate>
		<dc:creator>Fred Wenzel</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Bouncer]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mirror]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=970</guid>
		<description><![CDATA[In this cross-post from Fred's personal blog, he describes what's going on behind the scenes to ensure you can download Firefox as fast and conveniently as possible.]]></description>
			<content:encoded><![CDATA[<p class="crosspost">This is a cross-post of <a href="http://fredericiana.com/2010/05/07/what-happens-when-you-click-the-firefox-download-button/">an article</a> on Fred Wenzel&#8217;s blog <a href="http://fredericiana.com">fredericiana</a>.</p>
<p>Everybody knows Mozilla makes Firefox. But there is a lot more software at work here at Mozilla that you might not be aware of. For example: What happens when you go to <a href="http://getfirefox.com">getfirefox.com</a> and click on the <strong>download button</strong>?</p>
<p><img src="http://blog.mozilla.com/webdev/files/2010/05/directions.jpg" alt="" title="directions" width="240" height="180" class="alignright size-full wp-image-971" align="right" />By clicking on the button, you ask our servers to send you a specific file, for example: Firefox 3.6.3, for Windows, in German. On a small website, the server would just fetch the file and hand it to you. But if you need to handle millions of downloads a day like we do, a single server can&#8217;t handle it all by itself, so it gets more complicated. In order to provide you with downloads, updates, etc., as fast and conveniently as possible, Mozilla collaborates with a number of <a href="http://www.mozilla.org/community/mirrors.html">mirror providers</a> that have volunteered to host Firefox and other downloads on our behalf, thus sharing the load of our numerous downloads between a number of servers all over the world.</p>
<p>For some years now, we have been running a bundle of software called <a href="http://viewvc.svn.mozilla.org/vc/projects/bouncer/">&#8220;Bouncer&#8221;</a> to handle our downloads for us.</p>
<p>Bouncer consists of of three components: The user-facing <strong>bounce script</strong>, an <strong>administrative interface called Tuxedo</strong>, and a mirror checker called <strong>Sentry</strong>.</p>
<p>First, the <strong>bounce script</strong>. It is the only component the &#8220;ordinary user&#8221; gets to interact with. It essentially does the following after you click on a download link:</p>
<ul>
<li>It determines if the product you asked for exists.</li>
<li>Out of our list of mirrors, it picks one that has your file. Initially, it would pick one at random. Over the years, the logic has become more elaborate though: Meanwhile, it takes into account in what country you currently are, as well as how strong the mirrors are (stronger mirrors serve more downloads, weaker ones serve less).</li>
<li>A split-second later, Bouncer refers you to the server it decided on, and that server will send you the file you asked for.</li>
</ul>
<p>But wait, there is more! How does Bouncer know what products are available, for what operating systems, and in what languages? That&#8217;s where the <strong>admin interface</strong> comes in. We have a release engineering team who work hard every day to deliver the newest software versions to you in handy little packages. Previously, during every release, an engineer would manually tell Bouncer that a new version was available for download. But just last week, we improved this process by introducing a new interface to Bouncer, with a project called <a href="http://github.com/fwenzel/tuxedo/">Tuxedo</a>. The release engineering team can now, fully automatically, feed new versions into Bouncer at the time of release, with no manual intervention. With less time spent on repetitive tasks, we can spend more time making Firefox awesome.</p>
<p>Finally, the <strong>Sentry</strong> component is a script that periodically checks the health of our mirrors, and adjusts our settings accordingly. This is to ensure that a situation where you are forwarded to a mirror that is currently unavailable is very, very rare. So far, these mirror checks happen from Mozilla Headquarters, and therefore reflect the connectivity we get to the mirrors from here. In the future, we want to improve that by taking into account more how <em>our users&#8217; connectivity</em> is to the specific mirrors (for the geeks out there: <em>Network proximity != geographical proximity</em>), which has the potential to result in faster download times, less expenses for mirror providers, and general happiness.</p>
<p>As you can see, there are a lot of things happening behind the scenes before Firefox makes its way onto your computer at home, and we are constantly working on improving the way we are doing things. Plus, as always: Bouncer is completely <a href="http://github.com/fwenzel/tuxedo/">open source</a>, and we have a <a href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced;product=Webtools;component=Bouncer;resolution=---">public bug tracker</a>, so if you notice any problems or see room for improvement, make sure to <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Webtools&#038;component=Bouncer">let us know</a>.</p>
<p><em>Photo credit: <a href="http://www.flickr.com/photos/philliecasablanca/3263799851/">&#8220;directions&#8221;</a>, CC-by licensed by Phillie Casablanca.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2010/05/07/what-happens-when-you-click-the-firefox-download-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMO v3 (Remora) Delay</title>
		<link>http://blog.mozilla.com/webdev/2007/02/14/amo-v3-remora-delay/</link>
		<comments>http://blog.mozilla.com/webdev/2007/02/14/amo-v3-remora-delay/#comments</comments>
		<pubDate>Wed, 14 Feb 2007 08:00:04 +0000</pubDate>
		<dc:creator>Wil Clouser</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Mozilla Links]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2007/02/14/amo-v3-remora-delay/</guid>
		<description><![CDATA[If you&#8217;re reading this, you&#8217;ve probably noticed that AMOv3 still hasn&#8217;t taken over addons.mozilla.org. We&#8217;ve hit some unforeseen problems that have been plaguing us since our attempt to launch on Monday. Without getting into the details, we&#8217;re having some issues with the way our infrastructure is caching (or not caching) the new AMO v3 pages. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re reading this, you&#8217;ve probably noticed that AMOv3 still hasn&#8217;t taken over addons.mozilla.org.  We&#8217;ve hit some unforeseen problems that have been plaguing us since our attempt to launch on Monday.</p>
<p>Without getting into the details, we&#8217;re having some issues with the way our infrastructure is caching (or not caching) the new AMO v3 pages.  Rather than risk a slow, (and thus, frustrating) user experience at launch, we&#8217;ve decided to iron out the problems with the servers before deployment.</p>
<p>That means the new site still isn&#8217;t live, and won&#8217;t be until we can get things fixed.  I assure you that we&#8217;re all working hard on bringing the community the best possible experience.</p>
<p>Thanks for your patience.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2007/02/14/amo-v3-remora-delay/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>AMO v3 (Remora) launch delayed 24 hours</title>
		<link>http://blog.mozilla.com/webdev/2007/02/12/amo-v3-remora-launch-delayed-24-hours/</link>
		<comments>http://blog.mozilla.com/webdev/2007/02/12/amo-v3-remora-launch-delayed-24-hours/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 07:15:49 +0000</pubDate>
		<dc:creator>shaver</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Mozilla Links]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2007/02/12/amo-v3-remora-launch-delayed-24-hours/</guid>
		<description><![CDATA[As I&#8217;m sure many of you are aware, today (Feb 12th) was the scheduled release day for Remora, which will bring localization, a more inclusive review system, and discussion capabilities to the addons.mozilla.org site. We had a maintenance window scheduled for today from 7-11pm Pacific, and during that period we discovered a number of issues [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;m sure many of you are aware, today (Feb 12th) was the scheduled release day for Remora, which will bring localization, a more inclusive review system, and discussion capabilities to the addons.mozilla.org site.  We had a maintenance window scheduled for today from 7-11pm Pacific, and during that period we discovered a number of issues related to differences between our test environment and the production one, as well as some late-breaking bugs found by our testers.</p>
<p>While we were able to resolve all but one of those issues to our satisfaction &#8212; and that of our test suite &#8212; we ended up making sufficient changes to the system that we wanted to take another day to test it in the production environment before we put it in front of Firefox&#8217;s tens of millions of users.</p>
<p>It&#8217;s a heart-breaking decision for the Remora team, but we think it&#8217;s the right thing for our users, and we&#8217;d rather have 24 hours of disappointment than put the users&#8217; experience at risk.</p>
<p>On the bright side, this will give us an extended window to take updates from our intrepid localizers, as those changes are sufficiently low risk that we&#8217;re comfortable taking them during tomorrow&#8217;s test-and-test-some-more window.</p>
<p>Thanks to everyone for their patience and support; we&#8217;re so close now that we can taste it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2007/02/12/amo-v3-remora-launch-delayed-24-hours/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Localizing AMO3 (part 1: overview and static)</title>
		<link>http://blog.mozilla.com/webdev/2007/01/03/localizing-amo3-part-1-overview-and-static/</link>
		<comments>http://blog.mozilla.com/webdev/2007/01/03/localizing-amo3-part-1-overview-and-static/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 21:23:53 +0000</pubDate>
		<dc:creator>shaver</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Mozilla Links]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2007/01/03/localizing-amo3-part-1-overview-and-static/</guid>
		<description><![CDATA[As morgamic mentioned, we&#8217;re very excited about finally being able to provide a great add-ons experience in more than just English. (Don&#8217;t get me wrong, I love English, but there are other great languages as well.) There are three major parts to localization in the &#8220;Remora&#8221; code base: Localization of static web content. These are [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://blog.mozilla.com/webdev/2007/01/02/amo-3.0-alpha-public-preview/">morgamic mentioned</a>, we&#8217;re very excited about finally being able to provide a great add-ons experience in more than just English.  (Don&#8217;t get me wrong, I love English, but there are other great languages as well.)</p>
<p>There are three major parts to localization in the &#8220;Remora&#8221; code base:</p>
<ul>
<li>Localization of static web content.  These are the sorts of things that you would find hard-coded into markup in the current site, and includes the text of links to different sections of the site, error messages, and help text.  We&#8217;re using gettext for this, and performing the translation should hopefully be pretty straightforward.</li>
<li>Localization of dynamic <em>site</em> content.  Right now, this is pretty much only the names and descriptions of categories, but will likely grow a bit to include other kinds of database-driven site-wide text that users see.   (There are a few more examples right now on the admin and reviewer side as well.)  We don&#8217;t have good tools for this today, but there are few enough entries in need of this sort of translation that we can probably manage with manual entry by an admin for a while.</li>
<li>Localization of user and developer content.  Add-on descriptions, screen shots and their captions, review text, version notes, that sort of thing.  This localized data is managed by the site users themselves, so localizers shouldn&#8217;t need to do anything special to accomodate it.  (It&#8217;s possible, perhaps even likely, that localizers will want to help authors get localized descriptions of their add-ons, but that&#8217;s another discussion entirely.)</li>
</ul>
<p>This post is about the process for doing the first part of the localization (static gettext translation) of Remora.  Hopefully it&#8217;ll be quite straightforward, especially for people who already have experience with gettext-based localization.  There are currently a little fewer than 500 strings to localize, but only about 300 of them affect the public site.</p>
<p>(If you&#8217;re the sort of person who can set up a moderately-complex PHP application, then you might want to follow the <a href="http://wiki.mozilla.org/Update:Remora_Server_Requirements">installation instructions</a> to set up your very own Remora, but that isn&#8217;t strictly necessary for localizing the site.)</p>
<p>First, you should learn a language other than English.  We can&#8217;t provide assistance with this step, unfortunately.</p>
<p>With that out of the way, you&#8217;ll want to get a copy of the English gettext &#8220;po&#8221; file.  You can find the trunk version of it <a href="http://svn.mozilla.org/addons/trunk/site/app/locale/en_US/LC_MESSAGES/messages.po">here</a>.  That file will be updated live with our development, so we might end up wanting to have localizers follow tags, but for now we want to let people stay as up-to-date as they&#8217;re willing, and we don&#8217;t expect a ton of changes to the public-facing strings before we deploy Remora.</p>
<p>You can translate that file by hand, or there are various tools to make it easier.  Wikipedia <a href="http://en.wikipedia.org/wiki/Gettext#Translator">has some details</a> here, though you won&#8217;t have to compile things to &#8220;mo&#8221; format.</p>
<p>Note: this file contains all the strings for the site, including those for the admin/reviewer/developer parts.  The strings for those parts of the site are not frozen yet, so translating them at this point will likely be a bit of a waste, since they&#8217;ll need to be revisited in the nearish future.  We recommend that translators only bother with msgids that are a &#8220;key&#8221;, like &#8220;user_form_firstname&#8221;, and skip the ones that use English text as their msgids, like &#8220;Back to Review&#8221;.  As strings become more frozen, they&#8217;ll be converted to use the key form.</p>
<p>Once you have a translation complete, you should take the .po file and attach it to a bug filed against <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=addons.mozilla.org;token=8rvdBz7edJ;version=unspecified;component=Public%20Pages;bug_severity=normal;rep_platform=All;priority=--;op_sys=All;target_milestone=---;bug_status=NEW;flag_type-278=X;flag_type-279=X;flag_type-277=X;flag_type-280=X;flag_type-270=X;flag_type-271=X;flag_type-250=X;alias=;bug_file_loc=http%3A%2F%2F;short_desc=gettext%20for%20AMO%20%28your-locale-here%29;comment=;data=;description=;contenttypemethod=autodetect;contenttypeselection=text%2Fplain;contenttypeentry=;flag_type-1=X;keywords=;dependson=;blocked=;maketemplate=Remember%20values%20as%20bookmarkable%20template;form_name=enter_bug;assigned_to=nobody%40mozilla.org;qa_contact=web-ui%40add-ons.bugs">the Public Pages component of addons.mozilla.org</a>.  The summary of your bug should be of the form &#8220;gettext for AMO (<em>your-locale-here</em>)&#8221; &#8212; please look for an existing bug beforehand, ideally before starting your work!  If you haven&#8217;t been active in localization of Mozilla products before, you should probably try to connect with the existing localization community for your locale of choice, to avoid duplication of effort and to help you get up to speed.</p>
<p>(We&#8217;re going to be working with the localization leads to figure out how to best manage &#8220;module ownership&#8221; of different site localizations, so this process may change in the near future.  We appreciate your patience in this matter!)</p>
<p>So, to summarize:</p>
<ol>
<li>Check to make sure that nobody has already done the localization that you&#8217;re interested in!</li>
<li>Get the <a href="http://svn.mozilla.org/addons/trunk/site/app/locale/en_US/LC_MESSAGES/messages.po">English string file</a> to start from.</li>
<li><a href="http://en.wikipedia.org/wiki/Gettext#Translator">Translate</a> the msgids with names_like_this into your language.</li>
<li>Attach the resulting &#8220;messages.po&#8221; file to a <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=addons.mozilla.org;token=8rvdBz7edJ;version=unspecified;component=Public%20Pages;bug_severity=normal;rep_platform=All;priority=--;op_sys=All;target_milestone=---;bug_status=NEW;flag_type-278=X;flag_type-279=X;flag_type-277=X;flag_type-280=X;flag_type-270=X;flag_type-271=X;flag_type-250=X;alias=;bug_file_loc=http%3A%2F%2F;short_desc=gettext%20for%20AMO%20%28your-locale-here%29;comment=;data=;description=;contenttypemethod=autodetect;contenttypeselection=text%2Fplain;contenttypeentry=;flag_type-1=X;keywords=;dependson=;blocked=;maketemplate=Remember%20values%20as%20bookmarkable%20template;form_name=enter_bug;assigned_to=nobody%40mozilla.org;qa_contact=web-ui%40add-ons.bugs">new bug</a>.</li>
</ol>
<p>As implied by the title of this post, there will be other posts to come on localizing other elements of AMO, but the static part should give people a great start on giving us an add-ons site that better reflects the global nature of the Mozilla community.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2007/01/03/localizing-amo3-part-1-overview-and-static/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

