⇥ A little bit of Apple, a little bit of Adobe

April 12, 2010
5 comments
 
⇥ Permalink

There seems to be a distinct lack of perspective in the whole Apple vs. Adobe war—perhaps it was inevitable that something like the by now infamous Clause 3.3.1 of the iPhone OS SDK agreement would polarize people so much.

First of all, because I suspect that my readers will make a big deal out of it, I stand by my previous post on the whole Apple thing. Feel free to disagree, but even the introduction of the new clause, which limits “sanctioned” iPhone OS apps to those that are written in a handful of official Apple languages, doesn’t limit your ability to tinker with the OS. It does, of course, limit your ability to deploy, which, depending on what your ultimate goals are, may be a significant problem—but it doesn’t prevent you from writing apps for the platform, including those you develop using one of the “forbidden” tools.

A little bit of Apple

Some of the arguments that the Apple camp uses to justify the existence of the new clause seem a little specious to me. Gruber’s analysis on why the clause exists¹ is probably spot on, but his conclusions are a little disingenuous. Section 3.3.1 was clearly introduced to developer lock-in and protect Apple’s significant profit margins on the sale of iPhone OS devices—after all, cross-platform development tools like Flash or Titanium are about levelling the field by deploying across multiple devices with a single codebase; if apps look and behave the same way on multiple platforms, the argument in favour of spending your money on Apple devices loses much of its value.

What I haven’t seen mentioned is that §3.3.1 also ensures hardware lock-in, because now there truly is no way to develop software for iPhone OS unless you’re on a Mac. This was true before, as well, but only to a certain extent. Prior to the new agreement being introduced, if you chose a cross-platform development tool, you could conceivably run a team on Windows or Linux and then buy a single Mac—even an entry-level Mini would have done—for building, testing and deployment. Your only choice is now to be an all-Mac shop.

The leap that Gruber—and Jean-Louis Gassé, in a piece that just came out this morning—make from realizing the §3.3.1 is about lock-in to claiming that cross-developed applications are inferior, either in terms of performance or quality, is laughable. There are plenty of hideous apps in the App Store—most of which have been built with the native tools. Tools don’t make developers—they are just tools. Twenty years of experience in the IT industry tell me that poor programming skills will show no matter what platform software is written on.

Besides, if ensuring quality were really Apple’s ultimate goal, they have all the tools—legal and otherwise—to do so today, without the need for any new clauses. They could, for example, start enforcing their own human interface guideline policies; there are plenty of apps that blatantly violate them² in the store even though they have been built using sanctioned tools. Ditto for performance—Apple’s own mail client struggles, at times, when selecting multiple messages even on the iPad, which is probably the fastest of all iPhone OS devices. If these are the things that matter to Apple, §3.3.1 is not the answer to them.

As for the topic of this being Adobe’s comeuppance for snubbing the Mac when that platform was struggling, I have no comment to offer—mostly because I wasn’t either a Mac or Adobe user at that particular point in time. But it seems to me that Steve Jobs has shown himself to be a much-too-focused executive in the last ten years to embark on personal vendettas. Even his spate with Michael Eisner over Pixar was, in my opinion, much more about shrewd negotiations than personal antipathy³. Alas, the vengeance, if it exists, is only in Steve’s brain—a place I respectfully want to stay out of.

A little bit of Adobe

The bitterness on the Adobe side of things is a little disproportionate to the events, I think.

Claiming that Apple is out to damage the launch of CS5 is just plain silly. Sure, the iPhone OS 4 event might have been a little suspiciously timed, but Flash’s ability to cross-compile to iPhone OS is a relatively minor feature of CS5. As a developer, Flash does little for me—it’s a designer’s tool. My interest lies more with tools like Flash Builder or AIR2, which make a heck of a lot more sense to me than Flash itself. As far as CS5 goes, I’m much more fascinated (and not a little freaked out) by Photoshop’s new content-aware fill than what Flash does.

What’s more, I wouldn’t rule out Flash as an iPhone OS development platform altogether. True, you can’t sell the software you write with it on the App Store, but that ignores a huge segment of the market for which Flex and Flash are ideal platforms: internal-use applications. I have, in the past, mentioned that I believe this to be AIR’s best market: scenarios in which an IT department needs to deploy tools to a heterogeneous, but captive, environment. If I were building a management console for a company of any size, I would not hesitate to recommend that they use Flex and AIR for it, even for iPhone OS deployment. Bypassing the App Store in these cases is not just easy—Apple gives you all the sanctioned tools you need—but also desired, and the ability to build a single codebase could signify major savings for any company without necessarily compromising the unique per-device experience⁴.

By the same token, stating that Adobe should simply stop making products for Apple platforms is just plain stupid. Never mind that Mac users are likely a large source of revenue for the company—screwing customers over hardly seems to be the way to solve this issue. You’d think the whole Kindle-vs.-iBooks spate would have taught these people something.

Kevin Lynch, Adobe’s CTO, has offered a fairly measured response to the §3.3.1 issue—but I must admit that I, for one, was disappointed that he should be the company’s spokesperson on what seems to me like a business, rather than a technical, issue. He should have focused on the technology aspects of CS5 and leave the CEO to address Apple’s perceived shenanigans.

