Skip to content

{ Tag Archives } AMO

PHP is dead! (on

This is just a short note to recognize the long coming milestone of PHP being effectively off[1] on We started the migration in 2010 and just finished it up a couple weeks ago. After the major pages were completed it was hard to budget time for all the minor details we had implemented since […]

Also tagged , , , , , ,

Choosing your own greener grass

A lot of my time is spent trying to arrange projects and schedules so we can get code shipped in a reasonable time. AMO has the blessing/curse of being broad enough that there is work to do in nearly every area on the site. Once the highest priority areas have people working on them there […]

Also tagged ,

AMO 2011 Development Visualized

I was playing around with gource this weekend while watching the TSL 3 Finals and pointed it at’s source repository. I sped it up to display 1 day of commits per second and piped it all to ffmpeg to make a video. It turned out pretty well so here is development so far […]

Also tagged , , where it’s from, where it’s going was started as a labs project in 2008. The plan was to get a website up and running to show off what lightweight themes were and see if they got any traction. If the site became popular, we’d merge it in to AMO in six or ten months and everyone would go back to […]

Also tagged , ,

Welcome to the Landfill

Anyone who has tried to set up AMO knows it’s no walk in the park even with the respectable amount of documentation. There are two big stumbling blocks: the database is large and complex, and a portion of the site functionality is still in PHP. Django’s syncdb can make a database, but the relationships in […]

Also tagged , , , , , ,

High level perspective on the switch from PHP to Python

It may be fatuous to write this post before we’ve actually finished the transition from PHP to Python, but I started writing a different post and this is what came out. Sometimes that happens. In January of 2010 we started migrating from CakePHP to Django. It was a controversial decision. Developers were ambivalent to […]

Also tagged , , , ♥s unit tests. Again.

AMO has had an on-again off-again relationship with unit tests. A little over a year ago we had a thousand unit tests that sort of, mostly, ran. The problem is, PHP unit testing just isn’t as good as it should be. CakePHP relies on SimpleTest, one of the main PHP test suites. It worked relatively […]

Also tagged , , , , ,

Continuous Integration comes to AMO

It’s time to hail another milestone for AMO in our epic push for improvements in 2010. This time I’m happy to announce our Hudson continuous integration server which has been humming along for a few months. Hudson Integration Screenshot. Click to enlarge. AMO is the first Mozilla Webdev site to use continuous integration, and it’s […]

Also tagged , , ,

Libraries to connect to a Citrix NetScaler or Zeus Traffic Manager

The first front end cache we used on AMO was the Citrix NetScaler. I’ve complained about it’s API before but apparently never announced the library I wrote to purge items from the cache. So, a little late, but I have some reusable PHP code that will talk to your NetScaler and let you expire objects. […]

Also tagged , , , ,

Maintaining localization between Python and PHP (it’s not fun)

I reached my hand into the barrel of problems our migration to Python is going to cause and came up with Localization. It figures. First out of the chute was the .po files. It turns out the actual formatting is different between the two languages. PHP uses %1$s for its substitutions, but python uses either […]

Also tagged , , , ,