Garfieldtech

Technical thoughts, tutorials, and musings

Blog

Dropping Rails, but not its bad lingo

Posted:

A ran across this article recently making the rounds. In it, the author discusses spending 2 years in Ruby on Rails land before finally giving up and coming home to PHP, wiser for the experience. It's a good article, but one thing in it really raised the hair on my neck.

Abstracting databases

Posted:

There has been some discussion recently, in IRC, issue queues, and blogs, about the Drupal 7 database API and its impact on supporting different database engines. While I am still trying to avoid large amounts of public distraction, especially when we're supposed to be trying to get a Drupal 6 beta 1 out the door, I feel it's important to get a few points cleared up lest they lead to confusion later.

Magical PHP: __call()

Posted:

PHP is, conceptually, a very traditional language. By that I mean that it is steeped in the C/C++/Java mindset of how a program is put together, rather than the LISP/Javascript/Ruby/Python mindset. That's not a bad thing, necessarily, but it does mean that a lot of the cool dynamic language capabilities in those languages isn't really available to PHP developers. I freely admit to being jealous of functions as first-class objects, for instance.

PHP 5, however does include lots of "magic" capabilities, some in the object model directly and some via SPL Interfaces, that, if used properly, can make up for a lot of that lack of dynamic capaibility. A favorite of mine is the ability to add methods to a class at runtime.

What? You didn't know PHP can do that? Well, that's because it can't. However, we can simulate it pretty closely if we're careful. Let's see how.

Go PHP 5, Go!

Posted:

Go PHP 5!

"Never believe that a few caring people can't change the world. For, indeed, that's all who ever have." --Margaret Mead

A while back, various people were lamenting the state of PHP 5 adoption, myself included. What to do about it? How to get hosts to let programmers leverage the added functionality that PHP 5 offers? How can we do that without cutting off 80% of our user base?

The solution a few people suggested was team work. If all PHP projects stopped supporting PHP 4 and made the jump to PHP 5 at the same time, none of them is penalized in the market for being "first" and web hosts will have a clear business case to upgrade their systems to PHP 5. We can then all start offering faster, cleaner, more powerful, more secure web software.

But how does one get all PHP projects together to agree on something like that? Actually, it's fairly simple. You ask them.

On code legacy

Posted:

Dries has been commenting recently, both on his blog and elsewhere, about one of the chief advantages of using open source: All developers/users are on equal footing. If you try to learn a proprietary app or framework, you know what the main developer feels like deigning to let you know. Anything else is either a mystery or, in some cases, illegal for you to find out (if there's any encryption or copy-prevention involved). You can never be as good an expert as the author, because the author has access to the Holy Book (code) and you don't. With an open source project, everyone gets the same access to the code. The only thing stopping you from being the best expert on the planet is your own skills and time.

He's very right about why you should choose to use an open source project. But what about why you should start one, or release your own code open source? As a developer, that's a far more interesting question for me.

Drupal and PHP 5 again

Posted:

Nick Lewis has set off a bit of a firestorm with his latest blog, "Drupal is Part of the Problem". In short, his argument is the same chicken-and-egg that the PHP dev team keeps saying: Hosts won't move to PHP 5 until the applications are there, so the big applications need to lead. In a sense he's right; web hosts are by necessity cautious and conservative. At the same time, though, developers can't take the whole blame.