Some of the responses from the company’s evangelists were regrettable, but, in my opinion, understandable. It must be difficult to be so focused on a product launch only to see your thunder seemingly taken away by a company that has no immediate reason to. Still, I prefer Ryan Stewart’s approach of looking at this as what it is—an opportunity to improve the Flash tooling.

By way of disclosure, Adobe is a client of Blue Parabola. I also write iPhone OS software. Take your pick of biases.

¹ I am probably overreacting, but I can’t help thinking that Gruber’s analysis is a little too spot on. I absolutely don’t want to accuse him of anything, but the fact that he was able to hone in on that one clause of the agreement as the 4.0 beta had barely become available raises substantial questions.

² I don’t mean here that all apps need to look exactly the same, but that they should offer a consistent interface across the entire platform. Human interface guidelines are about user experience—not colour and pictures. They are what gives “good” OS X applications that distinctive “Mac” feel.

³ Say what you will about Eisner, but he was exactly the kind of person that Disney needed at a point in time when its management spent most of its day attempting to wonder what Walt would do. He was brash and abrasive—and managed to bring order to what had become a chaotic company. And, when he was finally done with what must have been one of history’s best turnarounds, he was shredded to pieces by the Disneys with little regard for his accomplishment. Luckily, he’s been replaced by Bob Iger, who seems to be just as capable without grating people the wrong way.

⁴ Of course, nothing prevents stupidity from making people write a single app that looks bad on all platforms—but that has, again, nothing to do with the tools and everything to do with incompetence.

Reblog this post [with Zemanta]

⇥ The story behind TEK·X’s Charter Ticket program

December 29, 2009
No comments
 
⇥ Permalink

Unless you’re living under a particularly large rock, you’ve probably heard that we are doing a special promotion, which we call Charter Ticket Program, that makes it possible to purchase a full-experience TEK·X ticket—valid for both the main conference and tutorial day—for $650. The catch (if you want to call it that) is that the special is only valid until we announce the schedule—so, effectively, you need to put a lot of trust in our ability to attract top speaking talent and stitch together the schedule of a conference that you will want to attend.

Given the incredible response that our call for papers has received—over 9 proposals for each speaking slot—I have no doubt that we will be able to create a schedule rich in variety and topics that are very relevant to PHP developers from all walks of life. If anything, we’ve had a really hard time finding room for all the talks that we wanted to be part of TEK·X and, although I believe that my colleague Keith Casey will have some hopefully welcome news on this subject to share in a few days, we’ve run out of room much sooner than we ran out of good talks to approve.

The reasoning behing the Charter Program is very simple: we recognize that there is a core of attendees for whom our conferences have become an opportunity to meet up with their peers and learn what’s happening in the PHP world. In fact, there are some who have been to all of MTA’s conferences, so we felt that they deserve a little some extra special.

The Charter Program is designed specifically for these folks: at $650, the current price of the tickets is almost half the price of a regular ticket at the door—and $350 less than the lowest early-bird price. It is the lowest price you will be able to secure a spot at TEK for—an opportunity for a great deal if you put a little faith in the folks who have brought so many memorable events to the PHP community.

To take advantage of the Charter Ticket Program and save as much as 45% over the price of a full-experience ticket, you must sign up for TEK·X before January 6th, 2010, when our schedule will be officially announced.

⇥ Microsoft is and Microsoft does

December 9, 2009
4 comments
 
⇥ Permalink
Elephpant does Redmond!

Elephpant does Redmond!

Every year, Microsoft organizes a small event, called Web Development Summit, to which they invite a few members of the PHP community. The WDS is a good opportunity to exchange information with Microsoft, learn about new products they are working on and generally catch up with a number of friends from the community. Several others have already posted their impressions of this year’s meeting, to which I add my own.

Good stuff

Microsoft’s attitude towards open-source has changed considerably over the last few years—a fact that is finally starting to permeate through its historical insistence on vertical integration in favour of more willingness to integrate its products with other platforms. At the end of the day, Microsoft has realized that the key to improving adoption of Windows Server—and, more importantly, stemming the migration away from it—is to play nice with other technologies.

More importantly (at least from my perspective), more people within Microsoft are finally realizing that working within the open-source world requires a shift in the way they establish relationships and position themselves. There are some within the company that have realized this a long time ago and have, as a result, established some strong ties with the PHP community; it’s good to see that this frame of mind is finally permeating through the organization and changing the way it approaches its dealings with us.

The willingness to look beyond its own walls is also making it possible for Microsoft to come up with some truly innovative and useful products. One of the most impressive ones that I saw during the WDS is Expression Web‘s SuperPreview¹, which truly simplifies the process of side-by-side comparison between browsers, including multiple versions of Internet Explorer. I was teaching a seminar of HTML and CSS at a client just yesterday and had an opportunity to show this product to them. It was received with a chorus of wows, followed by significant gnashing of teeth when they realized that their organization’s default Windows install wouldn’t support it.

I also truly appreciated the fact that the evangelists who were at WDS took the time to really drive home the fact that “Microsoft” is not one entity, but, rather, a conglomerate of many different divisions and people—and, therefore, of many different opinions and strategic views that are bound, at times, to be in conflict with one another. To anyone who has had the opportunity to work for (or with) a large organization, this is an obvious fact—but many who are used to smaller work environments don’t fully understand the complexities of interacting with such a large base of coworkers, each with their own priorities and strategies (I always chuckle when I hear someone start a sentence with “You Microsoft guys need to…”).

