What's In Chris' Brain - September 2009 Edition

I've been feeling a little blogged-out lately, as work is ramping up on a project with some critical milestones to be met, and the stress of getting my basement lair all renovated for occupation after Labour Day. But the mind never stops working. Here's two big things that have been occupying my thoughts:

The arrival of PHP 5.3 and it's impact on frameworks

When I upgraded my MacBook to Snow Leopard I noticed that it comes with PHP 5.3 as part of the standard install. After I got finished fixing my MacPorts install that I somehow butchered while following two different sets of instructions (way to go Chris), I was not at all surprised to find out that the framework I shall not say out loud did not like running with PHP 5.3. Tons of deprecation warnings abounded, and I had lost my enthusiasm for figuring out how to make them go away. If anyone cares to tell me, feel free to add it to the comments as I would prefer to run 5.3 on my laptop.

As far as I can tell, Zend Framework is the only framework that is claiming that it will run just fine in PHP 5.3.. Although I cut my teeth so-to-speak with another framework that has been good to me (hey, buy my book to see why, I cannot but remain impressed that a production-ready framework is ready to go with PHP 5.3.

Finally figuring out Design Patterns and how they relate to refactoring

In Coders At Work Brandon Eich talks about how Peter Norvig once said (I'm paraphrasing here) "a design pattern shows a flaw in your programming language". As I'm expanding functionality for a project at work, I am starting to wonder if it's maybe time I really looked at them closely. I see myself doing certain things in my code and wondering if there is an easier way to do them. You know, the same sort of if-the-else comparisons, having to do the same thing but slightly differently inside a method. Some of these are code smells, but I am wondering about what's the best way to approach refactoring them.

Of course, you always have to consider the environment in which your code lives. Since I'm using a framework, there are rules I have to follow. Most of the time, these rules are okay. Other times I find myself fighting against them a tiny bit, which shows that maybe I need to go and buy the seminal classic on refactoring and read it. Maybe one of my generous readers would send me a copy?