Pragmatism in the real world

On Mail.app

As I mentioned a while ago, I'm now using a MacBook Pro. All is going well, and I like Mail.app's search and data detectors very much. There are some niggles though that I miss from Thunderbird. My top 3 are: * GPG integration (Thunderbird's Enigmail) * Mail.app's insistence on attached PDFs and images inline * Filing mails to arbitrary folders using the keyboard (Thunderbird's nostalgy) It turns out that there are solutions to all three… continue reading.

Updated Tutorial for Zend Framework 1.5

Zend Framework 1.5 has now been released to mark the occasion I have significantly updated my Zend Framework Tutorial! The tutorial was first released on 16th August 2006 and was written against version 0.1 of Zend Framework and had one major revision to bring in support for the ViewRenderer component. The new tutorial produces exactly the same application as before, but now uses the new 1.5 goodies of Zend_Form and Zend_Layout, so you can see… continue reading.

PHPWM March Meeting: Symfony

On Tuesday, PHPWM had a meeting at PSL Connect's offices where Darren Beale talked about Symfony. I took a few pictures and have stuck them up on Flickr. I should have taken my other lens though as the 50mm isn't wide enough for taking pictures in room! It was a very good talk that covered the basics of Symfony and what it can do. At the start, Darren asked us which frameworks we use and… continue reading.

Site Stats

One thing I get asked a lot about at work is site stats. Usually, the client wants to know how many visitors they get on any other day along with other data such as where the visitors came from and which search terms they may have used. So far, I've used Google Analytics and PHPMyVisites JS based logging along with Analog on the logs themselves. I've also experimented with Mint on one site. Generally, I've… continue reading.

IE8 will work like IE8 by default!

We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously. From Microsoft's Interoperability Principles and IE8. This is good news all round. It's nice to see that Microsoft have listened to the comments surrounding their original intention to make IE8 render like IE7 by default. Well done!

PHP London 08

The PHP UK Conference in London is over for another year and this year's event was another evolutionary improvement on last year's. It was held in Inmarsat's conference facilities in the City of London. There were two conference rooms in use: a 300 seat main auditorium and a smaller 75 seat second room. There were also a large social area for food, drinks and networking. I thought it worked really well, kudos to Paul Morgan… continue reading.

Cure for BSS announced!

Cal Evans has announced a cure for Blank Stare Syndrome! You know the problem: you're in a conversation and someone mentions something about a new technology that you haven't heard of. Your eyes glaze and you have that Blank Stare… Sixty Second Tech is the solution. Once a week, it will deliver a short podcast (presumably about 60 seconds long!) that explains one technological concept per episode that you (or your less-techy friends!) need to… continue reading.

Simple Zend_Form Example

Following on from the Simple Zend_Layout Example, Zend_Form is now in the trunk, so here's a super simple, complete example that shows it in action: (clearly the form is unstyled :) You can construct a Zend_Form directly from a config file or can build it in code. This example builds it in code. Setting up This example uses the same basic skeleton as the Zend_Layout code with the addition of a forms directory: As you… continue reading.

A View Stream with Zend_View

One of my biggest issues with using PHP as the templating engine in View scripts is that the easiest way to echo a variable is the least secure. Consider: <?= $this->var ?> Perfectly legal, dead easy to understand, but doesn't escape $var which is what you want more often than not. To resolve this you need something like: <?= $this->escape($this->var) ?> But who remembers to do that?! I don't and I have short-open-tags turned off… continue reading.

Subversion Externals

Subversion's svn:externals property is the mechanism that is used to automatically check out data from other repositories into your working directory. This post is to remind me how to do it as each time I need the information, I end up Googling for it. To start, let's assume you have a lib/ directory and want to put ZF's library/ and incubator/library/ code within it so that the result looks like this: myApplication/ lib/ incubator/Zend/ Zend/… continue reading.