Finally, I had the pleasure of leading a ten-minute discussion on the status of the PHP community, which, judging from the reactions that it received, was a cathartic experience for some people. I took advantage of the unusual convergence of members from various PHP-related groups, including Drupal, Joomla and WordPress, to point out that it might be opportune for all of these communities to intermingle and work together with the “core” PHP community towards common goals to ensure a good exchange of ideas. After all, what comes down the pipe from core will eventually be of benefit (or not) to anyone whose application lives downstream, so a feedback channel in the form of conversations and participation is going to be essential to the health of the entire PHP ecosystem².

Not so good stuff

The whole point of the WDS was to give Microsoft an opportunity to present their current ideas to a small focus group so that they would have an opportunity to revise and focus their message before presenting it to the world at large; therefore, it would be inappropriate for me to comment specifically on the areas for improvement that we saw.

Suffice it to say that some divisions inside Microsoft are still finding it difficult to let go of the no longer appropriate view of open-source communities are a ragtag group of renegades intent on not-so-subtly subverting the commercial software landscape. By my own guesstimate-based account, the 40 or so people at WDS directly or indirectly represented at least a good $100M of annual sales (the number actually jumped by several hundred millions halfway through, but I’m not counting that), all made possible by the use of open-source software. These people are not trying to make a philosophical point—they are simply trying to achieve specific goals with the best tools at their disposal. Microsoft employees simply need to learn to see us as partners, and not as gifted amateurs with a source-code fetish.

By the same token, if we decide to engage with companies like Microsoft, it’s important to make an effort to understand the unique challenges that they must face, internally and externally, in order to work with us. Obviously, we can’t solve their problems—but if we don’t even bother finding out what they are, we are not being good community citizens, either.

Disclosure: Microsoft is a customer of both MTA and Blue Parabola, and they paid most of my expenses to attend the WDS.


¹ Of course, SuperPreview (which, to me, is the killer feature in Expression Web) is not even listed in the top-three features on the product page. Disconnect, anyone?

² On a personal note, I was happy to see that my ability to drive an entire room full of people up the wall in ten minutes or less has not waned with the years. My intention was to stir emotions—and that’s exactly what I accomplished.

⇥ How to encourage piracy

December 7, 2009
9 comments
 
⇥ Permalink
The copyright industry is somewhere around these parts.
The copyright industry is somewhere around these parts.

As I write this post, I am comfortably slouched on an easy chair in a Seattle area hotel, a guest at Microsoft’s Web Development Summit (about which I shall write more in a future post). Like most visits to the States, this means a stop at Fry’s—a geek’s equivalent of Willy Wonka’s chocolate factory, with wall-to-wall electronic candy, from computers to consoles, from DVDs to floppies (yes, they have some of those, too).

Slave to my own customs, therefore, I joined my friends Eli and Rafael for a trip down to the Electronic Mecca with the idea of finally purchasing an electronic book reader—I’ve wanted one for a while, and now that php|a has an all-new format, we want to focus on supporting these devices, which we think are the way to go looking forward into the future. Translation: I finally had an excuse to get the eReader past my wife (who will probably read this post and promptly strangle me).

I ended up purchasing a Sony eReader Touch Edition. As the name implies, this device combines an ePaper screen and a touch-based interface; I don’t intend to review the device here, other than to say that the screen doesn’t quite have the contrast ratio of decent paper stock (in fact, it’s probably inferior to pulp paper), and the whole user interface seems to always stop one step short of a good UX (plus, the device has no wireless connectivity, which at this point in time is simply inexcusable). Nevertheless, the device does provide a really good reading experience, particularly when you consider that it can go for two weeks between charges and the average fiction book occupies less than half a megabyte.

What I’d like to speak about is the wonderful, wonderful feelings that purchasing content for this device has left me.

The store that almost was… not

I don’t think that you’ll be surprised to hear that the first thing I wanted to do, upon unpacking my new toy, was to get some content for it.

The folks at Sony sure must be falling off their chairs, however, because I simply couldn’t get anything. I had fallen in that DRM Neverland that is purchasing a book from the Canadian store—with a Canadian credit card tied to a Canadian address—while within the United States. In fact, the store told me so—after I had dug my credit card out of my pocket and typed in all my information: “You cannot change your method of payment in a country other than your country of residence.”

There’s a finality, a sort-of “what kind of stupid shenanigans are you trying to pull” attitude to this statement that just drives me up the wall. Why shouldn’t I be able to buy a book from the online store dedicated to my country (which, in itself, is a curious idea to be found on a worldwide network), with a credit card that was issued in the same country and is registered to an address which is, itself, in the same country?

Of course, I understand why this is: rights management. Despite the fact that the US dollar is essentially at par with its Canadian counterpart, we regularly pay much higher prices for books (among other things) than our friends south of the border. Distribution of content in our country is regulated by a government that is intent on ensuring that our cultural heritage is not overrun by Americans—in itself a rather curious attitude, considering that so many Canadians are first-generation immigrants and therefore don’t have a shared heritage to start with. Furthermore, book rights (much like movie rights) are routinely handled by different entities across borders and, obviously, each wants to make sure that it can maximize its ability to take advantage of its captive market.

