<?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; AMO</title>
	<atom:link href="http://blog.mozilla.com/webdev/category/amo/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>Git: Using topic branches and interactive rebasing effectively</title>
		<link>http://blog.mozilla.com/webdev/2011/11/21/git-using-topic-branches-and-interactive-rebasing-effectively/</link>
		<comments>http://blog.mozilla.com/webdev/2011/11/21/git-using-topic-branches-and-interactive-rebasing-effectively/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 15:58:11 +0000</pubDate>
		<dc:creator>kumar303</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=2245</guid>
		<description><![CDATA[When I first joined the webdev group at Mozilla I was a Mercurial refugee who had never used git or github. I was always daunted by git and suddenly I had to learn it really fast!  Fast forward to today and I can&#8217;t imagine working on a highly collaborative project without git or github.  Here [...]]]></description>
			<content:encoded><![CDATA[<p>When I first joined the webdev group at Mozilla I was a <a href="http://mercurial.selenic.com/">Mercurial</a> refugee who had never used <a href="http://git-scm.com/">git</a> or <a href="https://github.com/">github</a>. I was always daunted by git and suddenly I had to learn it really fast!  Fast forward to today and I can&#8217;t imagine working on a highly collaborative project without git or github.  Here is the workflow we use for the <a href="https://github.com/mozilla/zamboni/">addons.mozilla.org</a> project.  I highly recommend it and I&#8217;ll summarize exactly why at the end.  It&#8217;s pretty similar to how I&#8217;ve heard a lot of teams work but has some subtle differences.</p>
<h3>Using topic branches</h3>
<p>The first thing I do is sync up with master and create a topic branch for my new feature or bug fix:</p>
<pre>git checkout master
git pull
git checkout -b add-email-to-install</pre>
<p>Now I have a branch I can commit code into without affecting master.  Git checkout makes it super easy to switch between branches in the same repository clone if I&#8217;m multi-tasking or applying hot fixes.  In addition to git checkout, you can also use <a href="http://book.git-scm.com/4_stashing.html">git stash</a> to switch tasks.</p>
<h3>Commit messages</h3>
<p>It&#8217;s really important to write <a href="http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html">a well-formed git commit message</a>. We always include a ticket number into <a href="https://bugzilla.mozilla.org/">bugzilla</a>, our tracker, so that anyone can get the full back story about a change.</p>
<h3>Ask for a code review</h3>
<p>Once I&#8217;ve added my feature with passing tests I commit my changes, push to my personal fork of the repository, and ask someone on my team to review the code.  On <a href="https://github.com/mozilla/zamboni">addons.mozilla.org</a> we just ping each other in IRC with a link to the commit or a link to the <a href="https://github.com/blog/612-introducing-github-compare-view">compare view</a>.  If no one is around we <a href="http://help.github.com/send-pull-requests/">submit a pull request</a>.</p>
<p>Github has a sweet interface where you can write comments directly on the diff, like this:</p>
<p><a href="http://blog.mozilla.com/webdev/files/2011/11/github-code-review-example2.png"><img class="alignnone size-full wp-image-2251" title="github code review example" src="http://blog.mozilla.com/webdev/files/2011/11/github-code-review-example2.png" alt="" width="557" height="412" /></a></p>
<p>Whoops, another change is needed based on feedback from the code review.</p>
<h3>Fixing up the topic branch</h3>
<p>The nice thing about working in a topic branch is it&#8217;s isolated from master and no one else is tracking that branch so I can use git rebase to create the best commit before merging into master.  Let&#8217;s say I have some commits on my branch like this:</p>
<pre>$ git log --pretty=oneline -2
825d662cc69774e412119e1eb7ae0900c29d89a0 Fix: put code in a transaction
31378788f321b46f5e27f9fb51bdd19365636871 Adds email to the install record (bug #NNNNNN)</pre>
<p>What I really want is to combine those two commits into one.  I can do that with <a href="http://book.git-scm.com/4_interactive_rebasing.html">git rebase &#8212;interactive</a>. I type:</p>
<pre>git rebase -i HEAD~2</pre>
<p>Then I&#8217;ll get a prompt for rebasing my last two changes:</p>
<pre>pick 3137878 Adds email to the install record (bug #NNNNNN)
pick 825d662 Fix: put code in a transaction

# Rebase 194b59d..825d662 onto 194b59d
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#</pre>
<p>If I put the word fixup next to my second commit, it folds it into the first:</p>
<pre>pick 3137878 Adds email to the install record (bug #NNNNNN)
fixup 825d662 Fix: put code in a transaction</pre>
<p>Now I have one commit (it&#8217;s actually a new commit) that contains all of my changes:</p>
<pre>$ git log --pretty=oneline -1
c7846808c8296dd49d49612101aaed7cdfd6d220 Adds email to the install record (bug #NNNNNN)</pre>
<p>Pretty slick, right?</p>
<p>Typically you&#8217;d want to wait until everyone has had a chance to review your code before you start rebasing.  However, git pull requests do handle rebased changes.  You can push -f to your own fork and the pull request will remove the old commits from the conversation and add the new ones at the bottom.</p>
<h3>Merge into master</h3>
<p>When my changes are ready, I can merge my branch back into master.  However, I don&#8217;t need to make a merge commit if there&#8217;s only one commit to merge in.  That would clutter up the logs.  I can do this with a fast-forward merge:</p>
<pre>git checkout master
git merge --ff add-email-to-install</pre>
<p>Now I can close the ticket in our tracker with a direct link to my changes.</p>
<p>Sometimes I might actually make multiple commits on a single topic branch.  In this case I <em>would</em> want to retain the automatic merge commit.  That is, I wouldn&#8217;t do a fast forward merge in the case of multiple commits:</p>
<pre>git merge --no-ff add-email-to-install</pre>
<p>I can then close the ticket with a link to the single merge commit that shows all changes introduced by the branch.</p>
<h3>Fixups, for ninjas</h3>
<p>If you follow this pattern you&#8217;ll become accustomed to frequently fixing up your topic branch. I created a ninja alias for it in ~/.gitconfig like this:</p>
<pre>[alias]
    ...
    fix = "!f() { git commit -a -m \"fixup! $(git log -1 --pretty=format:%s)\" &amp;&amp; git rebase -i --autosquash HEAD~4; }; f"</pre>
<p>When on a topic branch with uncommitted changes I can then type:</p>
<pre>git fix</pre>
<p>That will automatically commit my change and pre-configure the rebase prompt to fold it into the last commit.</p>
<p><strong>UPDATE:</strong> AMO team member Allen Short pointed out in the comments that <code>git fix</code> is the same as <code>git commit -a --amend</code> if you&#8217;re just fixing up the last commit. Awesome!</p>
<h3>Synchronization with master, for ninjas</h3>
<p>If you&#8217;re on a project that has a lot of commit activity you&#8217;ll probably want to rebase your feature branch on top of master often.  I added a ninja alias to ~/.gitconfig for that too:</p>
<pre>[alias]
    ...
    sync = "!f() { echo Syncing $1 with master &amp;&amp; git checkout master &amp;&amp; git pull &amp;&amp; git checkout $1 &amp;&amp; git rebase master; }; f"</pre>
<p>When I&#8217;m on my feature branch and I want to synchronize it with all the latest changes on master, I type:</p>
<pre>git sync add-email-to-install</pre>
<p>The main benefit to syncing a branch before merging into master is that a fast-forward merge won&#8217;t create a new commit.  This helps you safely delete work branches later on since it won&#8217;t look like you have un-merged changes.  It&#8217;s also useful to do a last minute spot check before merging into master: do the tests still pass? do I need to adjust my SQL migration script? etc.</p>
<p><strong>UPDATE:</strong> Fernando Takai posted a simpler version of this in the comments using <code>git checkout -</code> to go back to the last branch you were on. You can then simply type <code>git sync</code> from the branch. Thanks!</p>
<h3>Why resort to all these ninja like git strategies?</h3>
<ul>
<li>Using git blame on a single line of code is more likely to give your team a full picture of all the reasons why that line of code was introduced. For this same reason, we at <a href="https://github.com/mozilla/zamboni/">addons.mozilla.org</a> always link to our bug tracker in each commit.</li>
<li>Your commit log will have a high signal to noise ratio making it easier to skim when looking at a compare view between releases.</li>
<li>Ninjas don&#8217;t make mistakes.  Ever.</li>
</ul>
<h3>Random Notes</h3>
<ul>
<li>Kernel hackers frown on using rebase but that&#8217;s probably because many people are committing to the same files and it&#8217;s important to see what the original starting tree was when work on a new feature started.  For web development, if two members on your team are working on the same line in the same file then your team isn&#8217;t communicating well enough.  I rarely see conflicts on my team that aren&#8217;t resolved automatically by a three way merge.</li>
<li>After committing to master you might discover a mistake.  That&#8217;s fine, make a new commit.  Be sure to <em>never fixup a commit on master</em> because everyone tracking master will be sad!</li>
<li>Where do your fixed up commits go?  They are still there but are detached from any branch and thus get deleted eventually by git&#8217;s garbage collector.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2011/11/21/git-using-topic-branches-and-interactive-rebasing-effectively/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The new stats pages on AMO</title>
		<link>http://blog.mozilla.com/webdev/2010/09/30/the-new-stats-pages-on-amo/</link>
		<comments>http://blog.mozilla.com/webdev/2010/09/30/the-new-stats-pages-on-amo/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 23:57:47 +0000</pubDate>
		<dc:creator>Potch</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2010/09/30/</guid>
		<description><![CDATA[Or, how I learned to stop worrying and love HTML5* Shortly after I started at Mozilla in April, I was assigned my first project&#x200a;&#8212;&#x200a;developing the replacement for AMO&#8217;s statistics pages for add-on developers. The current page was in need of both a visual and functional refresh. One of the great things about working on AMO [...]]]></description>
			<content:encoded><![CDATA[<h3><em>Or, how I learned to stop worrying and love HTML5*</em></h3>
<p><img class="headline" src="http://blog.mozilla.com/webdev/files/2010/09/stats_new.png" alt="" title="stats_new" width="600" height="336" class="aligncenter size-full wp-image-1358" /></p>
<p>
Shortly after I started at Mozilla in April, I was assigned my first project&#x200a;&mdash;&#x200a;developing the replacement for <abbr title="addons.mozilla.org">AMO</abbr>&rsquo;s statistics pages for add-on developers. The current page was in need of both a visual and functional refresh. One of the great things about working on AMO is that we can make certain expectations as to what browser our registered users and developers are running&#x200a;&mdash;&#x200a;namely, a recent version of a modern browser. This was exciting because it meant the new stats pages could use next-generation web features to deliver a faster and more feature-rich experience to our users. I&rsquo;m excited to say that, though they&rsquo;re not ready to replace the old pages quite yet, the new stats pages are fit for public preview. <a href="https://preview.addons.mozilla.org/en-US/firefox/addon/10868/statistics/">Take a look here!</a>
</p>
<p>
One of the biggest challenges on the stats pages is the management of data. We store our add-on performance statistics in what is essentially a CSV format: a set of values for each metric and date. Since performance data is historical data, we would wind serving overlapping sets of data for each pageview. I realized that if a user visiting the page today comes back tomorrow, there&rsquo;s only one day of new data they haven&#8217;t yet seen. The solution? <code>localStorage</code>!
</p>
<p>
When a user visits a page for the first time, they download the data for the default time frame (which, right now, is the past 30 days). The next time they come back, the data is fetched from <code>localStorage</code> instead, and the page renders much, much faster. How does this work? When the user requests a certain time range of data, the page looks at the range of time for which it already has data. If the request is satisfied by the local data, we can skip an AJAX call. Subsequently, if any of the time range requested is <em>not</em> available locally, the server is asked only for the portion that is missing. This allows for the user to be able to use the stats pages frequently with very little additional server load.
</p>
<p>
Having a fast persistent layer for raw data is all well and good, but analysis and visualization are what make the stats pages useful. For that I turned to another fantastic new web technology&#x200a;&mdash;&#x200a;<code>&lt;canvas&gt;</code>. We settled on using the exceptionally nifty <a href="http://www.highcharts.com/">Highcharts</a> charting library, which utilizes <code>&lt;canvas&gt;</code> and inline SVG (with graceful fallbacks) for its rendering.
</p>
<p>
The charts, as well as all the other data-driven UI, each have their own pageview-length cache layers to store the generated objects they use internally, such as chart configuration objects and individual pages of data. If a particular object hasn&rsquo;t already been generated, we request the data (going to the server if necessary) and then store the fully generated object for the length of the pageview. This allows for fast switching of data views within the page with minimal lag. The caches use a client-side cache object. that generates and accepts callbacks, to allow asynchronous actions such as AJAX requests to occur. I&#8217;ve posted the code for the object <a href="http://gist.github.com/605541#file_js_async_cache.js">here</a> for those interested.
</p>
<p>
While the charts use the time-series data from the server fairly directly, a number of UI elements are presenting aggregate statistics on the raw data in the form of sums averages and ranked lists. Instead of making another request for data the page essentially has, I decided to compute aggregations locally. Realizing iterative computation is a good way to send the browser on a one-way trip to Beachball Town, I found an excellent opportunity to use <a href="https://developer.mozilla.org/En/Using_web_workers">Web Workers</a> to perform those tasks in the background. The raw data is sliced, time-wise, into the needed chunk, which is passed off to a Web Worker thread. The result? The computationally expensive job of iteratively manipulating the data is off the main thread, where it refrains from putting a chokehold on the browser, and has the added benefit of running much faster in a dedicated thread.
</p>
<p>
In the initial implementation, I found that, at times, more than 10 workers were being spawned at a time to perform background tasks. I can count on one hand how many people I know who own a computer with more than 10 CPU cores, and I am not in that group. It wasn&rsquo;t really any more efficient, and the CPU usage was hairy to boot. To address this, I wrote a simple <a href="http://gist.github.com/605541#file_js_web_worker_pool.js">Web Worker pool</a> that queues jobs and distributes them to a limited number of workers. Much better.
</p>
<p>
Lastly, one of the goals for the new stats pages is the ability to deep-link or bookmark a particular view of the stats. On browsers that support it, the URL for the current view is being updated using the new <a href="https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method"><code>history.pushState()</code></a>. Of course, we fall back to <code>location.hash</code> when the fancier API isn&rsquo;t available.
</p>
<p>
The process of building the new stats pages led me to this realization: A lot of the demos of HTML5 and its associated trappings spend great effort trying to visually dazzle, and it&rsquo;s way too easy to write it all off as nothing but eye candy. What people forget is that a lot of the new features in modern web browsers have practical ways to make the development process cleaner, the user experience faster, and the end-result more sophisticated. Though truth be told, prettier pages aren&rsquo;t so bad either.
</p>
<p><sup>* and CSS3, and next-generation JS APIs.</sup></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2010/09/30/the-new-stats-pages-on-amo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AMO Changes for 2010</title>
		<link>http://blog.mozilla.com/webdev/2009/11/18/amo-changes-for-2010/</link>
		<comments>http://blog.mozilla.com/webdev/2009/11/18/amo-changes-for-2010/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 17:54:07 +0000</pubDate>
		<dc:creator>Ryan Doherty</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=786</guid>
		<description><![CDATA[Yesterday Wil Clouser wrote up a blog post detailing infrastructure changes for addons.mozilla.org in 2010. Notable changes are: Migrating from CakePHP to Django Moving from SVN to Git Continuous integration Faster deployment Processing data offline Improved documentation Take a look, it&#8217;s a good overview of the technical challenges of managing a large and complex website [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday <a href="http://micropipes.com/blog/">Wil Clouser</a> wrote up a blog post detailing <a href="http://micropipes.com/blog/2009/11/17/amo-development-changes-in-2010/">infrastructure changes for addons.mozilla.org in 2010</a>.</p>
<p>Notable changes are:</p>
<ul>
<li>Migrating from CakePHP to Django</li>
<li>Moving from SVN to Git</li>
<li>Continuous integration</li>
<li>Faster deployment</li>
<li>Processing data offline</li>
<li>Improved documentation</li>
</ul>
<p>Take a look, it&#8217;s a good overview of the technical challenges of managing a large and complex website at an enormous scale.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/11/18/amo-changes-for-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Curious Case of the Giant Scrollbar</title>
		<link>http://blog.mozilla.com/webdev/2009/02/03/the-curious-case-of-the-giant-scrollbar/</link>
		<comments>http://blog.mozilla.com/webdev/2009/02/03/the-curious-case-of-the-giant-scrollbar/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:50:38 +0000</pubDate>
		<dc:creator>Ryan Doherty</dc:creator>
				<category><![CDATA[AMO]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[rtl]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=164</guid>
		<description><![CDATA[Recently I fixed bug 439269 (&#8220;AMO theme has unnecessary scrollbar at the bottom&#8221;) and thought it was an interesting bug for a few reasons. To summarize the issue, for no apparent reason in right-to-left languages a really long scrollbar would appear at the bottom of the window. Even though there was a scrollbar, when you [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I fixed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=439269">bug 439269</a> (&#8220;AMO theme has unnecessary scrollbar at the bottom&#8221;) and thought it was an interesting bug for a few reasons.</p>
<p>To summarize the issue, for no apparent reason in right-to-left languages a really long scrollbar would appear at the bottom of the window.</p>
<p><img src="http://people.mozilla.org/~rdoherty/scrollbar.jpg" alt="Screenshot of scrollbar" width="450" height="312" /></p>
<p>Even though there was a scrollbar, when you scrolled all the way to the left, nothing was there. Another reason this was odd was the scrollbar only appeared in right-to-left (RTL) languages. Inspecting the page via Firebug didn&#8217;t give any clues as to what was causing the issue as there was no element hidden somewhere onscreen. Finally, to make things even weirder, the scrollbar only appeared when JavaScript was turned on.</p>
<p>After some thought, I had a feeling that we might be using absolute positioning to position an element to the left and above the page offscreen, which is quite common. In a RTL page, however, left is does not move an element outside a page&#8217;s boundaries. So the result is you get a scrollbar.</p>
<p>So what&#8217;s a web developer to do? Firebug to the rescue! I popped it open and started typing some JavaScript into the console to find an element that seemed really far offscreen:</p>
<pre>var nodes = document.getElementsByTagName("*");

for(var i=0; i &lt; nodes.length;i++) {
    var node = nodes[i];
    if(node.offsetLeft &lt; -500) {
        console.log(node);
    }
}</pre>
<p>And Firebug&#8217;s console spit out:</p>
<pre>&lt;ul id="cat-list"&gt;</pre>
<p>Ah-ha! Now I was getting somewhere. A quick search through our CSS files for &#8216;#cat-list&#8217; found an interesting line of code:</p>
<pre>#categories.collapsed #cat-list {
    position: absolute;
    left: -999em;
    top: -999em;
}</pre>
<p>And when JavaScript is turned on, the class &#8216;collapsed&#8217; is added to the parent node #categories. In RTL mode this creates a huge scrollbar because -999em to the left of the page is a valid location that a user can scroll to. The solution?</p>
<pre>.html-rtl #categories.collapsed #cat-list {
    position: absolute;
    left: 999em;
    top: -999em;
}</pre>
<p>On any pages that are RTL, we add the class &#8216;html-rtl&#8217; to the body tag in order to change the layout for RTL languages. This fixes the issue by moving the category list offscreen to the <em>right</em>, which is outside the page in RTL mode.</p>
<p>Things to remember:</p>
<ul>
<li>Firebug is your friend</li>
<li>The DOM is a live document you can inspect, utilize this feature</li>
<li>Be careful with positioning with sites that are LTR and RTL</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/02/03/the-curious-case-of-the-giant-scrollbar/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>AMO API Fennec Support</title>
		<link>http://blog.mozilla.com/webdev/2008/10/31/amo-api-fennec-support/</link>
		<comments>http://blog.mozilla.com/webdev/2008/10/31/amo-api-fennec-support/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 08:09:02 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=96</guid>
		<description><![CDATA[The AMO API supports Fennec now. We pushed Bug 453517 to update services.addons.mozilla.org to work with the Fennec alpha and future Fennec versions.]]></description>
			<content:encoded><![CDATA[<p>The AMO API supports Fennec now.  We pushed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=453517">Bug 453517</a> to update services.addons.mozilla.org to work with the Fennec alpha and future Fennec versions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/10/31/amo-api-fennec-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMO Statistics and CDN Update</title>
		<link>http://blog.mozilla.com/webdev/2008/09/15/amo-statistics-and-cdn-update/</link>
		<comments>http://blog.mozilla.com/webdev/2008/09/15/amo-statistics-and-cdn-update/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 03:02:46 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=70</guid>
		<description><![CDATA[We will be adjusting log collection to work with our CDN tonight during a maintenance window. We can&#8217;t guarantee that developer statistics (download counts and update pings) will be 100% continuous &#8212; so please comment here or file a bug if you see anything strange. Thanks for your help!]]></description>
			<content:encoded><![CDATA[<p>We will be adjusting log collection to work with our CDN tonight during a maintenance window. We can&#8217;t guarantee that developer statistics (download counts and update pings) will be 100% continuous &#8212; so please comment here or <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=http%3A%2F%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;comment=&amp;component=Statistics&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;dependson=&amp;description=&amp;flag_type-270=X&amp;flag_type-271=X&amp;flag_type-369=X&amp;flag_type-385=X&amp;flag_type-4=X&amp;flag_type-418=X&amp;flag_type-419=X&amp;flag_type-437=X&amp;flag_type-447=X&amp;flag_type-450=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=addons.mozilla.org&amp;qa_contact=statistics%40add-ons.bugs&amp;rep_platform=All&amp;short_desc=&amp;target_milestone=---&amp;version=3.2">file a bug</a> if you see anything strange.</p>
<p>Thanks for your help!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/09/15/amo-statistics-and-cdn-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AMO 3.4.3 delayed until June 12th</title>
		<link>http://blog.mozilla.com/webdev/2008/06/06/amo-343-delayed-until-june-12th/</link>
		<comments>http://blog.mozilla.com/webdev/2008/06/06/amo-343-delayed-until-june-12th/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 22:16:58 +0000</pubDate>
		<dc:creator>Wil Clouser</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=64</guid>
		<description><![CDATA[We attempted to push the AMO 3.4.3 update last night but ran into some problems. Our initial investigation is pointing to the advanced search queries taking far longer than the previous version. The slave databases couldn&#8217;t handle the load and we had to back the update out. We&#8217;ll come up with a solution this weekend [...]]]></description>
			<content:encoded><![CDATA[<p>We attempted to push the <a href="http://blog.mozilla.com/webdev/2008/05/23/amo-343-update-scheduled-for-june-5th/">AMO 3.4.3 update</a> last night but ran into some problems.  Our initial investigation is pointing to the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=372841">advanced search</a> queries taking far longer than the previous version.  The slave databases couldn&#8217;t handle the load and we had to back the update out.  We&#8217;ll come up with a solution this weekend and plan on pushing the 3.4.3 update on June 12th.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/06/06/amo-343-delayed-until-june-12th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMO 3.4.2 update scheduled for tonight (Thursday)</title>
		<link>http://blog.mozilla.com/webdev/2008/05/15/amo-3.4.2-update-scheduled-for-tonight-thursday/</link>
		<comments>http://blog.mozilla.com/webdev/2008/05/15/amo-3.4.2-update-scheduled-for-tonight-thursday/#comments</comments>
		<pubDate>Fri, 16 May 2008 00:21:29 +0000</pubDate>
		<dc:creator>Wil Clouser</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2008/05/15/amo-3.4.2-update-scheduled-for-tonight-thursday/</guid>
		<description><![CDATA[As previously mentioned we&#8217;re planning on updating addons.mozilla.org for the 3.4.2 changes tonight. There are 32 bugs that will be fixed with the update. Please let us know if you see any regressions or anything you&#8217;d like to see changed. The next update is scheduled for May 29th and will be mainly a bug fix [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://blog.mozilla.com/webdev/2008/04/29/amo-3.4.1-update-scheduled-for-thursday/">previously mentioned</a> we&#8217;re planning on updating <a href="https://addons.mozilla.org/">addons.mozilla.org</a> for the 3.4.2 changes tonight.  There are <a href="http://tinyurl.com/5awfnj">32 bugs</a> that will be fixed with the update.</p>
<p>Please let us know if you see any regressions or anything you&#8217;d like to see changed.  </p>
<p>The next update is scheduled for May 29th and will be mainly a bug fix release with minor new features (like <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=432669">bug 432669</a>).  There are currently <a href="http://tinyurl.com/6f7kxo">28 bugs</a> scheduled for the 3.4.3 push.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/05/15/amo-3.4.2-update-scheduled-for-tonight-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMO 3.4.1 update scheduled for Thursday</title>
		<link>http://blog.mozilla.com/webdev/2008/04/29/amo-3.4.1-update-scheduled-for-thursday/</link>
		<comments>http://blog.mozilla.com/webdev/2008/04/29/amo-3.4.1-update-scheduled-for-thursday/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 20:22:47 +0000</pubDate>
		<dc:creator>Wil Clouser</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2008/04/29/amo-3.4.1-update-scheduled-for-thursday/</guid>
		<description><![CDATA[The AMO team is finalizing the latest update, 3.4.1. This is a bug-fix release addressing things like double escaping, improper L10n redirects, and category cleanup. A list of all the bugs targeted for this release is available. We&#8217;ll be committing the last of the patches very shortly and the changes will be available on preview.addons.mozilla.org. [...]]]></description>
			<content:encoded><![CDATA[<p>The AMO team is finalizing the latest update, 3.4.1.  This is a bug-fix release addressing things like double escaping, improper <abbr title="Localization">L10n</abbr> redirects, and category cleanup.  A list of all the bugs targeted for this release <a href="http://tinyurl.com/4xs5bx">is available</a>.</p>
<p>We&#8217;ll be committing the last of the patches very shortly and the changes will be available on <a href="https://preview.addons.mozilla.org/">preview.addons.mozilla.org</a>.  Feel free to look at the changes and send us any feedback you have.  We expect to push the changes live this Thursday evening (May 1st).</p>
<p>Our next release, 3.4.2, is currently scheduled for May 15th.  3.4.2 will also be a bug-fix release &#8211; there are currently <a href="http://tinyurl.com/5299f8">19 candidates</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/04/29/amo-3.4.1-update-scheduled-for-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMO 3.2.1</title>
		<link>http://blog.mozilla.com/webdev/2008/04/21/amo-3.2.1/</link>
		<comments>http://blog.mozilla.com/webdev/2008/04/21/amo-3.2.1/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 17:03:26 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[AMO]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/2008/04/21/amo-3.2.1/</guid>
		<description><![CDATA[addons.mozilla.org was updated last week. AMO 3.2.1 was a maintenance release (26 bugs fixed) for any major issues with 3.2. Our next release will be AMO 3.4.1, the first of three dot releases for AMO 3.4, which is our next milestone to be completed before Firefox 3.]]></description>
			<content:encoded><![CDATA[<p><a href="http://addons.mozilla.org/">addons.mozilla.org</a> was updated last week.  <a href="http://tinyurl.com/5xyr3s">AMO 3.2.1</a> was a maintenance release (26 bugs fixed) for any major issues with 3.2.</p>
<p>Our next  release will be <a href="http://tinyurl.com/45revf">AMO 3.4.1</a>, the first of three dot releases for <a href="http://tinyurl.com/4jy9vw">AMO 3.4</a>, which is our next milestone to be completed before Firefox 3.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2008/04/21/amo-3.2.1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

