Skip to content

{ Tag Archives } CakePHP

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 , , , , , , ♥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 , , , , ,

AMO Development Changes in 2010

The AMO team met in Mountain View last week to develop a 2010 plan. We’ve been wanting to change some key areas of our development flow for a while but we needed to make sure time was budgeted in the overall AMO and Mozilla goals. As usual, the timeline will be tight, but the AMO […]

Also tagged , , , , , , , , , ,

Some considerations when adding Tags to AMO

Tags broke into the limelight around the time “Web 2.0″ was becoming popularized. They provided a simple but effective way to categorize objects and many sites are using them now. Despite their proliferation, I haven’t found any documentation on the internet regarding standards for implementing tags. A tag library exists for CakePHP but it, and […]

Also tagged , ,

How defends against XSS attacks

One of the things that gets a lot of news time these days is XSS. There are a lot of places that explain what it is and how to prevent it but most are oversimplified or don’t provide real world examples. I thought I’d explain a couple of the ways AMO attempts to prevent it. […]

Also tagged , , ,

Caching is easy; Expiration is hard

Still on a high from our success with memcached in AMO version 2, we decided to go a fairly common route and cache query results in version 3. This performs admirably particularly with our rediculously long and slow queries. Over time, though, the popularity of the site and the load on the servers climb, and […]

Also tagged , , ,

CakePHP makes upgrading easy

Laura attended CakeFest a couple months ago and got to meet some core Cake developers in person. In doing so she let slip that AMO was running on a pretty old version (1.1.12 – Released in December of 2006). Apparently 1.1.15 had some major performance boosts and since we melted the cluster a few times […]

Also tagged , ,

How my cookies became a one way street

I’ve been playing with CakePHP’s session code lately and ran across an interesting (read: nerdy) problem with cookies on AMO. First, some background: The uniqueness of a cookie in the browser is determined by all the attributes when it’s set (not just it’s name). That means I can have multiple cookies named AMOv3 as long […]

Also tagged , ,

When is a TINYINT(1) not a TINYINT(1)?

When you’re using CakePHP! Turns out CakePHP considers a TINYINT(1) to be a Boolean. Judging from all the support tickets that have been filed, I’m not the first person to get taken off guard by this behavior. When I asked about it on IRC, the response was that since MySQL considers a TINYINT(1) to be […]

Also tagged , ,

Frameworks that start sessions for every visitor make me sad

I might have played the devil’s advocate when Lars was hating on frameworks at the barcamp last weekend, but that doesn’t mean I don’t see his point. The latest in a series of frustrations with frameworks kept me up until 3am last night. What better way to cap it off than complaining on the internet? […]

Also tagged , , , ,