Of course, I hope that you won’t mind me saying that this line of reasoning has been pulled straight out of the digestive system of a cow by the copyright industry. They are the ones who insist on placing impossible constraints on the management of content rights—and they are the ones who constantly find themselves at odd with simple, plain reality. In other words, they have created a problem—their problem, not my problem—and the only solutions they come up with end up victimizing the law-abiding user—me.

The “to copy is to steal” mantra that the idiots from the copyright lobby continue chanting is so misleading you could put a tail on it and call it a weasel. Here I was, credit card in hand, ready to make a purchase—nay, credit card details already entered on site and purchase already made, as far as I was concerned—and they won’t take my money… why? Because my IP appears to be assigned to another country? It’s the equivalent of walking into a grocery store and being denied the purchase of milk because I look like I might be from out of town. Their legal choice removed, guess what honest people do—and they don’t even feel remotely guilty about it.

I’ll say this: when we removed password protection (which is not a form of DRM, as I have tried to explain multiple times) from our publications, our sales actually went up. I am glad we did. I am glad our customers pushed us to do it and didn’t let us off the hook until we would.

Cost vs. “cost”

As I have said in the past, DRM is an endless battle against an imaginary foe. The content industry is chasing after windmills—and the worst part is that they actually believe they have an enemy.

Not too long ago, I had a brief argument on Twitter with Charles Arthur, the Technology Editor at Britain’s Guardian newspaper. I enjoy reading Mr. Arthur’s work, which, of course, made me all the madder when I saw him reporting this statement:

The Entertainment and Leisure Software Publishers’ Association, ELSPA, which represents the video games industry, says that criminal games copying and other illegal activities cost the industry more than £750m annually.

I challenged this and was frankly disappointed that Mr. Arthur’s answer was that he wasn’t making the claim—rather, the ELSPA was. Technically, that’s clearly correct, but that’s a statement that just begs for some questioning that I would think a journalist should want to undertake.

If you ever happen to be overly bored and decide to look at the financial statements of any public corporation that trades primarily in intellectual property, I challenge you to find a line item that says “costs due to piracy.” Go ahead, try—you won’t find any.

Don’t worry, though; through the magic of common sense, I can tell you exactly how much money piracy costs to the entire industry: zero.

You see, in accounting—which is what companies use to track and report their financial positions—cost is essentially equivalent to expense: the money a company spends to produce or acquire something. Piracy, therefore, is not a cost—because the company cannot spend money that it doesn’t have in the first place. Their claim that piracy costs them hundreds of millions of dollars a year is a bit like me claiming that not getting run over by a truck while crossing the street earlier today cost me hundreds of thousands of dollars in insurance claims.

That’s right—the copyright industry is very cleverly using a concept that is proper in economics—where “cost” is the value of an opportunity that has been discarded in favour of a different alternative—in a context where the subject is accounting. With this clumsy sleight of hand, they have created a financial liability that cannot be reported on their books (not without some serious consequences, at least), but that looks really good in print.

The simple reality is that the industry knows exactly how much piracy costs them: nothing. What they don’t seem to know, however, is what combating it is costing them: it has created a generation of content users that are completely disillusioned with the value of intellectual property because they are constantly presented with a set of facts that have been gracelessly distorted to present a picture that doesn’t stand up to the most basic scrutiny.

Good luck staying relevant.

Photo credit: Jack and Jill Windmills in Sussex by david.nikonvscanon

⇥ Old school task management

November 25, 2009
7 comments
 
⇥ Permalink
Nothing beats paper for personal task management (except, possibly, your spouse)

Nothing beats paper for personal task management (except, possibly, your spouse)

The biggest lesson in user interface design that I have ever received is, to this day, a little something that happened approximately eleven years ago.

At the time, I remember standing in the headquarters lobby of one of Canada’s largest insurance companies, uncomfortable—as I always am—in my suit, right next to my CEO. We were waiting for a meeting with the company’s CIO that we had tried to schedule for two months. We were prepared; we were early enough to show that the meeting mattered to us, but not so early that we would look desperate. We were ready.

Unfortunately, our host wasn’t. The receptionist informed us, politely but with that condescending look of someone who has seen far too many supplicants make far too many sales calls, that the CIO wasn’t expecting us today and wouldn’t be seeing us after all.

My colleague—a person who could teach anyone business smarts simply by standing next to them for a short period of time—decided that we hadn’t donned our best suits, driven through that particular brand of hell that city dwellers jokingly refer to as “traffic” and spent $30 in parking to be brushed off so easily. “He doesn’t know my cell number… I bet if I call his direct line he will answer¹,” he stated.

That sounded good to me—I had paid the $30—so I opened up my Cassiopeia and started looking for the guy’s phone number. I was pretty good with that little device—and I never got tired of showing it off (much like an iPhone until a few months ago, it made for an excellent conversation starter at business meetings). It only took me a minute or so to pull up the number and, once I located it, I looked up to dictate it to Rick.

