Quick overview of mozilla.com publishing process

(apologies in advance to anyone without an LDAP account. A lot of the links here point to content behind authentication. If you're really curious about what's going on back there, you're welcome to check out the Kubla source.) Over the past couple of days I've felt a growing confusion about how the web infrastructure works on www.mozilla.com. People are beginning to use Kubla (it's started with a small set and is steadily growing), and they're asking some good questions that hopefully I can help answer here: Firstly, I think everyone with access has already seen this diagram, but bear with me: Fresh changes are committed to the first (top) tier - also referred to as "trunk". If you're making the change yourself you're actually affecting this tier. You can preview any of the changes from the first tier on www-trunk.stage.mozilla.com. The second tier (also known as "stage" or "staging") is where changes are previewed before they are pushed live. When something is pushed from trunk to stage it will be on this second tier and viewable at www.stage.mozilla.com. To get to this tier, a change needs to be approved by a human (a publisher in Kubla). If you have access and you want to see the differences between trunk and staging, look at the staging queue. The final tier is our live site (or "production"). Anything pushed on to this tier will be on www.mozilla.com within an hour, automatically. To get to this tier, a change needs to be approved by an admin in Kubla. The differences between the staging site and the live site can be seen in the production queue. One of the main things to remember is that changes are not instantaneous. Moving a change from trunk to stage and stage to production both require human interaction. The staging site and the production site are updated periodically (Kubla shows an estimated time to next update on the left hand menu when you log in). For production particularly, this is definitely an estimate. The updates still need to rsync to our servers and then the aggressive caching in front of them needs to expire. Generally that's an additional 15 minutes. For changes that need to go out together or at a specific time we can speed up some of this process, but it becomes less automatic the faster we want it to go. For most updates the automatic systems should work fine. As always, I'm happy to answer questions if you have them, either about this process or Kubla itself.

Portland Coder Party Tonight

Sorry for the short notice but there is a December Coders Bash tonight that Mozilla is helping sponsor. It starts at 7pm at CubeSpace. Drop by if you get a chance - it's informal and sounds like a bunch of fun. Stealing from the linked page: Some of the events we are considering (subject to change due to group consensus)... I remember when, the BS game (any story of geekery, starting with "I remember when" or "I was there when" allowed, and then you call BS or not. Name That Language. Snippets from obscure and entertaining languages posted. Can you recognize an algorithm in whitespace if it's surrounded by poetry? 5 Minute Code Sprints: 5 minutes to solve a problem. Prove your language best, or shortest, or most obscure. Whatever you like. "I can name that programming language in 3 lines of code": Name that language Duels. Challenge your opponent that you can name a Programing language by seeing less lines of code than them. Best WTF snippet: Do your worst and be the best

Localization introduction at PDXPHP next week

I'm going to be in Portland next week giving a casual introduction to localization at PDXPHP's October meeting. It's scheduled for 6:30pm on October 9th, so stop by if you're in the neighborhood, and feel free to bring questions.

Mozilla24 is coming up!

Mozilla24 is a worldwide conference about technology and the future of the web. I won’t duplicate the about page, but check out the line up of speakers.

Ten Tips for Website Localization

This post has some general tips that I’d recommend to anyone wanting to write a multilingual web application. The majority of my code these days is PHP, but I think these tips are applicable to most web programming languages. In no particular order: