⇥ Lost in the air

September 22, 2009
No comments
 
⇥ Permalink

I hate flying.


There, I said it. Until about thirty minutes ago, I would have never said anything like that… but it’s finally come to the point where flying is no longer an activity fit for humans who intend to maintain a minimum level of dignity—or sanity.

Over the last hour, I have been the subject of a sequence of events worthy of a Ben Stiller movie: first, I was placed in the wrong line for just long enough to miss the cut-off for my flight. Then, after twenty-five minutes in line, I was told that, despite the fact that I had purchased a ticket from United, the flight was operated by Air Canada and I had to check in at their counter. This wasn’t mentioned on the ticket, in the confirmation e-mail, or anywhere else—it’s a bit like being invited to a party by Peter and then finding him acting all surprised when you show up his door because you didn’t know that the party was, in fact, at Paul’s house. Apparently, air travel is now reserved for psychics.

And so, I missed my flight. Ah, well. There’s another flight, and it’s “only” three and a half hours away. But that’s OK—because one has to redo the line at the other airline (Air Canada, whose ground personnel is to customer support what McDonald’s is to Le Cuisinier Royal) so that he can get booked on the later flight. Obviously, United will gladly sell my the flights… and then stop bothering with me. And, of course, Air Canada now claims that it’s my fault I’m late, and will happily take an extra $75 (plus tax, of course) so that I can sit on an economy seat that won’t recline.

And the most ironic part of all is that these airlines all manage—at least in Canada—to stay afloat not because their business model affords them to, but because of the ridiculous subsidies, benefits, tax breaks and protectionist advantages that they enjoy, courtesy of my tax money. I once stood fifteen feet from Robert Milton and heard him say—and I quote, because it’s so preposterous that it stuck in my mind—that Air Canada “didn’t ask to acquire Canadian Airlines. We were forced to by the government.”

No wonder these people have no respect for their customers. That’s not where they make their money.

⇥ Journalism by proxy

September 19, 2009
No comments
 
⇥ Permalink

Newspapers are dying—and most web commentators have no idea why. (more…)

⇥ The importance of bad code (or, WordPress and why I am a psychic)

September 9, 2009
7 comments
 
⇥ Permalink

Note: this is my exit(0) column for the August issue of php|architect, written well before the recent WordPress worm hit many high-profile bloggers asleep at the upgrade switch. Besides the fact that, obviously, I’m a psychic and your company should hire me to divine its future, I thought that this piece would be particularly relevant to the discussion at hand. I’ll be entirely honest and say that I don’t like WordPress—but it’s also high time that people realize that if when you install a piece of software on a server, you also take the responsibility of keeping it up to date. Bitching at the WP folks because they didn’t make that process easy until recent versions is no excuse for the fact that you dropped the ball.

PHP is, as I am fond of saying, the language of people who get things done. Getting things done, however, doesn’t always mean that the end result will be pretty—in fact, I believe we can all agree that there is much “ugly” PHP code in the wild (and let he—or she—who is without sin write the first unit test).

What is interesting about ugly code is that, like a coffee stain on the new living room carpet, it just doesn’t want to go away—it sticks around, makes itself at home and awaits the next developer who comes along and notices it. Meanwhile, the underlying product thrives, becomes popular and grows—and so does its codebase.

There are a number of very popular open-source products that could arguably benefit from a good, old-fashioned code audit; in all fairness, there are probably a good number of very popular closed-source products that could probably benefit from the same—we just don’t get to see how ugly their code actually is. A number of PHP community members have, recently, analyzed the code that belongs to several PHP-based OSS packages—content management systems and e- commerce engines seem to be popular targets—and determined that many of them ignore common best practices and contain code that is either poorly documented or difficult to maintain.

And yet, these packages thrive. They build huge communities, gain large followings and, generally speaking, often become the catalyst of bona-fide revolutions in their markets. Some of the most popular content management systems are PHP based and have grown organically from very humble beginnings—which they still retain, at least in part, to this very day. Far from being a liability, the perhaps less-than-stellar coding standards have, in fact, become assets: programmers who collaborate on these projects are encouraged to look for results without placing undue emphasis on form.

There are, of course, limits to the tolerance of the “relaxed” coding practices that these projects have. The implosion of phpBB that happened a few years back—when even Google was forced to intervene in order to stop a worm from causing widespread damage—sent out a very clear message: security is not something anybody can compromise on, regardless of how inexpensive or popular their product is.

By and large, however, bad code is a phenomenon that matters little, if at all, to the end user—it’s the results that make all the difference. Several open- source PHP CMS systems have functionality that rivals—and in many cases far surpasses—their commercial counterparts without coming with the same steep (and, let’s face it, sometimes absolutely ridiculous) price tags.

What can we learn from all this? Simple: that we need bad code. The importance of peer review and critique is important—and, therefore, so is the work of those community members who are taking the time to examine the code that is found in these open-source projects—but so is the unique ability that many of these products have demonstrated in building features, attracting communities and gaining a popular place in the marketplace.

What is really great about this line of thought is that the existence of bad code is, in fact, a win-win for everyone: users get what they want at a very low cost; developers can learn to improve their code from their peers; and community members can learn from each other how to build code that others want to use.

⇥ The php|a Podcast Episode #2 is out

September 8, 2009
One comment
 
⇥ Permalink

In case you don’t follow it, a new episode of the php|architect Podcast is out. Much to my surprise, I have discovered that I like doing these—I even got over my dislike of my own voice.


Check it out—thanks mostly to a great group of guests, this episode is really cool.

⇥ What’s on your desk?

September 7, 2009
13 comments
 
⇥ Permalink

For some reason that I do not quite understand myself,  I have always been fascinated by other people’s desks. This is not a fetish of mine—far from it, it’s genuine interest in understand how others set up their workstations.

There’s a lot to be learned about the way someone works by observing the way they set themselves up for work. Besides, you never know when you may learn a trick or two just by watching how someone else solves the same problems you face every day.

Therefore, I have a challenge for all my readers—show me your desk. You can just upload them to flickr and give them the desksurvey tag. Don’t forget to add a little description of what you think makes your desk unique. I plan on collecting some of the most interesting response and post them in an article for phparch.com (thus, please license your pictures on a CC/share-alike license).* Leaving me a comment would also help :-)

To get the ball rolling, I’ll start with my desk:


Although I have a “formal” desk and office, most of the time I don’t work on it. My kitchen (assuming I am around the house) doubles as my office instead—much, I must admit, to the chagrin of my wife.

There are a couple of reasons for this. First, I do not actually need anything other than my computer and my mouse to work—and I can do without the latter in a pinch, since a laptop is now my main machine. I also do not need any reference materials—all my books, magazines and other relevant purveyor of day-to-day information is available to me in electronic format wherever I go (except private information, which stays safely in the office inside an encrypted external hard drive).

More importantly, however, I like to work in an informal environment—particularly where I can see outside (my “real” office faces a wall). It’s not at all uncommon for me to simply pack up my laptop in its pouch and drive over to our nearby park during the summer—bandwidth courtesy of my cell phone.

So… what’s on your desk?


*Note: I know this is not an original idea, and I don’t care. I just want to see what other people who read my blog have on their desk.