Except, of course, that, while I was deeply busy getting off on electronics, my friends had already whipped out his $2.99 pocket phone book, found the number, called the CIO and very gently tore him a new waste management system. Before I knew what had happened, we were on our way up to the executive floor, and my Cassiopeia was on its way down to the trash.

Fast forward ten years…

Things have changed considerably since that episode (incidentally, the meeting was a bust—I only remember what happened specifically because it had a cathartic effect on my appreciation for ergonomics), but, in many ways, software is still too often a solution in search of a problem.

This is the reason why, even after all this time, I manage all my day-to-day tasks on paper. I’ve tried a number of fancy (and not-so-fancy) task management systems: GTD-compliant systems, OmniFocus, Things, and so on. I’m sure that these applications and methods do wonders for scores of people, but, for some reason, they just don’t work for me.

You see, daily task management is not really about knowing what you need to do; it’s about doing it. A to-do list in any form isn’t going to help you “remember” the things you have to do—let’s face it, you know what you have to do; most of the time, you’re just too lazy to actually do it. Task management software is helpful in keeping track of what you need to do, but it lacks in what I jokingly refer to as the “spouse factor²”—it doesn’t nag you enough about sorting through your tasks and taking care of them.

Paper won’t start calling you in the middle of a client meeting to remind you that you need to pick up the milk on the way back home, but it has two great advantages: first, it’s extremely portable and, second, it cannot be hidden behind another window. Third—yes, I am cheating—it’s as of yet unbeaten as a mind-mapping tool, especially when coupled with that most noble of writing instruments, the pencil.

Task management, old-school style

Managing time is a complex matter. Some people are naturally good at it, while others, well, not so much. I belong to the second category and, therefore, a good management system is essential to get me through the day. For the benefit of inquiring minds, thus, this is how I organize my day:

  1. Once proper grooming has taken place and I am sufficiently caffeinated to write something that I will eventually be able to read later, I start working on my to-do list for the day. This usually takes place after I do my morning e-mail triage—just in case there are some truly urgent and unexpected tasks that I need to be aware of.
  2. I start by copying over the unhandled items from the previous day. Then, that list goes into the trashcan.
  3. Next, I write down whatever new items I need to take care of on that particular day—consulting liberally with my calendar, just in case I forget something.
  4. Next, I sort items according to two criteria: urgency and palatability. Urgent tasks need to take precedence, as do those that I’d rather avoid—that way, I have something (the tasks I actually like to do) to look forward to.
  5. As I go through the list, I try to find a “daily goal” of sorts—my TDL is usually much longer than my day reasonably allows, and some long-term tasks need to be taken care of daily, regardless of what precedes them. Thus, I further sort tasks between “must do,” “should do” and “can go to tomorrow.”
  6. As the day progresses, I erase tasks as I complete them. The erasure is also “old school”—I just scratch a line across the item. That way, it doesn’t automatically disappear—it sticks around as evidence that I have actually done something.
  7. At the end of the day, I go through the list one more time to ensure that I haven’t forgotten to take care of some truly urgent tasks. Otherwise, the TDL will tell me what I have accomplished over the course of the day—and the remaining tasks will be there for me to work on tomorrow.

That’s all there is to it. If I need to work outside the office, all I need is a piece of paper and a pen. Best of all, the to-do list is right there, in front of me and at the top of my work pile on the desk. It’s impossible to ignore, even without pop-up notifications and stereo sounds.

How do you manage your time? Much like my obsession with finding out how others organize their desks, I am curious to see if I can learn a trick or two to improve my time management.

¹ Remarkably—even for the time—the person we were visiting didn’t have a secretary, even though he held a C-level position at a major corporation.

² Intended in the most gender-neutral way possible. I am quite sure that husbands can be as annoying as wives, regardless of the gender of their better halves.

Photo credits: My to do list by ezs

⇥ Selling software in an open-source world

November 23, 2009
5 comments
 
⇥ Permalink
How do you sell software when it's free?

How do you sell software when it's free?

Last week, Zend’s marketing department saw fit to send me an e-mail—the third in so many weeks—touting the fact that the upcoming Zend Server 5 will support job queueing¹ to offload requests either to another process on the same server or to another server altogether.

Undoubtedly, this is a great feature, not the least because it begs a little bit of simple business analysis of how difficult it is to create a market for products in an open-source world.

First of all, a simple look at the economics of this feature reveals that, in itself, it cannot be a determinant in the purchase of Zend Server². The reasoning is fairly simple: a copy of the lowest-level subscription for Zend Server costs $1,195. You can, however, get queuing support from a variety of other sources—most notably Amazon Web Services, which sells queuing requests for $0.01 per 10,000 requests. In other words, you’d have to need to make more than 1,195,000,000 queuing requests in a year to justify the purchase of Zend Server if all you ever wanted was queuing support.

Therefore, queuing needs to be part of a larger set of features that, taken together, make Zend Server a compelling and unique product. However, none of its features do this—there is practically nothing in ZS that cannot be obtained elsewhere for a lower cost (or for no cost). What’s more, Zend cannot lock any new feature it adds to its products because it can be easily replicated by just about anybody else.

Case in point, on the very same day when I received Zend’s e-mail, Jonathan Wage tweeted about a library he built on top of Doctrine to manage message queues using a variety of different storage media. So here we have, in the same period of twenty-four hours, a company that is trying to sell me a solution that a person claims to have developed and is making available completely free of charge.

