So, for most of you, Dependency Injection sounds like something you would associate with drug addiction. I assure you, this is not the case at all. At least not the Dependency Injection I’m talking about.
It’s funny what you can learn when you actually pay attention, isn’t it. It turns out that for the last 10 years or so, I’ve not been the best programmer I could be. Now, I never had any grand illusions that I was the best there was. I know well and good there are many areas of my professional life that could be dramatically improved, but recently I was kind of thrust in to a world I thought I was already pretty well versed in. Boy, how wrong I was!
Just this past week I was working on a project that required me to write an uploader script. Nothing new or revolutionary here. There was, however, one major fly in the ointment – the upload handling script was being hosted on a different domain to script that was submitting the upload request! This was causing the upload to fail, with NO obvious error messages and no feedback what so ever. All I got back, was a failed message and no reason why.
I’ve been trying for MONTHS to get the very excellent XDebug PHP extension, written and maintained the PHP Jedi Master, Derick Rethans. XDebug offers some serious debugging capabilities to PHP that are second to none. It also offers some excellent profiling tools, which I should really make better use of in development. It’s easy to see why I was so desperate to get it working.
For quite sometime now, I’ve been developing all the projects I’ve been working on directly on my machine. This is handy for a number of reasons, the most important of those reasons being that I don’t have to be online while I’m working and I don’t have to upload to any servers.
Dealing with older browsers is a problem that MUST be solved, or handled, one way or the other. Some solutions are more involved than others and some solutions will not be accessible under certain situations. One option that I think gets ignored all too often, is the possibility that older browsers simply get a different experience, visually and behaviorally.
Recently, I read a blog posted by an old workmate in New Zealand about CSS Hacks. More specifically, it dealt with CSS rendering differences between IE7, IE6 and browsers that actually render CSS correctly (ie. Firefox, Safari, Opera and Chrome… to name a big ones).
I’ve been working in and around the web development industry since early 2001. I was a Computer Science student at Waikato University, in Hamilton, New Zealand. One day, a friend of mine, who happened to be a freelance web developer and designer asked me if I wanted to do a small PHP job for him. He was well versed in ASP and didn’t feel like learning a new language for what would probably be a one off PHP project and he knew I was already comfortable with C++, so the learning curver for me would be much lower. He offered me $400 for my part in the project and being a student, I said “HELL YEAH!” I haven’t looked back since.
These last few weeks, I’ve been working away on a couple of projects that have REALLY made me appreciate just how important good architecture and planning really is, even with the smallest of projects.
Well, over the last 3 days or so, I’ve been doing some serious unit testing with PHPUnit. Unfortunately, I didn’t start writing any serious tests until two days AFTER I started having problems testing my class hierarchy.
One of the problems that arose while I was writing the first couple of unit tests, was I realized that I didn’t know how to test Abstract classes. In my search to find a solution, I vaguely remembered a tool called phpUnderControl.