<?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>Maggot Brain</title>
	<atom:link href="http://blog.mozilla.com/axel/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/axel</link>
	<description>Free your mind and your ass will follow.</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:20:17 +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&#8217;s a glossary term?</title>
		<link>http://blog.mozilla.com/axel/2012/01/27/whats-a-glossary-term/</link>
		<comments>http://blog.mozilla.com/axel/2012/01/27/whats-a-glossary-term/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 00:23:48 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=441</guid>
		<description><![CDATA[I&#8217;m hacking on some tool that indexes the localizable strings in our apps. One of the fall-outs could be a glossary tool, i.e., which terms in Firefox, Thunderbird, etc should localizers bother to get consistently translated. Which raises an interesting question, where do you draw the line? What&#8217;s a good metric to use to define [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m hacking on some tool that indexes the localizable strings in our apps.</p>
<p>One of the fall-outs could be a glossary tool, i.e., which terms in Firefox, Thunderbird, etc should localizers bother to get consistently translated.</p>
<p>Which raises an interesting question, where do you draw the line? What&#8217;s a good metric to use to define a glossary? Are there glossary-based applications that don&#8217;t need a cut-off at all?</p>
<p>Insights welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2012/01/27/whats-a-glossary-term/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web-based IDEs for Localization</title>
		<link>http://blog.mozilla.com/axel/2012/01/26/web-based-ides-for-localization/</link>
		<comments>http://blog.mozilla.com/axel/2012/01/26/web-based-ides-for-localization/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 16:16:40 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=436</guid>
		<description><![CDATA[There isn&#8217;t much news on the localization tool front that I started at MozCamp in Berlin, but I&#8217;ve got some more questions for the web tool guys among you. As any good project, a localization editor should stand on the shoulders of giants, so I&#8217;ve been looking at Orion, Cloud9/Ace, and etherpad-lite. All of them [...]]]></description>
			<content:encoded><![CDATA[<p>There isn&#8217;t much news on the localization tool front that I started at MozCamp in Berlin, but I&#8217;ve got some more questions for the web tool guys among you. As any good project, a localization editor should stand on the shoulders of giants, so I&#8217;ve been looking at Orion, Cloud9/Ace, and etherpad-lite. All of them got parts right, and I try to gather some input what it&#8217;d take to bring home the rest. I&#8217;ve set up an etherpad each for you to type to,</p>
<ul>
<li><a href="https://pike.etherpad.mozilla.org/feedback-orion">Comments for Orion</a></li>
<li><a href="https://pike.etherpad.mozilla.org/feedback-cloud9-ace">Comments for Cloud9 / Ace</a></li>
<li><a href="https://pike.etherpad.mozilla.org/feedback-etherpad-lite">Comments for etherpad-lite</a></li>
</ul>
<p>A bit of context: Localization is editing code by people that don&#8217;t (necessarily) code. An editor needs to take an extra step to make breaking things hard, and editing the right pieces easy. There&#8217;s also a host of content assist available to suggest translations, spell checking, glossaries, etc. Which opens two paths: You offer forms, and your localizer will never learn what&#8217;s happening in real life, or you drive a code editor beyond what the programmer of that code editor ever needed herself. I would love to try the latter again, this time on the web.</p>
<p>So, if you have some experience with tweaking, wrestling, extending, stripping any of these, or with one I missed, I&#8217;d be thankful for your input.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2012/01/26/web-based-ides-for-localization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>compare-locales 0.9.4 released</title>
		<link>http://blog.mozilla.com/axel/2012/01/20/compare-locales-0-9-4-released/</link>
		<comments>http://blog.mozilla.com/axel/2012/01/20/compare-locales-0-9-4-released/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 11:37:32 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=432</guid>
		<description><![CDATA[There&#8217;s yet another update to compare-locales, we&#8217;re now at 0.9.4. Please update your local installs with pip install -U compare-locales Changes since 0.9.3 are: Catch % as error. Sadly, there&#8217;s not much more the parser reports than Invalid Token, but at least it says something. You need to escape that as &#38;#037;. Stability fix, there [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s yet another update to compare-locales, we&#8217;re now at 0.9.4. Please update your local installs with</p>
<p><code>pip install -U compare-locales</code></p>
<p>Changes since 0.9.3 are:</p>
<ul>
<li>Catch <code>%</code> as error. Sadly, there&#8217;s not much more the parser reports than <code>Invalid Token</code>, but at least it says something. You need to escape that as <code>&amp;#037;</code>.</li>
<li>Stability fix, there was a crash on <code>&lt;!ENTITY "reference to  &#038;ƞǿŧ;-known entity"></code>. Unicode is hard.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2012/01/20/compare-locales-0-9-4-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minor update to compare-locales for mobile/android/base</title>
		<link>http://blog.mozilla.com/axel/2011/12/26/minor-update-to-compare-locales-for-mobileandroidbase/</link>
		<comments>http://blog.mozilla.com/axel/2011/12/26/minor-update-to-compare-locales-for-mobileandroidbase/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 13:15:21 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[compare-locales]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=429</guid>
		<description><![CDATA[I&#8217;ve just pushed a minor update to compare-locales to pypi and the dashboard. The only change is that it applies the android quote tests to the files in mobile/android/base. As always, update your local installs by pip install -U compare-locales]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just pushed a minor update to compare-locales to pypi and the dashboard.</p>
<p>The only change is that it applies the android quote tests to the files in mobile/android/base.</p>
<p>As always, update your local installs by</p>
<p><code>pip install -U compare-locales</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/12/26/minor-update-to-compare-locales-for-mobileandroidbase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>compare-locales 0.9.2 released</title>
		<link>http://blog.mozilla.com/axel/2011/12/07/compare-locales-0-9-2-released/</link>
		<comments>http://blog.mozilla.com/axel/2011/12/07/compare-locales-0-9-2-released/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 12:38:33 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[compare-locales]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=424</guid>
		<description><![CDATA[I just uploaded a new release of compare-locales to pypi, hg.m.o and github. Changes since the last released version: Support for nested l10n.inis, notably, browser/branding. Errors on CSS specs, notably, if en-US is a length or min-width etc, the translation also needs to be one. Warn if CSS specs don&#8217;t match in property or unit. [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded a new release of compare-locales to <a href="http://pypi.python.org/pypi/compare-locales">pypi</a>, <a href="http://hg.mozilla.org/l10n/compare-locales/">hg.m.o</a> and <a href="https://github.com/Pike/compare-locales/tree/afdc6a6e1ef1d2d9c851688ca116bb83e02625d6">github</a>.</p>
<p>Changes since the last released version:</p>
<ul>
<li>Support for nested <code>l10n.ini</code>s, notably, <code>browser/branding</code>.</li>
<li>Errors on CSS specs, notably, if en-US is a length or min-width etc, the translation also needs to be one.</li>
<li>Warn if CSS specs don&#8217;t match in property or unit. Say, en-US gives min-width:14ex and the localization has width:120px, warn. Thanks to Rimas for the request.</li>
<li>Warn if en-US is just a number, and the localization is not.</li>
</ul>
<p>See also the <a href="http://hg.mozilla.org/l10n/compare-locales/pushloghtml?fromchange=RELEASE_0_9_1&#038;tochange=RELEASE_0_9_2">pushes on hg.m.o</a>.</p>
<p>You can install/update with</p>
<pre>pip install -U compare-locales</pre>
<p>Next up is to use the new version on the dashboard.</p>
<p>It&#8217;s not part of our release automation, though. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=650465">Bug 650465</a> met some resistance in release-drivers, IIRC, as we&#8217;d need to change what we&#8217;re shipping in 3.6. More errors means failure unless l10n-merge is on on existing builds, which effectively changes <a href="https://l10n-stage-sj.mozilla.org/shipping/dashboard?tree=fx36x">all 20 locales that have errors on 3.6</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/12/07/compare-locales-0-9-2-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mozilla Europe and Mozilla in Europe</title>
		<link>http://blog.mozilla.com/axel/2011/11/21/mozilla-europe/</link>
		<comments>http://blog.mozilla.com/axel/2011/11/21/mozilla-europe/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 11:08:07 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[europe]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=409</guid>
		<description><![CDATA[The message below has been communicated to MozCamp Berlin attendees and Mozilla employees via email, signed by Mitchell Baker and Tristan Nitot, but this should be public, so it has been posted to mozilla.governance. We also wanted to put it on a blog so that it ends on planet.mozilla.org, but Tristan&#8217;s server is in trouble. [...]]]></description>
			<content:encoded><![CDATA[<p>The message below has been communicated to MozCamp Berlin attendees and Mozilla employees via email, signed by Mitchell Baker and Tristan Nitot, but this should be public, so it has been <a href="http://groups.google.com/group/mozilla.governance/browse_frm/thread/aa73ae69237f4fc8">posted to mozilla.governance</a>. We also wanted to put it on a blog so that it ends on planet.mozilla.org, but Tristan&#8217;s server is in trouble. Being a Mozilla Europe board member, with approval of Tristan and Mitchell, I&#8217;m posting it here. Feedback and discussions should happen on <a href="http://groups.google.com/group/mozilla.governance/browse_frm/thread/aa73ae69237f4fc8">mozilla.governance</a>.</p>
<p>At the EU MozCamp in Berlin we shared plans for further focusing and expanding Mozilla efforts in Europe &#8211; and we thought you might be interested to know what we said.</p>
<p>Mozilla has been widely successful in Europe. The Mozilla Mission resonates especially well with Europeans. The user base of Firefox and Thunderbird is very high, and Firefox is a well understood part of mainstream life.</p>
<p>What many of us don&#8217;t realize is that we have achieved this success in Europe with a very complex organizational structure &#8212; in fact, we had three different organizations, with separate and overlapping online presences (i.e. mozilla.org , mozilla.com and mozilla-europe.org ). We&#8217;ve been asking our communities and users to interact with all three, and we&#8217;ve been trying to keep content updated and synced among the three.</p>
<p>Then we started the &#8220;One Mozilla&#8221; program giving the world the experience of &#8220;Mozilla&#8221; &#8211; the mission and Mozilla programs &#8211; not our organizational structure. We have merged our various websites back into mozilla.org &#8211; www.mozilla.com is no more. Similarly, www.mozilla-europe.org pages are or will be merged into mozilla.org. Going forward, we are also looking at integrating innovation work across Labs and Drumbeat into the mozilla.org structure.</p>
<p>At the same time, we&#8217;ve paved the way for our various communities to operate as an integrated whole by building out a holistic contributor engagement program. European localizers, localizers from other geographies, our international engagement efforts, ReMo, SiGs are all working together. Along these lines, we&#8217;ve also been looking at our organizational structure in Europe.</p>
<p>As a result, the Board of Mozilla Europe has come to feel that the Mozilla Europe association as a separate independent entity is no longer needed. We discussed this with Mitchell, who was part of forming Mozilla Europe in the first place (though never a board member) and she agreed this is the best path forward. It became clear in this process that over the years, many of the innovations pioneered by the Mozilla Europe association have been adopted as part of our global efforts. For example, mozilla-europe.org  hosted our first multi-lingual Mozilla website and created our first structured system for doing so. Today the model of localized content is woven into everything we do. And MozCamps themselves are another great example of European innovations going global.</p>
<p>Streamlining the global Mozilla organization by transferring initiatives from a regional entity to global team, means that the ideas incubated in Europe can now be more easily expanded on a global scale. Integrating Mozilla Europe efforts under the umbrella of the broader Mozilla organization will allow us to spend less time on bureaucracy and will give us more time to make awesome things happen. We will have clear processes around the globe to continue and expand our presence at local events, to ensure reimbursements and swag orders are easy and timely. We will have fewer web sites to keep updated – and thus more time to create compelling content. We will not do less in Europe, we can do more!</p>
<p>Mozilla Europe did not have paid staff for a number of years. Thus no staff is affected by the changes that will go into effect between now and the end of the year.</p>
<p>It is clear that Europe is an integral part of Mozilla. It&#8217;s not a regional part or a regional hub, it&#8217;s part of the core of Mozilla. To keep the momentum, we are investing in more Mozilla Spaces across Europe: Paris will be joined by spaces in London and Berlin in 2012. This means we have more room for volunteer participation as well as for paid staff. Thus as we work to significantly scale in Europe and around the world, we will continue to grow this core going forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/11/21/mozilla-europe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ask Pike at MozCamp Asia 2011</title>
		<link>http://blog.mozilla.com/axel/2011/11/16/ask-pike-at-mozcamp-asia-2011/</link>
		<comments>http://blog.mozilla.com/axel/2011/11/16/ask-pike-at-mozcamp-asia-2011/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 18:48:08 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[mozcamp]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=405</guid>
		<description><![CDATA[I&#8217;ll be at MozCamp Asia 2011, and as I haven&#8217;t been to Asia outside of India, I figured I should talk about the things you want me to talk about, and not about what&#8217;s on my head. Thus, the session is gonna be titled &#8220;Ask Pike&#8221;, and I&#8217;m fielding questions on google moderator. Of course, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be at MozCamp Asia 2011, and as I haven&#8217;t been to Asia outside of India, I figured I should talk about the things you want me to talk about, and not about what&#8217;s on my head.</p>
<p>Thus, the session is gonna be titled &#8220;Ask Pike&#8221;, and I&#8217;m <a href="http://www.google.com/moderator/#16/e=14fa62">fielding questions on google moderator</a>. Of course, I&#8217;ll also take questions live.</p>
<p>See you in KL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/11/16/ask-pike-at-mozcamp-asia-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8230; sung to the tune of &#8230;</title>
		<link>http://blog.mozilla.com/axel/2011/08/24/sung-to-the-tune-of/</link>
		<comments>http://blog.mozilla.com/axel/2011/08/24/sung-to-the-tune-of/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 08:00:41 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=401</guid>
		<description><![CDATA[Everytime I redesign I cry a little Everytime I change my mind I wonder why a little Sung to the tune of that song that Simply Red covered and bug 650816.]]></description>
			<content:encoded><![CDATA[<p>Everytime<br />
I redesign<br />
I cry a little</p>
<p>Everytime<br />
I change my mind<br />
I wonder why a little</p>
<p><em>Sung to the tune of that song that Simply Red covered and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=650816">bug 650816</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/08/24/sung-to-the-tune-of/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I hate git</title>
		<link>http://blog.mozilla.com/axel/2011/08/07/why-i-hate-git/</link>
		<comments>http://blog.mozilla.com/axel/2011/08/07/why-i-hate-git/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 17:20:41 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=397</guid>
		<description><![CDATA[wokbok:django-durationRel axelhecht$ git push -f Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 560 bytes, done. Total 4 (delta 2), reused 0 (delta 0) Unpacking objects: 100% (4/4), done. remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating [...]]]></description>
			<content:encoded><![CDATA[<pre>wokbok:django-durationRel axelhecht$ git push -f
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 560 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To /Users/axelhecht/src/django-durationRel
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/Users/axelhecht/src/django-durationRel'
</pre>
<p>Also known as <code>ux-jargon</code> and completely useless.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/08/07/why-i-hate-git/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Data models and &#8220;vom Kopf auf die Füße&#8221;</title>
		<link>http://blog.mozilla.com/axel/2011/07/22/data-models-and-vom-kopf-auf-die-fuse/</link>
		<comments>http://blog.mozilla.com/axel/2011/07/22/data-models-and-vom-kopf-auf-die-fuse/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 11:28:31 +0000</pubDate>
		<dc:creator>Axel Hecht</dc:creator>
				<category><![CDATA[L10n]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/axel/?p=392</guid>
		<description><![CDATA[As you all know we&#8217;re having a new release scheme. That&#8217;s all good and great for localization, but there&#8217;s one tiny little peppermint: It exposed each and every design problem in the l10n dashboard, code-named elmo these days. As many folks wonder why I&#8217;m still talking about how the l10n dashboard needs more work, I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>As you all know we&#8217;re having a new release scheme. That&#8217;s all good and great for localization, but there&#8217;s one tiny little peppermint: It exposed each and every design problem in the l10n dashboard, code-named <em>elmo</em> these days.</p>
<p>As many folks wonder why I&#8217;m still talking about how the l10n dashboard needs more work, I&#8217;ll put some details out there.</p>
<p>The <code>Milestone</code> object is the thing we use to keep track of which version of a localization was shipped in which release-style build. It&#8217;s backing up views like <a href="https://l10n-stage-sj.mozilla.org/shipping/about-milestone/fennec6_beta_b3">Fennec 6 Beta 3</a> milestone info page, and says &#8220;we&#8217;re adding pl, and updating nl, ru, zh-TW&#8221;. That could be used for QA and verification etc.</p>
<p>The <code>AppVersion</code> object is tracking a particular release. Say, Firefox 3.6 or Firefox 6. It&#8217;s containing a series of milestones. The <code>AppVersion</code> objects are tied to an <code>Application</code> object.</p>
<p>The actual <code>compare-locales</code> builds are hooked up to a <code>Tree</code> object, which represents the repositories to compare for a particular application.</p>
<p>The trick is how all these objects are tied together. Gandalf and I designed this back in the days of the Firefox 3.6 release. Back in those days, we had loooong release cycles, with lengthy cycles even for individual milestones, and string freezes for each milestone. At that point, we&#8217;d open up sign-offs. Remember, back in the days we wouldn&#8217;t have l10n-merge on for release builds, so we could only start reviewing the localizations after string freeze. Also, we did the hg branches for a release early in the cycle, and then we would ship most of our betas from that branch, while development on central progressed merrily.</p>
<p>Thus, our design decisions back then were:</p>
<p><strong>There&#8217;s one static repository setup for a version of an application.</strong> Umpf. Can you see how bad that is today, where we switch our repo setup every six weeks?</p>
<p><strong>Whether a localizer can sign-off or not depends on whether the upcoming milestone is string frozen or not.</strong> In other words, we need to have the upcoming milestone early to begin with, which is such a hassle now that we&#8217;re doing them weekly, instead of bi-monthly. Also, with l10n-merge and string-frozen branches, all that logic just &#8230; face palm.</p>
<p><strong>Localizers sign off on a version of the application, with a push to its l10n repository.</strong> Pushes are per repo, appversions are spanning repos today. I.e., I push on aurora, sign off, it&#8217;s good, the appversion migrates to beta, but the push is still on aurora.</p>
<p><strong>Review actions on sign-offs are forever.</strong> Say, I r+ a sign-off on aurora, that goes to beta, but there&#8217;s a lack of traction that makes that revision really bad to ship for the next cycle. I can&#8217;t make that sign-off bad for Firefox 12 and good for Firefox 11.</p>
<p><strong>Lessons learned:</strong></p>
<ul>
<li>appversions hop from tree to tree, over time</li>
<li>sign-offs are per tree, this localization at this point is good, source-wise</li>
<li>actions on sign-offs can be per appversion</li>
<li>milestones aren&#8217;t required before we actually ship something</li>
</ul>
<p>Or, as we say in German, we have to put the design &#8220;vom Kopf auf die Füße&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/axel/2011/07/22/data-models-and-vom-kopf-auf-die-fuse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