Of course, this comparison represents “all kinds of unfair” towards Zend—their solution could be better implemented, more reliable, or scale better.

Or, perhaps, I could point out that they are not, in fact, selling the software at all.

Software is worthless—service is everything

In an open-source world, the capital value of any piece of software tends towards zero—not only because you others get the software for free, but because vendors cannot lock in any feature that makes it impossible for anyone else to recreate the same functionality and give it away at no cost. Microsoft has proprietary control over Windows and can, therefore, decide which features it allows third parties to replicate. Zend has no exclusive control over PHP and, therefore, enjoy no such privilege with its products. Nor is this a problem that is specific to Zend—any other company that works in an open-source space has to deal with this particular issue in one form or another.

The only real product that a company like Zend can sell, therefore, is the peace of mind of knowing that there is someone that your organization can turn to for assistance when things stop working. Not being a Zend customer myself, I can’t say how well they do this, but I do find it interesting that they continue to define themselves as a product company and that they don’t seem to place any emphasis on their services.

I understand that the need to sell products is primarily one of scale—it’s difficult to convince an investor that they should give you their money unless you can show exponential growth, and a service-oriented organization simply cannot achieve that. However, when your product is, essentially, an extended form of support, you need to build an organization that has service at its core—it’s only through services that a company will gain acceptance for its products and achieve the scale its investors demand.

This is nothing new, of course—organizations as large as the largest software vendors in the world have highly developed service organizations that, while not representing a significant revenue centres, act as a springboard for the sale of the company’s products. This is true both in the open- and close-source markets—think about the size of Microsoft’s Consulting Services division or the importance that a company like Red Hat attaches to the creation of a holistic ecosystem for its products, from certification to training and consulting.

Educate, Penetrate, Accelerate

The importance of services can be best illustrated through the mantra educate, penetrate, accelerate.

Education is an essential part of driving the adoption of your products. It involves the cooperation of marketing, which raises awareness about your products, and training and certification, which promotes competence among your clients. The former without the latter leads to discontent, because your customers won’t be able to use your products. The latter without the former leads to poor adoption, because nobody will know about your products in the first place!

Penetration of the market can only be achieved by a well-tuned and aggressive consulting-services strategy. This is particularly true in the PHP market, which is trending towards a higher and higher level of abstraction in programming tasks—when people invest millions of dollars a year in content management systems, the only way that you can make your products relevant is to make them relevant to those systems. To offset the cost of providing services, a company needs to foster a competitive, but also active and rewarding, environment for its consulting partners, demanding high quality while providing excellent opportunities for profit by reducing some of the costs associates with customer acquisition.

A good service division will lead to acceptance of your products, which is where you can accelerate your growth by selling multiple licenses to your paid products to each client.

¹ I realize that I’m just being petty here, but Zend’s marketing need a severe visit from the Cluebat Fairy—if the best reason you can come up with for trying to sell me a queue management system is that I can eliminate “long-running PHP scripts,” you have failed miserably. To a developer (or, at least, to this developer), queuing has three important benefits: parallelization, prioritization and consistency. In other words, I want to know that I can push messages in the queue so that they can be processed by multiple workers, they can be assigned a specific priority if needed, and that they are not going to end up in some sort of black hole. Offline serving of complex tasks is a consequence of these features, rather than the feature itself—but I digress.

² Of course, you can download Zend Server for free, but that only reinforces the difficulty in creating products for the PHP market.

Photo credits: Girotondo by Luca Sartoni

⇥ IE9 will have rounded corners (and a bunch of other stuff)

November 19, 2009
4 comments
 
⇥ Permalink
And then, there was much jubilation.

And then, there was much jubilation.

Marvel of marvels, the upcoming Internet Explorer 9, which was previewed yesterday at PDC, will finally support rounded corners. I have, of course, no illusion about the fact that this isn’t related to my post from a couple of days ago, but it’s good to hear that they’re at last catching up.

Of course, this also means that there is yet another version of IE that we need to check and account for in our code, but, frankly, I don’t expect that to be a major problem where these things are concerned: if anything, the availability of features like rounded corners across all three major browsers for the first time in the history of the web will be enough to push many developers to simply ignore older versions of IE beyond the graceful degradation of their designs—much like many do today.

This, however, will have the potential to accelerate the adoption of the latest version among users who will want the best experience possible. It will also mean that new designs will be much more fluid and dynamic, since more and more changes can be made by simply altering the code, rather than by mucking around with graphical elements. It’s a good day for the Photoshop challenged among us!

IE9 is also getting several more interesting features, like better font rendering and control (something that other browsers have placed a lot of emphasis on lately), higher speed and much more.

Photo credit: Cornered by gfpeck

⇥ Win a 52″ HD system with php|a’s new contest

November 18, 2009
7 comments
 
⇥ Permalink
PHP on Windows: give it a try—it might be worth your while
PHP on Windows: give it a try—it might be worth your while

From the blatant self-promotion bin: in case you haven’t heard, php|a has a brand new contest running between now and the end of March.

The contest rules are fairly simple (despite all the legal gobbledygook): write the best PHP-on-Windows application (as judged by our panel of experts and the php|a readers) and you will be the winner of a killer grand prize made up of a 52″ LCD HDTV set, a 5.1 surround system and an XBOX Ultimate, plus your very own, all-expenses-paid ticket to TEK·X.

Currently, we have ten people who are hard at work on contest entries. To me, that seems like a paltry number, consider that we have over $10,000 in prizes available and you don’t even need to be running Windows, since we have partnered with Applied Innovations to provide the first sixty participants with their very own dedicated Windows VPS. You know you’re running out of excuses. Try it. Now. Go!

Why PHP on Windows?

As you can see on the php|a website, Microsoft is providing php|a with promotional consideration for the contest—needlessly to say, they have their reasons, which primarily are to make you try and write software in PHP and make it run on Windows. I, however, have a completely different set of motives for running the contest: to make you try and write software in PHP and make it run on Windows.

Where’s the difference? Microsoft wants you try their products because you will hopefully find them useful and adopt them in a setting in which their use will turn into sales. That’s a perfect valid motivation, particularly considering that they (a) are in the business of selling software and (b) they are providing you with a really strong incentive to give their products a try (and without any strings attached!). I, on the other hand, want as many PHP professionals as possible to be aware of what all their choices are.

Every time we discard a choice on the basis of anything other than it not being the right solution for our particular problem, we are doing ourselves and our clients a disservice. It happens a little too often that I come across a client who is suffering through their personal hell because they have discarded commercial alternatives on the basis that they “cost money” or “are not open-source.” In a professional setting, your first goal should be to find the best solution to a particular problem keeping all the appropriate constraints into consideration. If the cost of making OSS work for your specific problem is higher than acquiring a commercial package (a scenario that is not that far fetched if you’re trying to make the open-source software do something it wasn’t meant to), then you’re better off switching—perhaps with the long-term view of helping to sponsor an improvement in the OSS package to make it eventually meet your needs. By the same token, an ill-adapted open-source solution that doesn’t work well isn’t going to further the OSS cause much, either.

Thus, I hope that our little contest will give you an excuse to try out one of the many technologies and software products that Microsoft puts out. You may just find that one or two of them solve your problems in a way that saves you time, or money, or both—and, who knows, you could get a cool TV set and a free trip to one of the best PHP conferences of 2010 in the process!

Photo credit: Windows by eriwst (with some changes by yours truly).

⇥ Some tips for great presentations

November 16, 2009
10 comments
 
⇥ Permalink
What's in your slides?

What's in your slides?

There are far too many articles on the Net that purport to give their readers practical suggestions on writing good slide decks for presentations. By and far, I find that most of these articles hit far off the mark—for the simple reason that there isn’t “one true way” when it comes to writing compelling presentations and, therefore, no amount of “tips” or checklists will help you unless you have a clear understanding of the big picture: presenting is a holistic experience, and it should be treated as such.

This is not to say, however, that there aren’t good ways to improve your decks and your presentation skills—you just need to start from the beginning instead of jumping into the middle of the story. Here are some of the notes that I have accumulated over the years:

0. Find your groove

The first rule of writing a good deck is to… completely ignore your deck and focus, instead, on your presentation. If you are thinking that your presentation is, in fact, your deck, you have just uncovered the first cardinal mistake of writing a presentation!

A compelling presentation works because it is delivered by you—not your slides. Therefore, the first thing you need to do is focus on having something useful, important, intriguing and challenging to say. You should be able to deliver just as good a speech without the help of slides.

My personal philosophy is that a keynote should never answer questions—that’s what tutorials are for. A good talk works by planting doubts and raising challenges in the mind of the audience: you want the people who listen to you to leave the room with more questions than they came in with—you want them to go home and do something because of what you say.

Therefore, when I present a talk I always start by deciding what kind of trouble I want to cause. I pick one or two principal theses that I want to prove and focus all my efforts on figuring out how I can prove them to the audience. I don’t even start worrying about slides until a few days before I am supposed to give the talk.

As an added bonus to this approach, you will be able to deliver your talk without slides—projectors break, the power does, occasionally, go out and it’s not that unusual to forget that all-important video adaptor for your Mac. Therefore, it’s always good to know that, in a pinch, you can get it done without the deck.

Remember, no amount of design, graphics and special effects are going to make up for a crappy talk. Focus on what you want to say first, and make it pretty afterwards.

1. Remember that you are the speaker

This brings me to another important point: your slide deck should not be a crutch. Remember that you are the speaker, not your slides. Therefore, the slides should follow the flow of your presentation—not the other way around.

This may seem obvious, but, once you start examining the way most speakers present, you’ll see that it isn’t. When a speaker needs to constantly pause in between slides, he or she is using his deck as a crutch—the talk cannot continue until the next slide is ready for him or her to lean over. Similarly, when a speaker needs to point at his or her slides or read from them all the time, he or she is playing to the deck, and not the other way around.

When I prepare a presentation, once I have written my deck I practice presenting with my back to the screen. By the time I go on stage, I expect to be able to deliver my presentation as one fluid speech, with the slides switching behind my back in order to keep up with what I’m saying—the deck is my slave, and not the other way around. This means learning to account for the inevitable lag between the time you click the button on your remote and the deck advances to the next slide so that you don’t have to pause and wait for the right screen to show up—and the only way you can do that is through lots of rehearsals.

2. People come to see you, not your slides

The reason why slides that are chock-full of text are “bad” is that they take away from the number one reason why people come to see your talk: you.

If that sounds presumptuous, well… that’s what public speaking is: the belief that you have something important to say that other people will want to hear. If your guests are busy reading your slides, they are not busy listening to you. If they are interested in the topic but they didn’t want to listen to you, they’d buy a book. Get it? It’s about you. Not your slides, you. Slides: bad. You: good.

If your slides overflow with text because you’re worried that there might not be enough material to make them meaningful for offline viewing, I’d say that either (a) you need to write a companion paper or (b) you need to tell people that they should have been there to see you in order to understand your deck (pro tip: option (a) makes you sound much less like Cher’s current replicant died before they could get it to the cloning machine and now you’re channeling her spirit).

By the same token, the most important characteristic of your talk is confidence. Remember, whether you like to admit it or not, you are putting on a show. People who are entertained are more likely to pay attention to what you say and be receptive to your theses. This is not to say that you need to put on a full hour of standup comedy—but rather than droning on for an hour is not a good idea unless you’re speaking at a suicide-pact conference and the organizers have already handed out the razor blades.

Confidence comes primarily from—you guessed it—rehearsal and preparation. If you’re well prepared, you will naturally know what to say and when. If you’ve practiced, you’ll know which jokes fall flat, where you’re supposed to be in your presentation at any given point in time, and so on. Most importantly, you’ll be able to focus on your delivery rather than on your slides—adapting to how receptive the audience is to your talk and altering your speech accordingly.

3. There are no nails under your shoes, and you’re not drunk

The other stupendously bad piece of advice that I see repeated over and over is that you should deliver your presentation in a stationary position. That’s idiotic; I am a wanderer, and unashamedly so—and so are many excellent speakers I know. In fact, I will usually pace around the stage with a glass in my hand and the remote in the other (replacing the glass with a microphone if I don’t happen to be wearing a lapel mike). The way I see it, you should do what comes natural to you… because it will look natural.

What you should avoid at all costs is to “wobble”—stand stationary but continuously shift your weight from one leg to the other. It makes you look unsure of yourself, shifty (pardon the pun) and untrustworthy. If you can’t stand still and don’t want to move around, lean against a prop—a lectern works well for two things: holding your laptop and holding your weight. Better yet, walk around if the stage permits it.

4. Be an honest speaker

There is nothing that irks me more than a speaker who does not make a honest presentation. By honesty, here, I don’t mean that the speaker is necessarily right, just that he or she is telling the truth.

The difference is very important, because honesty is a very powerful tool to make your audience believe you. Thus, I dislike when I see someone demoing a product of any kind by using a highly-polished set of steps with a predictable outcome—they’re saying “hey, I had two months to prepare these twenty lines of code, but now I’m going to pretend that you can write them in 45 minutes!”

People are not that easily played. When Cal and I gave our Flex tutorials at CodeWorks this past fall, we went into our presentations armed with a general idea of what we wanted to show the audience (in this case, how to build a Twitter client with AIR) and our knowledge of Flex. Live coding without a pre-defined structure allowed us to engage the audience and give them a realistic impression of what coding with Flex Builder is really like. The inevitable occasional mistake (it’s surprisingly difficult to think, speak and type coherently at the same time), as well as the unexpected questions from the audience that we had to research on Google right there and then, served to reinforce the honesty of the message that we wanted to convey. Experts are not walking encyclopedias or manuals—they just know where to look for the things they haven’t figured out yet and, most of all, they are not afraid to be wrong.

5. Break your rules from time to time

Rules exist to be broken—and can be broken to much effect. My presentations tend to be extremely minimalistic in nature, but I will occasionally throw in an elaborate slide or two when I think that doing so will help my presentation.

It’s a gut call, but like everything else, presentations that rigidly follow a set of rules—whatever those rules might be—end up being formulaic. A bit of variety now and then can be a good thing.

There are also some instances when the rules of the game simply change. For example, my slides tend to be extremely simple—my presentation at Enterprise LAMP Camp in Nashville had a grand total of 25 words in 30 slides—but only when I give presentations in person. If I am writing a presentation for something like a webcast, where all people have to contend with is my voice, I will make my slides much heavier in textual content, since I want my audience to have something to follow while I speak.

Incidentally, while we are on the subject of remote presentations, I’d like to pass along a really useful tip: as Dale Carnegie used to say, your expression carries in your voice. If you smile while you’re speaking, the people at the other end of the conversation will know—and, similarly, if your expression remains the same throughout your presentation, your audience will perceive you as droning. The best way to make sure that you do vary your tone of voice throughout your talk is to turn on your webcam—most laptops come with one these days anyway—and place the resulting image at the bottom of the screen while you’re presenting. This will give you an “audience” of sort and is almost guaranteed to improve the tone of your voice—that is, if you can stomach looking at yourself talk for an hour at a time.

Photo credit: the php|a gang, from php|works 2008 in Atlanta (this is what happens when you weasel out of helping at a conference in my company).

⇥ Going virtual

November 13, 2009
4 comments
 
⇥ Permalink

Even as a relatively small company, we’re drawing huge benefits from virtualization.

(more…)